authlogic 4.4.2 → 5.0.3

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 (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