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  }