From b066b6df138e88e75cb40f1ec3e58fbd13e61909 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 12 Sep 2017 09:19:52 -0500 Subject: Remove global app references (#7433) * remove global app references * test fix * fix api4 test compilation --- api/api.go | 15 +++++++------- api/apitestlib.go | 62 +++++++++++++++++++++---------------------------------- api/emoji_test.go | 10 ++++----- 3 files changed, 37 insertions(+), 50 deletions(-) (limited to 'api') diff --git a/api/api.go b/api/api.go index 8e8064731..313cbc7e1 100644 --- a/api/api.go +++ b/api/api.go @@ -59,15 +59,16 @@ type Routes struct { var BaseRoutes *Routes -func InitRouter() { - app.Global().Srv.Router = mux.NewRouter() - app.Global().Srv.Router.NotFoundHandler = http.HandlerFunc(Handle404) +func NewRouter() *mux.Router { + ret := mux.NewRouter() + ret.NotFoundHandler = http.HandlerFunc(Handle404) + return ret } -func InitApi() { +func InitApi(root *mux.Router) { BaseRoutes = &Routes{} - BaseRoutes.Root = app.Global().Srv.Router - BaseRoutes.ApiRoot = app.Global().Srv.Router.PathPrefix(model.API_URL_SUFFIX_V3).Subrouter() + BaseRoutes.Root = root + BaseRoutes.ApiRoot = root.PathPrefix(model.API_URL_SUFFIX_V3).Subrouter() BaseRoutes.Users = BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter() BaseRoutes.NeedUser = BaseRoutes.Users.PathPrefix("/{user_id:[A-Za-z0-9]+}").Subrouter() BaseRoutes.Teams = BaseRoutes.ApiRoot.PathPrefix("/teams").Subrouter() @@ -111,7 +112,7 @@ func InitApi() { InitDeprecated() // 404 on any api route before web.go has a chance to serve it - app.Global().Srv.Router.Handle("/api/{anything:.*}", http.HandlerFunc(Handle404)) + root.Handle("/api/{anything:.*}", http.HandlerFunc(Handle404)) utils.InitHTML() diff --git a/api/apitestlib.go b/api/apitestlib.go index 71a1f59c2..3f63f3ffc 100644 --- a/api/apitestlib.go +++ b/api/apitestlib.go @@ -33,35 +33,12 @@ type TestHelper struct { SystemAdminChannel *model.Channel } -func SetupEnterprise() *TestHelper { - if app.Global().Srv == nil { - utils.TranslationsPreInit() - utils.LoadConfig("config.json") - utils.InitTranslations(utils.Cfg.LocalizationSettings) - *utils.Cfg.TeamSettings.MaxUsersPerTeam = 50 - *utils.Cfg.RateLimitSettings.Enable = false - utils.DisableDebugLogForTest() - utils.License().Features.SetDefaults() - app.Global().NewServer() - app.Global().InitStores() - InitRouter() - wsapi.InitRouter() - app.Global().StartServer() - utils.InitHTML() - api4.InitApi(false) - InitApi() - wsapi.InitApi() - utils.EnableDebugLogForTest() - app.Global().Srv.Store.MarkSystemRanUnitTests() - - *utils.Cfg.TeamSettings.EnableOpenServer = true +func setupTestHelper(enterprise bool) *TestHelper { + th := &TestHelper{ + App: app.Global(), } - return &TestHelper{} -} - -func Setup() *TestHelper { - if app.Global().Srv == nil { + if th.App.Srv == nil { utils.TranslationsPreInit() utils.LoadConfig("config.json") utils.InitTranslations(utils.Cfg.LocalizationSettings) @@ -69,21 +46,32 @@ func Setup() *TestHelper { *utils.Cfg.RateLimitSettings.Enable = false utils.Cfg.EmailSettings.SendEmailNotifications = true utils.DisableDebugLogForTest() - app.Global().NewServer() - app.Global().InitStores() - InitRouter() + if enterprise { + utils.License().Features.SetDefaults() + } + th.App.NewServer() + th.App.InitStores() + th.App.Srv.Router = NewRouter() wsapi.InitRouter() - app.Global().StartServer() - api4.InitApi(false) - InitApi() + th.App.StartServer() + api4.InitApi(th.App.Srv.Router, false) + InitApi(th.App.Srv.Router) wsapi.InitApi() utils.EnableDebugLogForTest() - app.Global().Srv.Store.MarkSystemRanUnitTests() + th.App.Srv.Store.MarkSystemRanUnitTests() *utils.Cfg.TeamSettings.EnableOpenServer = true } - return &TestHelper{} + return th +} + +func SetupEnterprise() *TestHelper { + return setupTestHelper(true) +} + +func Setup() *TestHelper { + return setupTestHelper(false) } func ReloadConfigForSetup() { @@ -96,7 +84,6 @@ func ReloadConfigForSetup() { } func (me *TestHelper) InitBasic() *TestHelper { - me.App = app.Global() me.BasicClient = me.CreateClient() me.BasicUser = me.CreateUser(me.BasicClient) me.LoginBasic() @@ -116,7 +103,6 @@ func (me *TestHelper) InitBasic() *TestHelper { } func (me *TestHelper) InitSystemAdmin() *TestHelper { - me.App = app.Global() me.SystemAdminClient = me.CreateClient() me.SystemAdminUser = me.CreateUser(me.SystemAdminClient) me.SystemAdminUser.Password = "Password1" @@ -166,7 +152,7 @@ func (me *TestHelper) CreateUser(client *model.Client) *model.User { utils.DisableDebugLogForTest() ruser := client.Must(client.CreateUser(user, "")).Data.(*model.User) ruser.Password = "Password1" - store.Must(app.Global().Srv.Store.User().VerifyEmail(ruser.Id)) + store.Must(me.App.Srv.Store.User().VerifyEmail(ruser.Id)) utils.EnableDebugLogForTest() return ruser } diff --git a/api/emoji_test.go b/api/emoji_test.go index 01fd9411c..443fe7758 100644 --- a/api/emoji_test.go +++ b/api/emoji_test.go @@ -226,7 +226,7 @@ func TestDeleteEmoji(t *testing.T) { }() *utils.Cfg.ServiceSettings.EnableCustomEmoji = false - emoji1 := createTestEmoji(t, &model.Emoji{ + emoji1 := createTestEmoji(t, th.App, &model.Emoji{ CreatorId: th.BasicUser.Id, Name: model.NewId(), }, utils.CreateTestGif(t, 10, 10)) @@ -247,7 +247,7 @@ func TestDeleteEmoji(t *testing.T) { t.Fatal("shouldn't be able to delete an already-deleted emoji") } - emoji2 := createTestEmoji(t, &model.Emoji{ + emoji2 := createTestEmoji(t, th.App, &model.Emoji{ CreatorId: th.BasicUser2.Id, Name: model.NewId(), }, utils.CreateTestGif(t, 10, 10)) @@ -263,11 +263,11 @@ func TestDeleteEmoji(t *testing.T) { } } -func createTestEmoji(t *testing.T, emoji *model.Emoji, imageData []byte) *model.Emoji { - emoji = store.Must(app.Global().Srv.Store.Emoji().Save(emoji)).(*model.Emoji) +func createTestEmoji(t *testing.T, a *app.App, emoji *model.Emoji, imageData []byte) *model.Emoji { + emoji = store.Must(a.Srv.Store.Emoji().Save(emoji)).(*model.Emoji) if err := utils.WriteFile(imageData, "emoji/"+emoji.Id+"/image"); err != nil { - store.Must(app.Global().Srv.Store.Emoji().Delete(emoji.Id, time.Now().Unix())) + store.Must(a.Srv.Store.Emoji().Delete(emoji.Id, time.Now().Unix())) t.Fatalf("failed to write image: %v", err.Error()) } -- cgit v1.2.3-1-g7c22