authlogic 4.4.2 → 5.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +5 -5
  2. data/lib/authlogic.rb +4 -28
  3. data/lib/authlogic/acts_as_authentic/base.rb +3 -18
  4. data/lib/authlogic/acts_as_authentic/email.rb +3 -170
  5. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +3 -1
  6. data/lib/authlogic/acts_as_authentic/login.rb +7 -174
  7. data/lib/authlogic/acts_as_authentic/magic_columns.rb +7 -4
  8. data/lib/authlogic/acts_as_authentic/password.rb +54 -253
  9. data/lib/authlogic/acts_as_authentic/perishable_token.rb +8 -5
  10. data/lib/authlogic/acts_as_authentic/persistence_token.rb +10 -4
  11. data/lib/authlogic/acts_as_authentic/queries/case_sensitivity.rb +53 -0
  12. data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +36 -20
  13. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +8 -6
  14. data/lib/authlogic/acts_as_authentic/single_access_token.rb +10 -8
  15. data/lib/authlogic/config.rb +9 -1
  16. data/lib/authlogic/controller_adapters/abstract_adapter.rb +7 -4
  17. data/lib/authlogic/controller_adapters/rack_adapter.rb +2 -0
  18. data/lib/authlogic/controller_adapters/rails_adapter.rb +19 -19
  19. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +6 -0
  20. data/lib/authlogic/cookie_credentials.rb +63 -0
  21. data/lib/authlogic/crypto_providers.rb +5 -20
  22. data/lib/authlogic/crypto_providers/bcrypt.rb +3 -3
  23. data/lib/authlogic/crypto_providers/md5.rb +3 -6
  24. data/lib/authlogic/crypto_providers/scrypt.rb +2 -0
  25. data/lib/authlogic/crypto_providers/sha1.rb +4 -6
  26. data/lib/authlogic/crypto_providers/sha256.rb +2 -0
  27. data/lib/authlogic/crypto_providers/sha512.rb +6 -5
  28. data/lib/authlogic/i18n.rb +3 -1
  29. data/lib/authlogic/i18n/translator.rb +3 -0
  30. data/lib/authlogic/random.rb +2 -0
  31. data/lib/authlogic/session/base.rb +2087 -39
  32. data/lib/authlogic/session/magic_column/assigns_last_request_at.rb +46 -0
  33. data/lib/authlogic/test_case.rb +4 -0
  34. data/lib/authlogic/test_case/mock_controller.rb +2 -0
  35. data/lib/authlogic/test_case/mock_cookie_jar.rb +7 -0
  36. data/lib/authlogic/test_case/mock_logger.rb +2 -0
  37. data/lib/authlogic/test_case/mock_request.rb +2 -0
  38. data/lib/authlogic/test_case/rails_request_adapter.rb +2 -0
  39. data/lib/authlogic/version.rb +2 -1
  40. metadata +136 -182
  41. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -28
  42. data/.github/ISSUE_TEMPLATE/feature_proposal.md +0 -32
  43. data/.github/triage.md +0 -86
  44. data/.gitignore +0 -15
  45. data/.rubocop.yml +0 -133
  46. data/.rubocop_todo.yml +0 -74
  47. data/.travis.yml +0 -24
  48. data/CHANGELOG.md +0 -326
  49. data/CONTRIBUTING.md +0 -91
  50. data/Gemfile +0 -6
  51. data/LICENSE +0 -20
  52. data/README.md +0 -439
  53. data/Rakefile +0 -21
  54. data/UPGRADING.md +0 -22
  55. data/authlogic.gemspec +0 -40
  56. data/doc/use_normal_rails_validation.md +0 -82
  57. data/gemfiles/Gemfile.rails-4.2.x +0 -6
  58. data/gemfiles/Gemfile.rails-5.1.x +0 -6
  59. data/gemfiles/Gemfile.rails-5.2.x +0 -6
  60. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +0 -106
  61. data/lib/authlogic/acts_as_authentic/validations_scope.rb +0 -35
  62. data/lib/authlogic/authenticates_many/association.rb +0 -50
  63. data/lib/authlogic/authenticates_many/base.rb +0 -81
  64. data/lib/authlogic/crypto_providers/aes256.rb +0 -71
  65. data/lib/authlogic/crypto_providers/wordpress.rb +0 -72
  66. data/lib/authlogic/regex.rb +0 -79
  67. data/lib/authlogic/session/activation.rb +0 -73
  68. data/lib/authlogic/session/active_record_trickery.rb +0 -65
  69. data/lib/authlogic/session/brute_force_protection.rb +0 -127
  70. data/lib/authlogic/session/callbacks.rb +0 -153
  71. data/lib/authlogic/session/cookies.rb +0 -296
  72. data/lib/authlogic/session/existence.rb +0 -103
  73. data/lib/authlogic/session/foundation.rb +0 -105
  74. data/lib/authlogic/session/http_auth.rb +0 -107
  75. data/lib/authlogic/session/id.rb +0 -53
  76. data/lib/authlogic/session/klass.rb +0 -73
  77. data/lib/authlogic/session/magic_columns.rb +0 -119
  78. data/lib/authlogic/session/magic_states.rb +0 -82
  79. data/lib/authlogic/session/params.rb +0 -130
  80. data/lib/authlogic/session/password.rb +0 -318
  81. data/lib/authlogic/session/perishable_token.rb +0 -24
  82. data/lib/authlogic/session/persistence.rb +0 -77
  83. data/lib/authlogic/session/priority_record.rb +0 -38
  84. data/lib/authlogic/session/scopes.rb +0 -138
  85. data/lib/authlogic/session/session.rb +0 -77
  86. data/lib/authlogic/session/timeout.rb +0 -103
  87. data/lib/authlogic/session/unauthorized_record.rb +0 -56
  88. data/lib/authlogic/session/validation.rb +0 -93
  89. data/test/acts_as_authentic_test/base_test.rb +0 -27
  90. data/test/acts_as_authentic_test/email_test.rb +0 -241
  91. data/test/acts_as_authentic_test/logged_in_status_test.rb +0 -64
  92. data/test/acts_as_authentic_test/login_test.rb +0 -153
  93. data/test/acts_as_authentic_test/magic_columns_test.rb +0 -29
  94. data/test/acts_as_authentic_test/password_test.rb +0 -263
  95. data/test/acts_as_authentic_test/perishable_token_test.rb +0 -98
  96. data/test/acts_as_authentic_test/persistence_token_test.rb +0 -62
  97. data/test/acts_as_authentic_test/restful_authentication_test.rb +0 -48
  98. data/test/acts_as_authentic_test/session_maintenance_test.rb +0 -150
  99. data/test/acts_as_authentic_test/single_access_test.rb +0 -46
  100. data/test/adapter_test.rb +0 -23
  101. data/test/authenticates_many_test.rb +0 -33
  102. data/test/config_test.rb +0 -38
  103. data/test/crypto_provider_test/aes256_test.rb +0 -16
  104. data/test/crypto_provider_test/bcrypt_test.rb +0 -16
  105. data/test/crypto_provider_test/scrypt_test.rb +0 -16
  106. data/test/crypto_provider_test/sha1_test.rb +0 -25
  107. data/test/crypto_provider_test/sha256_test.rb +0 -16
  108. data/test/crypto_provider_test/sha512_test.rb +0 -16
  109. data/test/crypto_provider_test/wordpress_test.rb +0 -26
  110. data/test/fixtures/companies.yml +0 -5
  111. data/test/fixtures/employees.yml +0 -17
  112. data/test/fixtures/projects.yml +0 -3
  113. data/test/fixtures/users.yml +0 -41
  114. data/test/i18n/lol.yml +0 -4
  115. data/test/i18n_test.rb +0 -35
  116. data/test/libs/affiliate.rb +0 -9
  117. data/test/libs/company.rb +0 -8
  118. data/test/libs/employee.rb +0 -9
  119. data/test/libs/employee_session.rb +0 -4
  120. data/test/libs/ldaper.rb +0 -5
  121. data/test/libs/project.rb +0 -5
  122. data/test/libs/user.rb +0 -9
  123. data/test/libs/user_session.rb +0 -27
  124. data/test/random_test.rb +0 -15
  125. data/test/session_test/activation_test.rb +0 -45
  126. data/test/session_test/active_record_trickery_test.rb +0 -78
  127. data/test/session_test/brute_force_protection_test.rb +0 -110
  128. data/test/session_test/callbacks_test.rb +0 -42
  129. data/test/session_test/cookies_test.rb +0 -226
  130. data/test/session_test/credentials_test.rb +0 -0
  131. data/test/session_test/existence_test.rb +0 -88
  132. data/test/session_test/foundation_test.rb +0 -24
  133. data/test/session_test/http_auth_test.rb +0 -60
  134. data/test/session_test/id_test.rb +0 -19
  135. data/test/session_test/klass_test.rb +0 -42
  136. data/test/session_test/magic_columns_test.rb +0 -62
  137. data/test/session_test/magic_states_test.rb +0 -60
  138. data/test/session_test/params_test.rb +0 -61
  139. data/test/session_test/password_test.rb +0 -107
  140. data/test/session_test/perishability_test.rb +0 -17
  141. data/test/session_test/persistence_test.rb +0 -35
  142. data/test/session_test/scopes_test.rb +0 -68
  143. data/test/session_test/session_test.rb +0 -80
  144. data/test/session_test/timeout_test.rb +0 -84
  145. data/test/session_test/unauthorized_record_test.rb +0 -15
  146. data/test/session_test/validation_test.rb +0 -25
  147. data/test/test_helper.rb +0 -272
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- class IdTest < ActiveSupport::TestCase
7
- def test_credentials
8
- session = UserSession.new
9
- session.credentials = [:my_id]
10
- assert_equal :my_id, session.id
11
- end
12
-
13
- def test_id
14
- session = UserSession.new
15
- session.id = :my_id
16
- assert_equal :my_id, session.id
17
- end
18
- end
19
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- module KlassTest
7
- class ConfigTest < ActiveSupport::TestCase
8
- def test_authenticate_with
9
- UserSession.authenticate_with = Employee
10
- assert_equal "Employee", UserSession.klass_name
11
- assert_equal Employee, UserSession.klass
12
-
13
- UserSession.authenticate_with User
14
- assert_equal "User", UserSession.klass_name
15
- assert_equal User, UserSession.klass
16
- end
17
-
18
- def test_klass
19
- assert_equal User, UserSession.klass
20
- end
21
-
22
- def test_klass_name
23
- assert_equal "User", UserSession.klass_name
24
- end
25
-
26
- def test_klass_name_uses_custom_name
27
- assert_equal "User", UserSession.klass_name
28
- assert_equal "BackOfficeUser", BackOfficeUserSession.klass_name
29
- end
30
- end
31
-
32
- class InstanceMethodsTest < ActiveSupport::TestCase
33
- def test_record_method
34
- ben = users(:ben)
35
- set_session_for(ben)
36
- session = UserSession.find
37
- assert_equal ben, session.record
38
- assert_equal ben, session.user
39
- end
40
- end
41
- end
42
- end
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- module MagicColumnsTest
7
- class ConfigTest < ActiveSupport::TestCase
8
- def test_last_request_at_threshold_config
9
- UserSession.last_request_at_threshold = 2.minutes
10
- assert_equal 2.minutes, UserSession.last_request_at_threshold
11
-
12
- UserSession.last_request_at_threshold 0
13
- assert_equal 0, UserSession.last_request_at_threshold
14
- end
15
- end
16
-
17
- class InstanceMethodsTest < ActiveSupport::TestCase
18
- def test_after_persisting_set_last_request_at
19
- ben = users(:ben)
20
- refute UserSession.create(ben).new_session?
21
-
22
- set_cookie_for(ben)
23
- old_last_request_at = ben.last_request_at
24
- assert UserSession.find
25
- ben.reload
26
- assert ben.last_request_at != old_last_request_at
27
- end
28
-
29
- def test_valid_increase_failed_login_count
30
- ben = users(:ben)
31
- old_failed_login_count = ben.failed_login_count
32
- session = UserSession.create(login: ben.login, password: "wrong")
33
- assert session.new_session?
34
- ben.reload
35
- assert_equal old_failed_login_count + 1, ben.failed_login_count
36
- end
37
-
38
- def test_before_save_update_info
39
- aaron = users(:aaron)
40
-
41
- # increase failed login count
42
- session = UserSession.create(login: aaron.login, password: "wrong")
43
- assert session.new_session?
44
- aaron.reload
45
- assert_equal 0, aaron.login_count
46
- assert_nil aaron.current_login_at
47
- assert_nil aaron.current_login_ip
48
-
49
- session = UserSession.create(login: aaron.login, password: "aaronrocks")
50
- assert session.valid?
51
-
52
- aaron.reload
53
- assert_equal 1, aaron.login_count
54
- assert_equal 0, aaron.failed_login_count
55
- assert_nil aaron.last_login_at
56
- assert_not_nil aaron.current_login_at
57
- assert_nil aaron.last_login_ip
58
- assert_equal "1.1.1.1", aaron.current_login_ip
59
- end
60
- end
61
- end
62
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- module SessionTest
7
- class ConfigTest < ActiveSupport::TestCase
8
- def test_disable_magic_states_config
9
- UserSession.disable_magic_states = true
10
- assert_equal true, UserSession.disable_magic_states
11
-
12
- UserSession.disable_magic_states false
13
- assert_equal false, UserSession.disable_magic_states
14
- end
15
- end
16
-
17
- class InstanceMethodsTest < ActiveSupport::TestCase
18
- def test_disabling_magic_states
19
- UserSession.disable_magic_states = true
20
- ben = users(:ben)
21
- ben.update_attribute(:active, false)
22
- refute UserSession.create(ben).new_session?
23
- UserSession.disable_magic_states = false
24
- end
25
-
26
- def test_validate_validate_magic_states_active
27
- session = UserSession.new
28
- ben = users(:ben)
29
- session.unauthorized_record = ben
30
- assert session.valid?
31
-
32
- ben.update_attribute(:active, false)
33
- refute session.valid?
34
- refute session.errors[:base].empty?
35
- end
36
-
37
- def test_validate_validate_magic_states_approved
38
- session = UserSession.new
39
- ben = users(:ben)
40
- session.unauthorized_record = ben
41
- assert session.valid?
42
-
43
- ben.update_attribute(:approved, false)
44
- refute session.valid?
45
- refute session.errors[:base].empty?
46
- end
47
-
48
- def test_validate_validate_magic_states_confirmed
49
- session = UserSession.new
50
- ben = users(:ben)
51
- session.unauthorized_record = ben
52
- assert session.valid?
53
-
54
- ben.update_attribute(:confirmed, false)
55
- refute session.valid?
56
- refute session.errors[:base].empty?
57
- end
58
- end
59
- end
60
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- module ParamsTest
7
- class ConfigTest < ActiveSupport::TestCase
8
- def test_params_key
9
- UserSession.params_key = "my_params_key"
10
- assert_equal "my_params_key", UserSession.params_key
11
-
12
- UserSession.params_key "user_credentials"
13
- assert_equal "user_credentials", UserSession.params_key
14
- end
15
-
16
- def test_single_access_allowed_request_types
17
- UserSession.single_access_allowed_request_types = ["my request type"]
18
- assert_equal ["my request type"], UserSession.single_access_allowed_request_types
19
- UserSession.single_access_allowed_request_types(
20
- ["application/rss+xml", "application/atom+xml"]
21
- )
22
- assert_equal(
23
- ["application/rss+xml", "application/atom+xml"],
24
- UserSession.single_access_allowed_request_types
25
- )
26
- end
27
- end
28
-
29
- class InstanceMethodsTest < ActiveSupport::TestCase
30
- def test_persist_persist_by_params
31
- ben = users(:ben)
32
- session = UserSession.new
33
-
34
- refute session.persisting?
35
- set_params_for(ben)
36
-
37
- refute session.persisting?
38
- refute session.unauthorized_record
39
- refute session.record
40
- assert_nil controller.session["user_credentials"]
41
-
42
- set_request_content_type("text/plain")
43
- refute session.persisting?
44
- refute session.unauthorized_record
45
- assert_nil controller.session["user_credentials"]
46
-
47
- set_request_content_type("application/atom+xml")
48
- assert session.persisting?
49
- assert_equal ben, session.record
50
-
51
- # should not persist since this is single access
52
- assert_nil controller.session["user_credentials"]
53
-
54
- set_request_content_type("application/rss+xml")
55
- assert session.persisting?
56
- assert_equal ben, session.unauthorized_record
57
- assert_nil controller.session["user_credentials"]
58
- end
59
- end
60
- end
61
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- module PasswordTest
7
- class ConfigTest < ActiveSupport::TestCase
8
- def test_find_by_login_method
9
- UserSession.find_by_login_method = "my_login_method"
10
- assert_equal "my_login_method", UserSession.find_by_login_method
11
-
12
- UserSession.find_by_login_method "find_by_login"
13
- assert_equal "find_by_login", UserSession.find_by_login_method
14
- end
15
-
16
- def test_verify_password_method
17
- UserSession.verify_password_method = "my_login_method"
18
- assert_equal "my_login_method", UserSession.verify_password_method
19
-
20
- UserSession.verify_password_method "valid_password?"
21
- assert_equal "valid_password?", UserSession.verify_password_method
22
- end
23
-
24
- def test_generalize_credentials_error_mesages_set_to_false
25
- UserSession.generalize_credentials_error_messages false
26
- refute UserSession.generalize_credentials_error_messages
27
- session = UserSession.create(login: users(:ben).login, password: "invalud-password")
28
- assert_equal ["Password is not valid"], session.errors.full_messages
29
- end
30
-
31
- def test_generalize_credentials_error_messages_set_to_true
32
- UserSession.generalize_credentials_error_messages true
33
- assert UserSession.generalize_credentials_error_messages
34
- session = UserSession.create(login: users(:ben).login, password: "invalud-password")
35
- assert_equal ["Login/Password combination is not valid"], session.errors.full_messages
36
- end
37
-
38
- def test_generalize_credentials_error_messages_set_to_string
39
- UserSession.generalize_credentials_error_messages = "Custom Error Message"
40
- assert UserSession.generalize_credentials_error_messages
41
- session = UserSession.create(login: users(:ben).login, password: "invalud-password")
42
- assert_equal ["Custom Error Message"], session.errors.full_messages
43
- end
44
-
45
- def test_login_field
46
- UserSession.configured_password_methods = false
47
- UserSession.login_field = :saweet
48
- assert_equal :saweet, UserSession.login_field
49
- session = UserSession.new
50
- assert session.respond_to?(:saweet)
51
-
52
- UserSession.login_field :login
53
- assert_equal :login, UserSession.login_field
54
- session = UserSession.new
55
- assert session.respond_to?(:login)
56
- end
57
-
58
- def test_password_field
59
- UserSession.configured_password_methods = false
60
- UserSession.password_field = :saweet
61
- assert_equal :saweet, UserSession.password_field
62
- session = UserSession.new
63
- assert session.respond_to?(:saweet)
64
-
65
- UserSession.password_field :password
66
- assert_equal :password, UserSession.password_field
67
- session = UserSession.new
68
- assert session.respond_to?(:password)
69
- end
70
- end
71
-
72
- class InstanceMethodsTest < ActiveSupport::TestCase
73
- def test_init
74
- session = UserSession.new
75
- assert session.respond_to?(:login)
76
- assert session.respond_to?(:login=)
77
- assert session.respond_to?(:password)
78
- assert session.respond_to?(:password=)
79
- assert session.respond_to?(:protected_password, true)
80
- end
81
-
82
- def test_credentials
83
- session = UserSession.new
84
- session.credentials = { login: "login", password: "pass" }
85
- assert_equal "login", session.login
86
- assert_nil session.password
87
- assert_equal "pass", session.send(:protected_password)
88
- assert_equal({ password: "<protected>", login: "login" }, session.credentials)
89
- end
90
-
91
- def test_credentials_are_params_safe
92
- session = UserSession.new
93
- assert_nothing_raised { session.credentials = { hacker_method: "error!" } }
94
- end
95
-
96
- def test_save_with_credentials
97
- aaron = users(:aaron)
98
- session = UserSession.new(login: aaron.login, password: "aaronrocks")
99
- assert session.save
100
- refute session.new_session?
101
- assert_equal 1, session.record.login_count
102
- assert Time.now >= session.record.current_login_at
103
- assert_equal "1.1.1.1", session.record.current_login_ip
104
- end
105
- end
106
- end
107
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- class PerishabilityTest < ActiveSupport::TestCase
7
- def test_after_save
8
- ben = users(:ben)
9
- old_perishable_token = ben.perishable_token
10
- UserSession.create(ben)
11
- assert_not_equal old_perishable_token, ben.perishable_token
12
-
13
- drew = employees(:drew)
14
- refute UserSession.create(drew).new_session?
15
- end
16
- end
17
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- class PersistenceTest < ActiveSupport::TestCase
7
- def test_find
8
- aaron = users(:aaron)
9
- refute UserSession.find
10
- UserSession.allow_http_basic_auth = true
11
- http_basic_auth_for(aaron) { assert UserSession.find }
12
- set_cookie_for(aaron)
13
- assert UserSession.find
14
- unset_cookie
15
- set_session_for(aaron)
16
- session = UserSession.find
17
- assert session
18
- end
19
-
20
- def test_persisting
21
- # tested thoroughly in test_find
22
- end
23
-
24
- def test_should_set_remember_me_on_the_next_request
25
- aaron = users(:aaron)
26
- session = UserSession.new(aaron)
27
- session.remember_me = true
28
- refute UserSession.remember_me
29
- assert session.save
30
- assert session.remember_me?
31
- session = UserSession.find(aaron)
32
- assert session.remember_me?
33
- end
34
- end
35
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module SessionTest
6
- class ScopesTest < ActiveSupport::TestCase
7
- def test_scope_method
8
- assert_nil Authlogic::Session::Base.scope
9
-
10
- thread1 = Thread.new do
11
- scope = { id: :scope1 }
12
- Authlogic::Session::Base.send(:scope=, scope)
13
- assert_equal scope, Authlogic::Session::Base.scope
14
- end
15
- thread1.join
16
-
17
- assert_nil Authlogic::Session::Base.scope
18
-
19
- thread2 = Thread.new do
20
- scope = { id: :scope2 }
21
- Authlogic::Session::Base.send(:scope=, scope)
22
- assert_equal scope, Authlogic::Session::Base.scope
23
- end
24
- thread2.join
25
-
26
- assert_nil Authlogic::Session::Base.scope
27
- end
28
-
29
- def test_with_scope_method
30
- assert_raise(ArgumentError) { UserSession.with_scope }
31
-
32
- UserSession.with_scope(find_options: { conditions: "awesome = 1" }, id: "some_id") do
33
- assert_equal(
34
- { find_options: { conditions: "awesome = 1" }, id: "some_id" },
35
- UserSession.scope
36
- )
37
- end
38
-
39
- assert_nil UserSession.scope
40
- end
41
-
42
- def test_initialize
43
- UserSession.with_scope(find_options: { conditions: "awesome = 1" }, id: "some_id") do
44
- session = UserSession.new
45
- assert_equal(
46
- { find_options: { conditions: "awesome = 1" }, id: "some_id" },
47
- session.scope
48
- )
49
- session.id = :another_id
50
- assert_equal "another_id_some_id_test", session.send(:build_key, "test")
51
- end
52
- end
53
-
54
- def test_search_for_record_with_scopes
55
- binary_logic = companies(:binary_logic)
56
- ben = users(:ben)
57
- zack = users(:zack)
58
-
59
- session = UserSession.new
60
- assert_equal zack, session.send(:search_for_record, "find_by_login", zack.login)
61
-
62
- session.scope = { find_options: { conditions: ["company_id = ?", binary_logic.id] } }
63
- assert_nil session.send(:search_for_record, "find_by_login", zack.login)
64
-
65
- assert_equal ben, session.send(:search_for_record, "find_by_login", ben.login)
66
- end
67
- end
68
- end