aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/abstract_unit.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-08-24 12:06:22 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-08-24 12:06:41 -0700
commit337684fa28a3e8d55874d5740585710d0fa99ead (patch)
treeb431400ddd5dac554956d7aa5db2b763a8b38acb /actionpack/test/abstract_unit.rb
parent518ae9f055cd31c0f00c221d56bf0d44733cb782 (diff)
downloadrails-337684fa28a3e8d55874d5740585710d0fa99ead.tar.gz
rails-337684fa28a3e8d55874d5740585710d0fa99ead.tar.bz2
rails-337684fa28a3e8d55874d5740585710d0fa99ead.zip
use a custom request class to determine the controller class
controller class resolution has been moved to the request object, so we should override that method instead of relying on the RouteSet to generate the controller class.
Diffstat (limited to 'actionpack/test/abstract_unit.rb')
-rw-r--r--actionpack/test/abstract_unit.rb44
1 files changed, 21 insertions, 23 deletions
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index 7ea4249e7e..c8f4c68ed0 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -323,39 +323,37 @@ module RoutingTestHelpers
end
class TestSet < ActionDispatch::Routing::RouteSet
- attr_reader :strict
-
- def initialize(block, strict = false)
- @block = block
- @strict = strict
- super()
- end
-
- class Dispatcher < ActionDispatch::Routing::RouteSet::Dispatcher
- def initialize(defaults, set, block)
- super(defaults)
+ class Request < DelegateClass(ActionDispatch::Request)
+ def initialize(target, helpers, block, strict)
+ super(target)
+ @helpers = helpers
@block = block
- @set = set
- end
-
- def controller(params, default_controller=true)
- super(params, @set.strict)
+ @strict = strict
end
- def controller_reference(controller_param)
+ def controller_class
+ helpers = @helpers
block = @block
- set = @set
- super if @set.strict
- Class.new(ActionController::Base) {
- include set.url_helpers
+ Class.new(@strict ? super : ActionController::Base) {
+ include helpers
define_method(:process) { |name| block.call(self) }
def to_a; [200, {}, []]; end
}
end
end
- def dispatcher defaults
- TestSet::Dispatcher.new defaults, self, @block
+ attr_reader :strict
+
+ def initialize(block, strict = false)
+ @block = block
+ @strict = strict
+ super()
+ end
+
+ private
+
+ def make_request(env)
+ Request.new super, url_helpers, @block, strict
end
end
end