Sha256: 84a7ae502883a0bed66f9366252aa21e280f18ef4c4ef98f596c9cbe3f6e0327

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

module Scrivito
  module CmsTestRequest
    def for_cms_object(test_obj=nil)
      # prepare the env as if the given obj was loaded by CmsEnv
      env[Scrivito::CmsEnv::OBJ_ENV_KEY] = test_obj if test_obj
      class << self
        # This special behaviour is necessary for testing controllers that descend from DefaultCmsController.
        # These controllers do not have explicit routes by default.
        # Instead, they are reached via the CmsDispatchController.
        # The TestRequest must therefore use CmsDispatchController as a fallback route.
        def assign_parameters(routes, controller_path, action, parameters = {})
          super(routes, controller_path, action, parameters)
        rescue ActionController::RoutingError, AbstractController::ActionNotFound => e
          begin
            super(routes, "scrivito/cms_dispatch", action, parameters)
          rescue ActionController::RoutingError, AbstractController::ActionNotFound
            raise e
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
scrivito_sdk-0.18.1 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.18.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.17.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.16.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.15.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.14.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.13.0 lib/scrivito/cms_test_request.rb
scrivito_sdk-0.12.0 lib/scrivito/cms_test_request.rb