// 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, "Login") { // 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() // }