authlogic 3.5.0 → 3.8.0

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.
Files changed (64) hide show
  1. data/.github/ISSUE_TEMPLATE.md +13 -0
  2. data/.rubocop_todo.yml +1 -37
  3. data/.travis.yml +15 -6
  4. data/CHANGELOG.md +2 -130
  5. data/CONTRIBUTING.md +13 -2
  6. data/README.md +2 -3
  7. data/authlogic.gemspec +4 -5
  8. data/lib/authlogic/acts_as_authentic/base.rb +4 -2
  9. data/lib/authlogic/acts_as_authentic/email.rb +8 -3
  10. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +21 -3
  11. data/lib/authlogic/acts_as_authentic/login.rb +44 -25
  12. data/lib/authlogic/acts_as_authentic/password.rb +28 -12
  13. data/lib/authlogic/acts_as_authentic/perishable_token.rb +21 -12
  14. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +16 -9
  15. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +5 -3
  16. data/lib/authlogic/authenticates_many/association.rb +11 -4
  17. data/lib/authlogic/authenticates_many/base.rb +5 -4
  18. data/lib/authlogic/controller_adapters/rack_adapter.rb +6 -2
  19. data/lib/authlogic/controller_adapters/rails_adapter.rb +11 -8
  20. data/lib/authlogic/crypto_providers/aes256.rb +21 -2
  21. data/lib/authlogic/crypto_providers/bcrypt.rb +4 -1
  22. data/lib/authlogic/crypto_providers/sha512.rb +15 -10
  23. data/lib/authlogic/regex.rb +7 -6
  24. data/lib/authlogic/session/activation.rb +19 -10
  25. data/lib/authlogic/session/cookies.rb +3 -1
  26. data/lib/authlogic/session/id.rb +13 -7
  27. data/lib/authlogic/session/magic_columns.rb +19 -10
  28. data/lib/authlogic/session/magic_states.rb +7 -1
  29. data/lib/authlogic/session/password.rb +82 -35
  30. data/lib/authlogic/session/perishable_token.rb +7 -3
  31. data/lib/authlogic/session/validation.rb +13 -11
  32. data/lib/authlogic/test_case.rb +52 -32
  33. data/lib/authlogic.rb +6 -0
  34. data/test/acts_as_authentic_test/email_test.rb +33 -27
  35. data/test/acts_as_authentic_test/logged_in_status_test.rb +2 -2
  36. data/test/acts_as_authentic_test/login_test.rb +50 -37
  37. data/test/acts_as_authentic_test/magic_columns_test.rb +8 -8
  38. data/test/acts_as_authentic_test/password_test.rb +14 -14
  39. data/test/acts_as_authentic_test/perishable_token_test.rb +5 -5
  40. data/test/acts_as_authentic_test/persistence_token_test.rb +4 -4
  41. data/test/acts_as_authentic_test/restful_authentication_test.rb +6 -6
  42. data/test/acts_as_authentic_test/session_maintenance_test.rb +15 -10
  43. data/test/acts_as_authentic_test/single_access_test.rb +6 -6
  44. data/test/authenticates_many_test.rb +21 -6
  45. data/test/gemfiles/Gemfile.rails-5.1.x +6 -0
  46. data/test/gemfiles/Gemfile.rails-5.2.x +6 -0
  47. data/test/libs/company.rb +1 -1
  48. data/test/session_test/activation_test.rb +1 -1
  49. data/test/session_test/active_record_trickery_test.rb +3 -3
  50. data/test/session_test/brute_force_protection_test.rb +19 -14
  51. data/test/session_test/cookies_test.rb +21 -12
  52. data/test/session_test/existence_test.rb +15 -10
  53. data/test/session_test/http_auth_test.rb +2 -2
  54. data/test/session_test/magic_columns_test.rb +7 -4
  55. data/test/session_test/magic_states_test.rb +7 -9
  56. data/test/session_test/params_test.rb +6 -6
  57. data/test/session_test/password_test.rb +2 -2
  58. data/test/session_test/perishability_test.rb +1 -1
  59. data/test/session_test/persistence_test.rb +2 -2
  60. data/test/session_test/timeout_test.rb +7 -5
  61. data/test/session_test/validation_test.rb +1 -1
  62. data/test/test_helper.rb +37 -6
  63. metadata +57 -36
  64. checksums.yaml +0 -7
@@ -17,7 +17,7 @@ module ActsAsAuthenticTest
17
17
  assert Employee.validate_login_field
18
18
 
19
19
  User.validate_login_field = false
20
- assert !User.validate_login_field
20
+ refute User.validate_login_field
21
21
  User.validate_login_field true
22
22
  assert User.validate_login_field
23
23
  end
@@ -35,13 +35,26 @@ module ActsAsAuthenticTest
35
35
  def test_validates_format_of_login_field_options_config
36
36
  default = {
37
37
  :with => /\A[a-zA-Z0-9_][a-zA-Z0-9\.+\-_@ ]+\z/,
38
- :message => I18n.t(
39
- 'error_messages.login_invalid',
40
- :default => "should use only letters, numbers, spaces, and .-_@+ please."
41
- )
38
+ :message => proc do
39
+ I18n.t(
40
+ 'error_messages.login_invalid',
41
+ :default => "should use only letters, numbers, spaces, and .-_@+ please."
42
+ )
43
+ end
42
44
  }
43
- assert_equal default, User.validates_format_of_login_field_options
44
- assert_equal default, Employee.validates_format_of_login_field_options
45
+ default_message = default.delete(:message).call
46
+
47
+ options = User.validates_format_of_login_field_options
48
+ message = options.delete(:message)
49
+ assert message.is_a?(Proc)
50
+ assert_equal default_message, message.call
51
+ assert_equal default, options
52
+
53
+ options = Employee.validates_format_of_login_field_options
54
+ message = options.delete(:message)
55
+ assert message.is_a?(Proc)
56
+ assert_equal default_message, message.call
57
+ assert_equal default, options
45
58
 
46
59
  User.validates_format_of_login_field_options = { :yes => "no" }
47
60
  assert_equal({ :yes => "no" }, User.validates_format_of_login_field_options)
@@ -62,70 +75,70 @@ module ActsAsAuthenticTest
62
75
  def test_validates_length_of_login_field
63
76
  u = User.new
64
77
  u.login = "a"
65
- assert !u.valid?
66
- assert u.errors[:login].size > 0
78
+ refute u.valid?
79
+ refute u.errors[:login].empty?
67
80
 
68
81
  u.login = "aaaaaaaaaa"
69
- assert !u.valid?
70
- assert u.errors[:login].size == 0
82
+ refute u.valid?
83
+ assert u.errors[:login].empty?
71
84
  end
72
85
 
73
86
  def test_validates_format_of_login_field
74
87
  u = User.new
75
88
  u.login = "fdsf@^&*"
76
- assert !u.valid?
77
- assert u.errors[:login].size > 0
89
+ refute u.valid?
90
+ refute u.errors[:login].empty?
78
91
 
79
92
  u.login = "fdsfdsfdsfdsfs"
80
- assert !u.valid?
81
- assert u.errors[:login].size == 0
93
+ refute u.valid?
94
+ assert u.errors[:login].empty?
82
95
 
83
96
  u.login = "dakota.dux+1@gmail.com"
84
- assert !u.valid?
85
- assert u.errors[:login].size == 0
97
+ refute u.valid?
98
+ assert u.errors[:login].empty?
86
99
 
87
100
  u.login = "marks .-_@+"
88
- assert !u.valid?
89
- assert u.errors[:login].size == 0
101
+ refute u.valid?
102
+ assert u.errors[:login].empty?
90
103
 
91
104
  u.login = " space"
92
- assert !u.valid?
93
- assert u.errors[:login].size > 0
105
+ refute u.valid?
106
+ refute u.errors[:login].empty?
94
107
 
95
108
  u.login = ".dot"
96
- assert !u.valid?
97
- assert u.errors[:login].size > 0
109
+ refute u.valid?
110
+ refute u.errors[:login].empty?
98
111
 
99
112
  u.login = "-hyphen"
100
- assert !u.valid?
101
- assert u.errors[:login].size > 0
113
+ refute u.valid?
114
+ refute u.errors[:login].empty?
102
115
 
103
116
  u.login = "_underscore"
104
- assert !u.valid?
105
- assert u.errors[:login].size == 0
117
+ refute u.valid?
118
+ assert u.errors[:login].empty?
106
119
 
107
120
  u.login = "@atmark"
108
- assert !u.valid?
109
- assert u.errors[:login].size > 0
121
+ refute u.valid?
122
+ refute u.errors[:login].empty?
110
123
 
111
124
  u.login = "+plus"
112
- assert !u.valid?
113
- assert u.errors[:login].size > 0
125
+ refute u.valid?
126
+ refute u.errors[:login].empty?
114
127
  end
115
128
 
116
129
  def test_validates_uniqueness_of_login_field
117
130
  u = User.new
118
131
  u.login = "bjohnson"
119
- assert !u.valid?
120
- assert u.errors[:login].size > 0
132
+ refute u.valid?
133
+ refute u.errors[:login].empty?
121
134
 
122
135
  u.login = "BJOHNSON"
123
- assert !u.valid?
124
- assert u.errors[:login].size > 0
136
+ refute u.valid?
137
+ refute u.errors[:login].empty?
125
138
 
126
139
  u.login = "fdsfdsf"
127
- assert !u.valid?
128
- assert u.errors[:login].size == 0
140
+ refute u.valid?
141
+ assert u.errors[:login].empty?
129
142
  end
130
143
 
131
144
  def test_find_by_smart_case_login_field
@@ -5,23 +5,23 @@ module ActsAsAuthenticTest
5
5
  def test_validates_numericality_of_login_count
6
6
  u = User.new
7
7
  u.login_count = -1
8
- assert !u.valid?
9
- assert u.errors[:login_count].size > 0
8
+ refute u.valid?
9
+ refute u.errors[:login_count].empty?
10
10
 
11
11
  u.login_count = 0
12
- assert !u.valid?
13
- assert u.errors[:login_count].size == 0
12
+ refute u.valid?
13
+ assert u.errors[:login_count].empty?
14
14
  end
15
15
 
16
16
  def test_validates_numericality_of_failed_login_count
17
17
  u = User.new
18
18
  u.failed_login_count = -1
19
- assert !u.valid?
20
- assert u.errors[:failed_login_count].size > 0
19
+ refute u.valid?
20
+ refute u.errors[:failed_login_count].empty?
21
21
 
22
22
  u.failed_login_count = 0
23
- assert !u.valid?
24
- assert u.errors[:failed_login_count].size == 0
23
+ refute u.valid?
24
+ assert u.errors[:failed_login_count].empty?
25
25
  end
26
26
  end
27
27
  end
@@ -28,7 +28,7 @@ module ActsAsAuthenticTest
28
28
  assert Employee.ignore_blank_passwords
29
29
 
30
30
  User.ignore_blank_passwords = false
31
- assert !User.ignore_blank_passwords
31
+ refute User.ignore_blank_passwords
32
32
  User.ignore_blank_passwords true
33
33
  assert User.ignore_blank_passwords
34
34
  end
@@ -36,7 +36,7 @@ module ActsAsAuthenticTest
36
36
  def test_check_passwords_against_database
37
37
  assert User.check_passwords_against_database
38
38
  User.check_passwords_against_database = false
39
- assert !User.check_passwords_against_database
39
+ refute User.check_passwords_against_database
40
40
  User.check_passwords_against_database true
41
41
  assert User.check_passwords_against_database
42
42
  end
@@ -46,7 +46,7 @@ module ActsAsAuthenticTest
46
46
  assert Employee.validate_password_field
47
47
 
48
48
  User.validate_password_field = false
49
- assert !User.validate_password_field
49
+ refute User.validate_password_field
50
50
  User.validate_password_field true
51
51
  assert User.validate_password_field
52
52
  end
@@ -109,7 +109,7 @@ module ActsAsAuthenticTest
109
109
  assert u.valid?
110
110
 
111
111
  u.password = u.password_confirmation = "abcdef"
112
- assert !u.valid?
112
+ refute u.valid?
113
113
 
114
114
  assert u.errors[:password].include?("is too short (minimum is 8 characters)")
115
115
  assert u.errors[:password_confirmation].include?("is too short (minimum is 8 characters)")
@@ -120,7 +120,7 @@ module ActsAsAuthenticTest
120
120
  assert u.valid?
121
121
 
122
122
  u.password_confirmation = "abcdefghij"
123
- assert !u.valid?
123
+ refute u.valid?
124
124
 
125
125
  if ActiveModel.respond_to?(:version) and ActiveModel.version.segments.first >= 4
126
126
  assert u.errors[:password_confirmation].include?("doesn't match Password")
@@ -134,19 +134,19 @@ module ActsAsAuthenticTest
134
134
 
135
135
  u.password = "testpass"
136
136
  u.password_confirmation = ""
137
- assert !u.valid?
138
- assert u.errors[:password_confirmation].size > 0
137
+ refute u.valid?
138
+ refute u.errors[:password_confirmation].empty?
139
139
 
140
140
  u.password_confirmation = "testpass"
141
- assert !u.valid?
142
- assert u.errors[:password_confirmation].size == 0
141
+ refute u.valid?
142
+ assert u.errors[:password_confirmation].empty?
143
143
 
144
144
  ben = users(:ben)
145
145
  assert ben.valid?
146
146
 
147
147
  ben.password = "newpasswd"
148
- assert !ben.valid?
149
- assert ben.errors[:password_confirmation].size > 0
148
+ refute ben.valid?
149
+ refute ben.errors[:password_confirmation].empty?
150
150
 
151
151
  ben.password_confirmation = "newpasswd"
152
152
  assert ben.valid?
@@ -180,21 +180,21 @@ module ActsAsAuthenticTest
180
180
  def test_checks_password_against_database
181
181
  ben = users(:aaron)
182
182
  ben.password = "new pass"
183
- assert !ben.valid_password?("new pass")
183
+ refute ben.valid_password?("new pass")
184
184
  assert ben.valid_password?("aaronrocks")
185
185
  end
186
186
 
187
187
  def test_checks_password_against_database_and_always_fails_on_new_records
188
188
  user = User.new
189
189
  user.password = "new pass"
190
- assert !user.valid_password?("new pass")
190
+ refute user.valid_password?("new pass")
191
191
  end
192
192
 
193
193
  def test_checks_password_against_object
194
194
  ben = users(:ben)
195
195
  ben.password = "new pass"
196
196
  assert ben.valid_password?("new pass", false)
197
- assert !ben.valid_password?("benrocks", false)
197
+ refute ben.valid_password?("benrocks", false)
198
198
  end
199
199
 
200
200
  def test_reset_password
@@ -13,20 +13,20 @@ module ActsAsAuthenticTest
13
13
  end
14
14
 
15
15
  def test_disable_perishable_token_maintenance_config
16
- assert !User.disable_perishable_token_maintenance
17
- assert !Employee.disable_perishable_token_maintenance
16
+ refute User.disable_perishable_token_maintenance
17
+ refute Employee.disable_perishable_token_maintenance
18
18
 
19
19
  User.disable_perishable_token_maintenance = true
20
20
  assert User.disable_perishable_token_maintenance
21
21
  User.disable_perishable_token_maintenance false
22
- assert !User.disable_perishable_token_maintenance
22
+ refute User.disable_perishable_token_maintenance
23
23
  end
24
24
 
25
25
  def test_validates_uniqueness_of_perishable_token
26
26
  u = User.new
27
27
  u.perishable_token = users(:ben).perishable_token
28
- assert !u.valid?
29
- assert u.errors[:perishable_token].size > 0
28
+ refute u.valid?
29
+ refute u.errors[:perishable_token].empty?
30
30
  end
31
31
 
32
32
  def test_before_save_reset_perishable_token
@@ -24,7 +24,7 @@ module ActsAsAuthenticTest
24
24
 
25
25
  def test_before_validate_reset_persistence_token
26
26
  u = User.new
27
- assert !u.valid?
27
+ refute u.valid?
28
28
  assert_not_nil u.persistence_token
29
29
  end
30
30
 
@@ -34,8 +34,8 @@ module ActsAsAuthenticTest
34
34
  assert UserSession.find
35
35
  assert UserSession.find(:ziggity_zack)
36
36
  User.forget_all
37
- assert !UserSession.find
38
- assert !UserSession.find(:ziggity_zack)
37
+ refute UserSession.find
38
+ refute UserSession.find(:ziggity_zack)
39
39
  end
40
40
 
41
41
  def test_forget
@@ -49,7 +49,7 @@ module ActsAsAuthenticTest
49
49
 
50
50
  ben.forget!
51
51
 
52
- assert !UserSession.find
52
+ refute UserSession.find
53
53
  assert UserSession.find(:ziggity_zack)
54
54
  end
55
55
  end
@@ -3,8 +3,8 @@ require 'test_helper'
3
3
  module ActsAsAuthenticTest
4
4
  class RestfulAuthenticationTest < ActiveSupport::TestCase
5
5
  def test_act_like_restful_authentication_config
6
- assert !User.act_like_restful_authentication
7
- assert !Employee.act_like_restful_authentication
6
+ refute User.act_like_restful_authentication
7
+ refute Employee.act_like_restful_authentication
8
8
 
9
9
  User.act_like_restful_authentication = true
10
10
  assert User.act_like_restful_authentication
@@ -14,15 +14,15 @@ module ActsAsAuthenticTest
14
14
  assert_equal 1, Authlogic::CryptoProviders::Sha1.stretches
15
15
 
16
16
  User.act_like_restful_authentication false
17
- assert !User.act_like_restful_authentication
17
+ refute User.act_like_restful_authentication
18
18
 
19
19
  User.crypto_provider = Authlogic::CryptoProviders::Sha512
20
20
  User.transition_from_crypto_providers = []
21
21
  end
22
22
 
23
23
  def test_transition_from_restful_authentication_config
24
- assert !User.transition_from_restful_authentication
25
- assert !Employee.transition_from_restful_authentication
24
+ refute User.transition_from_restful_authentication
25
+ refute Employee.transition_from_restful_authentication
26
26
 
27
27
  User.transition_from_restful_authentication = true
28
28
  assert User.transition_from_restful_authentication
@@ -31,7 +31,7 @@ module ActsAsAuthenticTest
31
31
  assert_equal 1, Authlogic::CryptoProviders::Sha1.stretches
32
32
 
33
33
  User.transition_from_restful_authentication false
34
- assert !User.transition_from_restful_authentication
34
+ refute User.transition_from_restful_authentication
35
35
  end
36
36
  end
37
37
  end
@@ -5,20 +5,19 @@ module ActsAsAuthenticTest
5
5
  def test_maintain_sessions_config
6
6
  assert User.maintain_sessions
7
7
  User.maintain_sessions = false
8
- assert !User.maintain_sessions
8
+ refute User.maintain_sessions
9
9
  User.maintain_sessions true
10
10
  assert User.maintain_sessions
11
11
  end
12
12
 
13
13
  def test_login_after_create
14
- assert(
15
- User.create(
16
- :login => "awesome",
17
- :password => "saweeeet",
18
- :password_confirmation => "saweeeet",
19
- :email => "awesome@awesome.com"
20
- )
14
+ user = User.create(
15
+ :login => "awesome",
16
+ :password => "saweeeet",
17
+ :password_confirmation => "saweeeet",
18
+ :email => "awesome@awesome.com"
21
19
  )
20
+ assert user.persisted?
22
21
  assert UserSession.find
23
22
  end
24
23
 
@@ -60,7 +59,13 @@ module ActsAsAuthenticTest
60
59
  UserSession.create(ben)
61
60
  old_session_key = controller.session["user_credentials"]
62
61
  old_cookie_key = controller.cookies["user_credentials"]
63
- assert User.create(:login => "awesome", :password => "saweet", :password_confirmation => "saweet", :email => "awesome@saweet.com")
62
+ user = User.create(
63
+ :login => "awesome",
64
+ :password => "saweet", # Password is too short, user invalid
65
+ :password_confirmation => "saweet",
66
+ :email => "awesome@saweet.com"
67
+ )
68
+ refute user.persisted?
64
69
  assert_equal controller.session["user_credentials"], old_session_key
65
70
  assert_equal controller.cookies["user_credentials"], old_cookie_key
66
71
  end
@@ -80,7 +85,7 @@ module ActsAsAuthenticTest
80
85
 
81
86
  def test_resetting_password_when_logged_out
82
87
  ben = users(:ben)
83
- assert !UserSession.find
88
+ refute UserSession.find
84
89
  ben.password = "newpasswd"
85
90
  ben.password_confirmation = "newpasswd"
86
91
  assert ben.save
@@ -3,25 +3,25 @@ require 'test_helper'
3
3
  module ActsAsAuthenticTest
4
4
  class SingleAccessTest < ActiveSupport::TestCase
5
5
  def test_change_single_access_token_with_password_config
6
- assert !User.change_single_access_token_with_password
7
- assert !Employee.change_single_access_token_with_password
6
+ refute User.change_single_access_token_with_password
7
+ refute Employee.change_single_access_token_with_password
8
8
 
9
9
  User.change_single_access_token_with_password = true
10
10
  assert User.change_single_access_token_with_password
11
11
  User.change_single_access_token_with_password false
12
- assert !User.change_single_access_token_with_password
12
+ refute User.change_single_access_token_with_password
13
13
  end
14
14
 
15
15
  def test_validates_uniqueness_of_single_access_token
16
16
  u = User.new
17
17
  u.single_access_token = users(:ben).single_access_token
18
- assert !u.valid?
19
- assert u.errors[:single_access_token].size > 0
18
+ refute u.valid?
19
+ refute u.errors[:single_access_token].empty?
20
20
  end
21
21
 
22
22
  def test_before_validation_reset_single_access_token
23
23
  u = User.new
24
- assert !u.valid?
24
+ refute u.valid?
25
25
  assert_not_nil u.single_access_token
26
26
  end
27
27
 
@@ -1,16 +1,31 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class AuthenticatesManyTest < ActiveSupport::TestCase
4
- def test_scoping
5
- zack = users(:zack)
6
- ben = users(:ben)
4
+ def test_employee_sessions
7
5
  binary_logic = companies(:binary_logic)
8
- set_session_for(zack)
9
6
 
10
- assert !binary_logic.user_sessions.find
7
+ # Drew is a binary_logic employee, authentication succeeds
8
+ drew = employees(:drew)
9
+ set_session_for(drew)
10
+ assert binary_logic.employee_sessions.find
11
+
12
+ # Jennifer is not a binary_logic employee, authentication fails
13
+ jennifer = employees(:jennifer)
14
+ set_session_for(jennifer)
15
+ refute binary_logic.employee_sessions.find
16
+ end
11
17
 
12
- set_session_for(ben)
18
+ def test_user_sessions
19
+ binary_logic = companies(:binary_logic)
13
20
 
21
+ # Ben is a binary_logic user, authentication succeeds
22
+ ben = users(:ben)
23
+ set_session_for(ben, binary_logic)
14
24
  assert binary_logic.user_sessions.find
25
+
26
+ # Zack is not a binary_logic user, authentication fails
27
+ zack = users(:zack)
28
+ set_session_for(zack, binary_logic)
29
+ refute binary_logic.user_sessions.find
15
30
  end
16
31
  end
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+ gemspec :path => "./../.."
3
+
4
+ gem "activerecord", "~> 5.1.0"
5
+ gem "activesupport", "~> 5.1.0"
6
+ gem 'sqlite3', :platforms => :ruby
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+ gemspec :path => "./../.."
3
+
4
+ gem "activerecord", "~> 5.2.x"
5
+ gem "activesupport", "~> 5.2.x"
6
+ gem 'sqlite3', :platforms => :ruby
data/test/libs/company.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  class Company < ActiveRecord::Base
2
2
  authenticates_many :employee_sessions
3
- authenticates_many :user_sessions
3
+ authenticates_many :user_sessions, scope_cookies: true
4
4
  has_many :employees, :dependent => :destroy
5
5
  has_many :users, :dependent => :destroy
6
6
  end
@@ -6,7 +6,7 @@ module SessionTest
6
6
  def test_activated
7
7
  assert UserSession.activated?
8
8
  Authlogic::Session::Base.controller = nil
9
- assert !UserSession.activated?
9
+ refute UserSession.activated?
10
10
  end
11
11
 
12
12
  def test_controller
@@ -49,18 +49,18 @@ module SessionTest
49
49
 
50
50
  def test_persisted
51
51
  session = UserSession.new(users(:ben))
52
- assert !session.persisted?
52
+ refute session.persisted?
53
53
 
54
54
  session.save
55
55
  assert session.persisted?
56
56
 
57
57
  session.destroy
58
- assert !session.persisted?
58
+ refute session.persisted?
59
59
  end
60
60
 
61
61
  def test_destroyed?
62
62
  session = UserSession.create(users(:ben))
63
- assert !session.destroyed?
63
+ refute session.destroyed?
64
64
 
65
65
  session.destroy
66
66
  assert session.destroyed?
@@ -25,19 +25,20 @@ module SessionTest
25
25
  ben = users(:ben)
26
26
  ben.failed_login_count = UserSession.consecutive_failed_logins_limit - 1
27
27
  assert ben.save
28
- assert UserSession.create(:login => ben.login, :password => "benrocks")
28
+ session = UserSession.create(:login => ben.login, :password => "benrocks")
29
+ refute session.new_session?
29
30
  end
30
31
 
31
32
  def test_exceeded_limit
32
33
  ben = users(:ben)
33
34
  ben.failed_login_count = UserSession.consecutive_failed_logins_limit
34
35
  assert ben.save
35
- assert UserSession.create(:login => ben.login, :password => "benrocks").new_session?
36
+ session = UserSession.create(:login => ben.login, :password => "benrocks")
37
+ assert session.new_session?
36
38
  assert UserSession.create(ben).new_session?
37
-
38
39
  ben.reload
39
40
  ben.updated_at = (UserSession.failed_login_ban_for + 2.hours.to_i).seconds.ago
40
- assert !UserSession.create(ben).new_session?
41
+ refute UserSession.create(ben).new_session?
41
42
  end
42
43
 
43
44
  def test_exceeding_failed_logins_limit
@@ -46,14 +47,14 @@ module SessionTest
46
47
 
47
48
  2.times do |i|
48
49
  session = UserSession.new(:login => ben.login, :password => "badpassword1")
49
- assert !session.save
50
- assert session.errors[:password].size > 0
50
+ refute session.save
51
+ refute session.errors[:password].empty?
51
52
  assert_equal i + 1, ben.reload.failed_login_count
52
53
  end
53
54
 
54
55
  session = UserSession.new(:login => ben.login, :password => "badpassword2")
55
- assert !session.save
56
- assert session.errors[:password].size == 0
56
+ refute session.save
57
+ assert session.errors[:password].empty?
57
58
  assert_equal 3, ben.reload.failed_login_count
58
59
 
59
60
  UserSession.consecutive_failed_logins_limit = 50
@@ -66,12 +67,14 @@ module SessionTest
66
67
 
67
68
  2.times do |i|
68
69
  session = UserSession.new(:login => ben.login, :password => "badpassword1")
69
- assert !session.save
70
+ refute session.save
70
71
  assert session.invalid_password?
71
72
  assert_equal i + 1, ben.reload.failed_login_count
72
73
  end
73
74
 
74
- ActiveRecord::Base.connection.execute("update users set updated_at = '#{1.day.ago.to_s(:db)}' where login = '#{ben.login}'")
75
+ ActiveRecord::Base.connection.execute(
76
+ "update users set updated_at = '#{1.day.ago.to_s(:db)}' where login = '#{ben.login}'"
77
+ )
75
78
  session = UserSession.new(:login => ben.login, :password => "benrocks")
76
79
  assert session.save
77
80
  assert_equal 0, ben.reload.failed_login_count
@@ -86,14 +89,16 @@ module SessionTest
86
89
 
87
90
  2.times do |i|
88
91
  session = UserSession.new(:login => ben.login, :password => "badpassword1")
89
- assert !session.save
90
- assert session.errors[:password].size > 0
92
+ refute session.save
93
+ refute session.errors[:password].empty?
91
94
  assert_equal i + 1, ben.reload.failed_login_count
92
95
  end
93
96
 
94
- ActiveRecord::Base.connection.execute("update users set updated_at = '#{1.day.ago.to_s(:db)}' where login = '#{ben.login}'")
97
+ ActiveRecord::Base.connection.execute(
98
+ "update users set updated_at = '#{1.day.ago.to_s(:db)}' where login = '#{ben.login}'"
99
+ )
95
100
  session = UserSession.new(:login => ben.login, :password => "badpassword1")
96
- assert !session.save
101
+ refute session.save
97
102
  assert_equal 1, ben.reload.failed_login_count
98
103
 
99
104
  UserSession.consecutive_failed_logins_limit = 50