authlogic 3.4.3 → 3.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d73042e9d99c9d01535d405c9e735a22967c1ed
4
- data.tar.gz: 5ba70f01a348b3990451ab67e91dd6f49966290d
3
+ metadata.gz: 17095091ab5b4dcc1f590473c508b1399bc292a7
4
+ data.tar.gz: f5007fb710d07bb9c3ccc6b0739f6fdf991784de
5
5
  SHA512:
6
- metadata.gz: 653df6e58f3a50a81cd85bd7304f2eb0895606d08b2969d41a817d8ad9ea40d6d2bcd669e069fbc28739c95371f2f1b4b992652efd75458b527eba88d74be023
7
- data.tar.gz: f1f535422bd84ee1f11899490fec35c0822d07a28c8188d8037c10fef8971aaeaa35cdd767f24b11bf987bc4fa207ea921febf855cf56803e28c438ad7d34802
6
+ metadata.gz: f135d071afd20fe21989436341ecf97eeefbbf4c7b53b06a958e5ada571a8a564cbb0b913f164950d2e4fa197bf5a2d4f505e61002fc44c92d8f07995692ad65
7
+ data.tar.gz: c1d77b76d9a8d781145a532bbfe43f48be0992990efc0d8b5689abc551072a8bf8c1661bfc93c91e837be6d7cef973946df7b8d443c9d9dc559d0ff9bda06319
data/.travis.yml CHANGED
@@ -9,6 +9,7 @@ gemfile:
9
9
  - test/gemfiles/Gemfile.rails-3.2.x
10
10
  - test/gemfiles/Gemfile.rails-4.0.x
11
11
  - test/gemfiles/Gemfile.rails-4.1.x
12
+ - test/gemfiles/Gemfile.rails-4.2.x
12
13
 
13
14
  matrix:
14
15
  exclude:
data/README.rdoc CHANGED
@@ -49,8 +49,6 @@ You may specify how passwords are cryptographically hashed (or encrypted) by set
49
49
 
50
50
  c.crypto_provider = Authlogic::CryptoProviders::BCrypt
51
51
 
52
- NOTE: the default provider was changed from **Sha512** to **SCrypt** in version 3.4.0.
53
-
54
52
  Also, sessions are automatically maintained. You can switch this on and off with configuration, but the following will automatically log a user in after a successful registration:
55
53
 
56
54
  User.create(params[:user])
@@ -59,6 +57,19 @@ This also updates the session when the user changes his/her password.
59
57
 
60
58
  Authlogic is very flexible, it has a strong public API and a plethora of hooks to allow you to modify behavior and extend it. Check out the helpful links below to dig deeper.
61
59
 
60
+ == Upgrading to Authlogic 3.4.0
61
+
62
+ In version 3.4.0, the default crypto_provider was changed from *Sha512* to *SCrypt*.
63
+
64
+ If you never set a crypto_provider and are upgrading, your passwords will break unless you set the original:
65
+
66
+ c.crypto_provider = Authlogic::CryptoProviders::Sha512
67
+
68
+ And if you want to automatically upgrade from *Sha512* to *SCrypt* as users login:
69
+
70
+ c.transition_from_crypto_providers = [Authlogic::CryptoProviders::Sha512]
71
+ c.crypto_provider = Authlogic::CryptoProviders::SCrypt
72
+
62
73
  == Helpful links
63
74
 
64
75
  * <b>Documentation:</b> http://rdoc.info/projects/binarylogic/authlogic
data/authlogic.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "authlogic"
6
- s.version = "3.4.3"
6
+ s.version = "3.4.4"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Ben Johnson"]
9
9
  s.email = ["bjohnson@binarylogic.com"]
data/lib/authlogic.rb CHANGED
@@ -6,6 +6,7 @@ path = File.dirname(__FILE__) + "/authlogic/"
6
6
  "i18n",
7
7
  "random",
8
8
  "regex",
9
+ "config",
9
10
 
10
11
  "controller_adapters/abstract_adapter",
11
12
 
@@ -4,9 +4,9 @@ module Authlogic
4
4
  module Base
5
5
  def self.included(klass)
6
6
  klass.class_eval do
7
- class_attribute :acts_as_authentic_modules, :acts_as_authentic_config
7
+ class_attribute :acts_as_authentic_modules
8
8
  self.acts_as_authentic_modules ||= []
9
- self.acts_as_authentic_config ||= {}
9
+ extend Authlogic::Config
10
10
  extend Config
11
11
  end
12
12
  end
@@ -76,17 +76,6 @@ module Authlogic
76
76
  end
77
77
  end
78
78
 
79
- def rw_config(key, value, default_value = nil, read_value = nil)
80
- if value == read_value
81
- acts_as_authentic_config.include?(key) ? acts_as_authentic_config[key] : default_value
82
- else
83
- config = acts_as_authentic_config.clone
84
- config[key] = value
85
- self.acts_as_authentic_config = config
86
- value
87
- end
88
- end
89
-
90
79
  def first_column_to_exist(*columns_to_check)
91
80
  if db_setup?
92
81
  columns_to_check.each { |column_name| return column_name.to_sym if column_names.include?(column_name.to_s) }
@@ -0,0 +1,23 @@
1
+ #encoding: utf-8
2
+ module Authlogic
3
+ module Config
4
+ def self.extended(klass)
5
+ klass.class_eval do
6
+ class_attribute :acts_as_authentic_config
7
+ self.acts_as_authentic_config ||= {}
8
+ end
9
+ end
10
+
11
+ private
12
+ # This is a one-liner method to write a config setting, read the config
13
+ # setting, and also set a default value for the setting.
14
+ def rw_config(key, value, default_value = nil)
15
+ if value.nil?
16
+ acts_as_authentic_config.include?(key) ? acts_as_authentic_config[key] : default_value
17
+ else
18
+ self.acts_as_authentic_config = acts_as_authentic_config.merge(key => value)
19
+ value
20
+ end
21
+ end
22
+ end
23
+ end
@@ -6,21 +6,21 @@ module Authlogic
6
6
  # advantage of the many ActiveRecord tools.
7
7
  module ActiveRecordTrickery
8
8
  def self.included(klass)
9
+ klass.extend ActiveModel::Naming
10
+ klass.extend ActiveModel::Translation
11
+
12
+ # Support ActiveModel::Name#name for Rails versions before 4.0.
13
+ if !klass.model_name.respond_to?(:name)
14
+ ActiveModel::Name.module_eval do
15
+ alias_method :name, :to_s
16
+ end
17
+ end
18
+
9
19
  klass.extend ClassMethods
10
20
  klass.send(:include, InstanceMethods)
11
21
  end
12
22
 
13
23
  module ClassMethods
14
- # How to name the attributes of Authlogic, works JUST LIKE ActiveRecord, but instead it uses the following
15
- # namespace:
16
- #
17
- # authlogic.attributes.user_session.login
18
- def human_attribute_name(attribute_key_name, options = {})
19
- options[:count] ||= 1
20
- options[:default] ||= attribute_key_name.to_s.humanize
21
- I18n.t("attributes.#{name.underscore}.#{attribute_key_name}", options)
22
- end
23
-
24
24
  # How to name the class, works JUST LIKE ActiveRecord, except it uses the following namespace:
25
25
  #
26
26
  # authlogic.models.user_session
@@ -28,22 +28,10 @@ module Authlogic
28
28
  I18n.t("models.#{name.underscore}", {:count => 1, :default => name.humanize})
29
29
  end
30
30
 
31
- # For rails >= 3.0
32
- def model_name
33
- if defined?(::ActiveModel)
34
- ::ActiveModel::Name.new(self)
35
- else
36
- ::ActiveSupport::ModelName.new(self.to_s)
37
- end
38
- end
39
-
40
31
  def i18n_scope
41
32
  I18n.scope
42
33
  end
43
34
 
44
- def lookup_ancestors
45
- ancestors.select { |x| x.respond_to?(:model_name) }
46
- end
47
35
  end
48
36
 
49
37
  module InstanceMethods
@@ -43,8 +43,8 @@ module Authlogic
43
43
  #
44
44
  # * <tt>Default:</tt> 3.months
45
45
  # * <tt>Accepts:</tt> Integer, length of time in seconds, such as 60 or 3.months
46
- def remember_me_for(value = :_read)
47
- rw_config(:remember_me_for, value, 3.months, :_read)
46
+ def remember_me_for(value = nil)
47
+ rw_config(:remember_me_for, value, 3.months)
48
48
  end
49
49
  alias_method :remember_me_for=, :remember_me_for
50
50
 
@@ -206,7 +206,7 @@ module Authlogic
206
206
  controller.cookies[cookie_key] = generate_cookie_for_saving
207
207
  end
208
208
  end
209
-
209
+
210
210
  def generate_cookie_for_saving
211
211
  remember_me_until_value = "::#{remember_me_until.iso8601}" if remember_me?
212
212
  {
@@ -6,34 +6,16 @@ module Authlogic
6
6
  module Foundation
7
7
  def self.included(klass)
8
8
  klass.class_eval do
9
- class_attribute :acts_as_authentic_config
10
- self.acts_as_authentic_config ||= {}
11
-
12
- extend ClassMethods
9
+ extend Authlogic::Config
13
10
  include InstanceMethods
14
11
  end
15
12
  end
16
-
17
- module ClassMethods
18
- private
19
- def rw_config(key, value, default_value = nil, read_value = nil)
20
- if value == read_value
21
- return acts_as_authentic_config[key] if acts_as_authentic_config.include?(key)
22
- rw_config(key, default_value) unless default_value.nil?
23
- else
24
- config = acts_as_authentic_config.clone
25
- config[key] = value
26
- self.acts_as_authentic_config = config
27
- value
28
- end
29
- end
30
- end
31
-
13
+
32
14
  module InstanceMethods
33
15
  def initialize(*args)
34
16
  self.credentials = args
35
17
  end
36
-
18
+
37
19
  # The credentials you passed to create your session. See credentials= for more info.
38
20
  def credentials
39
21
  []
@@ -54,11 +36,11 @@ module Authlogic
54
36
  # session.credentials = [my_user_object, true, :my_id]
55
37
  def credentials=(values)
56
38
  end
57
-
39
+
58
40
  def inspect
59
41
  "#<#{self.class.name}: #{credentials.blank? ? "no credentials provided" : credentials.inspect}>"
60
42
  end
61
-
43
+
62
44
  private
63
45
  def build_key(last_part)
64
46
  last_part
@@ -8,13 +8,13 @@ module ActsAsAuthenticTest
8
8
  end
9
9
  end
10
10
  end
11
-
11
+
12
12
  def test_acts_as_authentic_with_old_config
13
13
  assert_raise(ArgumentError) do
14
14
  User.acts_as_authentic({})
15
15
  end
16
16
  end
17
-
17
+
18
18
  def test_acts_as_authentic_with_no_table
19
19
  klass = Class.new(ActiveRecord::Base)
20
20
  assert_nothing_raised do
@@ -22,4 +22,4 @@ module ActsAsAuthenticTest
22
22
  end
23
23
  end
24
24
  end
25
- end
25
+ end
@@ -38,13 +38,13 @@ module ActsAsAuthenticTest
38
38
 
39
39
  options = User.validates_format_of_email_field_options
40
40
  message = options.delete(:message)
41
- assert message.kind_of?(Proc)
41
+ assert message.kind_of?(Proc)
42
42
  assert_equal dmessage, message.call
43
43
  assert_equal default, options
44
44
 
45
45
  options = Employee.validates_format_of_email_field_options
46
46
  message = options.delete(:message)
47
- assert message.kind_of?(Proc)
47
+ assert message.kind_of?(Proc)
48
48
  assert_equal dmessage, message.call
49
49
  assert_equal default, options
50
50
 
@@ -56,15 +56,12 @@ module ActsAsAuthenticTest
56
56
  end
57
57
 
58
58
  def test_deferred_error_message_translation
59
-
60
59
  # ensure we successfully loaded the test locale
61
60
  assert I18n.available_locales.include?(:lol), "Test locale failed to load"
62
61
 
63
- original_locale = I18n.locale
64
- I18n.locale = 'lol'
65
- message = I18n.t("authlogic.error_messages.email_invalid")
62
+ I18n.with_locale('lol') do
63
+ message = I18n.t("authlogic.error_messages.email_invalid")
66
64
 
67
- begin
68
65
  cat = User.new
69
66
  cat.email = 'meow'
70
67
  cat.valid?
@@ -74,9 +71,6 @@ module ActsAsAuthenticTest
74
71
  error = error.first if error.is_a?(Array)
75
72
 
76
73
  assert_equal message, error
77
-
78
- ensure
79
- I18n.locale = original_locale
80
74
  end
81
75
  end
82
76
 
@@ -122,7 +116,7 @@ module ActsAsAuthenticTest
122
116
  u.email = "dakota.d'ux@gmail.com"
123
117
  u.valid?
124
118
  assert u.errors[:email].size == 0
125
-
119
+
126
120
  u.email = "<script>alert(123);</script>\nnobody@example.com"
127
121
  assert !u.valid?
128
122
  assert u.errors[:email].size > 0
@@ -143,4 +137,4 @@ module ActsAsAuthenticTest
143
137
  assert u.errors[:email].size == 0
144
138
  end
145
139
  end
146
- end
140
+ end
@@ -19,7 +19,10 @@ module ActsAsAuthenticTest
19
19
  # slightly different. This is an attempt to make sure the scope is lambda wrapped
20
20
  # so that it is re-evaluated every time its called. My biggest concern is that the
21
21
  # test happens so fast that the test fails... I just don't know a better way to test it!
22
- assert User.logged_in.where_values != User.logged_in.where_values, ERROR_MSG % '#logged_in'
22
+ query1 = User.logged_in.where_values
23
+ sleep 0.1
24
+ query2 = User.logged_in.where_values
25
+ assert query1 != query2, ERROR_MSG % '#logged_in'
23
26
 
24
27
  assert_equal 0, User.logged_in.count
25
28
  user = User.first
@@ -5,33 +5,33 @@ module ActsAsAuthenticTest
5
5
  def test_crypted_password_field_config
6
6
  assert_equal :crypted_password, User.crypted_password_field
7
7
  assert_equal :crypted_password, Employee.crypted_password_field
8
-
8
+
9
9
  User.crypted_password_field = :nope
10
10
  assert_equal :nope, User.crypted_password_field
11
11
  User.crypted_password_field :crypted_password
12
12
  assert_equal :crypted_password, User.crypted_password_field
13
13
  end
14
-
14
+
15
15
  def test_password_salt_field_config
16
16
  assert_equal :password_salt, User.password_salt_field
17
17
  assert_equal :password_salt, Employee.password_salt_field
18
-
18
+
19
19
  User.password_salt_field = :nope
20
20
  assert_equal :nope, User.password_salt_field
21
21
  User.password_salt_field :password_salt
22
22
  assert_equal :password_salt, User.password_salt_field
23
23
  end
24
-
24
+
25
25
  def test_ignore_blank_passwords_config
26
26
  assert User.ignore_blank_passwords
27
27
  assert Employee.ignore_blank_passwords
28
-
28
+
29
29
  User.ignore_blank_passwords = false
30
30
  assert !User.ignore_blank_passwords
31
31
  User.ignore_blank_passwords true
32
32
  assert User.ignore_blank_passwords
33
33
  end
34
-
34
+
35
35
  def test_check_passwords_against_database
36
36
  assert User.check_passwords_against_database
37
37
  User.check_passwords_against_database = false
@@ -39,125 +39,118 @@ module ActsAsAuthenticTest
39
39
  User.check_passwords_against_database true
40
40
  assert User.check_passwords_against_database
41
41
  end
42
-
42
+
43
43
  def test_validate_password_field_config
44
44
  assert User.validate_password_field
45
45
  assert Employee.validate_password_field
46
-
46
+
47
47
  User.validate_password_field = false
48
48
  assert !User.validate_password_field
49
49
  User.validate_password_field true
50
50
  assert User.validate_password_field
51
51
  end
52
-
52
+
53
53
  def test_validates_length_of_password_field_options_config
54
54
  default = {:minimum => 4, :if => :require_password?}
55
55
  assert_equal default, User.validates_length_of_password_field_options
56
56
  assert_equal default, Employee.validates_length_of_password_field_options
57
-
57
+
58
58
  User.validates_length_of_password_field_options = {:yes => "no"}
59
59
  assert_equal({:yes => "no"}, User.validates_length_of_password_field_options)
60
60
  User.validates_length_of_password_field_options default
61
61
  assert_equal default, User.validates_length_of_password_field_options
62
62
  end
63
-
63
+
64
64
  def test_validates_confirmation_of_password_field_options_config
65
65
  default = {:if => :require_password?}
66
66
  assert_equal default, User.validates_confirmation_of_password_field_options
67
67
  assert_equal default, Employee.validates_confirmation_of_password_field_options
68
-
68
+
69
69
  User.validates_confirmation_of_password_field_options = {:yes => "no"}
70
70
  assert_equal({:yes => "no"}, User.validates_confirmation_of_password_field_options)
71
71
  User.validates_confirmation_of_password_field_options default
72
72
  assert_equal default, User.validates_confirmation_of_password_field_options
73
73
  end
74
-
74
+
75
75
  def test_validates_length_of_password_confirmation_field_options_config
76
76
  default = {:minimum => 4, :if => :require_password?}
77
77
  assert_equal default, User.validates_length_of_password_confirmation_field_options
78
78
  assert_equal default, Employee.validates_length_of_password_confirmation_field_options
79
-
79
+
80
80
  User.validates_length_of_password_confirmation_field_options = {:yes => "no"}
81
81
  assert_equal({:yes => "no"}, User.validates_length_of_password_confirmation_field_options)
82
82
  User.validates_length_of_password_confirmation_field_options default
83
83
  assert_equal default, User.validates_length_of_password_confirmation_field_options
84
84
  end
85
-
85
+
86
86
  def test_crypto_provider_config
87
87
  assert_equal Authlogic::CryptoProviders::SCrypt, User.crypto_provider
88
88
  assert_equal Authlogic::CryptoProviders::AES256, Employee.crypto_provider
89
-
89
+
90
90
  User.crypto_provider = Authlogic::CryptoProviders::BCrypt
91
91
  assert_equal Authlogic::CryptoProviders::BCrypt, User.crypto_provider
92
92
  User.crypto_provider Authlogic::CryptoProviders::Sha512
93
93
  assert_equal Authlogic::CryptoProviders::Sha512, User.crypto_provider
94
94
  end
95
-
95
+
96
96
  def test_transition_from_crypto_providers_config
97
- assert_equal [], User.transition_from_crypto_providers
97
+ assert_equal [Authlogic::CryptoProviders::Sha512], User.transition_from_crypto_providers
98
98
  assert_equal [], Employee.transition_from_crypto_providers
99
-
99
+
100
100
  User.transition_from_crypto_providers = [Authlogic::CryptoProviders::BCrypt]
101
101
  assert_equal [Authlogic::CryptoProviders::BCrypt], User.transition_from_crypto_providers
102
102
  User.transition_from_crypto_providers []
103
103
  assert_equal [], User.transition_from_crypto_providers
104
104
  end
105
-
105
+
106
106
  def test_validates_length_of_password
107
- u = User.new
108
- u.password_confirmation = "test2"
109
- assert !u.valid?
110
- assert u.errors[:password].size > 0
111
-
112
- u.password = "test"
107
+ u = User.new(login: "abcde", email: "abcde@test.com", password: "abcde", password_confirmation: "abcde")
108
+ assert u.valid?
109
+
110
+ u.password = u.password_confirmation = "abc"
113
111
  assert !u.valid?
114
112
 
115
- if ActiveModel.respond_to?(:version) and ActiveModel.version.segments.first >= 4
116
- assert u.errors[:password_confirmation].size == 5
117
- else
118
- assert u.errors[:password_confirmation].size == 0
119
- end
113
+ assert u.errors[:password].include?("is too short (minimum is 4 characters)")
114
+ assert u.errors[:password_confirmation].include?("is too short (minimum is 4 characters)")
120
115
  end
121
-
116
+
122
117
  def test_validates_confirmation_of_password
123
- u = User.new
124
- u.password = "test"
125
- u.password_confirmation = "test2"
118
+ u = User.new(login: "abcde", email: "abcde@test.com", password: "abcde", password_confirmation: "abcde")
119
+ assert u.valid?
120
+
121
+ u.password_confirmation = "abcdefgh"
126
122
  assert !u.valid?
127
- # assert u.errors[:password].size > 0
123
+
128
124
  if ActiveModel.respond_to?(:version) and ActiveModel.version.segments.first >= 4
129
- assert u.errors[:password_confirmation].size > 0
125
+ assert u.errors[:password_confirmation].include?("doesn't match Password")
130
126
  else
131
- assert u.errors[:password].size > 0
127
+ assert u.errors[:password].include?("doesn't match confirmation")
132
128
  end
133
- u.password_confirmation = "test"
134
- assert !u.valid?
135
- assert u.errors[:password].size == 0
136
129
  end
137
-
130
+
138
131
  def test_validates_length_of_password_confirmation
139
132
  u = User.new
140
-
133
+
141
134
  u.password = "test"
142
135
  u.password_confirmation = ""
143
136
  assert !u.valid?
144
137
  assert u.errors[:password_confirmation].size > 0
145
-
138
+
146
139
  u.password_confirmation = "test"
147
140
  assert !u.valid?
148
141
  assert u.errors[:password_confirmation].size == 0
149
-
142
+
150
143
  ben = users(:ben)
151
144
  assert ben.valid?
152
-
145
+
153
146
  ben.password = "newpass"
154
147
  assert !ben.valid?
155
148
  assert ben.errors[:password_confirmation].size > 0
156
-
149
+
157
150
  ben.password_confirmation = "newpass"
158
151
  assert ben.valid?
159
152
  end
160
-
153
+
161
154
  def test_password
162
155
  u = User.new
163
156
  old_password_salt = u.password_salt
@@ -166,60 +159,61 @@ module ActsAsAuthenticTest
166
159
  assert_not_equal old_password_salt, u.password_salt
167
160
  assert_not_equal old_crypted_password, u.crypted_password
168
161
  end
169
-
162
+
170
163
  def test_transitioning_password
171
164
  ben = users(:ben)
165
+
172
166
  transition_password_to(Authlogic::CryptoProviders::BCrypt, ben)
173
167
  transition_password_to(Authlogic::CryptoProviders::Sha1, ben, [Authlogic::CryptoProviders::Sha512, Authlogic::CryptoProviders::BCrypt])
174
168
  transition_password_to(Authlogic::CryptoProviders::Sha512, ben, [Authlogic::CryptoProviders::Sha1, Authlogic::CryptoProviders::BCrypt])
175
169
  end
176
-
170
+
177
171
  def test_checks_password_against_database
178
172
  ben = users(:aaron)
179
173
  ben.password = "new pass"
180
174
  assert !ben.valid_password?("new pass")
181
175
  assert ben.valid_password?("aaronrocks")
182
176
  end
183
-
177
+
184
178
  def test_checks_password_against_database_and_always_fails_on_new_records
185
179
  user = User.new
186
180
  user.password = "new pass"
187
181
  assert !user.valid_password?("new pass")
188
182
  end
189
-
183
+
190
184
  def test_checks_password_against_object
191
185
  ben = users(:ben)
192
186
  ben.password = "new pass"
193
187
  assert ben.valid_password?("new pass", false)
194
188
  assert !ben.valid_password?("benrocks", false)
195
189
  end
196
-
190
+
197
191
  def test_reset_password
198
192
  ben = users(:ben)
199
193
  old_crypted_password = ben.crypted_password
200
194
  old_password_salt = ben.password_salt
201
-
195
+
202
196
  # soft reset
203
197
  ben.reset_password
204
198
  assert_not_equal old_crypted_password, ben.crypted_password
205
199
  assert_not_equal old_password_salt, ben.password_salt
206
-
200
+
207
201
  # make sure it didn't go into the db
208
202
  ben.reload
209
203
  assert_equal old_crypted_password, ben.crypted_password
210
204
  assert_equal old_password_salt, ben.password_salt
211
-
205
+
212
206
  # hard reset
213
207
  assert ben.reset_password!
214
208
  assert_not_equal old_crypted_password, ben.crypted_password
215
209
  assert_not_equal old_password_salt, ben.password_salt
216
-
210
+
217
211
  # make sure it did go into the db
218
212
  ben.reload
219
213
  assert_not_equal old_crypted_password, ben.crypted_password
220
214
  assert_not_equal old_password_salt, ben.password_salt
221
215
  end
222
-
216
+
223
217
  private
224
218
  def transition_password_to(crypto_provider, records, from_crypto_providers = Authlogic::CryptoProviders::Sha512)
225
219
  records = [records] unless records.is_a?(Array)
@@ -233,7 +227,7 @@ module ActsAsAuthenticTest
233
227
  assert record.valid_password?(password_for(record))
234
228
  assert_not_equal old_hash.to_s, record.crypted_password.to_s
235
229
  assert_not_equal old_persistence_token.to_s, record.persistence_token.to_s
236
-
230
+
237
231
  old_hash = record.crypted_password
238
232
  old_persistence_token = record.persistence_token
239
233
  assert record.valid_password?(password_for(record))