diff options
author | Zuhao Wan <wanzuhao@gmail.com> | 2014-03-10 21:22:22 +0800 |
---|---|---|
committer | Zuhao Wan <wanzuhao@gmail.com> | 2014-03-11 00:48:25 +0800 |
commit | cc6bc1cc46538d14ef65c14a5d0a2484d7b59977 (patch) | |
tree | 95ceac45014aee32eaa4746a27a29413208a0ae1 /activemodel/test/cases/secure_password_test.rb | |
parent | 5ade4b05933aa986ff130d0f1f881a6d060db6be (diff) | |
download | rails-cc6bc1cc46538d14ef65c14a5d0a2484d7b59977.tar.gz rails-cc6bc1cc46538d14ef65c14a5d0a2484d7b59977.tar.bz2 rails-cc6bc1cc46538d14ef65c14a5d0a2484d7b59977.zip |
Completely remove potential global state leaks in ActiveModel tests.
ActiveModel tests can now be run in random order.
Diffstat (limited to 'activemodel/test/cases/secure_password_test.rb')
-rw-r--r-- | activemodel/test/cases/secure_password_test.rb | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/activemodel/test/cases/secure_password_test.rb b/activemodel/test/cases/secure_password_test.rb index ffc534f0f4..d603dee73e 100644 --- a/activemodel/test/cases/secure_password_test.rb +++ b/activemodel/test/cases/secure_password_test.rb @@ -4,6 +4,7 @@ require 'models/visitor' class SecurePasswordTest < ActiveModel::TestCase setup do + @original_min_cost = ActiveModel::SecurePassword.min_cost ActiveModel::SecurePassword.min_cost = true @user = User.new @@ -15,7 +16,7 @@ class SecurePasswordTest < ActiveModel::TestCase end teardown do - ActiveModel::SecurePassword.min_cost = false + ActiveModel::SecurePassword.min_cost = @original_min_cost end test "create and updating without validations" do @@ -157,42 +158,29 @@ class SecurePasswordTest < ActiveModel::TestCase end test "Password digest cost defaults to bcrypt default cost when min_cost is false" do - original_min_cost = ActiveModel::SecurePassword.min_cost ActiveModel::SecurePassword.min_cost = false - begin - @user.password = "secret" - assert_equal BCrypt::Engine::DEFAULT_COST, @user.password_digest.cost - ensure - ActiveModel::SecurePassword.min_cost = original_min_cost - end + @user.password = "secret" + assert_equal BCrypt::Engine::DEFAULT_COST, @user.password_digest.cost end test "Password digest cost honors bcrypt cost attribute when min_cost is false" do - original_min_cost = ActiveModel::SecurePassword.min_cost - original_cost = BCrypt::Engine.cost - - ActiveModel::SecurePassword.min_cost = false - BCrypt::Engine.cost = 5 - begin + original_bcrypt_cost = BCrypt::Engine.cost + ActiveModel::SecurePassword.min_cost = false + BCrypt::Engine.cost = 5 + @user.password = "secret" assert_equal BCrypt::Engine.cost, @user.password_digest.cost ensure - ActiveModel::SecurePassword.min_cost = original_min_cost - BCrypt::Engine.cost = original_cost + BCrypt::Engine.cost = original_bcrypt_cost end end test "Password digest cost can be set to bcrypt min cost to speed up tests" do - original_min_cost = ActiveModel::SecurePassword.min_cost ActiveModel::SecurePassword.min_cost = true - begin - @user.password = "secret" - assert_equal BCrypt::Engine::MIN_COST, @user.password_digest.cost - ensure - ActiveModel::SecurePassword.min_cost = original_min_cost - end + @user.password = "secret" + assert_equal BCrypt::Engine::MIN_COST, @user.password_digest.cost end end |