validatePassword func
This commit is contained in:
parent
9046be7c4f
commit
448892cd82
8 changed files with 68 additions and 64 deletions
|
@ -152,6 +152,10 @@ func (c ClientSaltSeed) Validate() bool {
|
||||||
return len(c) == seedHexLength && err == nil
|
return len(c) == seedHexLength && err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p Password) Validate() bool {
|
||||||
|
return len(p) >= 8 // Should be much longer but it's a sanity check.
|
||||||
|
}
|
||||||
|
|
||||||
// TODO consider unicode. Also some providers might be case sensitive, and/or
|
// TODO consider unicode. Also some providers might be case sensitive, and/or
|
||||||
// may have other ways of having email addresses be equivalent (which we may
|
// may have other ways of having email addresses be equivalent (which we may
|
||||||
// not care about though)
|
// not care about though)
|
||||||
|
|
|
@ -25,8 +25,8 @@ func (r *RegisterRequest) validate() error {
|
||||||
if !r.Email.Validate() {
|
if !r.Email.Validate() {
|
||||||
return fmt.Errorf("Invalid or missing 'email'")
|
return fmt.Errorf("Invalid or missing 'email'")
|
||||||
}
|
}
|
||||||
if r.Password == "" {
|
if !r.Password.Validate() {
|
||||||
return fmt.Errorf("Missing 'password'")
|
return fmt.Errorf("Invalid or missing 'password'")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !r.ClientSaltSeed.Validate() {
|
if !r.ClientSaltSeed.Validate() {
|
||||||
|
|
|
@ -24,7 +24,7 @@ func TestServerRegisterSuccess(t *testing.T) {
|
||||||
testAuth := TestAuth{TestNewVerifyTokenString: "abcd1234abcd1234abcd1234abcd1234"}
|
testAuth := TestAuth{TestNewVerifyTokenString: "abcd1234abcd1234abcd1234abcd1234"}
|
||||||
s := Server{&testAuth, testStore, &TestEnv{env}, &testMail, TestPort}
|
s := Server{&testAuth, testStore, &TestEnv{env}, &testMail, TestPort}
|
||||||
|
|
||||||
requestBody := []byte(`{"email": "abc@example.com", "password": "123", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" }`)
|
requestBody := []byte(`{"email": "abc@example.com", "password": "12345678", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" }`)
|
||||||
|
|
||||||
req := httptest.NewRequest(http.MethodPost, paths.PathRegister, bytes.NewBuffer(requestBody))
|
req := httptest.NewRequest(http.MethodPost, paths.PathRegister, bytes.NewBuffer(requestBody))
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
@ -132,7 +132,7 @@ func TestServerRegisterErrors(t *testing.T) {
|
||||||
s := Server{&testAuth, &testStore, &TestEnv{env}, &testMail, TestPort}
|
s := Server{&testAuth, &testStore, &TestEnv{env}, &testMail, TestPort}
|
||||||
|
|
||||||
// Make request
|
// Make request
|
||||||
requestBody := fmt.Sprintf(`{"email": "%s", "password": "123", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}`, tc.email)
|
requestBody := fmt.Sprintf(`{"email": "%s", "password": "12345678", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}`, tc.email)
|
||||||
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer([]byte(requestBody)))
|
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer([]byte(requestBody)))
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ func TestServerRegisterAccountVerification(t *testing.T) {
|
||||||
testMail := TestMail{}
|
testMail := TestMail{}
|
||||||
s := Server{&testAuth, testStore, &TestEnv{tc.env}, &testMail, TestPort}
|
s := Server{&testAuth, testStore, &TestEnv{tc.env}, &testMail, TestPort}
|
||||||
|
|
||||||
requestBody := []byte(`{"email": "abc@example.com", "password": "123", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" }`)
|
requestBody := []byte(`{"email": "abc@example.com", "password": "12345678", "clientSaltSeed": "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" }`)
|
||||||
|
|
||||||
req := httptest.NewRequest(http.MethodPost, paths.PathRegister, bytes.NewBuffer(requestBody))
|
req := httptest.NewRequest(http.MethodPost, paths.PathRegister, bytes.NewBuffer(requestBody))
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
@ -274,12 +274,12 @@ func TestServerRegisterAccountVerification(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestServerValidateRegisterRequest(t *testing.T) {
|
func TestServerValidateRegisterRequest(t *testing.T) {
|
||||||
registerRequest := RegisterRequest{Email: "joe@example.com", Password: "aoeu", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
registerRequest := RegisterRequest{Email: "joe@example.com", Password: "12345678", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
||||||
if registerRequest.validate() != nil {
|
if registerRequest.validate() != nil {
|
||||||
t.Errorf("Expected valid RegisterRequest to successfully validate")
|
t.Errorf("Expected valid RegisterRequest to successfully validate")
|
||||||
}
|
}
|
||||||
|
|
||||||
registerRequest = RegisterRequest{Email: "joe-example.com", Password: "aoeu", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
registerRequest = RegisterRequest{Email: "joe-example.com", Password: "12345678", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
||||||
err := registerRequest.validate()
|
err := registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "email") {
|
if !strings.Contains(err.Error(), "email") {
|
||||||
t.Errorf("Expected RegisterRequest with invalid email to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with invalid email to return an appropriate error")
|
||||||
|
@ -288,13 +288,13 @@ func TestServerValidateRegisterRequest(t *testing.T) {
|
||||||
// Note that Golang's email address parser, which I use, will accept
|
// Note that Golang's email address parser, which I use, will accept
|
||||||
// "Joe <joe@example.com>" so we need to make sure to avoid accepting it. See
|
// "Joe <joe@example.com>" so we need to make sure to avoid accepting it. See
|
||||||
// the implementation.
|
// the implementation.
|
||||||
registerRequest = RegisterRequest{Email: "Joe <joe@example.com>", Password: "aoeu", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
registerRequest = RegisterRequest{Email: "Joe <joe@example.com>", Password: "12345678", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
||||||
err = registerRequest.validate()
|
err = registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "email") {
|
if !strings.Contains(err.Error(), "email") {
|
||||||
t.Errorf("Expected RegisterRequest with email with unexpected formatting to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with email with unexpected formatting to return an appropriate error")
|
||||||
}
|
}
|
||||||
|
|
||||||
registerRequest = RegisterRequest{Password: "aoeu", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
registerRequest = RegisterRequest{Password: "12345678", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}
|
||||||
err = registerRequest.validate()
|
err = registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "email") {
|
if !strings.Contains(err.Error(), "email") {
|
||||||
t.Errorf("Expected RegisterRequest with missing email to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with missing email to return an appropriate error")
|
||||||
|
@ -306,19 +306,19 @@ func TestServerValidateRegisterRequest(t *testing.T) {
|
||||||
t.Errorf("Expected RegisterRequest with missing password to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with missing password to return an appropriate error")
|
||||||
}
|
}
|
||||||
|
|
||||||
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "aoeu"}
|
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "12345678"}
|
||||||
err = registerRequest.validate()
|
err = registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
||||||
t.Errorf("Expected RegisterRequest with missing clientSaltSeed to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with missing clientSaltSeed to return an appropriate error")
|
||||||
}
|
}
|
||||||
|
|
||||||
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "aoeu", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234"}
|
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "12345678", ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234"}
|
||||||
err = registerRequest.validate()
|
err = registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
||||||
t.Errorf("Expected RegisterRequest with clientSaltSeed of wrong length to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with clientSaltSeed of wrong length to return an appropriate error")
|
||||||
}
|
}
|
||||||
|
|
||||||
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "aoeu", ClientSaltSeed: "xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234"}
|
registerRequest = RegisterRequest{Email: "joe@example.com", Password: "12345678", ClientSaltSeed: "xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234"}
|
||||||
err = registerRequest.validate()
|
err = registerRequest.validate()
|
||||||
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
if !strings.Contains(err.Error(), "clientSaltSeed") {
|
||||||
t.Errorf("Expected RegisterRequest with clientSaltSeed with a non-hex string to return an appropriate error")
|
t.Errorf("Expected RegisterRequest with clientSaltSeed with a non-hex string to return an appropriate error")
|
||||||
|
|
|
@ -21,8 +21,8 @@ func (r *AuthRequest) validate() error {
|
||||||
if !r.Email.Validate() {
|
if !r.Email.Validate() {
|
||||||
return fmt.Errorf("Invalid 'email'")
|
return fmt.Errorf("Invalid 'email'")
|
||||||
}
|
}
|
||||||
if r.Password == "" {
|
if !r.Password.Validate() {
|
||||||
return fmt.Errorf("Missing 'password'")
|
return fmt.Errorf("Invalid or missing 'password'")
|
||||||
}
|
}
|
||||||
if r.DeviceId == "" {
|
if r.DeviceId == "" {
|
||||||
return fmt.Errorf("Missing 'deviceId'")
|
return fmt.Errorf("Missing 'deviceId'")
|
||||||
|
|
|
@ -20,7 +20,7 @@ func TestServerAuthHandlerSuccess(t *testing.T) {
|
||||||
testStore := TestStore{}
|
testStore := TestStore{}
|
||||||
s := Server{&testAuth, &testStore, &TestEnv{}, &TestMail{}, TestPort}
|
s := Server{&testAuth, &testStore, &TestEnv{}, &TestMail{}, TestPort}
|
||||||
|
|
||||||
requestBody := []byte(`{"deviceId": "dev-1", "email": "abc@example.com", "password": "123"}`)
|
requestBody := []byte(`{"deviceId": "dev-1", "email": "abc@example.com", "password": "12345678"}`)
|
||||||
|
|
||||||
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer(requestBody))
|
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer(requestBody))
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
@ -108,7 +108,7 @@ func TestServerAuthHandlerErrors(t *testing.T) {
|
||||||
|
|
||||||
// Make request
|
// Make request
|
||||||
// So long as the JSON is well-formed, the content doesn't matter here since the password check will be stubbed out
|
// So long as the JSON is well-formed, the content doesn't matter here since the password check will be stubbed out
|
||||||
requestBody := fmt.Sprintf(`{"deviceId": "dev-1", "email": "%s", "password": "123"}`, tc.email)
|
requestBody := fmt.Sprintf(`{"deviceId": "dev-1", "email": "%s", "password": "12345678"}`, tc.email)
|
||||||
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer([]byte(requestBody)))
|
req := httptest.NewRequest(http.MethodPost, paths.PathAuthToken, bytes.NewBuffer([]byte(requestBody)))
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ func TestServerAuthHandlerErrors(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestServerValidateAuthRequest(t *testing.T) {
|
func TestServerValidateAuthRequest(t *testing.T) {
|
||||||
authRequest := AuthRequest{DeviceId: "dId", Email: "joe@example.com", Password: "aoeu"}
|
authRequest := AuthRequest{DeviceId: "dId", Email: "joe@example.com", Password: "12345678"}
|
||||||
if authRequest.validate() != nil {
|
if authRequest.validate() != nil {
|
||||||
t.Errorf("Expected valid AuthRequest to successfully validate")
|
t.Errorf("Expected valid AuthRequest to successfully validate")
|
||||||
}
|
}
|
||||||
|
@ -134,22 +134,22 @@ func TestServerValidateAuthRequest(t *testing.T) {
|
||||||
failureDescription string
|
failureDescription string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
AuthRequest{Email: "joe@example.com", Password: "aoeu"},
|
AuthRequest{Email: "joe@example.com", Password: "12345678"},
|
||||||
"deviceId",
|
"deviceId",
|
||||||
"Expected AuthRequest with missing device to not successfully validate",
|
"Expected AuthRequest with missing device to not successfully validate",
|
||||||
}, {
|
}, {
|
||||||
AuthRequest{DeviceId: "dId", Email: "joe-example.com", Password: "aoeu"},
|
AuthRequest{DeviceId: "dId", Email: "joe-example.com", Password: "12345678"},
|
||||||
"email",
|
"email",
|
||||||
"Expected AuthRequest with invalid email to not successfully validate",
|
"Expected AuthRequest with invalid email to not successfully validate",
|
||||||
}, {
|
}, {
|
||||||
// Note that Golang's email address parser, which I use, will accept
|
// Note that Golang's email address parser, which I use, will accept
|
||||||
// "Joe <joe@example.com>" so we need to make sure to avoid accepting it. See
|
// "Joe <joe@example.com>" so we need to make sure to avoid accepting it. See
|
||||||
// the implementation.
|
// the implementation.
|
||||||
AuthRequest{DeviceId: "dId", Email: "Joe <joe@example.com>", Password: "aoeu"},
|
AuthRequest{DeviceId: "dId", Email: "Joe <joe@example.com>", Password: "12345678"},
|
||||||
"email",
|
"email",
|
||||||
"Expected AuthRequest with email with unexpected formatting to not successfully validate",
|
"Expected AuthRequest with email with unexpected formatting to not successfully validate",
|
||||||
}, {
|
}, {
|
||||||
AuthRequest{DeviceId: "dId", Password: "aoeu"},
|
AuthRequest{DeviceId: "dId", Password: "12345678"},
|
||||||
"email",
|
"email",
|
||||||
"Expected AuthRequest with missing email to not successfully validate",
|
"Expected AuthRequest with missing email to not successfully validate",
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -114,7 +114,7 @@ func TestIntegrationWalletUpdates(t *testing.T) {
|
||||||
s.register,
|
s.register,
|
||||||
paths.PathRegister,
|
paths.PathRegister,
|
||||||
®isterResponse,
|
®isterResponse,
|
||||||
`{"email": "abc@example.com", "password": "123", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
`{"email": "abc@example.com", "password": "12345678", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
||||||
|
@ -130,7 +130,7 @@ func TestIntegrationWalletUpdates(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken1,
|
&authToken1,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "123"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "12345678"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -158,7 +158,7 @@ func TestIntegrationWalletUpdates(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken2,
|
&authToken2,
|
||||||
`{"deviceId": "dev-2", "email": "abc@example.com", "password": "123"}`,
|
`{"deviceId": "dev-2", "email": "abc@example.com", "password": "12345678"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -284,7 +284,7 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
s.register,
|
s.register,
|
||||||
paths.PathRegister,
|
paths.PathRegister,
|
||||||
®isterResponse,
|
®isterResponse,
|
||||||
`{"email": "abc@example.com", "password": "123", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
`{"email": "abc@example.com", "password": "12345678", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
||||||
|
@ -322,7 +322,7 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken,
|
&authToken,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "123"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "12345678"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -350,7 +350,7 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
s.changePassword,
|
s.changePassword,
|
||||||
paths.PathPassword,
|
paths.PathPassword,
|
||||||
&changePasswordResponse,
|
&changePasswordResponse,
|
||||||
`{"email": "abc@example.com", "oldPassword": "123", "newPassword": "456", "clientSaltSeed": "8678def95678def98678def95678def98678def95678def98678def95678def9"}`,
|
`{"email": "abc@example.com", "oldPassword": "12345678", "newPassword": "45678901", "clientSaltSeed": "8678def95678def98678def95678def98678def95678def98678def95678def9"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -405,7 +405,7 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken,
|
&authToken,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "456"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "45678901"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -457,8 +457,8 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
"sequence": 2,
|
"sequence": 2,
|
||||||
"hmac": "my-hmac-2",
|
"hmac": "my-hmac-2",
|
||||||
"email": "abc@example.com",
|
"email": "abc@example.com",
|
||||||
"oldPassword": "456",
|
"oldPassword": "45678901",
|
||||||
"newPassword": "789",
|
"newPassword": "78901234",
|
||||||
"clientSaltSeed": "0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff"
|
"clientSaltSeed": "0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff"
|
||||||
}`),
|
}`),
|
||||||
)
|
)
|
||||||
|
@ -510,7 +510,7 @@ func TestIntegrationChangePassword(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken,
|
&authToken,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "789"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "78901234"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
@ -575,7 +575,7 @@ func TestIntegrationVerifyAccount(t *testing.T) {
|
||||||
s.register,
|
s.register,
|
||||||
paths.PathRegister,
|
paths.PathRegister,
|
||||||
®isterResponse,
|
®isterResponse,
|
||||||
`{"email": "abc@example.com", "password": "123", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
`{"email": "abc@example.com", "password": "12345678", "clientSaltSeed": "1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
checkStatusCode(t, statusCode, responseBody, http.StatusCreated)
|
||||||
|
@ -619,7 +619,7 @@ func TestIntegrationVerifyAccount(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken,
|
&authToken,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "123"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "12345678"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody, http.StatusUnauthorized)
|
checkStatusCode(t, statusCode, responseBody, http.StatusUnauthorized)
|
||||||
|
@ -652,7 +652,7 @@ func TestIntegrationVerifyAccount(t *testing.T) {
|
||||||
s.getAuthToken,
|
s.getAuthToken,
|
||||||
paths.PathAuthToken,
|
paths.PathAuthToken,
|
||||||
&authToken,
|
&authToken,
|
||||||
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "123"}`,
|
`{"deviceId": "dev-1", "email": "abc@example.com", "password": "12345678"}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
checkStatusCode(t, statusCode, responseBody)
|
checkStatusCode(t, statusCode, responseBody)
|
||||||
|
|
|
@ -28,11 +28,11 @@ func (r *ChangePasswordRequest) validate() error {
|
||||||
if !r.Email.Validate() {
|
if !r.Email.Validate() {
|
||||||
return fmt.Errorf("Invalid or missing 'email'")
|
return fmt.Errorf("Invalid or missing 'email'")
|
||||||
}
|
}
|
||||||
if r.OldPassword == "" {
|
if !r.OldPassword.Validate() {
|
||||||
return fmt.Errorf("Missing 'oldPassword'")
|
return fmt.Errorf("Invalid or missing 'oldPassword'")
|
||||||
}
|
}
|
||||||
if r.NewPassword == "" {
|
if !r.NewPassword.Validate() {
|
||||||
return fmt.Errorf("Missing 'newPassword'")
|
return fmt.Errorf("Invalid or missing 'newPassword'")
|
||||||
}
|
}
|
||||||
// Too bad we can't do this so easily with clientSaltSeed
|
// Too bad we can't do this so easily with clientSaltSeed
|
||||||
if r.OldPassword == r.NewPassword {
|
if r.OldPassword == r.NewPassword {
|
||||||
|
|
|
@ -260,8 +260,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
}
|
}
|
||||||
if changePasswordRequest.validate() != nil {
|
if changePasswordRequest.validate() != nil {
|
||||||
|
@ -270,8 +270,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
|
|
||||||
changePasswordRequest = ChangePasswordRequest{
|
changePasswordRequest = ChangePasswordRequest{
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
}
|
}
|
||||||
if changePasswordRequest.validate() != nil {
|
if changePasswordRequest.validate() != nil {
|
||||||
|
@ -289,8 +289,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc-example.com",
|
Email: "abc-example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"email",
|
"email",
|
||||||
|
@ -304,8 +304,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "Abc <abc@example.com>",
|
Email: "Abc <abc@example.com>",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"email",
|
"email",
|
||||||
|
@ -315,8 +315,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
EncryptedWallet: "my-encrypted-wallet",
|
EncryptedWallet: "my-encrypted-wallet",
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"email",
|
"email",
|
||||||
|
@ -327,7 +327,7 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"oldPassword",
|
"oldPassword",
|
||||||
|
@ -338,7 +338,7 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"newPassword",
|
"newPassword",
|
||||||
|
@ -349,8 +349,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
},
|
},
|
||||||
"clientSaltSeed",
|
"clientSaltSeed",
|
||||||
"Expected ChangePasswordRequest with missing clientSaltSeed to return an appropriate error",
|
"Expected ChangePasswordRequest with missing clientSaltSeed to return an appropriate error",
|
||||||
|
@ -360,8 +360,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"clientSaltSeed",
|
"clientSaltSeed",
|
||||||
|
@ -372,8 +372,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234",
|
ClientSaltSeed: "xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234xxxx1234",
|
||||||
},
|
},
|
||||||
"clientSaltSeed",
|
"clientSaltSeed",
|
||||||
|
@ -383,8 +383,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
||||||
|
@ -394,8 +394,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
EncryptedWallet: "my-encrypted-wallet",
|
EncryptedWallet: "my-encrypted-wallet",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
||||||
|
@ -406,8 +406,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 0,
|
Sequence: 0,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "456",
|
NewPassword: "45678901",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
"'encryptedWallet', 'sequence', and 'hmac'", // More likely to fail when we change the error message but whatever
|
||||||
|
@ -418,8 +418,8 @@ func TestServerValidateChangePasswordRequest(t *testing.T) {
|
||||||
Hmac: "my-hmac",
|
Hmac: "my-hmac",
|
||||||
Sequence: 2,
|
Sequence: 2,
|
||||||
Email: "abc@example.com",
|
Email: "abc@example.com",
|
||||||
OldPassword: "123",
|
OldPassword: "12345678",
|
||||||
NewPassword: "123",
|
NewPassword: "12345678",
|
||||||
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
ClientSaltSeed: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||||
},
|
},
|
||||||
"should not be the same",
|
"should not be the same",
|
||||||
|
|
Loading…
Reference in a new issue