mirror of
https://github.com/volatiletech/authboss.git
synced 2024-11-28 08:58:38 +02:00
c38f79490b
- Missed some actual tests, added them. - Added a bunch of useless tests to increase coverage. Guilty as charged.
149 lines
3.4 KiB
Go
149 lines
3.4 KiB
Go
package defaults
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/volatiletech/authboss"
|
|
"github.com/volatiletech/authboss/internal/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)
|
|
}
|
|
}
|