Sha256: 3283e4646f951d043263b3f3f314b614c0c3a5e5c73e41d812c7a75320a65322

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module RailsConnector
  module CmsTestRequest
    def for_cms_object(test_obj=nil)
      # prepare the env as if the given obj was loaded by CmsEnv
      env[RailsConnector::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::UrlGenerationError, ActionController::RoutingError, AbstractController::ActionNotFound => e
          begin
            super(routes, "rails_connector/cms_dispatch", action, parameters)
          rescue ActionController::RoutingError, AbstractController::ActionNotFound
            raise e
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
infopark_fiona_connector-7.0.1 lib/rails_connector/cms_test_request.rb
infopark_fiona_connector-7.0.1.beta2 lib/rails_connector/cms_test_request.rb