summaryrefslogtreecommitdiffstats
path: root/api/user_test.go
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2016-03-17 15:46:16 -0400
committerJoramWilander <jwawilander@gmail.com>2016-03-23 15:59:58 -0400
commit463fd8c20b6e20d1cc669810c339770b9b1ede41 (patch)
tree3bf857301e0a24a1a7ccd7c5d15834829e3d22e7 /api/user_test.go
parent7af2e6f87a754312809aa044edd062930616401a (diff)
downloadchat-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.go145
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()