コード例 #1
0
ファイル: users_test.go プロジェクト: oesmith/agr
func TestAuthoriseUser_UserNotFound(t *testing.T) {
	auth := setupAuth(dbtest.NewFakeDB())
	_, err := auth.AuthoriseUser("missinguser", "password")
	if err != db.NoSuchUserError {
		t.Fatal("Expected NoSuchUserError, got", err)
	}
}
コード例 #2
0
ファイル: auth_test.go プロジェクト: oesmith/agr
// setupUser creates a new database and auth instance with the given user
// configured.
func setupUser(u, p string) (*Auth, error) {
	d := dbtest.NewFakeDB()
	auth := setupAuth(d)
	pw, err := auth.EncryptPassword(p)
	if err != nil {
		return nil, err
	}
	err = d.CreateUser(&model.User{u, pw})
	if err != nil {
		return nil, err
	}
	return auth, nil
}
コード例 #3
0
ファイル: logout_test.go プロジェクト: oesmith/agr
func TestLogout_NoGet(t *testing.T) {
	auth := setupAuth(dbtest.NewFakeDB())
	r, err := http.NewRequest("GET", "", nil)
	if err != nil {
		t.Fatal(err)
	}
	w := httptest.NewRecorder()
	auth.LogoutHandler(w, r)
	if w.Code != http.StatusBadRequest {
		t.Error("Expected StatusBadRequest, got", w.Code)
	}
	if w.Header().Get(authCookie) != "" {
		t.Error("Expected no auth cookie, got", w.Header())
	}
}
コード例 #4
0
ファイル: logout_test.go プロジェクト: oesmith/agr
func TestLogout(t *testing.T) {
	auth := setupAuth(dbtest.NewFakeDB())
	r, err := http.NewRequest("POST", "", nil)
	if err != nil {
		t.Fatal(err)
	}
	w := httptest.NewRecorder()
	auth.LogoutHandler(w, r)
	if w.Code != http.StatusOK {
		t.Error("Expected StatusOK, got", w.Code)
	}
	res := http.Response{Header: w.Header()}
	c := res.Cookies()[0]
	if c.Name != authCookie ||
		c.Value != "" ||
		c.Path != "/" ||
		!c.Expires.Before(time.Now()) ||
		!c.HttpOnly {
		t.Error("Expected expired auth cookie, got", c)
	}
}