Sha256: 2726595abe7713ec574db1d173326862cc4f90014ea0394cab092bfffafc26bf
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
require 'webrat' module ViewExampleGroupBehaviour include Webrat::Matchers include Rspec::Matchers class ViewExampleController < ActionController::Base attr_accessor :controller_path end def view @view ||= begin view = ActionView::Base.new(ActionController::Base.view_paths, assigns, controller) view.extend(Module.new { def protect_against_forgery?; end }) view end end def assign(name, value) assigns[name] = value end def assigns @assigns ||= {} end def response @response end def file_to_render running_example.example_group.description end def controller_path parts = file_to_render.split('/') parts.pop parts.join('/') end def render @response = view.render :file => file_to_render end def method_missing(selector, *args) if Rails.application.routes.named_routes.helpers.include?(selector) controller.__send__(selector, *args) else super end end Rspec.configure do |c| c.include self, :example_group => { :file_path => /\bspec\/views\// } end private def controller @controller ||= begin controller = ViewExampleController.new controller.controller_path = controller_path controller.request = ActionDispatch::Request.new(Rack::MockRequest.env_for("/url")) controller end end end
Version data entries
3 entries across 3 versions & 1 rubygems