mcmire-rspec-rails 1.1.99.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. data/History.txt +174 -0
  2. data/License.txt +33 -0
  3. data/Manifest.txt +164 -0
  4. data/README.txt +45 -0
  5. data/Rakefile +63 -0
  6. data/TODO.txt +1 -0
  7. data/Upgrade.markdown +52 -0
  8. data/features/step_definitions/people.rb +6 -0
  9. data/features/support/env.rb +13 -0
  10. data/features/transactions/transactions_should_rollback.feature +16 -0
  11. data/generators/rspec/CHANGES +1 -0
  12. data/generators/rspec/rspec_generator.rb +37 -0
  13. data/generators/rspec/templates/previous_failures.txt +0 -0
  14. data/generators/rspec/templates/rcov.opts +2 -0
  15. data/generators/rspec/templates/rspec.rake +177 -0
  16. data/generators/rspec/templates/script/autospec +5 -0
  17. data/generators/rspec/templates/script/spec +4 -0
  18. data/generators/rspec/templates/script/spec_server +37 -0
  19. data/generators/rspec/templates/spec.opts +4 -0
  20. data/generators/rspec/templates/spec_helper.rb +47 -0
  21. data/generators/rspec_controller/USAGE +33 -0
  22. data/generators/rspec_controller/rspec_controller_generator.rb +45 -0
  23. data/generators/rspec_controller/templates/controller_spec.rb +25 -0
  24. data/generators/rspec_controller/templates/helper_spec.rb +11 -0
  25. data/generators/rspec_controller/templates/view_spec.rb +12 -0
  26. data/generators/rspec_default_values.rb +19 -0
  27. data/generators/rspec_model/USAGE +18 -0
  28. data/generators/rspec_model/rspec_model_generator.rb +35 -0
  29. data/generators/rspec_model/templates/model_spec.rb +15 -0
  30. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +150 -0
  31. data/generators/rspec_scaffold/templates/controller_spec.rb +171 -0
  32. data/generators/rspec_scaffold/templates/edit_erb_spec.rb +27 -0
  33. data/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  34. data/generators/rspec_scaffold/templates/index_erb_spec.rb +28 -0
  35. data/generators/rspec_scaffold/templates/new_erb_spec.rb +27 -0
  36. data/generators/rspec_scaffold/templates/routing_spec.rb +63 -0
  37. data/generators/rspec_scaffold/templates/show_erb_spec.rb +23 -0
  38. data/init.rb +9 -0
  39. data/lib/autotest/discover.rb +1 -0
  40. data/lib/autotest/rails_rspec.rb +76 -0
  41. data/lib/spec/rails.rb +37 -0
  42. data/lib/spec/rails/example.rb +53 -0
  43. data/lib/spec/rails/example/assigns_hash_proxy.rb +39 -0
  44. data/lib/spec/rails/example/controller_example_group.rb +242 -0
  45. data/lib/spec/rails/example/cookies_proxy.rb +29 -0
  46. data/lib/spec/rails/example/functional_example_group.rb +84 -0
  47. data/lib/spec/rails/example/helper_example_group.rb +167 -0
  48. data/lib/spec/rails/example/model_example_group.rb +14 -0
  49. data/lib/spec/rails/example/render_observer.rb +67 -0
  50. data/lib/spec/rails/example/routing_helpers.rb +68 -0
  51. data/lib/spec/rails/example/view_example_group.rb +186 -0
  52. data/lib/spec/rails/extensions.rb +15 -0
  53. data/lib/spec/rails/extensions/action_controller/rescue.rb +42 -0
  54. data/lib/spec/rails/extensions/action_controller/test_case.rb +16 -0
  55. data/lib/spec/rails/extensions/action_controller/test_response.rb +21 -0
  56. data/lib/spec/rails/extensions/action_view/base.rb +33 -0
  57. data/lib/spec/rails/extensions/active_record/base.rb +43 -0
  58. data/lib/spec/rails/extensions/active_support/test_case.rb +7 -0
  59. data/lib/spec/rails/extensions/spec/matchers/have.rb +23 -0
  60. data/lib/spec/rails/extensions/spec/runner/configuration.rb +48 -0
  61. data/lib/spec/rails/interop/testcase.rb +14 -0
  62. data/lib/spec/rails/matchers.rb +40 -0
  63. data/lib/spec/rails/matchers/ar_be_valid.rb +44 -0
  64. data/lib/spec/rails/matchers/assert_select.rb +131 -0
  65. data/lib/spec/rails/matchers/change.rb +11 -0
  66. data/lib/spec/rails/matchers/have_text.rb +57 -0
  67. data/lib/spec/rails/matchers/include_text.rb +54 -0
  68. data/lib/spec/rails/matchers/redirect_to.rb +126 -0
  69. data/lib/spec/rails/matchers/render_template.rb +114 -0
  70. data/lib/spec/rails/mocks.rb +135 -0
  71. data/lib/spec/rails/spec_server.rb +97 -0
  72. data/lib/spec/rails/story_adapter.rb +79 -0
  73. data/lib/spec/rails/version.rb +16 -0
  74. data/rspec-rails.gemspec +39 -0
  75. data/spec/autotest/mappings_spec.rb +36 -0
  76. data/spec/rails_suite.rb +7 -0
  77. data/spec/resources/controllers/action_view_base_spec_controller.rb +2 -0
  78. data/spec/resources/controllers/application.rb +9 -0
  79. data/spec/resources/controllers/controller_spec_controller.rb +116 -0
  80. data/spec/resources/controllers/redirect_spec_controller.rb +70 -0
  81. data/spec/resources/controllers/render_spec_controller.rb +30 -0
  82. data/spec/resources/controllers/rjs_spec_controller.rb +58 -0
  83. data/spec/resources/helpers/addition_helper.rb +5 -0
  84. data/spec/resources/helpers/explicit_helper.rb +46 -0
  85. data/spec/resources/helpers/more_explicit_helper.rb +5 -0
  86. data/spec/resources/helpers/plugin_application_helper.rb +6 -0
  87. data/spec/resources/helpers/view_spec_helper.rb +13 -0
  88. data/spec/resources/models/animal.rb +4 -0
  89. data/spec/resources/models/person.rb +18 -0
  90. data/spec/resources/models/thing.rb +3 -0
  91. data/spec/resources/views/controller_spec/_partial.rhtml +0 -0
  92. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  93. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  94. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  95. data/spec/resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  96. data/spec/resources/views/controller_spec/action_with_template.rhtml +1 -0
  97. data/spec/resources/views/layouts/application.rhtml +0 -0
  98. data/spec/resources/views/layouts/simple.rhtml +0 -0
  99. data/spec/resources/views/objects/_object.html.erb +1 -0
  100. data/spec/resources/views/render_spec/_a_partial.rhtml +0 -0
  101. data/spec/resources/views/render_spec/action_with_alternate_layout.rhtml +0 -0
  102. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  103. data/spec/resources/views/render_spec/some_action.js.rjs +1 -0
  104. data/spec/resources/views/render_spec/some_action.rjs +1 -0
  105. data/spec/resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  106. data/spec/resources/views/rjs_spec/hide_div.rjs +1 -0
  107. data/spec/resources/views/rjs_spec/hide_page_element.rjs +1 -0
  108. data/spec/resources/views/rjs_spec/insert_html.rjs +1 -0
  109. data/spec/resources/views/rjs_spec/replace.rjs +1 -0
  110. data/spec/resources/views/rjs_spec/replace_html.rjs +1 -0
  111. data/spec/resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  112. data/spec/resources/views/rjs_spec/visual_effect.rjs +1 -0
  113. data/spec/resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  114. data/spec/resources/views/tag_spec/no_tags.rhtml +1 -0
  115. data/spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  116. data/spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  117. data/spec/resources/views/view_spec/_partial.rhtml +2 -0
  118. data/spec/resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  119. data/spec/resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  120. data/spec/resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
  121. data/spec/resources/views/view_spec/_spacer.rhtml +1 -0
  122. data/spec/resources/views/view_spec/accessor.rhtml +5 -0
  123. data/spec/resources/views/view_spec/block_helper.rhtml +3 -0
  124. data/spec/resources/views/view_spec/entry_form.rhtml +2 -0
  125. data/spec/resources/views/view_spec/explicit_helper.rhtml +2 -0
  126. data/spec/resources/views/view_spec/foo/show.rhtml +1 -0
  127. data/spec/resources/views/view_spec/implicit_helper.rhtml +2 -0
  128. data/spec/resources/views/view_spec/multiple_helpers.rhtml +3 -0
  129. data/spec/resources/views/view_spec/path_params.html.erb +1 -0
  130. data/spec/resources/views/view_spec/should_not_receive.rhtml +3 -0
  131. data/spec/resources/views/view_spec/template_with_partial.rhtml +5 -0
  132. data/spec/resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
  133. data/spec/resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
  134. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +109 -0
  135. data/spec/spec/rails/example/configuration_spec.rb +65 -0
  136. data/spec/spec/rails/example/controller_example_group_spec.rb +275 -0
  137. data/spec/spec/rails/example/controller_isolation_spec.rb +56 -0
  138. data/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
  139. data/spec/spec/rails/example/error_handling_spec.rb +90 -0
  140. data/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
  141. data/spec/spec/rails/example/helper_example_group_spec.rb +206 -0
  142. data/spec/spec/rails/example/model_example_group_spec.rb +20 -0
  143. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  144. data/spec/spec/rails/example/view_example_group_spec.rb +335 -0
  145. data/spec/spec/rails/extensions/action_view_base_spec.rb +48 -0
  146. data/spec/spec/rails/extensions/active_record_spec.rb +14 -0
  147. data/spec/spec/rails/interop/testcase_spec.rb +70 -0
  148. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +45 -0
  149. data/spec/spec/rails/matchers/assert_select_spec.rb +811 -0
  150. data/spec/spec/rails/matchers/errors_on_spec.rb +25 -0
  151. data/spec/spec/rails/matchers/have_text_spec.rb +70 -0
  152. data/spec/spec/rails/matchers/include_text_spec.rb +62 -0
  153. data/spec/spec/rails/matchers/redirect_to_spec.rb +253 -0
  154. data/spec/spec/rails/matchers/render_template_spec.rb +183 -0
  155. data/spec/spec/rails/matchers/should_change_spec.rb +15 -0
  156. data/spec/spec/rails/mocks/ar_classes.rb +10 -0
  157. data/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
  158. data/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
  159. data/spec/spec/rails/sample_modified_fixture.rb +8 -0
  160. data/spec/spec/rails/sample_spec.rb +8 -0
  161. data/spec/spec/rails/spec_server_spec.rb +107 -0
  162. data/spec/spec/rails/spec_spec.rb +11 -0
  163. data/spec/spec_helper.rb +78 -0
  164. metadata +262 -0
@@ -0,0 +1,30 @@
1
+ class RenderSpecController < ApplicationController
2
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def some_action
5
+ respond_to do |format|
6
+ format.html
7
+ format.js
8
+ end
9
+ end
10
+
11
+ def action_which_renders_template_from_other_controller
12
+ render :template => 'controller_spec/action_with_template'
13
+ end
14
+
15
+ def text_action
16
+ render :text => "this is the text for this action"
17
+ end
18
+
19
+ def action_with_partial
20
+ render :partial => "a_partial"
21
+ end
22
+
23
+ def action_that_renders_nothing
24
+ render :nothing => true
25
+ end
26
+
27
+ def action_with_alternate_layout
28
+ render :layout => 'simple'
29
+ end
30
+ end
@@ -0,0 +1,58 @@
1
+ class RjsSpecController < ApplicationController
2
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def replace_html
5
+ end
6
+
7
+ def insert_html
8
+ end
9
+
10
+ def replace
11
+ end
12
+
13
+ def hide_div
14
+ end
15
+
16
+ def hide_page_element
17
+ end
18
+
19
+ def replace_html_with_partial
20
+ end
21
+
22
+ def render_replace_html
23
+ render :update do |page|
24
+ page.replace_html 'mydiv', 'replacement text'
25
+ page.replace_html 'myotherdiv', 'other replacement text'
26
+ end
27
+ end
28
+
29
+ def render_replace_html_with_partial
30
+ render :update do |page|
31
+ page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial'
32
+ end
33
+ end
34
+
35
+ def render_insert_html
36
+ render :update do |page|
37
+ page.insert_html 'mydiv', 'replacement text'
38
+ end
39
+ end
40
+
41
+ def render_replace
42
+ render :update do |page|
43
+ page.replace 'mydiv', 'replacement text'
44
+ end
45
+ end
46
+
47
+ def render_hide_div
48
+ render :update do |page|
49
+ page.hide 'mydiv'
50
+ end
51
+ end
52
+
53
+ def render_hide_page_element
54
+ render :update do |page|
55
+ page['mydiv'].hide
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,5 @@
1
+ module AdditionHelper
2
+ def plus(addend)
3
+ @addend + addend
4
+ end
5
+ end
@@ -0,0 +1,46 @@
1
+ module ExplicitHelper
2
+ def method_in_explicit_helper
3
+ "<div>This is text from a method in the ExplicitHelper</div>"
4
+ end
5
+
6
+ # this is an example of a method spec'able with eval_erb in helper specs
7
+ def prepend(arg, &block)
8
+ begin # rails edge after 2.1.0 eliminated need for block.binding
9
+ concat(arg) + block.call
10
+ rescue
11
+ concat(arg, block.binding) + block.call
12
+ end
13
+ end
14
+
15
+ def named_url
16
+ rspec_on_rails_specs_url
17
+ end
18
+
19
+ def named_path
20
+ rspec_on_rails_specs_path
21
+ end
22
+
23
+ def params_foo
24
+ params[:foo]
25
+ end
26
+
27
+ def session_foo
28
+ session[:foo]
29
+ end
30
+
31
+ def request_thing
32
+ request.thing
33
+ end
34
+
35
+ def flash_thing
36
+ flash[:thing]
37
+ end
38
+
39
+ def method_using_output_buffer
40
+ concat("the_text_from_concat")
41
+ end
42
+
43
+ def method_using_template
44
+ update_page { |p| p["#some_id"].replace_html "" }
45
+ end
46
+ end
@@ -0,0 +1,5 @@
1
+ module MoreExplicitHelper
2
+ def method_in_more_explicit_helper
3
+ "<div>This is text from a method in the MoreExplicitHelper</div>"
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # Methods added to this helper will be available to all templates in the application.
2
+ module ApplicationHelper
3
+ def method_in_plugin_application_helper
4
+ "<div>This is text from a method in the ApplicationHelper</div>"
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ module ViewSpecHelper
2
+ def method_in_helper
3
+ "<div>This is text from a method in the ViewSpecHelper</div>"
4
+ end
5
+
6
+ def method_in_template_with_partial
7
+ "<div>method_in_template_with_partial in ViewSpecHelper</div>"
8
+ end
9
+
10
+ def method_in_partial
11
+ "<div>method_in_partial in ViewSpecHelper</div>"
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ class Animal < ActiveRecord::Base
2
+ belongs_to :person
3
+ validates_uniqueness_of :name
4
+ end
@@ -0,0 +1,18 @@
1
+ class Person < ActiveRecord::Base
2
+ has_many :animals do
3
+ def pups
4
+ find(:all, :conditions => 'age < 1')
5
+ end
6
+ def adults
7
+ find(:all, :conditions => 'age >= 1')
8
+ end
9
+ end
10
+ validates_presence_of :name
11
+
12
+ def add_animal animal
13
+ animal.person = self
14
+ animals << animal
15
+ animal.save
16
+ end
17
+
18
+ end
@@ -0,0 +1,3 @@
1
+ class Thing < ActiveRecord::Base
2
+ validates_presence_of :name
3
+ end
@@ -0,0 +1 @@
1
+ <div>This is action_with_template.rhtml</div>
@@ -0,0 +1 @@
1
+ <%= object.name %>
@@ -0,0 +1 @@
1
+ # This is used for rails > 1.2.3
@@ -0,0 +1 @@
1
+ # This is used for rails <= 1.2.3
@@ -0,0 +1 @@
1
+ This is the text in the replacement partial.
@@ -0,0 +1 @@
1
+ page.hide 'mydiv'
@@ -0,0 +1 @@
1
+ page['mydiv'].hide
@@ -0,0 +1 @@
1
+ page.insert_html 'mydiv', 'replacement text'
@@ -0,0 +1 @@
1
+ page.replace 'mydiv', 'replacement text'
@@ -0,0 +1 @@
1
+ page.replace_html 'mydiv', 'replacement text'
@@ -0,0 +1 @@
1
+ page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial'
@@ -0,0 +1 @@
1
+ page.visual_effect :fade, 'mydiv'
@@ -0,0 +1 @@
1
+ page.visual_effect :toggle_blind, 'mydiv'
@@ -0,0 +1 @@
1
+ <!-THIS FILE HAS NO TAGS->
@@ -0,0 +1,2 @@
1
+ <%= method_in_plugin_application_helper %>
2
+ <%= method_in_partial %>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'partial', :object => partial %>
@@ -0,0 +1 @@
1
+ <hr id="spacer" />
@@ -0,0 +1,5 @@
1
+ <div id="session"><%= session[:key] %></div>
2
+ <div id="params"><%= params[:key] %></div>
3
+ <div id="flash"><%= flash[:key] %></div>
4
+ <div id="controller"><%= params[:controller] %></div>
5
+ <div id="action"><%= params[:action] %></div>
@@ -0,0 +1,3 @@
1
+ <% if_allowed do %>
2
+ <div>block helper was rendered</div>
3
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <% form_tag do %>
2
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <%= method_in_plugin_application_helper %>
2
+ <%= method_in_explicit_helper %>
@@ -0,0 +1 @@
1
+ <%= method_in_plugin_application_helper %>
@@ -0,0 +1,2 @@
1
+ <%= method_in_plugin_application_helper %>
2
+ <%= method_in_helper %>
@@ -0,0 +1,3 @@
1
+ <%= method_in_plugin_application_helper %>
2
+ <%= method_in_explicit_helper %>
3
+ <%= method_in_more_explicit_helper %>
@@ -0,0 +1 @@
1
+ <%= params[:controller] %>
@@ -0,0 +1,3 @@
1
+ <% if @obj.render_partial? %>
2
+ <%= render :partial => 'some_partial' %>
3
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <%= method_in_template_with_partial %>
2
+ <%= render :partial => 'partial' %>
3
+
4
+ <%= render :partial => 'partial_used_twice' %>
5
+ <%= render :partial => 'partial_used_twice' %>
@@ -0,0 +1,3 @@
1
+ <%= render :partial => 'partial',
2
+ :collection => ['Alice', 'Bob'],
3
+ :spacer_template => 'spacer' %>
@@ -0,0 +1 @@
1
+ <%= render :partial => @array %>
@@ -0,0 +1,109 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe "AssignsHashProxy" do
4
+ def orig_assigns
5
+ @object.assigns
6
+ end
7
+
8
+ class Foo
9
+ def initialize(bar)
10
+ @bar = bar
11
+ end
12
+ attr_reader :bar
13
+
14
+ def ==(other)
15
+ self.bar == other.bar
16
+ end
17
+ end
18
+
19
+ before(:each) do
20
+ @object = Class.new do
21
+ def assigns; @assigns ||= Hash.new; end
22
+ end.new
23
+ @proxy = Spec::Rails::Example::AssignsHashProxy.new(self) {@object}
24
+ end
25
+
26
+ it "doesn't wig out on objects that define their own == method" do
27
+ @object.assigns['foo'] = Foo.new(1)
28
+ @proxy['foo'].should == Foo.new(1)
29
+ end
30
+
31
+ it "should set ivars on object using string" do
32
+ @proxy['foo'] = 'bar'
33
+ @object.instance_eval{@foo}.should == 'bar'
34
+ end
35
+
36
+ it "should set ivars on object using symbol" do
37
+ @proxy[:foo] = 'bar'
38
+ @object.instance_eval{@foo}.should == 'bar'
39
+ end
40
+
41
+ it "should access object's assigns with a string" do
42
+ @object.assigns['foo'] = 'bar'
43
+ @proxy['foo'].should == 'bar'
44
+ end
45
+
46
+ it "should access object's assigns with a symbol" do
47
+ @object.assigns['foo'] = 'bar'
48
+ @proxy[:foo].should == 'bar'
49
+ end
50
+
51
+ it "should access object's ivars with a string" do
52
+ @object.instance_variable_set('@foo', 'bar')
53
+ @proxy['foo'].should == 'bar'
54
+ end
55
+
56
+ it "should access object's ivars with a symbol" do
57
+ @object.instance_variable_set('@foo', 'bar')
58
+ @proxy[:foo].should == 'bar'
59
+ end
60
+
61
+ it "should iterate through each element like a Hash" do
62
+ values = {
63
+ 'foo' => 1,
64
+ 'bar' => 2,
65
+ 'baz' => 3
66
+ }
67
+ @proxy['foo'] = values['foo']
68
+ @proxy['bar'] = values['bar']
69
+ @proxy['baz'] = values['baz']
70
+
71
+ @proxy.each do |key, value|
72
+ key.should == key
73
+ value.should == values[key]
74
+ end
75
+ end
76
+
77
+ it "should delete the ivar of passed in key" do
78
+ @object.instance_variable_set('@foo', 'bar')
79
+ @proxy.delete('foo')
80
+ @proxy['foo'].should be_nil
81
+ end
82
+
83
+ it "should delete the assigned element of passed in key" do
84
+ @object.assigns['foo'] = 'bar'
85
+ @proxy.delete('foo')
86
+ @proxy['foo'].should be_nil
87
+ end
88
+
89
+ it "should detect the presence of a key in assigns" do
90
+ @object.assigns['foo'] = 'bar'
91
+ @proxy.has_key?('foo').should == true
92
+ @proxy.has_key?('bar').should == false
93
+ end
94
+
95
+ it "should expose values set in example back to the example" do
96
+ @proxy[:foo] = 'bar'
97
+ @proxy[:foo].should == 'bar'
98
+ end
99
+
100
+ it "should allow assignment of false via proxy" do
101
+ @proxy['foo'] = false
102
+ @proxy['foo'].should be_false
103
+ end
104
+
105
+ it "should allow assignment of false" do
106
+ @object.instance_variable_set('@foo',false)
107
+ @proxy['foo'].should be_false
108
+ end
109
+ end