diff options
author | JoramWilander <jwawilander@gmail.com> | 2016-03-17 15:46:16 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2016-03-23 15:59:58 -0400 |
commit | 463fd8c20b6e20d1cc669810c339770b9b1ede41 (patch) | |
tree | 3bf857301e0a24a1a7ccd7c5d15834829e3d22e7 /api/user_test.go | |
parent | 7af2e6f87a754312809aa044edd062930616401a (diff) | |
download | chat-463fd8c20b6e20d1cc669810c339770b9b1ede41.tar.gz chat-463fd8c20b6e20d1cc669810c339770b9b1ede41.tar.bz2 chat-463fd8c20b6e20d1cc669810c339770b9b1ede41.zip |
Add the ability to switch from email to ldap and back
Diffstat (limited to 'api/user_test.go')
-rw-r--r-- | api/user_test.go | 145 |
1 files changed, 129 insertions, 16 deletions
diff --git a/api/user_test.go b/api/user_test.go index a175adb1b..86cda0390 100644 --- a/api/user_test.go +++ b/api/user_test.go @@ -1161,7 +1161,7 @@ func TestStatuses(t *testing.T) { } -func TestSwitchToSSO(t *testing.T) { +func TestEmailToOAuth(t *testing.T) { Setup() team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} @@ -1172,45 +1172,45 @@ func TestSwitchToSSO(t *testing.T) { store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) m := map[string]string{} - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - empty data") } m["password"] = "pwd" - _, err := Client.SwitchToSSO(m) + _, err := Client.EmailToOAuth(m) if err == nil { t.Fatal("should have failed - missing team_name, service, email") } m["team_name"] = team.Name - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - missing service, email") } m["service"] = "someservice" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - missing email") } m["team_name"] = "junk" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - bad team name") } m["team_name"] = team.Name m["email"] = "junk" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - bad email") } m["email"] = ruser.Email m["password"] = "junk" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.EmailToOAuth(m); err == nil { t.Fatal("should have failed - bad password") } } -func TestSwitchToEmail(t *testing.T) { +func TestOAuthToEmail(t *testing.T) { Setup() team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} @@ -1225,45 +1225,158 @@ func TestSwitchToEmail(t *testing.T) { store.Must(Srv.Store.User().VerifyEmail(ruser2.Id)) m := map[string]string{} - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - not logged in") } Client.LoginByEmail(team.Name, user.Email, user.Password) - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - empty data") } m["password"] = "pwd" - _, err := Client.SwitchToSSO(m) + _, err := Client.OAuthToEmail(m) if err == nil { t.Fatal("should have failed - missing team_name, service, email") } m["team_name"] = team.Name - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - missing email") } m["email"] = ruser.Email m["team_name"] = "junk" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - bad team name") } m["team_name"] = team.Name m["email"] = "junk" - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - bad email") } m["email"] = ruser2.Email - if _, err := Client.SwitchToSSO(m); err == nil { + if _, err := Client.OAuthToEmail(m); err == nil { t.Fatal("should have failed - wrong user") } } +func TestLDAPToEmail(t *testing.T) { + Setup() + + team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + rteam, _ := Client.CreateTeam(&team) + + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"} + ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) + + Client.LoginByEmail(team.Name, user.Email, user.Password) + + m := map[string]string{} + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - empty data") + } + + m["email_password"] = "pwd" + _, err := Client.LDAPToEmail(m) + if err == nil { + t.Fatal("should have failed - missing team_name, ldap_password, email") + } + + m["team_name"] = team.Name + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - missing email, ldap_password") + } + + m["ldap_password"] = "pwd" + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - missing email") + } + + m["email"] = ruser.Email + m["team_name"] = "junk" + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - bad team name") + } + + m["team_name"] = team.Name + m["email"] = "junk" + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - bad email") + } + + m["email"] = user.Email + if _, err := Client.LDAPToEmail(m); err == nil { + t.Fatal("should have failed - user is not an LDAP user") + } +} + +func TestEmailToLDAP(t *testing.T) { + Setup() + + team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + rteam, _ := Client.CreateTeam(&team) + + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "pwd"} + ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) + + Client.LoginByEmail(team.Name, user.Email, user.Password) + + m := map[string]string{} + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - empty data") + } + + m["email_password"] = "pwd" + _, err := Client.EmailToLDAP(m) + if err == nil { + t.Fatal("should have failed - missing team_name, ldap_id, ldap_password, email") + } + + m["team_name"] = team.Name + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - missing email, ldap_password, ldap_id") + } + + m["ldap_id"] = "someid" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - missing email, ldap_password") + } + + m["ldap_password"] = "pwd" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - missing email") + } + + m["email"] = ruser.Email + m["team_name"] = "junk" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - bad team name") + } + + m["team_name"] = team.Name + m["email"] = "junk" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - bad email") + } + + m["email"] = user.Email + m["email_password"] = "junk" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - bad password") + } + + m["email_password"] = "pwd" + if _, err := Client.EmailToLDAP(m); err == nil { + t.Fatal("should have failed - missing ldap bits or user") + } +} + func TestMeLoggedIn(t *testing.T) { Setup() |