diff options
Diffstat (limited to 'api4/system_test.go')
-rw-r--r-- | api4/system_test.go | 172 |
1 files changed, 171 insertions, 1 deletions
diff --git a/api4/system_test.go b/api4/system_test.go index d9514eabc..80b4996ca 100644 --- a/api4/system_test.go +++ b/api4/system_test.go @@ -1,7 +1,12 @@ package api4 import ( + "strings" "testing" + + l4g "github.com/alecthomas/log4go" + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" ) func TestGetPing(t *testing.T) { @@ -10,9 +15,174 @@ func TestGetPing(t *testing.T) { Client := th.Client b, _ := Client.GetPing() - if b == false { + if b == false { t.Fatal() } } +func TestGetConfig(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + _, resp := Client.GetConfig() + CheckForbiddenStatus(t, resp) + + cfg, resp := th.SystemAdminClient.GetConfig() + CheckNoError(t, resp) + + if len(cfg.TeamSettings.SiteName) == 0 { + t.Fatal() + } + + if *cfg.LdapSettings.BindPassword != model.FAKE_SETTING && len(*cfg.LdapSettings.BindPassword) != 0 { + t.Fatal("did not sanitize properly") + } + if *cfg.FileSettings.PublicLinkSalt != model.FAKE_SETTING { + t.Fatal("did not sanitize properly") + } + if cfg.FileSettings.AmazonS3SecretAccessKey != model.FAKE_SETTING && len(cfg.FileSettings.AmazonS3SecretAccessKey) != 0 { + t.Fatal("did not sanitize properly") + } + if cfg.EmailSettings.InviteSalt != model.FAKE_SETTING { + t.Fatal("did not sanitize properly") + } + if cfg.EmailSettings.PasswordResetSalt != model.FAKE_SETTING { + t.Fatal("did not sanitize properly") + } + if cfg.EmailSettings.SMTPPassword != model.FAKE_SETTING && len(cfg.EmailSettings.SMTPPassword) != 0 { + t.Fatal("did not sanitize properly") + } + if cfg.GitLabSettings.Secret != model.FAKE_SETTING && len(cfg.GitLabSettings.Secret) != 0 { + t.Fatal("did not sanitize properly") + } + if cfg.SqlSettings.DataSource != model.FAKE_SETTING { + t.Fatal("did not sanitize properly") + } + if cfg.SqlSettings.AtRestEncryptKey != model.FAKE_SETTING { + t.Fatal("did not sanitize properly") + } + if !strings.Contains(strings.Join(cfg.SqlSettings.DataSourceReplicas, " "), model.FAKE_SETTING) && len(cfg.SqlSettings.DataSourceReplicas) != 0 { + t.Fatal("did not sanitize properly") + } +} + +func TestReloadConfig(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + flag, resp := Client.ReloadConfig() + CheckForbiddenStatus(t, resp) + if flag == true { + t.Fatal("should not Reload the config due no permission.") + } + + flag, resp = th.SystemAdminClient.ReloadConfig() + CheckNoError(t, resp) + if flag == false { + t.Fatal("should Reload the config") + } + + utils.Cfg.TeamSettings.MaxUsersPerTeam = 50 + *utils.Cfg.TeamSettings.EnableOpenServer = true +} + +func TestEmailTest(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + SendEmailNotifications := utils.Cfg.EmailSettings.SendEmailNotifications + SMTPServer := utils.Cfg.EmailSettings.SMTPServer + SMTPPort := utils.Cfg.EmailSettings.SMTPPort + FeedbackEmail := utils.Cfg.EmailSettings.FeedbackEmail + defer func() { + utils.Cfg.EmailSettings.SendEmailNotifications = SendEmailNotifications + utils.Cfg.EmailSettings.SMTPServer = SMTPServer + utils.Cfg.EmailSettings.SMTPPort = SMTPPort + utils.Cfg.EmailSettings.FeedbackEmail = FeedbackEmail + }() + + utils.Cfg.EmailSettings.SendEmailNotifications = false + utils.Cfg.EmailSettings.SMTPServer = "" + utils.Cfg.EmailSettings.SMTPPort = "" + utils.Cfg.EmailSettings.FeedbackEmail = "" + _, resp := Client.TestEmail() + CheckForbiddenStatus(t, resp) + + _, resp = th.SystemAdminClient.TestEmail() + CheckErrorMessage(t, resp, "api.admin.test_email.missing_server") + CheckInternalErrorStatus(t, resp) +} + +func TestDatabaseRecycle(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + _, resp := Client.DatabaseRecycle() + CheckForbiddenStatus(t, resp) + + _, resp = th.SystemAdminClient.DatabaseRecycle() + CheckNoError(t, resp) +} + +func TestInvalidateCaches(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + flag, resp := Client.InvalidateCaches() + CheckForbiddenStatus(t, resp) + if flag == true { + t.Fatal("should not clean the cache due no permission.") + } + + flag, resp = th.SystemAdminClient.InvalidateCaches() + CheckNoError(t, resp) + if flag == false { + t.Fatal("should clean the cache") + } +} + +func TestGetLogs(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + Client := th.Client + + for i := 0; i < 20; i++ { + l4g.Info(i) + } + + logs, resp := th.SystemAdminClient.GetLogs(0, 10) + CheckNoError(t, resp) + + if len(logs) != 10 { + t.Log(len(logs)) + t.Fatal("wrong length") + } + + logs, resp = th.SystemAdminClient.GetLogs(1, 10) + CheckNoError(t, resp) + + if len(logs) != 10 { + t.Log(len(logs)) + t.Fatal("wrong length") + } + + logs, resp = th.SystemAdminClient.GetLogs(-1, -1) + CheckNoError(t, resp) + + if len(logs) != 0 { + t.Fatal("should not be empty") + } + + _, resp = Client.GetLogs(0, 10) + CheckForbiddenStatus(t, resp) + + Client.Logout() + _, resp = Client.GetLogs(0, 10) + CheckUnauthorizedStatus(t, resp) +} |