# File lib/action_dispatch/testing/assertions/routing.rb, line 147 def with_routing old_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new old_controller, @controller = @controller, @controller.clone if @controller _routes = @routes # Unfortunately, there is currently an abstraction leak between AC::Base # and AV::Base which requires having the URL helpers in both AC and AV. # To do this safely at runtime for tests, we need to bump up the helper serial # to that the old AV subclass isn't cached. # # TODO: Make this unnecessary if @controller @controller.singleton_class.send(:include, _routes.url_helpers) @controller.view_context_class = Class.new(@controller.view_context_class) do include _routes.url_helpers end end yield @routes ensure @routes = old_routes if @controller @controller = old_controller end end