2017-03-11 17:30:29 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2017-04-25 10:24:51 +03:00
package integrations
2017-03-11 17:30:29 +03:00
import (
2020-11-14 19:53:43 +03:00
"fmt"
2017-04-25 10:24:51 +03:00
"net/http"
2020-11-14 19:53:43 +03:00
"strings"
2017-03-11 17:30:29 +03:00
"testing"
2021-07-15 22:19:48 +03:00
"code.gitea.io/gitea/models"
2021-11-16 11:53:21 +03:00
"code.gitea.io/gitea/models/unittest"
2017-04-25 10:24:51 +03:00
"code.gitea.io/gitea/modules/setting"
2020-11-14 19:53:43 +03:00
"github.com/stretchr/testify/assert"
"github.com/unknwon/i18n"
2017-04-25 10:24:51 +03:00
)
2017-03-11 17:30:29 +03:00
func TestSignup ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2017-04-28 16:23:28 +03:00
2017-04-25 10:24:51 +03:00
setting . Service . EnableCaptcha = false
2017-06-17 07:49:45 +03:00
req := NewRequestWithValues ( t , "POST" , "/user/sign_up" , map [ string ] string {
"user_name" : "exampleUser" ,
"email" : "exampleUser@example.com" ,
2019-11-09 06:40:37 +03:00
"password" : "examplePassword!1" ,
"retype" : "examplePassword!1" ,
2017-06-17 07:49:45 +03:00
} )
2017-07-07 22:36:47 +03:00
MakeRequest ( t , req , http . StatusFound )
2017-03-11 17:30:29 +03:00
2017-04-25 10:24:51 +03:00
// should be able to view new user's page
2017-06-10 03:41:36 +03:00
req = NewRequest ( t , "GET" , "/exampleUser" )
2017-07-07 22:36:47 +03:00
MakeRequest ( t , req , http . StatusOK )
2017-03-11 17:30:29 +03:00
}
2020-11-14 19:53:43 +03:00
2021-07-15 22:19:48 +03:00
func TestSignupAsRestricted ( t * testing . T ) {
defer prepareTestEnv ( t ) ( )
setting . Service . EnableCaptcha = false
setting . Service . DefaultUserIsRestricted = true
req := NewRequestWithValues ( t , "POST" , "/user/sign_up" , map [ string ] string {
"user_name" : "restrictedUser" ,
"email" : "restrictedUser@example.com" ,
"password" : "examplePassword!1" ,
"retype" : "examplePassword!1" ,
} )
MakeRequest ( t , req , http . StatusFound )
// should be able to view new user's page
req = NewRequest ( t , "GET" , "/restrictedUser" )
MakeRequest ( t , req , http . StatusOK )
2021-11-16 11:53:21 +03:00
user2 := unittest . AssertExistsAndLoadBean ( t , & models . User { Name : "restrictedUser" } ) . ( * models . User )
2021-07-15 22:19:48 +03:00
assert . True ( t , user2 . IsRestricted )
}
2020-11-14 19:53:43 +03:00
func TestSignupEmail ( t * testing . T ) {
defer prepareTestEnv ( t ) ( )
setting . Service . EnableCaptcha = false
tests := [ ] struct {
email string
wantStatus int
wantMsg string
} {
{ "exampleUser@example.com\r\n" , http . StatusOK , i18n . Tr ( "en" , "form.email_invalid" , nil ) } ,
{ "exampleUser@example.com\r" , http . StatusOK , i18n . Tr ( "en" , "form.email_invalid" , nil ) } ,
{ "exampleUser@example.com\n" , http . StatusOK , i18n . Tr ( "en" , "form.email_invalid" , nil ) } ,
{ "exampleUser@example.com" , http . StatusFound , "" } ,
}
for i , test := range tests {
req := NewRequestWithValues ( t , "POST" , "/user/sign_up" , map [ string ] string {
"user_name" : fmt . Sprintf ( "exampleUser%d" , i ) ,
"email" : test . email ,
"password" : "examplePassword!1" ,
"retype" : "examplePassword!1" ,
} )
resp := MakeRequest ( t , req , test . wantStatus )
if test . wantMsg != "" {
htmlDoc := NewHTMLParser ( t , resp . Body )
assert . Equal ( t ,
test . wantMsg ,
strings . TrimSpace ( htmlDoc . doc . Find ( ".ui.message" ) . Text ( ) ) ,
)
}
}
}