mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	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:
		@@ -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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										35
									
								
								integrations/signup_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								integrations/signup_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user