// package auth

// import (
// 	"fmt"
// 	"net/http"
// 	"net/http/httptest"
// 	"strings"
// 	"testing"

// 	"git.technical.kiwi/go/otfe/misc/helpers"
// 	"git.technical.kiwi/go/otfe/misc/helpers/cookie"
// 	"git.technical.kiwi/go/otfe/models"
// 	"github.com/globalsign/mgo/bson"
// )

// func TestUser(t *testing.T) {
// 	//Setup user with session
// 	recorder := httptest.NewRecorder()
// 	user, session := userSession(t)
// 	request := request(t, session)
// 	u := User(handler)
// 	//Run
// 	u(recorder, request)
// 	//Check
// 	body := recorder.Body.String()
// 	if !strings.Contains(body, user.ID.Hex()) {
// 		t.Fail()
// 	}
// 	//Setup without session
// 	recorder = httptest.NewRecorder()
// 	request, _ = http.NewRequest("GET", "/", nil)
// 	//Run
// 	u(recorder, request)
// 	//Check
// 	helpers.Equals(t, recorder.Body.String(),
// 		"{ObjectIdHex(\"\")     ObjectIdHex(\"\") []}")

// }

// func TestPerm(t *testing.T) {
// 	p := Perm(handler, UnAuth, "perm")
// 	recorder := httptest.NewRecorder()
// 	user, session := userSession(t)
// 	request := request(t, session)
// 	p(recorder, request)
// 	if !strings.Contains(recorder.Body.String(),
// 		"You are not authorized to view this page") {
// 		t.Log("Authorization fail")
// 		t.Fail()
// 	}

// 	p = Perm(handler, UnAuth, "test")
// 	recorder = httptest.NewRecorder()
// 	p(recorder, request)
// 	if !strings.Contains(recorder.Body.String(), user.ID.Hex()) {
// 		t.Log("Has permission fail")
// 		t.Fail()
// 	}

// 	recorder = httptest.NewRecorder()
// 	request, err := http.NewRequest("GET", "/", nil)
// 	helpers.Ok(t, err)
// 	p(recorder, request)
// 	if !strings.Contains(recorder.Body.String(), "login") {
// 		t.Log("Login fail")
// 		t.Fail()
// 	}

// }

// func TestGetUserSession(t *testing.T) {
// 	user, session := userSession(t)
// 	request := request(t, session)
// 	//Test
// 	user2, err := getUserSession(request)
// 	helpers.Ok(t, err)
// 	helpers.Equals(t, user, user2)

// }

// func userSession(t *testing.T) (models.User, models.Session) {
// 	models.DBWipeCollection("user", "session", "group")

// 	group := models.NewGroup("test")
// 	group.ID = bson.NewObjectId()
// 	group.Permissions["test"] = true
// 	//group.Admin = true
// 	helpers.Ok(t, group.Create())

// 	user := models.User{Name: "test",
// 		Email: "test"}
// 	user.ID = bson.NewObjectId()
// 	user.PrimaryGroup = group.ID
// 	helpers.Ok(t, user.Create())

// 	session := models.Session{UserID: user.ID}
// 	session.ID = bson.NewObjectId()
// 	helpers.Ok(t, session.Create())
// 	return user, session
// }

// func request(t *testing.T, s models.Session) *http.Request {
// 	cookie := &http.Cookie{Name: "session",
// 		Value: cookie.Encode(s.ID.Hex())}
// 	request, err := http.NewRequest("GET", "/", nil)
// 	helpers.Ok(t, err)
// 	request.AddCookie(cookie)
// 	return request
// }

// func handler(w http.ResponseWriter, r *http.Request, u models.User) {
// 	fmt.Fprint(w, u)
// }