Updated tests for has_secure_password.

This commit is contained in:
Erich Menge 2012-05-08 17:54:47 -05:00
parent 0e1e527654
commit f021377358
4 changed files with 33 additions and 10 deletions

@ -7,16 +7,19 @@ class SecurePasswordTest < ActiveModel::TestCase
setup do setup do
@user = User.new @user = User.new
@visitor = Visitor.new
end end
test "blank password" do test "blank password" do
@user.password = '' @user.password = @visitor.password = ''
assert !@user.valid?, 'user should be invalid' assert !@user.valid?(:create), 'user should be invalid'
assert @visitor.valid?(:create), 'visitor should be valid'
end end
test "nil password" do test "nil password" do
@user.password = nil @user.password = @visitor.password = nil
assert !@user.valid?, 'user should be invalid' assert !@user.valid?(:create), 'user should be invalid'
assert @visitor.valid?(:create), 'visitor should be valid'
end end
test "blank password doesn't override previous password" do test "blank password doesn't override previous password" do
@ -26,15 +29,16 @@ class SecurePasswordTest < ActiveModel::TestCase
end end
test "password must be present" do test "password must be present" do
assert !@user.valid? assert !@user.valid?(:create)
assert_equal 1, @user.errors.size assert_equal 1, @user.errors.size
end end
test "password must match confirmation" do test "match confirmation" do
@user.password = "thiswillberight" @user.password = @visitor.password = "thiswillberight"
@user.password_confirmation = "wrong" @user.password_confirmation = @visitor.password_confirmation = "wrong"
assert !@user.valid? assert !@user.valid?
assert @visitor.valid?
@user.password_confirmation = "thiswillberight" @user.password_confirmation = "thiswillberight"
@ -59,4 +63,14 @@ class SecurePasswordTest < ActiveModel::TestCase
assert !active_authorizer.include?(:password_digest) assert !active_authorizer.include?(:password_digest)
assert active_authorizer.include?(:name) assert active_authorizer.include?(:name)
end end
test "User should not be created with blank digest" do
assert_raise RuntimeError do
@user.run_callbacks :create
end
@user.password = "supersecretpassword"
assert_nothing_raised do
@user.run_callbacks :create
end
end
end end

@ -1,8 +1,11 @@
class Administrator class Administrator
extend ActiveModel::Callbacks
include ActiveModel::Validations include ActiveModel::Validations
include ActiveModel::SecurePassword include ActiveModel::SecurePassword
include ActiveModel::MassAssignmentSecurity include ActiveModel::MassAssignmentSecurity
define_model_callbacks :create
attr_accessor :name, :password_digest attr_accessor :name, :password_digest
attr_accessible :name attr_accessible :name

@ -1,7 +1,10 @@
class User class User
extend ActiveModel::Callbacks
include ActiveModel::Validations include ActiveModel::Validations
include ActiveModel::SecurePassword include ActiveModel::SecurePassword
define_model_callbacks :create
has_secure_password has_secure_password
attr_accessor :password_digest, :password_salt attr_accessor :password_digest, :password_salt

@ -1,9 +1,12 @@
class Visitor class Visitor
extend ActiveModel::Callbacks
include ActiveModel::Validations include ActiveModel::Validations
include ActiveModel::SecurePassword include ActiveModel::SecurePassword
include ActiveModel::MassAssignmentSecurity include ActiveModel::MassAssignmentSecurity
has_secure_password define_model_callbacks :create
attr_accessor :password_digest has_secure_password(validations: false)
attr_accessor :password_digest, :password_confirmation
end end