Class Spec::Rails::Example::FunctionalExampleGroup
In: lib/spec/rails/example/functional_example_group.rb
Parent: Spec::Rails::Example::RailsExampleGroup

Methods

assigns   cookies   flash   orig_assigns   params   session  

Included Modules

ActionController::TestProcess ActionController::Assertions

Attributes

request  [R] 
response  [R] 

Public Instance methods

Hash of instance variables to values that are made available to views. == Examples

  #in thing_controller.rb
  def new
    @thing = Thing.new
  end

  #in thing_controller_spec
  get 'new'
  assigns[:registration].should == Thing.new

Overrides the cookies() method in ActionController::TestResponseBehaviour, returning a proxy that accesses the requests cookies when setting a cookie and the responses cookies when reading one. This allows you to set and read cookies in examples using the same API with which you set and read them in controllers.

Examples (Rails >= 1.2.6)

  cookies[:user_id] = '1234'
  get :index
  assigns[:user].id.should == '1234'

  post :login
  cookies[:login].expires.should == 1.week.from_now

Examples (Rails 2.0 > 2.2)

  cookies[:user_id] = {:value => '1234', :expires => 1.minute.ago}
  get :index
  response.should be_redirect

Examples (Rails 2.3)

Rails 2.3 changes the way cookies are made available to functional tests (and therefore rspec controller specs), only making single values available with no access to other aspects of the cookie. This is backwards-incompatible, so you have to change your examples to look like this:

  cookies[:foo] = 'bar'
  get :index
  cookies[:foo].should == 'bar'
orig_assigns(key = nil)

Alias for assigns

[Validate]