2022-03-12 18:06:39 +00:00
|
|
|
// package controllers_test
|
|
|
|
|
|
|
|
// import (
|
|
|
|
// "net/http"
|
|
|
|
// "net/http/httptest"
|
|
|
|
// "net/url"
|
|
|
|
// "strings"
|
|
|
|
// "testing"
|
|
|
|
|
|
|
|
// "git.technical.kiwi/go/otfe/controllers"
|
|
|
|
// "git.technical.kiwi/go/otfe/misc/b64"
|
|
|
|
// "git.technical.kiwi/go/otfe/misc/helpers"
|
|
|
|
// "git.technical.kiwi/go/otfe/models"
|
|
|
|
// )
|
|
|
|
|
|
|
|
// func TestSessionNew(t *testing.T) {
|
|
|
|
// var s controllers.Session
|
|
|
|
// handler := http.HandlerFunc(s.New)
|
|
|
|
// req, err := http.NewRequest("GET", "/login", nil)
|
|
|
|
// w := httptest.NewRecorder()
|
|
|
|
// if err != nil {
|
|
|
|
// t.Fatal(err)
|
|
|
|
// }
|
|
|
|
// handler(w, req)
|
|
|
|
// body := w.Body.String()
|
|
|
|
// if !strings.Contains(body, "<title>Login</title>") {
|
|
|
|
// t.Fail()
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// func TestSessionCreate(t *testing.T) {
|
|
|
|
// //Create test user
|
|
|
|
|
|
|
|
// var s controllers.Session
|
|
|
|
// handler := http.HandlerFunc(s.Create)
|
|
|
|
// req, w := setup(t, "POST", "/login")
|
|
|
|
|
|
|
|
// addTofForm(req, "email=test", "password=test")
|
|
|
|
// handler(w, req)
|
|
|
|
|
|
|
|
// errorMessage := getCookie("error", w.Header()["Set-Cookie"])
|
|
|
|
// t.Log(errorMessage)
|
|
|
|
// t.Log(b64.Decode(errorMessage))
|
|
|
|
|
|
|
|
// header := w.Header()
|
|
|
|
// sessionid := getCookie("session", header["Set-Cookie"])
|
|
|
|
// var session models.Session
|
|
|
|
// if session.Read(sessionid) != nil {
|
|
|
|
// t.Fatal("Could not find session")
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// /*func testloginFail(t *testing.T) {
|
|
|
|
|
|
|
|
// }*/
|
|
|
|
|
|
|
|
// func setup(t *testing.T, method string, url string) (*http.Request, *httptest.ResponseRecorder) {
|
|
|
|
// req, err := http.NewRequest("POST", "/login", nil)
|
|
|
|
// w := httptest.NewRecorder()
|
|
|
|
// if err != nil {
|
|
|
|
// t.Fatal(err)
|
|
|
|
// }
|
|
|
|
// return req, w
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// func createUser(t *testing.T, email string, password string) models.User {
|
|
|
|
|
|
|
|
// password, err := helpers.HashPassword(password)
|
|
|
|
// if err != nil {
|
|
|
|
// t.Fatal("Failed to create password")
|
|
|
|
// }
|
|
|
|
// user := models.User{Email: email, Password: password}
|
|
|
|
// if user.Create() != nil {
|
|
|
|
// t.Fatal("failed to create user")
|
|
|
|
// }
|
|
|
|
|
|
|
|
// return user
|
|
|
|
// }
|
|
|
|
|
|
|
|
// func getCookie(name string, cookies []string) string {
|
|
|
|
// for _, cookie := range cookies {
|
|
|
|
// a := strings.Split(cookie, "=")
|
|
|
|
// if a[0] == name {
|
|
|
|
// return a[1]
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
// return "Cookie not found"
|
|
|
|
// }
|
|
|
|
|
|
|
|
// func addTofForm(r *http.Request, values ...string) {
|
|
|
|
// form, _ := url.ParseQuery(r.URL.RawQuery)
|
|
|
|
// for _, value := range values {
|
|
|
|
// v := strings.Split(value, "=")
|
|
|
|
// form.Add(v[0], v[1])
|
|
|
|
// }
|
|
|
|
// r.URL.RawQuery = form.Encode()
|
|
|
|
// r.Form.Encode()
|
|
|
|
// }
|