public
Rubygem
Description: RSpec extension library for Ruby on Rails
Homepage:
Clone URL: git://github.com/dchelimsky/rspec-rails.git
give helper object access to session, request, params, flash
dchelimsky (author)
Tue Jun 10 22:33:36 -0700 2008
commit  40a0916325dbe9a1631849146d078e330fca71f2
tree    71665014fcb9e7080081b4c3d960f2bea0154ba8
parent  a46a78d752a68814851db5111dfa957886ef9da8
...
25
26
27
28
 
29
30
31
...
25
26
27
 
28
29
30
31
0
@@ -25,7 +25,7 @@ module Spec
0
         end
0
 
0
         def session
0
-          @response.session
0
+          response.session
0
         end
0
 
0
         # :call-seq:
...
30
31
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
34
35
...
81
82
83
84
 
85
86
87
...
93
94
95
96
97
 
 
 
 
 
98
99
100
...
122
123
124
125
 
126
127
128
...
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
...
104
105
106
 
107
108
109
110
...
116
117
118
 
 
119
120
121
122
123
124
125
126
...
148
149
150
 
151
152
153
154
0
@@ -30,6 +30,29 @@ module Spec
0
           def protect_against_forgery?
0
             false
0
           end
0
+          
0
+          def session=(session)
0
+            @session = session
0
+          end
0
+          
0
+          def request=(request)
0
+            @request = request
0
+          end
0
+          
0
+          def flash=(flash)
0
+            @flash = flash
0
+          end
0
+          
0
+          def params=(params)
0
+            @params = params
0
+          end
0
+          
0
+          def controller=(controller)
0
+            @controller = controller
0
+          end
0
+          
0
+          private
0
+            attr_reader :session, :request, :flash, :params, :controller
0
         end
0
         
0
         class << self
0
@@ -81,7 +104,7 @@ module Spec
0
         end
0
 
0
         before(:all) do
0
-          @controller_class_name = 'Spec::Rails::Example::HelperBehaviourController'
0
+          @controller_class_name = 'Spec::Rails::Example::HelperExampleGroupController'
0
         end
0
 
0
         before(:each) do
0
@@ -93,8 +116,11 @@ module Spec
0
 
0
           ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
0
           
0
-          helper_controller = @controller
0
-          helper.instance_eval { @controller = helper_controller }
0
+          helper.session = session
0
+          helper.request = @request
0
+          helper.flash = flash
0
+          helper.params = params
0
+          helper.controller = @controller
0
         end
0
 
0
         def flash
0
@@ -122,7 +148,7 @@ module Spec
0
 
0
       end
0
 
0
-      class HelperBehaviourController < ApplicationController #:nodoc:
0
+      class HelperExampleGroupController < ApplicationController #:nodoc:
0
         attr_accessor :request, :url
0
 
0
         # Re-raise errors
...
36
37
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
40
41
...
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
0
@@ -36,6 +36,30 @@ module Spec
0
           lambda { non_existent_helper_method }.should raise_error(NameError)
0
           lambda { helper.non_existent_helper_method }.should raise_error(NameError)
0
         end
0
+
0
+        it "should have access to session" do
0
+          session[:foo] = 'bar'
0
+          session_foo.should == 'bar'
0
+          helper.session_foo.should == 'bar'
0
+        end
0
+        
0
+        it "should have access to params" do
0
+          params[:foo] = 'bar'
0
+          params_foo.should == 'bar'
0
+          helper.params_foo.should == 'bar'
0
+        end
0
+        
0
+        it "should have access to request" do
0
+          request.stub!(:thing).and_return('bar')
0
+          request_thing.should == 'bar'
0
+          helper.request_thing.should == 'bar'
0
+        end
0
+        
0
+        it "should have access to flash" do
0
+          flash[:thing] = 'camera'
0
+          flash_thing.should == 'camera'
0
+          helper.flash_thing.should == 'camera'
0
+        end
0
       end
0
 
0
 
...
15
16
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
...
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
0
@@ -15,4 +15,20 @@ module ExplicitHelper
0
   def named_path
0
     rspec_on_rails_specs_path
0
   end
0
+  
0
+  def params_foo
0
+    params[:foo]
0
+  end
0
+  
0
+  def session_foo
0
+    session[:foo]
0
+  end
0
+  
0
+  def request_thing
0
+    request.thing
0
+  end
0
+  
0
+  def flash_thing
0
+    flash[:thing]
0
+  end
0
 end

Comments