Bläddra i källkod

plugins: fixes path issue on Windows

When loading a plugin and setting the path, an extra backslash sneaks
when running on Windows. Fixes #9597
Daniel Lee 8 år sedan
förälder
incheckning
7863a0417c
2 ändrade filer med 35 tillägg och 1 borttagningar
  1. 1 1
      pkg/plugins/frontend_plugin.go
  2. 34 0
      pkg/plugins/frontend_plugin_test.go

+ 1 - 1
pkg/plugins/frontend_plugin.go

@@ -40,7 +40,7 @@ func getPluginLogoUrl(pluginType, path, baseUrl string) string {
 }
 
 func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) {
-	appSubPath := strings.Replace(fp.PluginDir, app.PluginDir, "", 1)
+	appSubPath := strings.Replace(strings.Replace(fp.PluginDir, app.PluginDir, "", 1), "\\", "/", 1)
 	fp.IncludedInAppId = app.Id
 	fp.BaseUrl = app.BaseUrl
 

+ 34 - 0
pkg/plugins/frontend_plugin_test.go

@@ -0,0 +1,34 @@
+package plugins
+
+import (
+	"testing"
+
+	"github.com/grafana/grafana/pkg/setting"
+	. "github.com/smartystreets/goconvey/convey"
+)
+
+func TestFrontendPlugin(t *testing.T) {
+
+	Convey("When setting paths based on App on Windows", t, func() {
+		setting.StaticRootPath = "c:\\grafana\\public"
+
+		fp := &FrontendPluginBase{
+			PluginBase: PluginBase{
+				PluginDir: "c:\\grafana\\public\\app\\plugins\\app\\testdata\\datasource",
+				BaseUrl:   "fpbase",
+			},
+		}
+		app := &AppPlugin{
+			FrontendPluginBase: FrontendPluginBase{
+				PluginBase: PluginBase{
+					PluginDir: "c:\\grafana\\public\\app\\plugins\\app\\testdata",
+					Id:        "testdata",
+					BaseUrl:   "public/app/plugins/app/testdata",
+				},
+			},
+		}
+		fp.setPathsBasedOnApp(app)
+
+		So(fp.Module, ShouldEqual, "app/plugins/app/testdata/datasource/module")
+	})
+}