aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/secure_password_test.rb
diff options
context:
space:
mode:
authorZuhao Wan <wanzuhao@gmail.com>2014-03-10 21:22:22 +0800
committerZuhao Wan <wanzuhao@gmail.com>2014-03-11 00:48:25 +0800
commitcc6bc1cc46538d14ef65c14a5d0a2484d7b59977 (patch)
tree95ceac45014aee32eaa4746a27a29413208a0ae1 /activemodel/test/cases/secure_password_test.rb
parent5ade4b05933aa986ff130d0f1f881a6d060db6be (diff)
downloadrails-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.rb34
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