diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-04-05 01:43:41 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-04-05 01:55:00 +0900 |
commit | 50fba828d533ff75671ca8b83337dd99aa613ff7 (patch) | |
tree | ae63103d3a690fe63f34271851d9b23dadf9c5aa /activemodel/test | |
parent | dc45130c44ebe0d8b621eba29332b35ea2840738 (diff) | |
download | rails-50fba828d533ff75671ca8b83337dd99aa613ff7.tar.gz rails-50fba828d533ff75671ca8b83337dd99aa613ff7.tar.bz2 rails-50fba828d533ff75671ca8b83337dd99aa613ff7.zip |
Refactor `has_secure_password` to extract dedicated attribute module
Follow up of #26764 and #35700.
And add test case for #35700.
Diffstat (limited to 'activemodel/test')
-rw-r--r-- | activemodel/test/cases/secure_password_test.rb | 14 | ||||
-rw-r--r-- | activemodel/test/models/user.rb | 7 |
2 files changed, 21 insertions, 0 deletions
diff --git a/activemodel/test/cases/secure_password_test.rb b/activemodel/test/cases/secure_password_test.rb index bbf443290b..0aca714bd2 100644 --- a/activemodel/test/cases/secure_password_test.rb +++ b/activemodel/test/cases/secure_password_test.rb @@ -184,6 +184,20 @@ class SecurePasswordTest < ActiveModel::TestCase assert_nil @existing_user.password_digest end + test "override secure password attribute" do + assert_nil @user.password_called + + @user.password = "secret" + + assert_equal "secret", @user.password + assert_equal 1, @user.password_called + + @user.password = "terces" + + assert_equal "terces", @user.password + assert_equal 2, @user.password_called + end + test "authenticate" do @user.password = "secret" @user.recovery_password = "42password" diff --git a/activemodel/test/models/user.rb b/activemodel/test/models/user.rb index bb1b187694..fc4a9e4334 100644 --- a/activemodel/test/models/user.rb +++ b/activemodel/test/models/user.rb @@ -10,4 +10,11 @@ class User has_secure_password :recovery_password, validations: false attr_accessor :password_digest, :recovery_password_digest + attr_accessor :password_called + + def password=(unencrypted_password) + self.password_called ||= 0 + self.password_called += 1 + super + end end |