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,15 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+
3
+ describe "should change" do
4
+ describe "handling association proxies" do
5
+ it "should match expected collection with proxied collection" do
6
+ person = Person.create!(:name => 'David')
7
+ koala = person.animals.create!(:name => 'Koala')
8
+ zebra = person.animals.create!(:name => 'Zebra')
9
+
10
+ lambda {
11
+ person.animals.delete(koala)
12
+ }.should change{person.animals}.to([zebra])
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ class MockableModel < ActiveRecord::Base
2
+ has_one :associated_model
3
+ end
4
+
5
+ class SubMockableModel < MockableModel
6
+ end
7
+
8
+ class AssociatedModel < ActiveRecord::Base
9
+ belongs_to :mockable_model
10
+ end
@@ -0,0 +1,106 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/ar_classes'
3
+
4
+ describe "mock_model" do
5
+ describe "responding to interrogation" do
6
+ before(:each) do
7
+ @model = mock_model(SubMockableModel)
8
+ end
9
+ it "should say it is_a? if it is" do
10
+ @model.is_a?(SubMockableModel).should be(true)
11
+ end
12
+ it "should say it is_a? if it's ancestor is" do
13
+ @model.is_a?(MockableModel).should be(true)
14
+ end
15
+ it "should say it is kind_of? if it is" do
16
+ @model.kind_of?(SubMockableModel).should be(true)
17
+ end
18
+ it "should say it is kind_of? if it's ancestor is" do
19
+ @model.kind_of?(MockableModel).should be(true)
20
+ end
21
+ it "should say it is instance_of? if it is" do
22
+ @model.instance_of?(SubMockableModel).should be(true)
23
+ end
24
+ it "should not say it instance_of? if it isn't, even if it's ancestor is" do
25
+ @model.instance_of?(MockableModel).should be(false)
26
+ end
27
+ end
28
+
29
+ describe "with params" do
30
+ it "should not mutate its parameters" do
31
+ params = {:a => 'b'}
32
+ model = mock_model(MockableModel, params)
33
+ params.should == {:a => 'b'}
34
+ end
35
+ end
36
+
37
+ describe "with #id stubbed", :type => :view do
38
+ before(:each) do
39
+ @model = mock_model(MockableModel, :id => 1)
40
+ end
41
+ it "should be named using the stubbed id value" do
42
+ @model.instance_variable_get(:@name).should == "MockableModel_1"
43
+ end
44
+ it "should return string of id value for to_param" do
45
+ @model.to_param.should == "1"
46
+ end
47
+ end
48
+
49
+ describe "as association", :type => :view do
50
+ before(:each) do
51
+ @real = AssociatedModel.create!
52
+ @mock_model = mock_model(MockableModel)
53
+ @real.mockable_model = @mock_model
54
+ end
55
+
56
+ it "should pass associated_model == mock" do
57
+ @mock_model.should == @real.mockable_model
58
+ end
59
+
60
+ it "should pass mock == associated_model" do
61
+ @real.mockable_model.should == @mock_model
62
+ end
63
+ end
64
+
65
+ describe "with :null_object => true", :type => :view do
66
+ before(:each) do
67
+ @model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked")
68
+ end
69
+
70
+ it "should be able to mock methods" do
71
+ @model.mocked_method.should == "mocked"
72
+ end
73
+ it "should return itself to unmocked methods" do
74
+ @model.unmocked_method.should equal(@model)
75
+ end
76
+ end
77
+
78
+ describe "#as_null_object", :type => :view do
79
+ before(:each) do
80
+ @model = mock_model(MockableModel, :mocked_method => "mocked").as_null_object
81
+ end
82
+
83
+ it "should be able to mock methods" do
84
+ @model.mocked_method.should == "mocked"
85
+ end
86
+ it "should return itself to unmocked methods" do
87
+ @model.unmocked_method.should equal(@model)
88
+ end
89
+ end
90
+
91
+ describe "#as_new_record" do
92
+ it "should say it is a new record" do
93
+ mock_model(MockableModel).as_new_record.should be_new_record
94
+ end
95
+
96
+ it "should have a nil id" do
97
+ mock_model(MockableModel).as_new_record.id.should be(nil)
98
+ end
99
+
100
+ it "should return nil for #to_param" do
101
+ mock_model(MockableModel).as_new_record.to_param.should be(nil)
102
+ end
103
+ end
104
+ end
105
+
106
+
@@ -0,0 +1,80 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/ar_classes'
3
+
4
+ describe "stub_model" do
5
+ describe "defaults" do
6
+ it "should have an id" do
7
+ stub_model(MockableModel).id.should be > 0
8
+ end
9
+
10
+ it "should say it is not a new record" do
11
+ stub_model(MockableModel).should_not be_new_record
12
+ end
13
+ end
14
+
15
+ it "should accept a stub id" do
16
+ stub_model(MockableModel, :id => 37).id.should == 37
17
+ end
18
+
19
+ it "should say it is a new record when id is set to nil" do
20
+ stub_model(MockableModel, :id => nil).should be_new_record
21
+ end
22
+
23
+ it "should accept any arbitrary stub" do
24
+ stub_model(MockableModel, :foo => "bar").foo.should == "bar"
25
+ end
26
+
27
+ it "should accept a stub for save" do
28
+ stub_model(MockableModel, :save => false).save.should be(false)
29
+ end
30
+
31
+ describe "#as_new_record" do
32
+ it "should say it is a new record" do
33
+ stub_model(MockableModel).as_new_record.should be_new_record
34
+ end
35
+
36
+ it "should have a nil id" do
37
+ stub_model(MockableModel).as_new_record.id.should be(nil)
38
+ end
39
+ end
40
+
41
+ it "should raise when hitting the db" do
42
+ lambda do
43
+ model = stub_model(MockableModel, :changed => true, :attributes_with_quotes => {'this' => 'that'})
44
+ model.save
45
+ end.should raise_error(Spec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
46
+ end
47
+
48
+ it "should increment the id" do
49
+ first = stub_model(MockableModel)
50
+ second = stub_model(MockableModel)
51
+ second.id.should == (first.id + 1)
52
+ end
53
+
54
+ describe "as association" do
55
+ before(:each) do
56
+ @real = AssociatedModel.create!
57
+ @stub_model = stub_model(MockableModel)
58
+ @real.mockable_model = @stub_model
59
+ end
60
+
61
+ it "should pass associated_model == mock" do
62
+ @stub_model.should == @real.mockable_model
63
+ end
64
+
65
+ it "should pass mock == associated_model" do
66
+ @real.mockable_model.should == @stub_model
67
+ end
68
+ end
69
+
70
+ describe "with a block" do
71
+ it "should yield the model" do
72
+ model = stub_model(MockableModel) do |block_arg|
73
+ @block_arg = block_arg
74
+ end
75
+ model.should be(@block_arg)
76
+ end
77
+ end
78
+ end
79
+
80
+
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "A sample spec", :type => :model do
4
+ fixtures :animals
5
+ it "should pass" do
6
+ animals(:pig).name.should == "Piggy"
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "A sample spec", :type => :model do
4
+ fixtures :animals
5
+ it "should pass" do
6
+ animals(:pig).name.should == "Pig"
7
+ end
8
+ end
@@ -0,0 +1,107 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "script/spec_server file", :shared => true do
4
+ attr_accessor :tmbundle_install_directory, :tmbundle_source_directory
5
+ attr_reader :animals_yml_path, :original_animals_content
6
+
7
+ before do
8
+ @animals_yml_path = File.expand_path("#{RAILS_ROOT}/spec/fixtures/animals.yml")
9
+ @original_animals_content = File.read(animals_yml_path)
10
+ end
11
+
12
+ after do
13
+ File.open(animals_yml_path, "w") do |f|
14
+ f.write original_animals_content
15
+ end
16
+ end
17
+
18
+ after(:each) do
19
+ system "lsof -i tcp:8989 | sed /COMMAND/d | awk '{print $2}' | xargs kill"
20
+ end
21
+
22
+ it "runs a spec" do
23
+ dir = File.expand_path(File.dirname(__FILE__))
24
+ output = ""
25
+ Timeout.timeout(20) do
26
+ loop do
27
+ output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb --drb 2>&1`
28
+ break unless output.include?("No server is running")
29
+ end
30
+ end
31
+
32
+ if $?.exitstatus != 0 || output !~ /0 failures/
33
+ flunk "command 'script/spec spec/sample_spec' failed\n#{output}"
34
+ end
35
+
36
+ fixtures = YAML.load(@original_animals_content)
37
+ fixtures['pig']['name'] = "Piggy"
38
+
39
+ File.open(animals_yml_path, "w") do |f|
40
+ f.write YAML.dump(fixtures)
41
+ end
42
+
43
+ Timeout.timeout(20) do
44
+ loop do
45
+ output = `#{RAILS_ROOT}/script/spec #{dir}/sample_modified_fixture.rb --drb 2>&1`
46
+ break unless output.include?("No server is running")
47
+ end
48
+ end
49
+
50
+ if $?.exitstatus != 0 || output !~ /0 failures/
51
+ flunk "command 'script/spec spec/sample_modified_fixture' failed\n#{output}"
52
+ end
53
+ end
54
+
55
+ def start_spec_server
56
+ dir = File.dirname(__FILE__)
57
+ Thread.start do
58
+ system "cd #{RAILS_ROOT}; script/spec_server"
59
+ end
60
+
61
+ file_content = ""
62
+ end
63
+ end
64
+
65
+ describe "script/spec_server file without TextMate bundle" do
66
+ it_should_behave_like "script/spec_server file"
67
+ before(:each) do
68
+ start_spec_server
69
+ end
70
+ end
71
+
72
+ describe "script/spec_server file with TextMate bundle" do
73
+ it_should_behave_like "script/spec_server file"
74
+ def tmbundle_directory
75
+ current_directory = File.expand_path("#{File.dirname(__FILE__)}/../../../../../../")
76
+ directories = current_directory.split('/')
77
+ while directories.any?
78
+ current_directory = File.join(*directories)
79
+ bundle_directory = File.join(current_directory, @bundle_name)
80
+ return bundle_directory if File.directory?(bundle_directory)
81
+ directories.pop
82
+ end
83
+ end
84
+
85
+ before(:each) do
86
+ @tmbundle_install_directory = File.expand_path("#{Dir.tmpdir}/Library/Application Support/TextMate/Bundles")
87
+ @bundle_name = "RSpec.tmbundle"
88
+ @tmbundle_source_directory = tmbundle_directory
89
+
90
+ FileUtils.mkdir_p(tmbundle_install_directory)
91
+ File.directory?(tmbundle_source_directory).should be_true
92
+ unless system(%Q|ln -s #{tmbundle_source_directory} "#{tmbundle_install_directory}"|)
93
+ raise "Creating link to Textmate Bundle"
94
+ end
95
+ start_spec_server
96
+ end
97
+
98
+ after(:each) do
99
+ bundle_file_to_remove = "#{tmbundle_install_directory}/#{@bundle_name}"
100
+ if bundle_file_to_remove == "/"
101
+ raise "bundle file path resolved to '/' - could not call rm"
102
+ end
103
+ unless system(%Q|rm "#{bundle_file_to_remove}"|)
104
+ raise "Removing Textmate bundle link failed"
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "script/spec file" do
4
+ it "should run a spec" do
5
+ dir = File.dirname(__FILE__)
6
+ output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb`
7
+ unless $?.exitstatus == 0
8
+ flunk "command 'script/spec spec/sample_spec' failed\n#{output}"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,78 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/../rspec/lib"))
3
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/resources/controllers"))
4
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/resources/helpers"))
5
+ require File.expand_path("#{dir}/../../../../spec/spec_helper")
6
+ require File.expand_path("#{dir}/resources/controllers/application")
7
+ require File.expand_path("#{dir}/resources/controllers/render_spec_controller")
8
+ require File.expand_path("#{dir}/resources/controllers/rjs_spec_controller")
9
+ require File.expand_path("#{dir}/resources/controllers/redirect_spec_controller")
10
+ require File.expand_path("#{dir}/resources/controllers/action_view_base_spec_controller")
11
+ require File.expand_path("#{dir}/resources/helpers/addition_helper")
12
+ require File.expand_path("#{dir}/resources/helpers/explicit_helper")
13
+ require File.expand_path("#{dir}/resources/helpers/more_explicit_helper")
14
+ require File.expand_path("#{dir}/resources/helpers/view_spec_helper")
15
+ require File.expand_path("#{dir}/resources/helpers/plugin_application_helper")
16
+
17
+ require File.expand_path("#{dir}/resources/models/animal")
18
+ require File.expand_path("#{dir}/resources/models/person")
19
+ require File.expand_path("#{dir}/resources/models/thing")
20
+
21
+ extra_controller_paths = File.expand_path("#{dir}/resources/controllers")
22
+
23
+ unless ActionController::Routing.controller_paths.include?(extra_controller_paths)
24
+ ActionController::Routing.instance_eval {@possible_controllers = nil}
25
+ ActionController::Routing.controller_paths << extra_controller_paths
26
+ end
27
+
28
+ module Spec
29
+ module Rails
30
+ module Example
31
+ class ViewExampleGroupController
32
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "spec", "resources", "views")
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ def fail()
39
+ raise_error(Spec::Expectations::ExpectationNotMetError)
40
+ end
41
+
42
+ def fail_with(message)
43
+ raise_error(Spec::Expectations::ExpectationNotMetError,message)
44
+ end
45
+
46
+ class Proc
47
+ def should_pass
48
+ lambda { self.call }.should_not raise_error
49
+ end
50
+ end
51
+
52
+ ActionController::Routing::Routes.draw do |map|
53
+ map.connect 'action_with_method_restriction', :controller => 'redirect_spec', :action => 'action_with_method_restriction', :conditions => { :method => :get }
54
+ map.connect 'action_to_redirect_to_action_with_method_restriction', :controller => 'redirect_spec', :action => 'action_to_redirect_to_action_with_method_restriction'
55
+
56
+ map.resources :rspec_on_rails_specs
57
+ map.custom_route 'custom_route', :controller => 'custom_route_spec', :action => 'custom_route'
58
+ map.connect ":controller/:action/:id"
59
+ end
60
+
61
+ module HelperMethods
62
+ def method_in_module_included_in_configuration
63
+ end
64
+ end
65
+
66
+ module HelperMacros
67
+ def accesses_configured_helper_methods
68
+ it "has access to methods in modules included in configuration" do
69
+ method_in_module_included_in_configuration
70
+ end
71
+ end
72
+ end
73
+
74
+ Spec::Runner.configure do |config|
75
+ config.include HelperMethods
76
+ config.extend HelperMacros
77
+ end
78
+
metadata ADDED
@@ -0,0 +1,262 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mcmire-rspec-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.99.9
5
+ platform: ruby
6
+ authors:
7
+ - RSpec Development Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-24 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: dchelimsky-rspec
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.1.99.9
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rack
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.4.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: cucumber
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.13
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: hoe
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.3
54
+ version:
55
+ description: Behaviour Driven Development for Ruby on Rails.
56
+ email:
57
+ - rspec-devel@rubyforge.org
58
+ executables: []
59
+
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - History.txt
64
+ - License.txt
65
+ - Manifest.txt
66
+ - README.txt
67
+ - TODO.txt
68
+ - generators/rspec/templates/previous_failures.txt
69
+ files:
70
+ - History.txt
71
+ - License.txt
72
+ - Manifest.txt
73
+ - README.txt
74
+ - Rakefile
75
+ - TODO.txt
76
+ - Upgrade.markdown
77
+ - features/step_definitions/people.rb
78
+ - features/support/env.rb
79
+ - features/transactions/transactions_should_rollback.feature
80
+ - generators/rspec/CHANGES
81
+ - generators/rspec/rspec_generator.rb
82
+ - generators/rspec/templates/previous_failures.txt
83
+ - generators/rspec/templates/rcov.opts
84
+ - generators/rspec/templates/rspec.rake
85
+ - generators/rspec/templates/script/autospec
86
+ - generators/rspec/templates/script/spec
87
+ - generators/rspec/templates/script/spec_server
88
+ - generators/rspec/templates/spec.opts
89
+ - generators/rspec/templates/spec_helper.rb
90
+ - generators/rspec_controller/USAGE
91
+ - generators/rspec_controller/rspec_controller_generator.rb
92
+ - generators/rspec_controller/templates/controller_spec.rb
93
+ - generators/rspec_controller/templates/helper_spec.rb
94
+ - generators/rspec_controller/templates/view_spec.rb
95
+ - generators/rspec_default_values.rb
96
+ - generators/rspec_model/USAGE
97
+ - generators/rspec_model/rspec_model_generator.rb
98
+ - generators/rspec_model/templates/model_spec.rb
99
+ - generators/rspec_scaffold/rspec_scaffold_generator.rb
100
+ - generators/rspec_scaffold/templates/controller_spec.rb
101
+ - generators/rspec_scaffold/templates/edit_erb_spec.rb
102
+ - generators/rspec_scaffold/templates/helper_spec.rb
103
+ - generators/rspec_scaffold/templates/index_erb_spec.rb
104
+ - generators/rspec_scaffold/templates/new_erb_spec.rb
105
+ - generators/rspec_scaffold/templates/routing_spec.rb
106
+ - generators/rspec_scaffold/templates/show_erb_spec.rb
107
+ - init.rb
108
+ - lib/autotest/discover.rb
109
+ - lib/autotest/rails_rspec.rb
110
+ - lib/spec/rails.rb
111
+ - lib/spec/rails/example.rb
112
+ - lib/spec/rails/example/assigns_hash_proxy.rb
113
+ - lib/spec/rails/example/controller_example_group.rb
114
+ - lib/spec/rails/example/cookies_proxy.rb
115
+ - lib/spec/rails/example/functional_example_group.rb
116
+ - lib/spec/rails/example/helper_example_group.rb
117
+ - lib/spec/rails/example/model_example_group.rb
118
+ - lib/spec/rails/example/render_observer.rb
119
+ - lib/spec/rails/example/routing_helpers.rb
120
+ - lib/spec/rails/example/view_example_group.rb
121
+ - lib/spec/rails/extensions.rb
122
+ - lib/spec/rails/extensions/action_controller/rescue.rb
123
+ - lib/spec/rails/extensions/action_controller/test_case.rb
124
+ - lib/spec/rails/extensions/action_controller/test_response.rb
125
+ - lib/spec/rails/extensions/action_view/base.rb
126
+ - lib/spec/rails/extensions/active_record/base.rb
127
+ - lib/spec/rails/extensions/active_support/test_case.rb
128
+ - lib/spec/rails/extensions/spec/matchers/have.rb
129
+ - lib/spec/rails/extensions/spec/runner/configuration.rb
130
+ - lib/spec/rails/interop/testcase.rb
131
+ - lib/spec/rails/matchers.rb
132
+ - lib/spec/rails/matchers/ar_be_valid.rb
133
+ - lib/spec/rails/matchers/assert_select.rb
134
+ - lib/spec/rails/matchers/change.rb
135
+ - lib/spec/rails/matchers/have_text.rb
136
+ - lib/spec/rails/matchers/include_text.rb
137
+ - lib/spec/rails/matchers/redirect_to.rb
138
+ - lib/spec/rails/matchers/render_template.rb
139
+ - lib/spec/rails/mocks.rb
140
+ - lib/spec/rails/spec_server.rb
141
+ - lib/spec/rails/story_adapter.rb
142
+ - lib/spec/rails/version.rb
143
+ - rspec-rails.gemspec
144
+ - spec/autotest/mappings_spec.rb
145
+ - spec/rails_suite.rb
146
+ - spec/resources/controllers/action_view_base_spec_controller.rb
147
+ - spec/resources/controllers/application.rb
148
+ - spec/resources/controllers/controller_spec_controller.rb
149
+ - spec/resources/controllers/redirect_spec_controller.rb
150
+ - spec/resources/controllers/render_spec_controller.rb
151
+ - spec/resources/controllers/rjs_spec_controller.rb
152
+ - spec/resources/helpers/addition_helper.rb
153
+ - spec/resources/helpers/explicit_helper.rb
154
+ - spec/resources/helpers/more_explicit_helper.rb
155
+ - spec/resources/helpers/plugin_application_helper.rb
156
+ - spec/resources/helpers/view_spec_helper.rb
157
+ - spec/resources/models/animal.rb
158
+ - spec/resources/models/person.rb
159
+ - spec/resources/models/thing.rb
160
+ - spec/resources/views/controller_spec/_partial.rhtml
161
+ - spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml
162
+ - spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml
163
+ - spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml
164
+ - spec/resources/views/controller_spec/action_with_errors_in_template.rhtml
165
+ - spec/resources/views/controller_spec/action_with_template.rhtml
166
+ - spec/resources/views/layouts/application.rhtml
167
+ - spec/resources/views/layouts/simple.rhtml
168
+ - spec/resources/views/objects/_object.html.erb
169
+ - spec/resources/views/render_spec/_a_partial.rhtml
170
+ - spec/resources/views/render_spec/action_with_alternate_layout.rhtml
171
+ - spec/resources/views/render_spec/some_action.html.erb
172
+ - spec/resources/views/render_spec/some_action.js.rjs
173
+ - spec/resources/views/render_spec/some_action.rjs
174
+ - spec/resources/views/rjs_spec/_replacement_partial.rhtml
175
+ - spec/resources/views/rjs_spec/hide_div.rjs
176
+ - spec/resources/views/rjs_spec/hide_page_element.rjs
177
+ - spec/resources/views/rjs_spec/insert_html.rjs
178
+ - spec/resources/views/rjs_spec/replace.rjs
179
+ - spec/resources/views/rjs_spec/replace_html.rjs
180
+ - spec/resources/views/rjs_spec/replace_html_with_partial.rjs
181
+ - spec/resources/views/rjs_spec/visual_effect.rjs
182
+ - spec/resources/views/rjs_spec/visual_toggle_effect.rjs
183
+ - spec/resources/views/tag_spec/no_tags.rhtml
184
+ - spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml
185
+ - spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml
186
+ - spec/resources/views/view_spec/_partial.rhtml
187
+ - spec/resources/views/view_spec/_partial_used_twice.rhtml
188
+ - spec/resources/views/view_spec/_partial_with_local_variable.rhtml
189
+ - spec/resources/views/view_spec/_partial_with_sub_partial.rhtml
190
+ - spec/resources/views/view_spec/_spacer.rhtml
191
+ - spec/resources/views/view_spec/accessor.rhtml
192
+ - spec/resources/views/view_spec/block_helper.rhtml
193
+ - spec/resources/views/view_spec/entry_form.rhtml
194
+ - spec/resources/views/view_spec/explicit_helper.rhtml
195
+ - spec/resources/views/view_spec/foo/show.rhtml
196
+ - spec/resources/views/view_spec/implicit_helper.rhtml
197
+ - spec/resources/views/view_spec/multiple_helpers.rhtml
198
+ - spec/resources/views/view_spec/path_params.html.erb
199
+ - spec/resources/views/view_spec/should_not_receive.rhtml
200
+ - spec/resources/views/view_spec/template_with_partial.rhtml
201
+ - spec/resources/views/view_spec/template_with_partial_using_collection.rhtml
202
+ - spec/resources/views/view_spec/template_with_partial_with_array.rhtml
203
+ - spec/spec/rails/example/assigns_hash_proxy_spec.rb
204
+ - spec/spec/rails/example/configuration_spec.rb
205
+ - spec/spec/rails/example/controller_example_group_spec.rb
206
+ - spec/spec/rails/example/controller_isolation_spec.rb
207
+ - spec/spec/rails/example/cookies_proxy_spec.rb
208
+ - spec/spec/rails/example/error_handling_spec.rb
209
+ - spec/spec/rails/example/example_group_factory_spec.rb
210
+ - spec/spec/rails/example/helper_example_group_spec.rb
211
+ - spec/spec/rails/example/model_example_group_spec.rb
212
+ - spec/spec/rails/example/shared_behaviour_spec.rb
213
+ - spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb
214
+ - spec/spec/rails/example/view_example_group_spec.rb
215
+ - spec/spec/rails/extensions/action_view_base_spec.rb
216
+ - spec/spec/rails/extensions/active_record_spec.rb
217
+ - spec/spec/rails/interop/testcase_spec.rb
218
+ - spec/spec/rails/matchers/ar_be_valid_spec.rb
219
+ - spec/spec/rails/matchers/assert_select_spec.rb
220
+ - spec/spec/rails/matchers/errors_on_spec.rb
221
+ - spec/spec/rails/matchers/have_text_spec.rb
222
+ - spec/spec/rails/matchers/include_text_spec.rb
223
+ - spec/spec/rails/matchers/redirect_to_spec.rb
224
+ - spec/spec/rails/matchers/render_template_spec.rb
225
+ - spec/spec/rails/matchers/should_change_spec.rb
226
+ - spec/spec/rails/mocks/ar_classes.rb
227
+ - spec/spec/rails/mocks/mock_model_spec.rb
228
+ - spec/spec/rails/mocks/stub_model_spec.rb
229
+ - spec/spec/rails/sample_modified_fixture.rb
230
+ - spec/spec/rails/sample_spec.rb
231
+ - spec/spec/rails/spec_server_spec.rb
232
+ - spec/spec/rails/spec_spec.rb
233
+ - spec/spec_helper.rb
234
+ has_rdoc: true
235
+ homepage: http://rspec.info/
236
+ post_install_message:
237
+ rdoc_options:
238
+ - --main
239
+ - README.txt
240
+ require_paths:
241
+ - lib
242
+ required_ruby_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: "0"
247
+ version:
248
+ required_rubygems_version: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: "0"
253
+ version:
254
+ requirements: []
255
+
256
+ rubyforge_project: rspec
257
+ rubygems_version: 1.2.0
258
+ signing_key:
259
+ specification_version: 2
260
+ summary: rspec-rails 1.1.99.9
261
+ test_files: []
262
+