|
|
@ -24,9 +24,13 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
pluginDir := "." |
|
|
|
pluginDir := "." |
|
|
|
tmpFile, err := ioutil.TempFile(pluginDir, "") |
|
|
|
tmpFile, err := ioutil.TempFile(pluginDir, "") |
|
|
|
require.NoError(t, err) |
|
|
|
require.NoError(t, err) |
|
|
|
|
|
|
|
tmpFileInParentDir, err := ioutil.TempFile("..", "") |
|
|
|
|
|
|
|
require.NoError(t, err) |
|
|
|
t.Cleanup(func() { |
|
|
|
t.Cleanup(func() { |
|
|
|
err := os.RemoveAll(tmpFile.Name()) |
|
|
|
err := os.RemoveAll(tmpFile.Name()) |
|
|
|
assert.NoError(t, err) |
|
|
|
assert.NoError(t, err) |
|
|
|
|
|
|
|
err = os.RemoveAll(tmpFileInParentDir.Name()) |
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
}) |
|
|
|
}) |
|
|
|
expectedBody := "Plugin test" |
|
|
|
expectedBody := "Plugin test" |
|
|
|
_, err = tmpFile.WriteString(expectedBody) |
|
|
|
_, err = tmpFile.WriteString(expectedBody) |
|
|
@ -60,6 +64,30 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t.Run("Given a request for a relative path", func(t *testing.T) { |
|
|
|
|
|
|
|
p := &plugins.PluginBase{ |
|
|
|
|
|
|
|
Id: pluginID, |
|
|
|
|
|
|
|
PluginDir: pluginDir, |
|
|
|
|
|
|
|
SignedFiles: map[string]struct{}{ |
|
|
|
|
|
|
|
requestedFile: {}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
service := &pluginManager{ |
|
|
|
|
|
|
|
plugins: map[string]*plugins.PluginBase{ |
|
|
|
|
|
|
|
pluginID: p, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
l := &logger{} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, tmpFileInParentDir.Name()) |
|
|
|
|
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
|
|
|
|
|
func(sc *scenarioContext) { |
|
|
|
|
|
|
|
callGetPluginAsset(sc) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
require.Equal(t, 404, sc.resp.Code) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
t.Run("Given a request for an existing plugin file that is not listed as a signature covered file", func(t *testing.T) { |
|
|
|
t.Run("Given a request for an existing plugin file that is not listed as a signature covered file", func(t *testing.T) { |
|
|
|
p := &plugins.PluginBase{ |
|
|
|
p := &plugins.PluginBase{ |
|
|
|
Id: pluginID, |
|
|
|
Id: pluginID, |
|
|
|