Upgraded Rails and RSpec
[monkeycharger.git] / vendor / plugins / rspec / rspec_on_rails / lib / spec / rails / example / behaviour / functional_example.rb
blob9312e09a2f490e3712d612b2ebfba8c919375289
1 module Spec
2   module Rails
3     module Example
4       class FunctionalExample < RailsExample
5         include ActionController::TestProcess
6         include ActionController::Assertions
8         attr_reader :request, :response
9         before(:each) do
10           @controller_class = Object.path2class @controller_class_name
11           raise "Can't determine controller class for #{@controller_class_name}" if @controller_class.nil?
13           @controller = @controller_class.new
15           @request = ActionController::TestRequest.new
16           @response = ActionController::TestResponse.new
17         end
19         def params
20           request.parameters
21         end
23         def flash
24           response.flash
25         end
27         def session
28           request.session
29         end
31         # :call-seq:
32         #   assigns()
33         #
34         # Hash of instance variables to values that are made available to views.
35         # == Examples
36         #
37         #   #in thing_controller.rb
38         #   def new
39         #     @thing = Thing.new
40         #   end
41         #
42         #   #in thing_controller_spec
43         #   get 'new'
44         #   assigns[:registration].should == Thing.new
45         #--
46         # NOTE - Even though docs say only use assigns[:key] format, but allowing assigns(:key)
47         # in order to avoid breaking old specs.
48         #++
49         def assigns(key = nil)
50           if key.nil?
51             @controller.assigns
52             _controller_ivar_proxy
53           else
54             @controller.assigns[key]
55             _controller_ivar_proxy[key]
56           end
57         end
59         protected
60         def _controller_ivar_proxy
61           @controller_ivar_proxy ||= IvarProxy.new @controller
62         end
63       end
64     end
65   end
66 end