Skip to content

Commit 7345d23

Browse files
committed
Update session/persistence test
1 parent 2f0c9e2 commit 7345d23

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

lib/authlogic/test_case/mock_api_controller.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def params
2727
end
2828

2929
def request
30-
@request ||= MockRequest.new(controller)
30+
@request ||= MockRequest.new(self)
3131
end
3232

3333
def request_content_type
@@ -37,6 +37,16 @@ def request_content_type
3737
def session
3838
@session ||= {}
3939
end
40+
41+
# If method is defined, it causes below behavior...
42+
# controller = Authlogic::ControllerAdapters::RailsAdapter.new(
43+
# Authlogic::TestCase::MockAPIController.new
44+
# )
45+
# controller.responds_to_single_access_allowed? #=> true
46+
# controller.single_access_allowed?
47+
# #=> NoMethodError: undefined method `single_access_allowed?' for nil:NilClass
48+
#
49+
undef :single_access_allowed?
4050
end
4151
end
4252
end

lib/authlogic/test_case/mock_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def params
3939
end
4040

4141
def request
42-
@request ||= MockRequest.new(controller)
42+
@request ||= MockRequest.new(self)
4343
end
4444

4545
def request_content_type

lib/authlogic/test_case/mock_request.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ def initialize(controller)
99
self.controller = controller
1010
end
1111

12+
def format
13+
controller.request_content_type if controller.respond_to? :request_content_type
14+
end
15+
1216
def ip
1317
controller&.respond_to?(:env) &&
1418
controller.env.is_a?(Hash) &&

test/session_test/persistence_test.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
require "test_helper"
4+
require "authlogic/controller_adapters/rails_adapter"
45

56
module SessionTest
67
class PersistenceTest < ActiveSupport::TestCase
@@ -17,6 +18,20 @@ def test_find
1718
assert session
1819
end
1920

21+
def test_find_in_api
22+
@controller = Authlogic::TestCase::MockAPIController.new
23+
UserSession.controller =
24+
Authlogic::ControllerAdapters::RailsAdapter.new(@controller)
25+
26+
aaron = users(:aaron)
27+
refute UserSession.find
28+
29+
UserSession.single_access_allowed_request_types = ["application/json"]
30+
set_params_for(aaron)
31+
set_request_content_type("application/json")
32+
assert UserSession.find
33+
end
34+
2035
def test_persisting
2136
# tested thoroughly in test_find
2237
end

0 commit comments

Comments
 (0)