Add integration test for signup (#1135)
* Add integration test for signup * Remove unused functions * Refactoring * Add repo_create_test.go * Rollback the incomplete repo create test * Comply with linter requirements and simplify the code a little bit
This commit is contained in:
		
							parent
							
								
									8a98a25d8e
								
							
						
					
					
						commit
						bdcc1a23e0
					
				|  | @ -6,9 +6,11 @@ package utils | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"errors" | 	"errors" | ||||||
|  | 	"fmt" | ||||||
| 	"io" | 	"io" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"log" | 	"log" | ||||||
|  | 	"net/http" | ||||||
| 	"os" | 	"os" | ||||||
| 	"os/exec" | 	"os/exec" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
|  | @ -123,3 +125,32 @@ func (t *T) RunTest(tests ...func(*T) error) (err error) { | ||||||
| 	// Note that the return value 'err' may be updated by the 'defer' statement before despite it's returning nil here.
 | 	// Note that the return value 'err' may be updated by the 'defer' statement before despite it's returning nil here.
 | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetAndPost provides a convenient helper function for testing an HTTP endpoint with GET and POST method.
 | ||||||
|  | // The function sends GET first and then POST with the given form.
 | ||||||
|  | func GetAndPost(url string, form map[string][]string) error { | ||||||
|  | 	var err error | ||||||
|  | 	var r *http.Response | ||||||
|  | 
 | ||||||
|  | 	r, err = http.Get(url) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer r.Body.Close() | ||||||
|  | 
 | ||||||
|  | 	if r.StatusCode != http.StatusOK { | ||||||
|  | 		return fmt.Errorf("GET '%s': %s", url, r.Status) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	r, err = http.PostForm(url, form) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer r.Body.Close() | ||||||
|  | 
 | ||||||
|  | 	if r.StatusCode != http.StatusOK { | ||||||
|  | 		return fmt.Errorf("POST '%s': %s", url, r.Status) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,35 @@ | ||||||
|  | // 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.
 | ||||||
|  | 
 | ||||||
|  | package integration | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"os" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"code.gitea.io/gitea/integrations/internal/utils" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | var signupFormSample map[string][]string = map[string][]string{ | ||||||
|  | 	"Name":   []string{"tester"}, | ||||||
|  | 	"Email":  []string{"user1@example.com"}, | ||||||
|  | 	"Passwd": []string{"12345678"}, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func signup(t *utils.T) error { | ||||||
|  | 	return utils.GetAndPost("http://:"+ServerHTTPPort+"/user/sign_up", signupFormSample) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestSignup(t *testing.T) { | ||||||
|  | 	conf := utils.Config{ | ||||||
|  | 		Program: "../gitea", | ||||||
|  | 		WorkDir: "", | ||||||
|  | 		Args:    []string{"web", "--port", ServerHTTPPort}, | ||||||
|  | 		LogFile: os.Stderr, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if err := utils.New(t, &conf).RunTest(install, signup); err != nil { | ||||||
|  | 		t.Fatal(err) | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue