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.
- data/History.txt +174 -0
- data/License.txt +33 -0
- data/Manifest.txt +164 -0
- data/README.txt +45 -0
- data/Rakefile +63 -0
- data/TODO.txt +1 -0
- data/Upgrade.markdown +52 -0
- data/features/step_definitions/people.rb +6 -0
- data/features/support/env.rb +13 -0
- data/features/transactions/transactions_should_rollback.feature +16 -0
- data/generators/rspec/CHANGES +1 -0
- data/generators/rspec/rspec_generator.rb +37 -0
- data/generators/rspec/templates/previous_failures.txt +0 -0
- data/generators/rspec/templates/rcov.opts +2 -0
- data/generators/rspec/templates/rspec.rake +177 -0
- data/generators/rspec/templates/script/autospec +5 -0
- data/generators/rspec/templates/script/spec +4 -0
- data/generators/rspec/templates/script/spec_server +37 -0
- data/generators/rspec/templates/spec.opts +4 -0
- data/generators/rspec/templates/spec_helper.rb +47 -0
- data/generators/rspec_controller/USAGE +33 -0
- data/generators/rspec_controller/rspec_controller_generator.rb +45 -0
- data/generators/rspec_controller/templates/controller_spec.rb +25 -0
- data/generators/rspec_controller/templates/helper_spec.rb +11 -0
- data/generators/rspec_controller/templates/view_spec.rb +12 -0
- data/generators/rspec_default_values.rb +19 -0
- data/generators/rspec_model/USAGE +18 -0
- data/generators/rspec_model/rspec_model_generator.rb +35 -0
- data/generators/rspec_model/templates/model_spec.rb +15 -0
- data/generators/rspec_scaffold/rspec_scaffold_generator.rb +150 -0
- data/generators/rspec_scaffold/templates/controller_spec.rb +171 -0
- data/generators/rspec_scaffold/templates/edit_erb_spec.rb +27 -0
- data/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
- data/generators/rspec_scaffold/templates/index_erb_spec.rb +28 -0
- data/generators/rspec_scaffold/templates/new_erb_spec.rb +27 -0
- data/generators/rspec_scaffold/templates/routing_spec.rb +63 -0
- data/generators/rspec_scaffold/templates/show_erb_spec.rb +23 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +1 -0
- data/lib/autotest/rails_rspec.rb +76 -0
- data/lib/spec/rails.rb +37 -0
- data/lib/spec/rails/example.rb +53 -0
- data/lib/spec/rails/example/assigns_hash_proxy.rb +39 -0
- data/lib/spec/rails/example/controller_example_group.rb +242 -0
- data/lib/spec/rails/example/cookies_proxy.rb +29 -0
- data/lib/spec/rails/example/functional_example_group.rb +84 -0
- data/lib/spec/rails/example/helper_example_group.rb +167 -0
- data/lib/spec/rails/example/model_example_group.rb +14 -0
- data/lib/spec/rails/example/render_observer.rb +67 -0
- data/lib/spec/rails/example/routing_helpers.rb +68 -0
- data/lib/spec/rails/example/view_example_group.rb +186 -0
- data/lib/spec/rails/extensions.rb +15 -0
- data/lib/spec/rails/extensions/action_controller/rescue.rb +42 -0
- data/lib/spec/rails/extensions/action_controller/test_case.rb +16 -0
- data/lib/spec/rails/extensions/action_controller/test_response.rb +21 -0
- data/lib/spec/rails/extensions/action_view/base.rb +33 -0
- data/lib/spec/rails/extensions/active_record/base.rb +43 -0
- data/lib/spec/rails/extensions/active_support/test_case.rb +7 -0
- data/lib/spec/rails/extensions/spec/matchers/have.rb +23 -0
- data/lib/spec/rails/extensions/spec/runner/configuration.rb +48 -0
- data/lib/spec/rails/interop/testcase.rb +14 -0
- data/lib/spec/rails/matchers.rb +40 -0
- data/lib/spec/rails/matchers/ar_be_valid.rb +44 -0
- data/lib/spec/rails/matchers/assert_select.rb +131 -0
- data/lib/spec/rails/matchers/change.rb +11 -0
- data/lib/spec/rails/matchers/have_text.rb +57 -0
- data/lib/spec/rails/matchers/include_text.rb +54 -0
- data/lib/spec/rails/matchers/redirect_to.rb +126 -0
- data/lib/spec/rails/matchers/render_template.rb +114 -0
- data/lib/spec/rails/mocks.rb +135 -0
- data/lib/spec/rails/spec_server.rb +97 -0
- data/lib/spec/rails/story_adapter.rb +79 -0
- data/lib/spec/rails/version.rb +16 -0
- data/rspec-rails.gemspec +39 -0
- data/spec/autotest/mappings_spec.rb +36 -0
- data/spec/rails_suite.rb +7 -0
- data/spec/resources/controllers/action_view_base_spec_controller.rb +2 -0
- data/spec/resources/controllers/application.rb +9 -0
- data/spec/resources/controllers/controller_spec_controller.rb +116 -0
- data/spec/resources/controllers/redirect_spec_controller.rb +70 -0
- data/spec/resources/controllers/render_spec_controller.rb +30 -0
- data/spec/resources/controllers/rjs_spec_controller.rb +58 -0
- data/spec/resources/helpers/addition_helper.rb +5 -0
- data/spec/resources/helpers/explicit_helper.rb +46 -0
- data/spec/resources/helpers/more_explicit_helper.rb +5 -0
- data/spec/resources/helpers/plugin_application_helper.rb +6 -0
- data/spec/resources/helpers/view_spec_helper.rb +13 -0
- data/spec/resources/models/animal.rb +4 -0
- data/spec/resources/models/person.rb +18 -0
- data/spec/resources/models/thing.rb +3 -0
- data/spec/resources/views/controller_spec/_partial.rhtml +0 -0
- data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
- data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
- data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
- data/spec/resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
- data/spec/resources/views/controller_spec/action_with_template.rhtml +1 -0
- data/spec/resources/views/layouts/application.rhtml +0 -0
- data/spec/resources/views/layouts/simple.rhtml +0 -0
- data/spec/resources/views/objects/_object.html.erb +1 -0
- data/spec/resources/views/render_spec/_a_partial.rhtml +0 -0
- data/spec/resources/views/render_spec/action_with_alternate_layout.rhtml +0 -0
- data/spec/resources/views/render_spec/some_action.html.erb +0 -0
- data/spec/resources/views/render_spec/some_action.js.rjs +1 -0
- data/spec/resources/views/render_spec/some_action.rjs +1 -0
- data/spec/resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
- data/spec/resources/views/rjs_spec/hide_div.rjs +1 -0
- data/spec/resources/views/rjs_spec/hide_page_element.rjs +1 -0
- data/spec/resources/views/rjs_spec/insert_html.rjs +1 -0
- data/spec/resources/views/rjs_spec/replace.rjs +1 -0
- data/spec/resources/views/rjs_spec/replace_html.rjs +1 -0
- data/spec/resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
- data/spec/resources/views/rjs_spec/visual_effect.rjs +1 -0
- data/spec/resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
- data/spec/resources/views/tag_spec/no_tags.rhtml +1 -0
- data/spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
- data/spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
- data/spec/resources/views/view_spec/_partial.rhtml +2 -0
- data/spec/resources/views/view_spec/_partial_used_twice.rhtml +0 -0
- data/spec/resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
- data/spec/resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
- data/spec/resources/views/view_spec/_spacer.rhtml +1 -0
- data/spec/resources/views/view_spec/accessor.rhtml +5 -0
- data/spec/resources/views/view_spec/block_helper.rhtml +3 -0
- data/spec/resources/views/view_spec/entry_form.rhtml +2 -0
- data/spec/resources/views/view_spec/explicit_helper.rhtml +2 -0
- data/spec/resources/views/view_spec/foo/show.rhtml +1 -0
- data/spec/resources/views/view_spec/implicit_helper.rhtml +2 -0
- data/spec/resources/views/view_spec/multiple_helpers.rhtml +3 -0
- data/spec/resources/views/view_spec/path_params.html.erb +1 -0
- data/spec/resources/views/view_spec/should_not_receive.rhtml +3 -0
- data/spec/resources/views/view_spec/template_with_partial.rhtml +5 -0
- data/spec/resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
- data/spec/resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
- data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +109 -0
- data/spec/spec/rails/example/configuration_spec.rb +65 -0
- data/spec/spec/rails/example/controller_example_group_spec.rb +275 -0
- data/spec/spec/rails/example/controller_isolation_spec.rb +56 -0
- data/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
- data/spec/spec/rails/example/error_handling_spec.rb +90 -0
- data/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
- data/spec/spec/rails/example/helper_example_group_spec.rb +206 -0
- data/spec/spec/rails/example/model_example_group_spec.rb +20 -0
- data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
- data/spec/spec/rails/example/view_example_group_spec.rb +335 -0
- data/spec/spec/rails/extensions/action_view_base_spec.rb +48 -0
- data/spec/spec/rails/extensions/active_record_spec.rb +14 -0
- data/spec/spec/rails/interop/testcase_spec.rb +70 -0
- data/spec/spec/rails/matchers/ar_be_valid_spec.rb +45 -0
- data/spec/spec/rails/matchers/assert_select_spec.rb +811 -0
- data/spec/spec/rails/matchers/errors_on_spec.rb +25 -0
- data/spec/spec/rails/matchers/have_text_spec.rb +70 -0
- data/spec/spec/rails/matchers/include_text_spec.rb +62 -0
- data/spec/spec/rails/matchers/redirect_to_spec.rb +253 -0
- data/spec/spec/rails/matchers/render_template_spec.rb +183 -0
- data/spec/spec/rails/matchers/should_change_spec.rb +15 -0
- data/spec/spec/rails/mocks/ar_classes.rb +10 -0
- data/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
- data/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
- data/spec/spec/rails/sample_modified_fixture.rb +8 -0
- data/spec/spec/rails/sample_spec.rb +8 -0
- data/spec/spec/rails/spec_server_spec.rb +107 -0
- data/spec/spec/rails/spec_spec.rb +11 -0
- data/spec/spec_helper.rb +78 -0
- metadata +262 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../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
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../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 :spec_path => '/blah/spec/models/'" do
|
14
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
15
|
+
"name", :spec_path => '/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 :spec_path => '\\blah\\spec\\models\\' (windows format)" do
|
21
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
22
|
+
"name", :spec_path => '\\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 :spec_path => '/blah/spec/foo/' (anything other than controllers, views and helpers)" do
|
28
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
29
|
+
"name", :spec_path => '/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 :spec_path => '\\blah\\spec\\foo\\' (windows format) (anything other than controllers, views and helpers)" do
|
35
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
36
|
+
"name", :spec_path => '\\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 :spec_path => '/blah/spec/views/'" do
|
49
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
50
|
+
"name", :spec_path => '/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 :spec_path => '\\blah\\spec\\views\\' (windows format)" do
|
56
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
57
|
+
"name", :spec_path => '\\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 :spec_path => '/blah/spec/helpers/'" do
|
70
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
71
|
+
"name", :spec_path => '/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 :spec_path => '\\blah\\spec\\helpers\\' (windows format)" do
|
77
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
78
|
+
"name", :spec_path => '\\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 :spec_path => '/blah/spec/controllers/'" do
|
91
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
92
|
+
"name", :spec_path => '/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 :spec_path => '\\blah\\spec\\controllers\\' (windows format)" do
|
98
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
99
|
+
"name", :spec_path => '\\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 :spec_path" do
|
105
|
+
example_group = Spec::Example::ExampleGroupFactory.create_example_group(
|
106
|
+
"name", :spec_path => '/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
|
@@ -0,0 +1,206 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../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.1"
|
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
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
module Bug11223
|
183
|
+
# see http://rubyforge.org/tracker/index.php?func=detail&aid=11223&group_id=797&atid=3149
|
184
|
+
describe 'Accessing flash from helper spec', :type => :helper do
|
185
|
+
it 'should not raise an error' do
|
186
|
+
lambda { flash['test'] }.should_not raise_error
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
module Spec
|
192
|
+
module Rails
|
193
|
+
module Example
|
194
|
+
describe HelperExampleGroup do
|
195
|
+
it "should clear its name from the description" do
|
196
|
+
group = describe("foo", :type => :helper) do
|
197
|
+
$nested_group = describe("bar") do
|
198
|
+
end
|
199
|
+
end
|
200
|
+
group.description.to_s.should == "foo"
|
201
|
+
$nested_group.description.to_s.should == "foo bar"
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Rails
|
5
|
+
module Example
|
6
|
+
describe ModelExampleGroup do
|
7
|
+
accesses_configured_helper_methods
|
8
|
+
|
9
|
+
it "clears its name from the description" do
|
10
|
+
group = describe("foo", :type => :model) do
|
11
|
+
$nested_group = describe("bar") do
|
12
|
+
end
|
13
|
+
end
|
14
|
+
group.description.to_s.should == "foo"
|
15
|
+
$nested_group.description.to_s.should == "foo bar"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe "assert_equal", :shared => true do
|
4
|
+
it "like assert_equal" do
|
5
|
+
assert_equal 1, 1
|
6
|
+
lambda {
|
7
|
+
assert_equal 1, 2
|
8
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "A model spec should be able to access 'test/unit' assertions", :type => :model do
|
13
|
+
it_should_behave_like "assert_equal"
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "A view spec should be able to access 'test/unit' assertions", :type => :view do
|
17
|
+
it_should_behave_like "assert_equal"
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "A helper spec should be able to access 'test/unit' assertions", :type => :helper do
|
21
|
+
it_should_behave_like "assert_equal"
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "A controller spec with integrated views should be able to access 'test/unit' assertions", :type => :controller do
|
25
|
+
controller_name :controller_spec
|
26
|
+
integrate_views
|
27
|
+
it_should_behave_like "assert_equal"
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "A controller spec should be able to access 'test/unit' assertions", :type => :controller do
|
31
|
+
controller_name :controller_spec
|
32
|
+
it_should_behave_like "assert_equal"
|
33
|
+
end
|