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