github.com/volatiletech/authboss@v2.4.1+incompatible/defaults/values_test.go (about) 1 package defaults 2 3 import ( 4 "net/http/httptest" 5 "strings" 6 "testing" 7 8 "github.com/volatiletech/authboss" 9 "github.com/volatiletech/authboss/mocks" 10 ) 11 12 func TestHTTPBodyReaderLogin(t *testing.T) { 13 t.Parallel() 14 15 h := NewHTTPBodyReader(false, false) 16 r := mocks.Request("POST", "email", "john@john.john", "password", "flowers") 17 18 validator, err := h.Read("login", r) 19 if err != nil { 20 t.Error(err) 21 } 22 23 uv := validator.(authboss.UserValuer) 24 if "john@john.john" != uv.GetPID() { 25 t.Error("wrong e-mail:", uv.GetPID()) 26 } 27 if "flowers" != uv.GetPassword() { 28 t.Error("wrong password:", uv.GetPassword()) 29 } 30 } 31 32 func TestHTTPBodyReaderJSON(t *testing.T) { 33 t.Parallel() 34 35 h := NewHTTPBodyReader(true, false) 36 r := httptest.NewRequest("POST", "/", strings.NewReader(`{"email":"john@john.john","password":"flowers"}`)) 37 38 validator, err := h.Read("login", r) 39 if err != nil { 40 t.Error(err) 41 } 42 43 uv := validator.(authboss.UserValuer) 44 if "john@john.john" != uv.GetPID() { 45 t.Error("wrong e-mail:", uv.GetPID()) 46 } 47 if "flowers" != uv.GetPassword() { 48 t.Error("wrong password:", uv.GetPassword()) 49 } 50 } 51 52 func TestHTTPBodyReaderConfirm(t *testing.T) { 53 t.Parallel() 54 55 h := NewHTTPBodyReader(false, false) 56 r := mocks.Request("POST", FormValueConfirm, "token") 57 58 validator, err := h.Read("confirm", r) 59 if err != nil { 60 t.Error(err) 61 } 62 63 cv := validator.(authboss.ConfirmValuer) 64 if "token" != cv.GetToken() { 65 t.Error("token was wrong:", cv.GetToken()) 66 } 67 } 68 69 func TestHTTPBodyReaderRecoverStart(t *testing.T) { 70 t.Parallel() 71 72 h := NewHTTPBodyReader(false, false) 73 r := mocks.Request("POST", FormValueEmail, "email") 74 75 validator, err := h.Read("recover_start", r) 76 if err != nil { 77 t.Error(err) 78 } 79 80 rsv := validator.(authboss.RecoverStartValuer) 81 if pid := rsv.GetPID(); pid != "email" { 82 t.Error("token was wrong:", pid) 83 } 84 } 85 86 func TestHTTPBodyReaderRecoverMiddle(t *testing.T) { 87 t.Parallel() 88 89 h := NewHTTPBodyReader(false, false) 90 r := httptest.NewRequest("GET", "/?token=token", nil) 91 92 validator, err := h.Read("recover_middle", r) 93 if err != nil { 94 t.Error(err) 95 } 96 97 rmv := validator.(authboss.RecoverMiddleValuer) 98 if token := rmv.GetToken(); token != "token" { 99 t.Error("token was wrong:", token) 100 } 101 } 102 103 func TestHTTPBodyReaderRecoverEnd(t *testing.T) { 104 t.Parallel() 105 106 h := NewHTTPBodyReader(false, false) 107 r := mocks.Request("POST", "token", "token", "password", "password") 108 109 validator, err := h.Read("recover_end", r) 110 if err != nil { 111 t.Error(err) 112 } 113 114 rmv := validator.(authboss.RecoverEndValuer) 115 if token := rmv.GetToken(); token != "token" { 116 t.Error("token was wrong:", token) 117 } 118 if password := rmv.GetPassword(); password != "password" { 119 t.Error("password was wrong:", password) 120 } 121 } 122 123 func TestHTTPBodyReaderRegister(t *testing.T) { 124 t.Parallel() 125 126 h := NewHTTPBodyReader(false, false) 127 h.Whitelist["register"] = []string{"address"} 128 r := mocks.Request("POST", "email", "a@a.com", "password", "1234", "address", "555 go street") 129 130 validator, err := h.Read("register", r) 131 if err != nil { 132 t.Error(err) 133 } 134 135 rv := validator.(authboss.UserValuer) 136 if pid := rv.GetPID(); pid != "a@a.com" { 137 t.Error("pid was wrong:", pid) 138 } 139 if password := rv.GetPassword(); password != "1234" { 140 t.Error("password was wrong:", password) 141 } 142 143 arb := validator.(authboss.ArbitraryValuer) 144 values := arb.GetValues() 145 if address := values["address"]; address != "555 go street" { 146 t.Error("address was wrong:", address) 147 } 148 }