diff options
Diffstat (limited to 'integrations/signup_test.go')
-rw-r--r-- | integrations/signup_test.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/integrations/signup_test.go b/integrations/signup_test.go index 02262ec853..5208a42ce5 100644 --- a/integrations/signup_test.go +++ b/integrations/signup_test.go @@ -5,10 +5,14 @@ package integrations import ( + "fmt" "net/http" + "strings" "testing" "code.gitea.io/gitea/modules/setting" + "github.com/stretchr/testify/assert" + "github.com/unknwon/i18n" ) func TestSignup(t *testing.T) { @@ -28,3 +32,37 @@ func TestSignup(t *testing.T) { req = NewRequest(t, "GET", "/exampleUser") MakeRequest(t, req, http.StatusOK) } + +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()), + ) + } + } +} |