rspec-rails 1.3.4 → 2.0.0.a2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. data/.gitignore +1 -7
  2. data/README.markdown +58 -0
  3. data/Rakefile +51 -9
  4. data/example_app_template.rb +33 -0
  5. data/lib/generators/rspec.rb +25 -0
  6. data/lib/generators/rspec/controller/controller_generator.rb +26 -0
  7. data/lib/generators/rspec/controller/templates/controller_spec.rb +15 -0
  8. data/lib/generators/rspec/controller/templates/view_spec.rb +12 -0
  9. data/lib/generators/rspec/helper/helper_generator.rb +11 -0
  10. data/lib/generators/rspec/helper/templates/helper_spec.rb +14 -0
  11. data/lib/generators/rspec/install/install_generator.rb +29 -0
  12. data/lib/generators/rspec/install/templates/lib/tasks/rspec.rake +119 -0
  13. data/lib/generators/rspec/install/templates/script/rspec.tt +4 -0
  14. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/rcov.opts +0 -0
  15. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/spec.opts +0 -0
  16. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/spec_helper.rb +14 -12
  17. data/lib/generators/rspec/integration/integration_generator.rb +12 -0
  18. data/{generators/integration_spec/templates/integration_spec.rb → lib/generators/rspec/integration/templates/request_spec.rb} +0 -0
  19. data/lib/generators/rspec/mailer/mailer_generator.rb +21 -0
  20. data/lib/generators/rspec/mailer/templates/fixture +3 -0
  21. data/lib/generators/rspec/mailer/templates/mailer_spec.rb +14 -0
  22. data/lib/generators/rspec/model/model_generator.rb +22 -0
  23. data/lib/generators/rspec/model/templates/fixtures.yml +19 -0
  24. data/{generators/rspec_model → lib/generators/rspec/model}/templates/model_spec.rb +1 -1
  25. data/lib/generators/rspec/observer/observer_generator.rb +12 -0
  26. data/lib/generators/rspec/observer/templates/observer_spec.rb +5 -0
  27. data/lib/generators/rspec/plugin/plugin_generator.rb +11 -0
  28. data/lib/generators/rspec/plugin/templates/%file_name%_spec.rb.tt +5 -0
  29. data/lib/generators/rspec/plugin/templates/test_helper.rb +5 -0
  30. data/lib/generators/rspec/scaffold/scaffold_generator.rb +112 -0
  31. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +127 -0
  32. data/{generators/rspec_scaffold/templates/edit_erb_spec.rb → lib/generators/rspec/scaffold/templates/edit_spec.rb} +3 -3
  33. data/{generators/rspec_scaffold/templates/index_erb_spec.rb → lib/generators/rspec/scaffold/templates/index_spec.rb} +4 -4
  34. data/{generators/rspec_scaffold/templates/new_erb_spec.rb → lib/generators/rspec/scaffold/templates/new_spec.rb} +3 -3
  35. data/{generators/rspec_scaffold → lib/generators/rspec/scaffold}/templates/routing_spec.rb +4 -0
  36. data/{generators/rspec_scaffold/templates/show_erb_spec.rb → lib/generators/rspec/scaffold/templates/show_spec.rb} +4 -4
  37. data/lib/rspec/rails.rb +2 -0
  38. data/lib/rspec/rails/example.rb +2 -0
  39. data/lib/rspec/rails/example/controller_example_group.rb +31 -0
  40. data/lib/rspec/rails/example/request_example_group.rb +26 -0
  41. data/lib/rspec/rails/matchers.rb +14 -0
  42. data/lib/rspec/rails/transactional_database_support.rb +38 -0
  43. data/lib/rspec/rails/version.rb +16 -0
  44. data/rspec-rails.gemspec +78 -18
  45. metadata +97 -321
  46. data/.document +0 -7
  47. data/Contribute.rdoc +0 -4
  48. data/Gemfile +0 -4
  49. data/Gemfile.lock +0 -27
  50. data/History.rdoc +0 -321
  51. data/License.txt +0 -33
  52. data/Manifest.txt +0 -165
  53. data/README.rdoc +0 -48
  54. data/TODO.txt +0 -17
  55. data/Upgrade.rdoc +0 -148
  56. data/generators/integration_spec/integration_spec_generator.rb +0 -10
  57. data/generators/rspec/CHANGES +0 -1
  58. data/generators/rspec/rspec_generator.rb +0 -72
  59. data/generators/rspec/templates/previous_failures.txt +0 -0
  60. data/generators/rspec/templates/rspec.rake +0 -144
  61. data/generators/rspec/templates/script/autospec +0 -6
  62. data/generators/rspec/templates/script/spec +0 -10
  63. data/generators/rspec_controller/USAGE +0 -33
  64. data/generators/rspec_controller/rspec_controller_generator.rb +0 -47
  65. data/generators/rspec_controller/templates/controller_spec.rb +0 -25
  66. data/generators/rspec_controller/templates/helper_spec.rb +0 -11
  67. data/generators/rspec_controller/templates/view_spec.rb +0 -12
  68. data/generators/rspec_default_values.rb +0 -28
  69. data/generators/rspec_model/USAGE +0 -18
  70. data/generators/rspec_model/rspec_model_generator.rb +0 -35
  71. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +0 -154
  72. data/generators/rspec_scaffold/templates/controller_spec.rb +0 -131
  73. data/generators/rspec_scaffold/templates/helper_spec.rb +0 -11
  74. data/init.rb +0 -9
  75. data/lib/autotest/discover.rb +0 -5
  76. data/lib/autotest/rails_rspec.rb +0 -76
  77. data/lib/spec/rails.rb +0 -26
  78. data/lib/spec/rails/example.rb +0 -48
  79. data/lib/spec/rails/example/assigns_hash_proxy.rb +0 -39
  80. data/lib/spec/rails/example/controller_example_group.rb +0 -285
  81. data/lib/spec/rails/example/cookies_proxy.rb +0 -29
  82. data/lib/spec/rails/example/functional_example_group.rb +0 -106
  83. data/lib/spec/rails/example/helper_example_group.rb +0 -153
  84. data/lib/spec/rails/example/integration_example_group.rb +0 -16
  85. data/lib/spec/rails/example/model_example_group.rb +0 -15
  86. data/lib/spec/rails/example/render_observer.rb +0 -80
  87. data/lib/spec/rails/example/routing_example_group.rb +0 -16
  88. data/lib/spec/rails/example/routing_helpers.rb +0 -66
  89. data/lib/spec/rails/example/view_example_group.rb +0 -203
  90. data/lib/spec/rails/extensions.rb +0 -11
  91. data/lib/spec/rails/extensions/action_controller/rescue.rb +0 -42
  92. data/lib/spec/rails/extensions/action_controller/test_case.rb +0 -16
  93. data/lib/spec/rails/extensions/action_controller/test_response.rb +0 -21
  94. data/lib/spec/rails/extensions/action_view/base.rb +0 -35
  95. data/lib/spec/rails/extensions/active_record/base.rb +0 -45
  96. data/lib/spec/rails/extensions/active_support/test_case.rb +0 -7
  97. data/lib/spec/rails/extensions/spec/matchers/have.rb +0 -23
  98. data/lib/spec/rails/extensions/spec/runner/configuration.rb +0 -45
  99. data/lib/spec/rails/interop/testcase.rb +0 -14
  100. data/lib/spec/rails/matchers.rb +0 -32
  101. data/lib/spec/rails/matchers/ar_be_valid.rb +0 -27
  102. data/lib/spec/rails/matchers/assert_select.rb +0 -180
  103. data/lib/spec/rails/matchers/change.rb +0 -13
  104. data/lib/spec/rails/matchers/have_text.rb +0 -57
  105. data/lib/spec/rails/matchers/include_text.rb +0 -54
  106. data/lib/spec/rails/matchers/redirect_to.rb +0 -126
  107. data/lib/spec/rails/matchers/render_template.rb +0 -129
  108. data/lib/spec/rails/matchers/route_to.rb +0 -149
  109. data/lib/spec/rails/mocks.rb +0 -140
  110. data/lib/spec/rails/version.rb +0 -16
  111. data/spec/autotest/mappings_spec.rb +0 -86
  112. data/spec/rails_suite.rb +0 -7
  113. data/spec/resources/controllers/action_view_base_spec_controller.rb +0 -2
  114. data/spec/resources/controllers/application.rb +0 -9
  115. data/spec/resources/controllers/controller_spec_controller.rb +0 -127
  116. data/spec/resources/controllers/example.txt +0 -1
  117. data/spec/resources/controllers/redirect_spec_controller.rb +0 -70
  118. data/spec/resources/controllers/render_spec_controller.rb +0 -34
  119. data/spec/resources/controllers/rjs_spec_controller.rb +0 -58
  120. data/spec/resources/helpers/addition_helper.rb +0 -5
  121. data/spec/resources/helpers/explicit_helper.rb +0 -46
  122. data/spec/resources/helpers/more_explicit_helper.rb +0 -5
  123. data/spec/resources/helpers/plugin_application_helper.rb +0 -6
  124. data/spec/resources/helpers/view_spec_helper.rb +0 -13
  125. data/spec/resources/models/animal.rb +0 -4
  126. data/spec/resources/models/person.rb +0 -18
  127. data/spec/resources/models/thing.rb +0 -3
  128. data/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  129. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +0 -1
  130. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +0 -1
  131. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  132. data/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +0 -1
  133. data/spec/resources/views/controller_spec/action_with_template.html.erb +0 -1
  134. data/spec/resources/views/controller_spec/non_existent_action_with_existent_template.html.erb +0 -1
  135. data/spec/resources/views/layouts/application.html.erb +0 -0
  136. data/spec/resources/views/layouts/simple.html.erb +0 -0
  137. data/spec/resources/views/objects/_object.html.erb +0 -1
  138. data/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  139. data/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  140. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  141. data/spec/resources/views/render_spec/some_action.js.rjs +0 -1
  142. data/spec/resources/views/rjs_spec/_replacement_partial.html.erb +0 -1
  143. data/spec/resources/views/rjs_spec/hide_div.js.rjs +0 -1
  144. data/spec/resources/views/rjs_spec/hide_page_element.js.rjs +0 -1
  145. data/spec/resources/views/rjs_spec/insert_html.js.rjs +0 -1
  146. data/spec/resources/views/rjs_spec/replace.js.rjs +0 -1
  147. data/spec/resources/views/rjs_spec/replace_html.js.rjs +0 -1
  148. data/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +0 -1
  149. data/spec/resources/views/rjs_spec/visual_effect.js.rjs +0 -1
  150. data/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +0 -1
  151. data/spec/resources/views/tag_spec/no_tags.html.erb +0 -1
  152. data/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +0 -1
  153. data/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +0 -1
  154. data/spec/resources/views/view_spec/_partial.html.erb +0 -2
  155. data/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  156. data/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +0 -1
  157. data/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +0 -1
  158. data/spec/resources/views/view_spec/_spacer.html.erb +0 -1
  159. data/spec/resources/views/view_spec/accessor.html.erb +0 -6
  160. data/spec/resources/views/view_spec/block_helper.html.erb +0 -3
  161. data/spec/resources/views/view_spec/entry_form.html.erb +0 -2
  162. data/spec/resources/views/view_spec/explicit_helper.html.erb +0 -2
  163. data/spec/resources/views/view_spec/foo/show.html.erb +0 -1
  164. data/spec/resources/views/view_spec/implicit_helper.html.erb +0 -2
  165. data/spec/resources/views/view_spec/multiple_helpers.html.erb +0 -3
  166. data/spec/resources/views/view_spec/path_params.html.erb +0 -1
  167. data/spec/resources/views/view_spec/should_not_receive.html.erb +0 -3
  168. data/spec/resources/views/view_spec/template_with_partial.html.erb +0 -5
  169. data/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +0 -3
  170. data/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +0 -1
  171. data/spec/resources/views/view_spec/view_helpers.html.erb +0 -1
  172. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +0 -109
  173. data/spec/spec/rails/example/configuration_spec.rb +0 -67
  174. data/spec/spec/rails/example/controller_example_group_spec.rb +0 -307
  175. data/spec/spec/rails/example/controller_isolation_spec.rb +0 -75
  176. data/spec/spec/rails/example/cookies_proxy_spec.rb +0 -87
  177. data/spec/spec/rails/example/error_handling_spec.rb +0 -90
  178. data/spec/spec/rails/example/example_group_factory_spec.rb +0 -112
  179. data/spec/spec/rails/example/helper_example_group_spec.rb +0 -247
  180. data/spec/spec/rails/example/model_example_group_spec.rb +0 -32
  181. data/spec/spec/rails/example/routing_example_group_spec.rb +0 -9
  182. data/spec/spec/rails/example/shared_routing_example_group_examples.rb +0 -237
  183. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -33
  184. data/spec/spec/rails/example/view_example_group_spec.rb +0 -346
  185. data/spec/spec/rails/extensions/action_view_base_spec.rb +0 -79
  186. data/spec/spec/rails/extensions/active_record_spec.rb +0 -14
  187. data/spec/spec/rails/interop/testcase_spec.rb +0 -70
  188. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +0 -19
  189. data/spec/spec/rails/matchers/assert_select_spec.rb +0 -835
  190. data/spec/spec/rails/matchers/errors_on_spec.rb +0 -37
  191. data/spec/spec/rails/matchers/have_text_spec.rb +0 -69
  192. data/spec/spec/rails/matchers/include_text_spec.rb +0 -62
  193. data/spec/spec/rails/matchers/redirect_to_spec.rb +0 -253
  194. data/spec/spec/rails/matchers/render_template_spec.rb +0 -208
  195. data/spec/spec/rails/matchers/should_change_spec.rb +0 -15
  196. data/spec/spec/rails/mocks/ar_classes.rb +0 -10
  197. data/spec/spec/rails/mocks/mock_model_spec.rb +0 -112
  198. data/spec/spec/rails/mocks/stub_model_spec.rb +0 -80
  199. data/spec/spec/rails/sample_modified_fixture.rb +0 -8
  200. data/spec/spec/rails/sample_spec.rb +0 -8
  201. data/spec/spec/rails/spec_spec.rb +0 -11
  202. data/spec/spec_helper.rb +0 -78
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
- require 'controller_spec_controller'
3
-
4
- describe "a controller spec running in isolation mode", :type => :controller do
5
- controller_name :controller_spec
6
-
7
- it "does not care if the specified template doesn't exist" do
8
- get 'some_action'
9
- response.should be_success
10
- response.should render_template("template/that/does/not/actually/exist")
11
- end
12
-
13
- it "does not care if the implied template doesn't exist" do
14
- get 'some_action_with_implied_template'
15
- response.should be_success
16
- response.should render_template("some_action_with_implied_template")
17
- end
18
-
19
- it "does not care if the template has errors" do
20
- get 'action_with_errors_in_template'
21
- response.should be_success
22
- response.should render_template("action_with_errors_in_template")
23
- end
24
-
25
- it "does not care if the template exists but the action doesn't" do
26
- get 'non_existent_action_with_existent_template'
27
- response.should be_success
28
- end
29
-
30
- it "fails if the neither the action nor the template exist" do
31
- expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction)
32
- end
33
- end
34
-
35
- describe "a controller spec running in integration mode", :type => :controller do
36
- controller_name :controller_spec
37
- integrate_views
38
-
39
- it "renders a template" do
40
- get 'action_with_template'
41
- response.should be_success
42
- response.should have_tag('div', 'This is action_with_template.rhtml')
43
- end
44
-
45
- it "fails if the template doesn't exist" do
46
- error = defined?(ActionController::MissingTemplate) ? ActionController::MissingTemplate : ActionView::MissingTemplate
47
- lambda { get 'some_action' }.should raise_error(error)
48
- end
49
-
50
- it "fails if the template has errors" do
51
- lambda { get 'action_with_errors_in_template' }.should raise_error(ActionView::TemplateError)
52
- end
53
-
54
- it "fails if the action doesn't exist" do
55
- expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction)
56
- end
57
-
58
- describe "nested" do
59
- it "should render a template" do
60
- get 'action_with_template'
61
- response.should be_success
62
- response.should have_tag('div', 'This is action_with_template.rhtml')
63
- end
64
-
65
- describe "with integrate_views turned off" do
66
- integrate_views false
67
-
68
- it "should not care if the template doesn't exist" do
69
- get 'some_action'
70
- response.should be_success
71
- response.should render_template("template/that/does/not/actually/exist")
72
- end
73
- end
74
- end
75
- end
@@ -1,87 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class CookiesProxyExamplesController < ActionController::Base
4
- def index
5
- cookies[:key] = cookies[:key]
6
- render :text => ""
7
- end
8
- end
9
-
10
- module Spec
11
- module Rails
12
- module Example
13
- describe CookiesProxy, :type => :controller do
14
- controller_name :cookies_proxy_examples
15
-
16
- describe "with a String key" do
17
-
18
- it "should accept a String value" do
19
- proxy = CookiesProxy.new(self)
20
- proxy['key'] = 'value'
21
- get :index
22
- if ::Rails::VERSION::STRING >= "2.3"
23
- proxy['key'].should == 'value'
24
- else
25
- proxy['key'].should == ['value']
26
- end
27
- end
28
-
29
- it "should accept a Hash value" do
30
- proxy = CookiesProxy.new(self)
31
- proxy['key'] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
32
- get :index
33
- if ::Rails::VERSION::STRING >= "2.3"
34
- proxy['key'].should == 'value'
35
- else
36
- proxy['key'].should == ['value']
37
- proxy['key'].value.should == ['value']
38
- proxy['key'].expires.should == expiration
39
- proxy['key'].path.should == path
40
- end
41
- end
42
-
43
- end
44
-
45
- describe "with a Symbol key" do
46
-
47
- it "should accept a String value" do
48
- proxy = CookiesProxy.new(self)
49
- proxy[:key] = 'value'
50
- get :index
51
- if ::Rails::VERSION::STRING >= "2.3"
52
- proxy[:key].should == 'value'
53
- else
54
- proxy[:key].should == ['value']
55
- end
56
- end
57
-
58
- it "should accept a Hash value" do
59
- proxy = CookiesProxy.new(self)
60
- proxy[:key] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
61
- get :index
62
- if ::Rails::VERSION::STRING >= "2.3"
63
- proxy[:key].should == 'value'
64
- else
65
- proxy[:key].should == ['value']
66
- proxy[:key].value.should == ['value']
67
- proxy[:key].expires.should == expiration
68
- proxy[:key].path.should == path
69
- end
70
- end
71
-
72
- end
73
-
74
- describe "#delete" do
75
- it "should delete from the response cookies" do
76
- proxy = CookiesProxy.new(self)
77
- response_cookies = mock('cookies')
78
- response.should_receive(:cookies).and_return(response_cookies)
79
- response_cookies.should_receive(:delete).with('key')
80
- proxy.delete :key
81
- end
82
- end
83
- end
84
-
85
- end
86
- end
87
- end
@@ -1,90 +0,0 @@
1
- require 'spec_helper'
2
- require 'controller_spec_controller'
3
-
4
- ['integration', 'isolation'].each do |mode|
5
- describe "A controller example running in #{mode} mode", :type => :controller do
6
- controller_name :controller_spec
7
- integrate_views if mode == 'integration'
8
-
9
- describe "without use_rails_error_handling!" do
10
- describe "with an error that is *not* rescued" do
11
- it "raises the error" do
12
- lambda do
13
- get 'un_rescued_error_action'
14
- end.should raise_error(ControllerSpecController::UnRescuedError)
15
- end
16
- end
17
- describe "with an error that *is* rescued" do
18
- it "returns a 200" do
19
- get 'rescued_error_action'
20
- response.response_code.should == 200
21
- end
22
- end
23
- end
24
-
25
- describe "with deprecated use_rails_error_handling!" do
26
- before(:each) do
27
- Kernel.stub!(:warn)
28
- end
29
-
30
- it "warns of deprecation" do
31
- Kernel.should_receive(:warn).with(/DEPRECATION NOTICE/)
32
- controller.use_rails_error_handling!
33
- end
34
-
35
- describe "with an error that is *not* rescued" do
36
- it "returns the error code" do
37
- controller.use_rails_error_handling!
38
- get 'un_rescued_error_action'
39
- response.response_code.should == 500
40
- end
41
- end
42
-
43
- describe "with an error that *is* rescued" do
44
- it "returns a 200" do
45
- controller.use_rails_error_handling!
46
- get 'rescued_error_action'
47
- response.response_code.should == 200
48
- end
49
- end
50
- end
51
-
52
- describe "with rescue_action_in_public!" do
53
- describe "with an error that is *not* rescued" do
54
- it "returns the error code" do
55
- rescue_action_in_public!
56
- get 'un_rescued_error_action'
57
- response.response_code.should == 500
58
- end
59
- end
60
-
61
- describe "with an error that *is* rescued" do
62
- it "returns a 200" do
63
- rescue_action_in_public!
64
- get 'rescued_error_action'
65
- response.response_code.should == 200
66
- end
67
- end
68
- end
69
-
70
- describe "with bypass_rescue" do
71
- describe "with an error that is *not* rescued" do
72
- it "raises the error" do
73
- bypass_rescue
74
- lambda do
75
- get 'un_rescued_error_action'
76
- end.should raise_error(ControllerSpecController::UnRescuedError)
77
- end
78
- end
79
-
80
- describe "with an error that *is* rescued" do
81
- it "raises the error" do
82
- bypass_rescue
83
- lambda do
84
- get 'rescued_error_action'
85
- end.should raise_error(ControllerSpecController::RescuedError)
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,112 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Example
5
- describe ExampleGroupFactory do
6
- it "should return a ModelExampleGroup when given :type => :model" do
7
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
8
- "name", :type => :model
9
- ) {}
10
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
11
- end
12
-
13
- it "should return a ModelExampleGroup when given :location => '/blah/spec/models/'" do
14
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
15
- "name", :location => '/blah/spec/models/blah.rb'
16
- ) {}
17
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
18
- end
19
-
20
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\models\\' (windows format)" do
21
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
22
- "name", :location => '\\blah\\spec\\models\\blah.rb'
23
- ) {}
24
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
25
- end
26
-
27
- it "should return an ActiveSupport::TestCase when given :location => '/blah/spec/foo/' (anything other than controllers, views and helpers)" do
28
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
29
- "name", :location => '/blah/spec/foo/blah.rb'
30
- ) {}
31
- example_group.superclass.should == ActiveSupport::TestCase
32
- end
33
-
34
- it "should return an ActiveSupport::TestCase when given :location => '\\blah\\spec\\foo\\' (windows format) (anything other than controllers, views and helpers)" do
35
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
36
- "name", :location => '\\blah\\spec\\foo\\blah.rb'
37
- ) {}
38
- example_group.superclass.should == ActiveSupport::TestCase
39
- end
40
-
41
- it "should return a ViewExampleGroup when given :type => :view" do
42
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
43
- "name", :type => :view
44
- ) {}
45
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
46
- end
47
-
48
- it "should return a ViewExampleGroup when given :location => '/blah/spec/views/'" do
49
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
50
- "name", :location => '/blah/spec/views/blah.rb'
51
- ) {}
52
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
53
- end
54
-
55
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\views\\' (windows format)" do
56
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
57
- "name", :location => '\\blah\\spec\\views\\blah.rb'
58
- ) {}
59
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
60
- end
61
-
62
- it "should return a HelperExampleGroup when given :type => :helper" do
63
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
64
- "name", :type => :helper
65
- ) {}
66
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
67
- end
68
-
69
- it "should return a HelperExampleGroup when given :location => '/blah/spec/helpers/'" do
70
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
71
- "name", :location => '/blah/spec/helpers/blah.rb'
72
- ) {}
73
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
74
- end
75
-
76
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\helpers\\' (windows format)" do
77
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
78
- "name", :location => '\\blah\\spec\\helpers\\blah.rb'
79
- ) {}
80
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
81
- end
82
-
83
- it "should return a ControllerExampleGroup when given :type => :controller" do
84
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
85
- "name", :type => :controller
86
- ) {}
87
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
88
- end
89
-
90
- it "should return a ControllerExampleGroup when given :location => '/blah/spec/controllers/'" do
91
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
92
- "name", :location => '/blah/spec/controllers/blah.rb'
93
- ) {}
94
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
95
- end
96
-
97
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\controllers\\' (windows format)" do
98
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
99
- "name", :location => '\\blah\\spec\\controllers\\blah.rb'
100
- ) {}
101
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
102
- end
103
-
104
- it "should favor the :type over the :location" do
105
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
106
- "name", :location => '/blah/spec/models/blah.rb', :type => :controller
107
- ) {}
108
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
109
- end
110
- end
111
- end
112
- end
@@ -1,247 +0,0 @@
1
- require 'spec_helper'
2
- Spec::Runner.configuration.global_fixtures = :people
3
-
4
- describe ExplicitHelper, :type => :helper do
5
- include ExplicitHelper
6
-
7
- it "should not require naming the helper if describe is passed a type" do
8
- method_in_explicit_helper.should match(/text from a method/)
9
- helper.method_in_explicit_helper.should match(/text from a method/)
10
- end
11
- end
12
-
13
- module Spec
14
- module Rails
15
- module Example
16
- describe HelperExampleGroup, :type => :helper do
17
- helper_name :explicit
18
-
19
- accesses_configured_helper_methods
20
-
21
- it "DEPRECATED should have direct access to methods defined in helpers" do
22
- method_in_explicit_helper.should =~ /text from a method/
23
- end
24
-
25
- it "should expose the helper with the #helper method" do
26
- helper.method_in_explicit_helper.should =~ /text from a method/
27
- end
28
-
29
- it "should have access to named routes" do
30
- rspec_on_rails_specs_url.should == "http://test.host/rspec_on_rails_specs"
31
- rspec_on_rails_specs_path.should == "/rspec_on_rails_specs"
32
-
33
- helper.named_url.should == "http://test.host/rspec_on_rails_specs"
34
- helper.named_path.should == "/rspec_on_rails_specs"
35
- end
36
-
37
- it "should fail if the helper method deson't exist" do
38
- lambda { non_existent_helper_method }.should raise_error(NameError)
39
- lambda { helper.non_existent_helper_method }.should raise_error(NameError)
40
- end
41
-
42
- it "should have access to session" do
43
- session[:foo] = 'bar'
44
- session_foo.should == 'bar'
45
- helper.session_foo.should == 'bar'
46
- end
47
-
48
- it "should have access to params" do
49
- params[:foo] = 'bar'
50
- params_foo.should == 'bar'
51
- helper.params_foo.should == 'bar'
52
- end
53
-
54
- it "should have access to request" do
55
- request.stub!(:thing).and_return('bar')
56
- request_thing.should == 'bar'
57
- helper.request_thing.should == 'bar'
58
- end
59
-
60
- it "should have access to flash" do
61
- flash[:thing] = 'camera'
62
- flash_thing.should == 'camera'
63
- helper.flash_thing.should == 'camera'
64
- end
65
- end
66
-
67
- describe HelperExampleGroup, "#eval_erb", :type => :helper do
68
- helper_name :explicit
69
-
70
- it "should support methods that accept blocks" do
71
- eval_erb("<% prepend 'foo' do %>bar<% end %>").should == "foobar"
72
- end
73
- end
74
-
75
- describe HelperExampleGroup, ".fixtures", :type => :helper do
76
- helper_name :explicit
77
- fixtures :animals
78
-
79
- it "should load fixtures" do
80
- pig = animals(:pig)
81
- pig.class.should == Animal
82
- end
83
-
84
- it "should load global fixtures" do
85
- lachie = people(:lachie)
86
- lachie.class.should == Person
87
- end
88
- end
89
-
90
- describe "methods from standard helpers", :type => :helper do
91
- helper_name :explicit
92
- it "should be exposed to the helper" do
93
- helper.link_to("Foo","http://bar").should have_tag("a")
94
- end
95
- end
96
-
97
- describe HelperExampleGroup, "included modules", :type => :helper do
98
- helpers = [
99
- ActionView::Helpers::ActiveRecordHelper,
100
- ActionView::Helpers::AssetTagHelper,
101
- ActionView::Helpers::BenchmarkHelper,
102
- ActionView::Helpers::CacheHelper,
103
- ActionView::Helpers::CaptureHelper,
104
- ActionView::Helpers::DateHelper,
105
- ActionView::Helpers::DebugHelper,
106
- ActionView::Helpers::FormHelper,
107
- ActionView::Helpers::FormOptionsHelper,
108
- ActionView::Helpers::FormTagHelper,
109
- ActionView::Helpers::JavaScriptHelper,
110
- ActionView::Helpers::NumberHelper,
111
- ActionView::Helpers::PrototypeHelper,
112
- ActionView::Helpers::ScriptaculousHelper,
113
- ActionView::Helpers::TagHelper,
114
- ActionView::Helpers::TextHelper,
115
- ActionView::Helpers::UrlHelper
116
- ]
117
- helpers.each do |helper_module|
118
- it "should include #{helper_module}" do
119
- self.class.ancestors.should include(helper_module)
120
- helper.class.ancestors.should include(helper_module)
121
- end
122
- end
123
- end
124
-
125
- # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance.
126
- # When that is done, remove this method
127
- describe HelperExampleGroup, "#protect_against_forgery?", :type => :helper do
128
- it "should return false" do
129
- protect_against_forgery?.should be_false
130
- helper.protect_against_forgery?.should be_false
131
- end
132
- end
133
-
134
- describe HelperExampleGroup, "#assigns", :type => :helper do
135
- helper_name :addition
136
- it "should expose variables to helper" do
137
- assigns[:addend] = 3
138
- helper.plus(4).should == 7
139
- end
140
-
141
- it "should make helper ivars available in example" do
142
- assigns[:addend] = 3
143
- assigns[:addend].should == 3
144
- end
145
- end
146
-
147
- describe HelperExampleGroup, "using a helper that uses output_buffer inside helper", :type => :helper do
148
- helper_name :explicit
149
-
150
- before(:each) do
151
- if ::Rails::VERSION::STRING < "2.2"
152
- pending("need to get this new feature working against pre 2.2 versions of rails")
153
- end
154
- end
155
-
156
- it "should not raise an error" do
157
- lambda { method_using_output_buffer }.should_not raise_error
158
- end
159
-
160
- it "should put the output in the output_buffer" do
161
- method_using_output_buffer
162
- output_buffer.should == "the_text_from_concat"
163
- end
164
- end
165
-
166
- describe HelperExampleGroup, "using a helper that tries to access @template", :type => :helper do
167
- helper_name :explicit
168
-
169
- it "should not raise an error" do
170
- lambda { method_using_template }.should_not raise_error
171
- end
172
-
173
- it "should have the correct output" do
174
- method_using_template.should have_text(/#some_id/)
175
- end
176
- end
177
-
178
- # both specs the same as textmate invokes first-then-second but rake spec:plugins:rspec_on_rails invokes second-then-first
179
- describe HelperExampleGroup, "new helper for each spec - instance variables side effects are isolated", :type=> :helper do
180
- it 'should be able to set an instance variable on the helper on a new instance of the helper' do
181
- helper.instance_variable_get(:@test_instance_var).should be_nil
182
- helper.instance_variable_set(:@test_instance_var, :first_value)
183
- helper.instance_variable_get(:@test_instance_var).should == :first_value
184
- end
185
-
186
- it 'should get a clean copy of the helper with no saved instance variables from the last run' do
187
- helper.instance_variable_get(:@test_instance_var).should be_nil
188
- helper.instance_variable_set(:@test_instance_var, :second_value)
189
- helper.instance_variable_get(:@test_instance_var).should == :second_value
190
- end
191
- end
192
- end
193
- end
194
- end
195
-
196
- module Bug11223
197
- # see http://rubyforge.org/tracker/index.php?func=detail&aid=11223&group_id=797&atid=3149
198
- describe 'Accessing flash from helper spec', :type => :helper do
199
- it 'should not raise an error' do
200
- lambda { flash['test'] }.should_not raise_error
201
- end
202
- end
203
- end
204
-
205
- module Spec
206
- module Rails
207
- module Example
208
- describe HelperExampleGroup do
209
- it "should clear its name from the description" do
210
- group = describe("foo", :type => :helper) do
211
- $nested_group = describe("bar") do
212
- end
213
- end
214
- group.description.to_s.should == "foo"
215
- $nested_group.description.to_s.should == "foo bar"
216
- end
217
- end
218
- end
219
- end
220
- end
221
-
222
- module Bug719
223
- # see http://rspec.lighthouseapp.com/projects/5645/tickets/719
224
- # FIXME - helper and example provided in ticket. The example did
225
- # fail initially, so running it now shows that the bug is fixed,
226
- # but this doesn't serve as a good internal example.
227
- module ImagesHelper
228
- def hide_images_button
229
- content_tag :div, :class => :hide_images_button do
230
- button_to_function "Hide Images", :id => :hide_images_button do |page|
231
- page[:more_images_button].toggle
232
- page[:image_browser].toggle
233
- end
234
- end
235
- end
236
- end
237
-
238
- describe ImagesHelper, :type => :helper do
239
- it "should render a hide_images_button" do
240
- helper.hide_images_button.should have_tag('div[class=?]','hide_images_button') do
241
- with_tag('input[id=?][type=?][value=?][onclick^=?]',
242
- 'hide_images_button', 'button', 'Hide Images',
243
- "$(&quot;more_images_button&quot;).toggle();\n$(&quot;image_browser&quot;).toggle();;")
244
- end
245
- end
246
- end
247
- end