* remove global app references

* test fix

* fix api4 test compilation
Этот коммит содержится в:
Chris
2017-09-12 09:19:52 -05:00
коммит произвёл GitHub
родитель 674a606bd0
Коммит b066b6df13
37 изменённых файлов: 724 добавлений и 1434 удалений

Просмотреть файл

@@ -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()

Просмотреть файл

@@ -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
}

Просмотреть файл

@@ -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())
}