1
0
mirror of https://github.com/volatiletech/authboss.git synced 2025-01-08 04:03:53 +02:00
authboss/authboss_test.go

65 lines
1.4 KiB
Go
Raw Normal View History

package authboss
import (
"net/http"
"net/http/httptest"
"os"
"strings"
"testing"
)
type clientStoreMock struct{}
func (c clientStoreMock) Get(_ string) (string, bool) { return "", false }
func (c clientStoreMock) Put(_, _ string) {}
func (c clientStoreMock) Del(_ string) {}
func TestMain(main *testing.M) {
RegisterModule("testmodule", testMod)
Init(NewConfig())
code := main.Run()
os.Exit(code)
}
func TestAuthBossInit(t *testing.T) {
c := NewConfig()
err := Init(c)
if err == nil || !strings.Contains(err.Error(), "storer") {
t.Error("Expected error about a storer, got:", err)
}
c.Storer = testStorer(0)
err = Init(c)
if err != nil {
t.Error("Unexpected error:", err)
}
if testMod.c == nil {
t.Error("Expected the modules to be passed the config.")
}
}
func TestAuthBossRouter(t *testing.T) {
c := NewConfig()
2015-01-17 08:03:40 +02:00
c.Storer = testStorer(0)
2015-01-16 00:01:01 +02:00
c.CookieStoreMaker = func(_ http.ResponseWriter, _ *http.Request) ClientStorer {
return clientStoreMock{}
}
c.SessionStoreMaker = SessionStoreMaker(c.CookieStoreMaker)
c.MountPath = "/candycanes"
2015-01-17 08:03:40 +02:00
if err := Init(c); err != nil {
t.Error("Unexpected error:", err)
}
router := NewRouter()
r, _ := http.NewRequest("GET", "/candycanes/testroute", nil)
response := httptest.NewRecorder()
router.ServeHTTP(response, r)
if response.Header().Get("testhandler") != "test" {
t.Error("Expected a header to have been set.")
}
}