api: store token cookie, tests

This commit is contained in:
Mitchell Hashimoto
2015-03-11 17:42:08 -05:00
parent 7c8f723c57
commit 78ef15d413
5 changed files with 146 additions and 6 deletions

47
api/client_test.go Normal file
View File

@@ -0,0 +1,47 @@
package api
import (
"net/http"
"testing"
"time"
)
func TestClientToken(t *testing.T) {
tokenValue := "foo"
handler := func(w http.ResponseWriter, req *http.Request) {
http.SetCookie(w, &http.Cookie{
Name: TokenCookieName,
Value: tokenValue,
Expires: time.Now().Add(time.Hour),
})
}
config, ln := testHTTPServer(t, http.HandlerFunc(handler))
defer ln.Close()
client, err := NewClient(config)
if err != nil {
t.Fatalf("err: %s", err)
}
// Should have no token initially
if v := client.Token(); v != "" {
t.Fatalf("bad: %s", v)
}
// Do a raw "/" request to set the cookie
if _, err := client.RawRequest(client.NewRequest("GET", "/")); err != nil {
t.Fatalf("err: %s", err)
}
// Verify the token is set
if v := client.Token(); v != tokenValue {
t.Fatalf("bad: %s", v)
}
client.ClearToken()
if v := client.Token(); v != "" {
t.Fatalf("bad: %s", v)
}
}