1
0
mirror of https://github.com/volatiletech/authboss.git synced 2024-11-24 08:42:17 +02:00
authboss/defaults/values_test.go

149 lines
3.4 KiB
Go

package defaults
import (
"net/http/httptest"
"strings"
"testing"
"github.com/volatiletech/authboss"
"github.com/volatiletech/authboss/mocks"
)
func TestHTTPBodyReaderLogin(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
r := mocks.Request("POST", "email", "john@john.john", "password", "flowers")
validator, err := h.Read("login", r)
if err != nil {
t.Error(err)
}
uv := validator.(authboss.UserValuer)
if "john@john.john" != uv.GetPID() {
t.Error("wrong e-mail:", uv.GetPID())
}
if "flowers" != uv.GetPassword() {
t.Error("wrong password:", uv.GetPassword())
}
}
func TestHTTPBodyReaderJSON(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(true, false)
r := httptest.NewRequest("POST", "/", strings.NewReader(`{"email":"john@john.john","password":"flowers"}`))
validator, err := h.Read("login", r)
if err != nil {
t.Error(err)
}
uv := validator.(authboss.UserValuer)
if "john@john.john" != uv.GetPID() {
t.Error("wrong e-mail:", uv.GetPID())
}
if "flowers" != uv.GetPassword() {
t.Error("wrong password:", uv.GetPassword())
}
}
func TestHTTPBodyReaderConfirm(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
r := mocks.Request("POST", FormValueConfirm, "token")
validator, err := h.Read("confirm", r)
if err != nil {
t.Error(err)
}
cv := validator.(authboss.ConfirmValuer)
if "token" != cv.GetToken() {
t.Error("token was wrong:", cv.GetToken())
}
}
func TestHTTPBodyReaderRecoverStart(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
r := mocks.Request("POST", FormValueEmail, "email")
validator, err := h.Read("recover_start", r)
if err != nil {
t.Error(err)
}
rsv := validator.(authboss.RecoverStartValuer)
if pid := rsv.GetPID(); pid != "email" {
t.Error("token was wrong:", pid)
}
}
func TestHTTPBodyReaderRecoverMiddle(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
r := httptest.NewRequest("GET", "/?token=token", nil)
validator, err := h.Read("recover_middle", r)
if err != nil {
t.Error(err)
}
rmv := validator.(authboss.RecoverMiddleValuer)
if token := rmv.GetToken(); token != "token" {
t.Error("token was wrong:", token)
}
}
func TestHTTPBodyReaderRecoverEnd(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
r := mocks.Request("POST", "token", "token", "password", "password")
validator, err := h.Read("recover_end", r)
if err != nil {
t.Error(err)
}
rmv := validator.(authboss.RecoverEndValuer)
if token := rmv.GetToken(); token != "token" {
t.Error("token was wrong:", token)
}
if password := rmv.GetPassword(); password != "password" {
t.Error("password was wrong:", password)
}
}
func TestHTTPBodyReaderRegister(t *testing.T) {
t.Parallel()
h := NewHTTPBodyReader(false, false)
h.Whitelist["register"] = []string{"address"}
r := mocks.Request("POST", "email", "a@a.com", "password", "1234", "address", "555 go street")
validator, err := h.Read("register", r)
if err != nil {
t.Error(err)
}
rv := validator.(authboss.UserValuer)
if pid := rv.GetPID(); pid != "a@a.com" {
t.Error("pid was wrong:", pid)
}
if password := rv.GetPassword(); password != "1234" {
t.Error("password was wrong:", password)
}
arb := validator.(authboss.ArbitraryValuer)
values := arb.GetValues()
if address := values["address"]; address != "555 go street" {
t.Error("address was wrong:", address)
}
}