diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2017-04-03 18:38:26 +0200 |
---|---|---|
committer | George Goldberg <george@gberg.me> | 2017-04-03 17:38:26 +0100 |
commit | 7eb09dbffdd87f36eff0d781eaeb0e816bbdac21 (patch) | |
tree | 0eaffc09d53116322fa5d8d51e0528829f5ab622 /api4/team_test.go | |
parent | 36c74d7b47253249ec83aedacf409a93de1d182f (diff) | |
download | chat-7eb09dbffdd87f36eff0d781eaeb0e816bbdac21.tar.gz chat-7eb09dbffdd87f36eff0d781eaeb0e816bbdac21.tar.bz2 chat-7eb09dbffdd87f36eff0d781eaeb0e816bbdac21.zip |
[APIV4] POST /teams/{team_id}/import for apiv4 (#5920)
Diffstat (limited to 'api4/team_test.go')
-rw-r--r-- | api4/team_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/api4/team_test.go b/api4/team_test.go index a38acf2e6..6127919c1 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -4,9 +4,11 @@ package api4 import ( + "encoding/binary" "fmt" "net/http" "strconv" + "strings" "testing" "github.com/mattermost/platform/app" @@ -1047,3 +1049,77 @@ func TestTeamExists(t *testing.T) { _, resp = Client.TeamExists(team.Name, "") CheckUnauthorizedStatus(t, resp) } + +func TestImportTeam(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer TearDown() + + t.Run("ImportTeam", func(t *testing.T) { + var data []byte + var err error + data, err = readTestFile("Fake_Team_Import.zip") + if err != nil && len(data) == 0 { + t.Fatal("Error while reading the test file.") + } + + // Import the channels/users/posts + fileResp, resp := th.SystemAdminClient.ImportTeam(data, binary.Size(data), "slack", "Fake_Team_Import.zip", th.BasicTeam.Id) + CheckNoError(t, resp) + + fileReturned := fmt.Sprintf("%s", fileResp) + if !strings.Contains(fileReturned, "darth.vader@stardeath.com") { + t.Log(fileReturned) + t.Fatal("failed to report the user was imported") + } + + // Checking the imported users + importedUser, resp := th.SystemAdminClient.GetUserByUsername("bot_test", "") + CheckNoError(t, resp) + if importedUser.Username != "bot_test" { + t.Fatal("username should match with the imported user") + } + + importedUser, resp = th.SystemAdminClient.GetUserByUsername("lordvader", "") + CheckNoError(t, resp) + if importedUser.Username != "lordvader" { + t.Fatal("username should match with the imported user") + } + + // Checking the imported Channels + importedChannel, resp := th.SystemAdminClient.GetChannelByName("testchannel", th.BasicTeam.Id, "") + CheckNoError(t, resp) + if importedChannel.Name != "testchannel" { + t.Fatal("names did not match expected: testchannel") + } + + importedChannel, resp = th.SystemAdminClient.GetChannelByName("general", th.BasicTeam.Id, "") + CheckNoError(t, resp) + if importedChannel.Name != "general" { + t.Fatal("names did not match expected: general") + } + + posts, resp := th.SystemAdminClient.GetPostsForChannel(importedChannel.Id, 0, 60, "") + CheckNoError(t, resp) + if posts.Posts[posts.Order[3]].Message != "This is a test post to test the import process" { + t.Fatal("missing posts in the import process") + } + }) + + t.Run("MissingFile", func(t *testing.T) { + _, resp := th.SystemAdminClient.ImportTeam(nil, 4343, "slack", "Fake_Team_Import.zip", th.BasicTeam.Id) + CheckBadRequestStatus(t, resp) + }) + + t.Run("WrongPermission", func(t *testing.T) { + var data []byte + var err error + data, err = readTestFile("Fake_Team_Import.zip") + if err != nil && len(data) == 0 { + t.Fatal("Error while reading the test file.") + } + + // Import the channels/users/posts + _, resp := th.Client.ImportTeam(data, binary.Size(data), "slack", "Fake_Team_Import.zip", th.BasicTeam.Id) + CheckForbiddenStatus(t, resp) + }) +} |