lib/scrivito/test_request.rb in scrivito_sdk-1.6.1 vs lib/scrivito/test_request.rb in scrivito_sdk-1.7.0.rc1
- old
+ new
@@ -24,18 +24,36 @@
# get :index
# assert_response :success
# end
# end
#
- def for_scrivito_obj(test_obj = nil)
+ def for_scrivito_obj(test_obj = nil, routes = nil)
env[Scrivito::CmsEnv::OBJ_ENV_KEY] = test_obj if test_obj
+ unless Scrivito::LegacySwitch.rails4?
+ # If +assign_parameters+ is monkey patched, then +generate_extras+ also needs to
+ # be monkey patched. See [1] for details.
+ #
+ # [1] https://github.com/rails/rails/commit/f6232a518bb7377948f339d2b0b25dc607e1e42a
+ class << (routes || Rails.application.routes)
+ def generate_extras(options, recall={})
+ super options, recall
+ rescue *ROUTING_ERRORS => e
+ begin
+ super options.merge(controller: 'scrivito/cms_dispatch'), recall
+ rescue *ROUTING_ERRORS
+ raise e
+ end
+ end
+ end
+ end
+
class << self
- def assign_parameters(routes, controller_path, action, parameters = {})
- super routes, controller_path, action, parameters
+ def assign_parameters(routes, controller_path, *args)
+ super routes, controller_path, *args
rescue *ROUTING_ERRORS => e
begin
- super routes, 'scrivito/cms_dispatch', action, parameters
+ super routes, 'scrivito/cms_dispatch', *args
rescue *ROUTING_ERRORS
raise e
end
end
end