Этот коммит содержится в:
JoramWilander
2015-06-15 09:06:55 -04:00
родитель 6982a61f69
Коммит a281e962fc
3 изменённых файлов: 60 добавлений и 48 удалений

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

@@ -61,6 +61,7 @@ func createValetPost(c *Context, w http.ResponseWriter, r *http.Request) {
if !utils.Cfg.TeamSettings.AllowValet { if !utils.Cfg.TeamSettings.AllowValet {
c.Err = model.NewAppError("createValetPost", "The valet feature is currently turned off. Please contact your system administrator for details.", "") c.Err = model.NewAppError("createValetPost", "The valet feature is currently turned off. Please contact your system administrator for details.", "")
c.Err.StatusCode = http.StatusNotImplemented c.Err.StatusCode = http.StatusNotImplemented
return
} }
post := model.PostFromJson(r.Body) post := model.PostFromJson(r.Body)

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

@@ -147,62 +147,71 @@ func TestCreateValetPost(t *testing.T) {
channel2 := &model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel2 := &model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id}
channel2 = Client.Must(Client.CreateChannel(channel2)).Data.(*model.Channel) channel2 = Client.Must(Client.CreateChannel(channel2)).Data.(*model.Channel)
post1 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag a" + model.NewId() + "a"} if utils.Cfg.TeamSettings.AllowValet {
rpost1, err := Client.CreateValetPost(post1) post1 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag a" + model.NewId() + "a"}
if err != nil { rpost1, err := Client.CreateValetPost(post1)
t.Fatal(err) if err != nil {
} t.Fatal(err)
}
if rpost1.Data.(*model.Post).Message != post1.Message { if rpost1.Data.(*model.Post).Message != post1.Message {
t.Fatal("message didn't match") t.Fatal("message didn't match")
} }
if rpost1.Data.(*model.Post).Hashtags != "#hashtag" { if rpost1.Data.(*model.Post).Hashtags != "#hashtag" {
t.Fatal("hashtag didn't match") t.Fatal("hashtag didn't match")
} }
post2 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a", RootId: rpost1.Data.(*model.Post).Id} post2 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a", RootId: rpost1.Data.(*model.Post).Id}
rpost2, err := Client.CreateValetPost(post2) rpost2, err := Client.CreateValetPost(post2)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
post3 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a", RootId: rpost1.Data.(*model.Post).Id, ParentId: rpost2.Data.(*model.Post).Id} post3 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a", RootId: rpost1.Data.(*model.Post).Id, ParentId: rpost2.Data.(*model.Post).Id}
_, err = Client.CreateValetPost(post3) _, err = Client.CreateValetPost(post3)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
post4 := &model.Post{ChannelId: "junk", Message: "a" + model.NewId() + "a"} post4 := &model.Post{ChannelId: "junk", Message: "a" + model.NewId() + "a"}
_, err = Client.CreateValetPost(post4) _, err = Client.CreateValetPost(post4)
if err.StatusCode != http.StatusForbidden { if err.StatusCode != http.StatusForbidden {
t.Fatal("Should have been forbidden") t.Fatal("Should have been forbidden")
} }
Client.LoginByEmail(team.Domain, user2.Email, "pwd") Client.LoginByEmail(team.Domain, user2.Email, "pwd")
post5 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"} post5 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"}
_, err = Client.CreateValetPost(post5) _, err = Client.CreateValetPost(post5)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
user3 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey@test.com", FullName: "Corey Hulen", Password: "pwd"} user3 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey@test.com", FullName: "Corey Hulen", Password: "pwd"}
user3 = Client.Must(Client.CreateUser(user3, "")).Data.(*model.User) user3 = Client.Must(Client.CreateUser(user3, "")).Data.(*model.User)
Srv.Store.User().VerifyEmail(user3.Id) Srv.Store.User().VerifyEmail(user3.Id)
Client.LoginByEmail(team2.Domain, user3.Email, "pwd") Client.LoginByEmail(team2.Domain, user3.Email, "pwd")
channel3 := &model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team2.Id} channel3 := &model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team2.Id}
channel3 = Client.Must(Client.CreateChannel(channel3)).Data.(*model.Channel) channel3 = Client.Must(Client.CreateChannel(channel3)).Data.(*model.Channel)
post6 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"} post6 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"}
_, err = Client.CreateValetPost(post6) _, err = Client.CreateValetPost(post6)
if err.StatusCode != http.StatusForbidden { if err.StatusCode != http.StatusForbidden {
t.Fatal("Should have been forbidden") t.Fatal("Should have been forbidden")
} }
if _, err = Client.DoPost("/channels/"+channel3.Id+"/create", "garbage"); err == nil { if _, err = Client.DoPost("/channels/"+channel3.Id+"/create", "garbage"); err == nil {
t.Fatal("should have been an error") t.Fatal("should have been an error")
}
} else {
post1 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag a" + model.NewId() + "a"}
_, err := Client.CreateValetPost(post1)
if err.StatusCode != http.StatusNotImplemented {
t.Fatal(err)
t.Fatal("Should have failed with 501 - Not Implemented")
}
} }
} }

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

@@ -157,9 +157,11 @@ func createTeamFromSignup(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
CreateValet(c, rteam) if utils.Cfg.TeamSettings.AllowValet {
if c.Err != nil { CreateValet(c, rteam)
return if c.Err != nil {
return
}
} }
InviteMembers(rteam, ruser, teamSignup.Invites) InviteMembers(rteam, ruser, teamSignup.Invites)