Module: Spec::Rails::Example::ControllerExampleGroup::ControllerInstanceMethods

Includes:
RenderObserver
Defined in:
lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods included from RenderObserver

#register_verify_after_each, #render_proxy, #should_not_receive, #should_receive, #stub, #stub!, #unregister_verify_after_each, #verify_rendered, #verify_rendered_proc

Instance Method Details

#default_template(action_name = self.action_name) ⇒ Object

Rails 2.3



235
236
237
238
239
240
241
242
243
244
245
# File 'lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb', line 235

def default_template(action_name = self.action_name)
  if integrate_views?
    super
  else
    begin
      super
    rescue ActionView::MissingTemplate
      "#{self.class.name.sub(/Controller$/,'').underscore}/#{action_name}"
    end
  end
end

#integrate_views!Object



253
254
255
# File 'lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb', line 253

def integrate_views!
  @integrate_views = true
end

#render(options = nil, extra_options = {}, &block) ⇒ Object

render(options = nil, extra_options={}, &block)

This gets added to the controller’s singleton meta class, allowing Controller Examples to run in two modes, freely switching from example group to example group.



211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb', line 211

def render(options=nil, extra_options={}, &block)
  unless block_given?
    unless integrate_views?
      @template.extend TemplateIsolationExtensions
    end
  end

  if matching_message_expectation_exists(options)
    render_proxy.render(options, &block)
    @performed_render = true
  else
    if matching_stub_exists(options)
      @performed_render = true
    else
      if ::Rails::VERSION::STRING > '2.1'
        super(options, extra_options, &block)
      else
        super(options, &block)
      end
    end
  end
end

#response(&block) ⇒ Object



247
248
249
250
251
# File 'lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb', line 247

def response(&block)
  # NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
  @update = block
  super
end