mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 15:20:13 +01:00
Make email address voluntary in preferences; update tests to handle the added email field better
This commit is contained in:
parent
f9f7e6b9ea
commit
efee4976b0
5 changed files with 71 additions and 21 deletions
|
|
@ -107,7 +107,7 @@ class User < ApplicationRecord
|
|||
validates_length_of :login, within: 3..80
|
||||
validates_uniqueness_of :login, on: :create
|
||||
validate :validate_auth_type
|
||||
validates :email, format: { with: URI::MailTo::EMAIL_REGEXP }
|
||||
validates :email, :allow_blank => true, format: { with: URI::MailTo::EMAIL_REGEXP }
|
||||
|
||||
before_create :crypt_password, :generate_token
|
||||
before_update :crypt_password
|
||||
|
|
|
|||
11
test/fixtures/users.yml
vendored
11
test/fixtures/users.yml
vendored
|
|
@ -19,6 +19,17 @@ other_user:
|
|||
last_name: Doe
|
||||
auth_type: database
|
||||
|
||||
other_user_email:
|
||||
id: 3
|
||||
login: joe
|
||||
crypted_password: <%= BCrypt::Password.create("open") %>
|
||||
token: <%= Digest::SHA1.hexdigest("joeSun Feb 19 14:42:45 GMT 20060.408173979260027") %>
|
||||
is_admin: false
|
||||
first_name: Jane
|
||||
last_name: Doe
|
||||
email: joe@example.org
|
||||
auth_type: database
|
||||
|
||||
ldap_user:
|
||||
id: 3
|
||||
login: john
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class StoriesTest < ActionDispatch::IntegrationTest
|
|||
admin = new_session_as(:admin_user,"abracadabra")
|
||||
admin.goes_to_signup
|
||||
admin.signs_up_with(:user => {:login => "newbie",
|
||||
:email => "test.person@example.org",
|
||||
:password => "newbiepass",
|
||||
:password_confirmation => "newbiepass"})
|
||||
end
|
||||
|
|
@ -30,6 +31,7 @@ class StoriesTest < ActionDispatch::IntegrationTest
|
|||
assert_response :success
|
||||
assert_template "users/new"
|
||||
post "/users", params: { :user => {:login => "newbie",
|
||||
:email => "test.person@example.org",
|
||||
:password => "newbiepass",
|
||||
:password_confirmation => "newbiepass"} }
|
||||
assert_response :redirect
|
||||
|
|
@ -81,7 +83,6 @@ class StoriesTest < ActionDispatch::IntegrationTest
|
|||
assert_response :success
|
||||
assert_template "todos/index"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def new_session_as(user,plainpass)
|
||||
|
|
@ -92,5 +93,4 @@ class StoriesTest < ActionDispatch::IntegrationTest
|
|||
yield sess if block_given?
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ require 'test_helper'
|
|||
class UsersXmlApiTest < ActionDispatch::IntegrationTest
|
||||
|
||||
@@foobar_postdata = "<user><login>foo</login><password>bar</password></user>"
|
||||
@@barfoo_postdata = "<user><login>bar</login><email>barfoo@example.org</email><password>foo</password></user>"
|
||||
@@johnny_postdata = "<user><login>johnny</login><password>barracuda</password></user>"
|
||||
@@barracuda_postdata = "<user><login>barracuda</login><email>barracuda@example.org</email><password>johnny</password></user>"
|
||||
|
||||
def test_fails_with_401_if_not_authorized_user
|
||||
authenticated_post_xml_to_user_create @@foobar_postdata, 'nobody', 'nohow'
|
||||
|
|
@ -62,6 +64,17 @@ class UsersXmlApiTest < ActionDispatch::IntegrationTest
|
|||
assert_not_nil johnny2, "expected user johnny to be authenticated"
|
||||
end
|
||||
|
||||
def test_creates_new_user
|
||||
assert_difference 'User.count' do
|
||||
authenticated_post_xml_to_user_create @@barracuda_postdata
|
||||
assert_response_and_body 200, "User created."
|
||||
end
|
||||
barracuda1 = User.where(:login => 'barracuda').first
|
||||
assert_not_nil barracuda1, "expected user barracuda to be created"
|
||||
johnny2 = User.authenticate('barracuda','johnny')
|
||||
assert_not_nil barracuda2, "expected user barracuda to be authenticated"
|
||||
end
|
||||
|
||||
def test_fails_with_get_verb
|
||||
authenticated_get_xml "/users.xml", users(:admin_user).login, 'abracadabra', {}
|
||||
end
|
||||
|
|
@ -79,6 +92,15 @@ class UsersXmlApiTest < ActionDispatch::IntegrationTest
|
|||
get "/users/#{users(:other_user).id}.xml", params: {}, headers: basic_auth_headers()
|
||||
assert_response :success
|
||||
assert_select 'user'
|
||||
assert_select 'email', false
|
||||
assert_select 'password', false
|
||||
end
|
||||
|
||||
def test_get_email_user_as_xml
|
||||
get "/users/#{users(:other_user_email).id}.xml", params: {}, headers: basic_auth_headers()
|
||||
assert_response :success
|
||||
assert_select 'user'
|
||||
assert_select 'email'
|
||||
assert_select 'password', false
|
||||
end
|
||||
|
||||
|
|
@ -91,4 +113,8 @@ class UsersXmlApiTest < ActionDispatch::IntegrationTest
|
|||
def authenticated_post_xml_to_user_create(postdata = @@foobar_postdata, user = users(:admin_user).login, password = 'abracadabra', headers = {})
|
||||
authenticated_post_xml "/users.xml", user, password, postdata, headers
|
||||
end
|
||||
|
||||
def authenticated_post_xml_to_user_create_with_email(postdata = @@barfoo_postdata, user = users(:admin_user).login, password = 'abracadabra', headers = {})
|
||||
authenticated_post_xml "/users.xml", user, password, postdata, headers
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -89,6 +89,19 @@ class UserTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_validate_correct_email
|
||||
assert_difference 'User.count' do
|
||||
create_user :email=> 'testi@example.org'
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_email_format
|
||||
assert_no_difference 'User.count' do
|
||||
u = create_user :email=> 'test'
|
||||
assert_equal "is not valid", u.errors[:email]
|
||||
end
|
||||
end
|
||||
|
||||
def test_display_name_with_first_and_last_name_set
|
||||
@other_user.first_name = "Jane"
|
||||
@other_user.last_name = "Doe"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue