cavalle-rspec-rails 1.2.2.0.1

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 (168) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +207 -0
  3. data/License.txt +33 -0
  4. data/Manifest.txt +167 -0
  5. data/README.rdoc +45 -0
  6. data/Rakefile +79 -0
  7. data/TODO.txt +1 -0
  8. data/Upgrade.rdoc +103 -0
  9. data/features/step_definitions/people.rb +6 -0
  10. data/features/support/env.rb +13 -0
  11. data/features/transactions/transactions_should_rollback.feature +16 -0
  12. data/generators/rspec/CHANGES +1 -0
  13. data/generators/rspec/rspec_generator.rb +54 -0
  14. data/generators/rspec/templates/previous_failures.txt +0 -0
  15. data/generators/rspec/templates/rcov.opts +2 -0
  16. data/generators/rspec/templates/rspec.rake +165 -0
  17. data/generators/rspec/templates/script/autospec +6 -0
  18. data/generators/rspec/templates/script/spec +10 -0
  19. data/generators/rspec/templates/script/spec_server +9 -0
  20. data/generators/rspec/templates/spec.opts +4 -0
  21. data/generators/rspec/templates/spec_helper.rb +47 -0
  22. data/generators/rspec_controller/USAGE +33 -0
  23. data/generators/rspec_controller/rspec_controller_generator.rb +45 -0
  24. data/generators/rspec_controller/templates/controller_spec.rb +25 -0
  25. data/generators/rspec_controller/templates/helper_spec.rb +11 -0
  26. data/generators/rspec_controller/templates/view_spec.rb +12 -0
  27. data/generators/rspec_default_values.rb +19 -0
  28. data/generators/rspec_model/USAGE +18 -0
  29. data/generators/rspec_model/rspec_model_generator.rb +35 -0
  30. data/generators/rspec_model/templates/model_spec.rb +15 -0
  31. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +150 -0
  32. data/generators/rspec_scaffold/templates/controller_spec.rb +171 -0
  33. data/generators/rspec_scaffold/templates/edit_erb_spec.rb +27 -0
  34. data/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  35. data/generators/rspec_scaffold/templates/index_erb_spec.rb +28 -0
  36. data/generators/rspec_scaffold/templates/new_erb_spec.rb +27 -0
  37. data/generators/rspec_scaffold/templates/routing_spec.rb +63 -0
  38. data/generators/rspec_scaffold/templates/show_erb_spec.rb +23 -0
  39. data/init.rb +9 -0
  40. data/lib/autotest/discover.rb +1 -0
  41. data/lib/autotest/rails_rspec.rb +76 -0
  42. data/lib/spec/rails/example/assigns_hash_proxy.rb +39 -0
  43. data/lib/spec/rails/example/controller_example_group.rb +247 -0
  44. data/lib/spec/rails/example/cookies_proxy.rb +29 -0
  45. data/lib/spec/rails/example/functional_example_group.rb +84 -0
  46. data/lib/spec/rails/example/helper_example_group.rb +153 -0
  47. data/lib/spec/rails/example/model_example_group.rb +14 -0
  48. data/lib/spec/rails/example/render_observer.rb +67 -0
  49. data/lib/spec/rails/example/routing_example_group.rb +13 -0
  50. data/lib/spec/rails/example/routing_helpers.rb +70 -0
  51. data/lib/spec/rails/example/view_example_group.rb +186 -0
  52. data/lib/spec/rails/example.rb +47 -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 +45 -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 +44 -0
  61. data/lib/spec/rails/extensions.rb +11 -0
  62. data/lib/spec/rails/interop/testcase.rb +14 -0
  63. data/lib/spec/rails/matchers/ar_be_valid.rb +44 -0
  64. data/lib/spec/rails/matchers/assert_select.rb +146 -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/matchers.rb +32 -0
  71. data/lib/spec/rails/mocks.rb +135 -0
  72. data/lib/spec/rails/spec_server.rb +127 -0
  73. data/lib/spec/rails/story_adapter.rb +79 -0
  74. data/lib/spec/rails/version.rb +15 -0
  75. data/lib/spec/rails.rb +28 -0
  76. data/rspec-rails.gemspec +57 -0
  77. data/spec/autotest/mappings_spec.rb +86 -0
  78. data/spec/rails_suite.rb +7 -0
  79. data/spec/resources/controllers/action_view_base_spec_controller.rb +2 -0
  80. data/spec/resources/controllers/application.rb +9 -0
  81. data/spec/resources/controllers/controller_spec_controller.rb +120 -0
  82. data/spec/resources/controllers/example.txt +1 -0
  83. data/spec/resources/controllers/redirect_spec_controller.rb +70 -0
  84. data/spec/resources/controllers/render_spec_controller.rb +30 -0
  85. data/spec/resources/controllers/rjs_spec_controller.rb +58 -0
  86. data/spec/resources/helpers/addition_helper.rb +5 -0
  87. data/spec/resources/helpers/explicit_helper.rb +46 -0
  88. data/spec/resources/helpers/more_explicit_helper.rb +5 -0
  89. data/spec/resources/helpers/plugin_application_helper.rb +6 -0
  90. data/spec/resources/helpers/view_spec_helper.rb +13 -0
  91. data/spec/resources/models/animal.rb +4 -0
  92. data/spec/resources/models/person.rb +18 -0
  93. data/spec/resources/models/thing.rb +3 -0
  94. data/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  95. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +1 -0
  96. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +1 -0
  97. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  98. data/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +1 -0
  99. data/spec/resources/views/controller_spec/action_with_template.html.erb +1 -0
  100. data/spec/resources/views/layouts/application.html.erb +0 -0
  101. data/spec/resources/views/layouts/simple.html.erb +0 -0
  102. data/spec/resources/views/objects/_object.html.erb +1 -0
  103. data/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  104. data/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  105. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  106. data/spec/resources/views/render_spec/some_action.js.rjs +1 -0
  107. data/spec/resources/views/rjs_spec/_replacement_partial.html.erb +1 -0
  108. data/spec/resources/views/rjs_spec/hide_div.js.rjs +1 -0
  109. data/spec/resources/views/rjs_spec/hide_page_element.js.rjs +1 -0
  110. data/spec/resources/views/rjs_spec/insert_html.js.rjs +1 -0
  111. data/spec/resources/views/rjs_spec/replace.js.rjs +1 -0
  112. data/spec/resources/views/rjs_spec/replace_html.js.rjs +1 -0
  113. data/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +1 -0
  114. data/spec/resources/views/rjs_spec/visual_effect.js.rjs +1 -0
  115. data/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +1 -0
  116. data/spec/resources/views/tag_spec/no_tags.html.erb +1 -0
  117. data/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +1 -0
  118. data/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +1 -0
  119. data/spec/resources/views/view_spec/_partial.html.erb +2 -0
  120. data/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  121. data/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +1 -0
  122. data/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +1 -0
  123. data/spec/resources/views/view_spec/_spacer.html.erb +1 -0
  124. data/spec/resources/views/view_spec/accessor.html.erb +5 -0
  125. data/spec/resources/views/view_spec/block_helper.html.erb +3 -0
  126. data/spec/resources/views/view_spec/entry_form.html.erb +2 -0
  127. data/spec/resources/views/view_spec/explicit_helper.html.erb +2 -0
  128. data/spec/resources/views/view_spec/foo/show.html.erb +1 -0
  129. data/spec/resources/views/view_spec/implicit_helper.html.erb +2 -0
  130. data/spec/resources/views/view_spec/multiple_helpers.html.erb +3 -0
  131. data/spec/resources/views/view_spec/path_params.html.erb +1 -0
  132. data/spec/resources/views/view_spec/should_not_receive.html.erb +3 -0
  133. data/spec/resources/views/view_spec/template_with_partial.html.erb +5 -0
  134. data/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +3 -0
  135. data/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +1 -0
  136. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +109 -0
  137. data/spec/spec/rails/example/configuration_spec.rb +65 -0
  138. data/spec/spec/rails/example/controller_example_group_spec.rb +299 -0
  139. data/spec/spec/rails/example/controller_isolation_spec.rb +56 -0
  140. data/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
  141. data/spec/spec/rails/example/error_handling_spec.rb +90 -0
  142. data/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
  143. data/spec/spec/rails/example/helper_example_group_spec.rb +233 -0
  144. data/spec/spec/rails/example/model_example_group_spec.rb +20 -0
  145. data/spec/spec/rails/example/routing_example_group_spec.rb +9 -0
  146. data/spec/spec/rails/example/shared_routing_example_group_examples.rb +44 -0
  147. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  148. data/spec/spec/rails/example/view_example_group_spec.rb +335 -0
  149. data/spec/spec/rails/extensions/action_view_base_spec.rb +48 -0
  150. data/spec/spec/rails/extensions/active_record_spec.rb +14 -0
  151. data/spec/spec/rails/interop/testcase_spec.rb +70 -0
  152. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +45 -0
  153. data/spec/spec/rails/matchers/assert_select_spec.rb +809 -0
  154. data/spec/spec/rails/matchers/errors_on_spec.rb +25 -0
  155. data/spec/spec/rails/matchers/have_text_spec.rb +70 -0
  156. data/spec/spec/rails/matchers/include_text_spec.rb +62 -0
  157. data/spec/spec/rails/matchers/redirect_to_spec.rb +253 -0
  158. data/spec/spec/rails/matchers/render_template_spec.rb +191 -0
  159. data/spec/spec/rails/matchers/should_change_spec.rb +15 -0
  160. data/spec/spec/rails/mocks/ar_classes.rb +10 -0
  161. data/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
  162. data/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
  163. data/spec/spec/rails/sample_modified_fixture.rb +8 -0
  164. data/spec/spec/rails/sample_spec.rb +8 -0
  165. data/spec/spec/rails/spec_server_spec.rb +107 -0
  166. data/spec/spec/rails/spec_spec.rb +11 -0
  167. data/spec/spec_helper.rb +79 -0
  168. metadata +277 -0
@@ -0,0 +1,79 @@
1
+ # WARNING - THIS IS PURELY EXPERIMENTAL AT THIS POINT
2
+ # Courtesy of Brian Takita and Yurii Rashkovskii
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__), *%w[.. .. .. .. rspec lib])
5
+ if defined?(ActiveRecord::Base)
6
+ require 'test_help'
7
+ else
8
+ require 'action_controller/test_process'
9
+ require 'action_controller/integration'
10
+ end
11
+ require 'test/unit/testresult'
12
+ require 'spec'
13
+ require 'spec/rails'
14
+
15
+ Test::Unit.run = true
16
+
17
+ ActionController::Integration::Session.__send__ :include, Spec::Matchers
18
+ ActionController::Integration::Session.__send__ :include, Spec::Rails::Matchers
19
+
20
+ class RailsStory < ActionController::IntegrationTest
21
+ if defined?(ActiveRecord::Base)
22
+ self.use_transactional_fixtures = true
23
+ else
24
+ def self.fixture_table_names; []; end # Workaround for projects that don't use ActiveRecord
25
+ end
26
+
27
+ def initialize #:nodoc:
28
+ # TODO - eliminate this hack, which is here to stop
29
+ # Rails Stories from dumping the example summary.
30
+ Spec::Runner::Options.class_eval do
31
+ def examples_should_be_run?
32
+ false
33
+ end
34
+ end
35
+ @_result = Test::Unit::TestResult.new
36
+ end
37
+ end
38
+
39
+ class ActiveRecordSafetyListener
40
+ include Singleton
41
+ def scenario_started(*args)
42
+ if defined?(ActiveRecord::Base)
43
+ if ActiveRecord::Base.connection.respond_to?(:increment_open_transactions)
44
+ ActiveRecord::Base.connection.increment_open_transactions
45
+ else
46
+ ActiveRecord::Base.__send__ :increment_open_transactions
47
+ end
48
+ end
49
+ ActiveRecord::Base.connection.begin_db_transaction
50
+ end
51
+
52
+ def scenario_succeeded(*args)
53
+ if defined?(ActiveRecord::Base)
54
+ ActiveRecord::Base.connection.rollback_db_transaction
55
+ if ActiveRecord::Base.connection.respond_to?(:decrement_open_transactions)
56
+ ActiveRecord::Base.connection.decrement_open_transactions
57
+ else
58
+ ActiveRecord::Base.__send__ :decrement_open_transactions
59
+ end
60
+ end
61
+ end
62
+ alias :scenario_pending :scenario_succeeded
63
+ alias :scenario_failed :scenario_succeeded
64
+ end
65
+
66
+ class Spec::Story::Runner::ScenarioRunner
67
+ def initialize
68
+ @listeners = [ActiveRecordSafetyListener.instance]
69
+ end
70
+ end
71
+
72
+ class Spec::Story::GivenScenario
73
+ def perform(instance, name = nil)
74
+ scenario = Spec::Story::Runner::StoryRunner.scenario_from_current_story @name
75
+ runner = Spec::Story::Runner::ScenarioRunner.new
76
+ runner.instance_variable_set(:@listeners,[])
77
+ runner.run(scenario, instance)
78
+ end
79
+ end
@@ -0,0 +1,15 @@
1
+ module Spec # :nodoc:
2
+ module Rails # :nodoc:
3
+ module VERSION # :nodoc:
4
+ unless defined? MAJOR
5
+ MAJOR = 1
6
+ MINOR = 2
7
+ TINY = 2
8
+
9
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
10
+
11
+ SUMMARY = "rspec-rails #{STRING}"
12
+ end
13
+ end
14
+ end
15
+ end
data/lib/spec/rails.rb ADDED
@@ -0,0 +1,28 @@
1
+ RAILS_ENV ||= "test"
2
+
3
+ begin
4
+ require_dependency 'application_controller'
5
+ rescue MissingSourceFile
6
+ require_dependency 'application'
7
+ end
8
+ require 'rack/utils'
9
+
10
+ require 'action_controller/test_process'
11
+ require 'action_controller/integration'
12
+ require 'active_support/test_case'
13
+ require 'active_record/fixtures' if defined?(ActiveRecord::Base)
14
+
15
+ require 'spec/test/unit'
16
+
17
+ require 'spec/rails/matchers'
18
+ require 'spec/rails/mocks'
19
+ require 'spec/rails/example'
20
+ require 'spec/rails/extensions'
21
+ require 'spec/rails/interop/testcase'
22
+
23
+ Spec::Example::ExampleGroupFactory.default(ActiveSupport::TestCase)
24
+
25
+ if ActionView::Base.respond_to?(:cache_template_extensions)
26
+ ActionView::Base.cache_template_extensions = false
27
+ end
28
+
@@ -0,0 +1,57 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{rspec-rails}
5
+ s.version = "1.2.2.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["RSpec Development Team"]
9
+ s.date = %q{2009-04-13}
10
+ s.description = %q{Behaviour Driven Development for Ruby on Rails.}
11
+ s.email = ["rspec-devel@rubyforge.org"]
12
+ s.extra_rdoc_files = ["License.txt", "Manifest.txt", "TODO.txt", "generators/rspec/templates/previous_failures.txt"]
13
+ s.files = [".document", "History.rdoc", "License.txt", "Manifest.txt", "README.rdoc", "Rakefile", "TODO.txt", "Upgrade.rdoc", "features/step_definitions/people.rb", "features/support/env.rb", "features/transactions/transactions_should_rollback.feature", "generators/rspec/CHANGES", "generators/rspec/rspec_generator.rb", "generators/rspec/templates/previous_failures.txt", "generators/rspec/templates/rcov.opts", "generators/rspec/templates/rspec.rake", "generators/rspec/templates/script/autospec", "generators/rspec/templates/script/spec", "generators/rspec/templates/script/spec_server", "generators/rspec/templates/spec.opts", "generators/rspec/templates/spec_helper.rb", "generators/rspec_controller/USAGE", "generators/rspec_controller/rspec_controller_generator.rb", "generators/rspec_controller/templates/controller_spec.rb", "generators/rspec_controller/templates/helper_spec.rb", "generators/rspec_controller/templates/view_spec.rb", "generators/rspec_default_values.rb", "generators/rspec_model/USAGE", "generators/rspec_model/rspec_model_generator.rb", "generators/rspec_model/templates/model_spec.rb", "generators/rspec_scaffold/rspec_scaffold_generator.rb", "generators/rspec_scaffold/templates/controller_spec.rb", "generators/rspec_scaffold/templates/edit_erb_spec.rb", "generators/rspec_scaffold/templates/helper_spec.rb", "generators/rspec_scaffold/templates/index_erb_spec.rb", "generators/rspec_scaffold/templates/new_erb_spec.rb", "generators/rspec_scaffold/templates/routing_spec.rb", "generators/rspec_scaffold/templates/show_erb_spec.rb", "init.rb", "lib/autotest/discover.rb", "lib/autotest/rails_rspec.rb", "lib/spec/rails.rb", "lib/spec/rails/example.rb", "lib/spec/rails/example/assigns_hash_proxy.rb", "lib/spec/rails/example/controller_example_group.rb", "lib/spec/rails/example/cookies_proxy.rb", "lib/spec/rails/example/functional_example_group.rb", "lib/spec/rails/example/helper_example_group.rb", "lib/spec/rails/example/model_example_group.rb", "lib/spec/rails/example/render_observer.rb", "lib/spec/rails/example/routing_example_group.rb", "lib/spec/rails/example/routing_helpers.rb", "lib/spec/rails/example/view_example_group.rb", "lib/spec/rails/extensions.rb", "lib/spec/rails/extensions/action_controller/rescue.rb", "lib/spec/rails/extensions/action_controller/test_case.rb", "lib/spec/rails/extensions/action_controller/test_response.rb", "lib/spec/rails/extensions/action_view/base.rb", "lib/spec/rails/extensions/active_record/base.rb", "lib/spec/rails/extensions/active_support/test_case.rb", "lib/spec/rails/extensions/spec/matchers/have.rb", "lib/spec/rails/extensions/spec/runner/configuration.rb", "lib/spec/rails/interop/testcase.rb", "lib/spec/rails/matchers.rb", "lib/spec/rails/matchers/ar_be_valid.rb", "lib/spec/rails/matchers/assert_select.rb", "lib/spec/rails/matchers/change.rb", "lib/spec/rails/matchers/have_text.rb", "lib/spec/rails/matchers/include_text.rb", "lib/spec/rails/matchers/redirect_to.rb", "lib/spec/rails/matchers/render_template.rb", "lib/spec/rails/mocks.rb", "lib/spec/rails/spec_server.rb", "lib/spec/rails/story_adapter.rb", "lib/spec/rails/version.rb", "rspec-rails.gemspec", "spec/autotest/mappings_spec.rb", "spec/rails_suite.rb", "spec/resources/controllers/action_view_base_spec_controller.rb", "spec/resources/controllers/application.rb", "spec/resources/controllers/controller_spec_controller.rb", "spec/resources/controllers/example.txt", "spec/resources/controllers/redirect_spec_controller.rb", "spec/resources/controllers/render_spec_controller.rb", "spec/resources/controllers/rjs_spec_controller.rb", "spec/resources/helpers/addition_helper.rb", "spec/resources/helpers/explicit_helper.rb", "spec/resources/helpers/more_explicit_helper.rb", "spec/resources/helpers/plugin_application_helper.rb", "spec/resources/helpers/view_spec_helper.rb", "spec/resources/models/animal.rb", "spec/resources/models/person.rb", "spec/resources/models/thing.rb", "spec/resources/views/controller_spec/_partial.html.erb", "spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb", "spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb", "spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb", "spec/resources/views/controller_spec/action_with_errors_in_template.html.erb", "spec/resources/views/controller_spec/action_with_template.html.erb", "spec/resources/views/layouts/application.html.erb", "spec/resources/views/layouts/simple.html.erb", "spec/resources/views/objects/_object.html.erb", "spec/resources/views/render_spec/_a_partial.html.erb", "spec/resources/views/render_spec/action_with_alternate_layout.html.erb", "spec/resources/views/render_spec/some_action.html.erb", "spec/resources/views/render_spec/some_action.js.rjs", "spec/resources/views/rjs_spec/_replacement_partial.html.erb", "spec/resources/views/rjs_spec/hide_div.js.rjs", "spec/resources/views/rjs_spec/hide_page_element.js.rjs", "spec/resources/views/rjs_spec/insert_html.js.rjs", "spec/resources/views/rjs_spec/replace.js.rjs", "spec/resources/views/rjs_spec/replace_html.js.rjs", "spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs", "spec/resources/views/rjs_spec/visual_effect.js.rjs", "spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs", "spec/resources/views/tag_spec/no_tags.html.erb", "spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb", "spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb", "spec/resources/views/view_spec/_partial.html.erb", "spec/resources/views/view_spec/_partial_used_twice.html.erb", "spec/resources/views/view_spec/_partial_with_local_variable.html.erb", "spec/resources/views/view_spec/_partial_with_sub_partial.html.erb", "spec/resources/views/view_spec/_spacer.html.erb", "spec/resources/views/view_spec/accessor.html.erb", "spec/resources/views/view_spec/block_helper.html.erb", "spec/resources/views/view_spec/entry_form.html.erb", "spec/resources/views/view_spec/explicit_helper.html.erb", "spec/resources/views/view_spec/foo/show.html.erb", "spec/resources/views/view_spec/implicit_helper.html.erb", "spec/resources/views/view_spec/multiple_helpers.html.erb", "spec/resources/views/view_spec/path_params.html.erb", "spec/resources/views/view_spec/should_not_receive.html.erb", "spec/resources/views/view_spec/template_with_partial.html.erb", "spec/resources/views/view_spec/template_with_partial_using_collection.html.erb", "spec/resources/views/view_spec/template_with_partial_with_array.html.erb", "spec/spec/rails/example/assigns_hash_proxy_spec.rb", "spec/spec/rails/example/configuration_spec.rb", "spec/spec/rails/example/controller_example_group_spec.rb", "spec/spec/rails/example/controller_isolation_spec.rb", "spec/spec/rails/example/cookies_proxy_spec.rb", "spec/spec/rails/example/error_handling_spec.rb", "spec/spec/rails/example/example_group_factory_spec.rb", "spec/spec/rails/example/helper_example_group_spec.rb", "spec/spec/rails/example/model_example_group_spec.rb", "spec/spec/rails/example/routing_example_group_spec.rb", "spec/spec/rails/example/shared_routing_example_group_examples.rb", "spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb", "spec/spec/rails/example/view_example_group_spec.rb", "spec/spec/rails/extensions/action_view_base_spec.rb", "spec/spec/rails/extensions/active_record_spec.rb", "spec/spec/rails/interop/testcase_spec.rb", "spec/spec/rails/matchers/ar_be_valid_spec.rb", "spec/spec/rails/matchers/assert_select_spec.rb", "spec/spec/rails/matchers/errors_on_spec.rb", "spec/spec/rails/matchers/have_text_spec.rb", "spec/spec/rails/matchers/include_text_spec.rb", "spec/spec/rails/matchers/redirect_to_spec.rb", "spec/spec/rails/matchers/render_template_spec.rb", "spec/spec/rails/matchers/should_change_spec.rb", "spec/spec/rails/mocks/ar_classes.rb", "spec/spec/rails/mocks/mock_model_spec.rb", "spec/spec/rails/mocks/stub_model_spec.rb", "spec/spec/rails/sample_modified_fixture.rb", "spec/spec/rails/sample_spec.rb", "spec/spec/rails/spec_server_spec.rb", "spec/spec/rails/spec_spec.rb", "spec/spec_helper.rb"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://rspec.info}
16
+ s.post_install_message = %q{**************************************************
17
+
18
+ Thank you for installing rspec-rails-1.2.2
19
+
20
+ If you are upgrading, do this in each of your rails apps
21
+ that you want to upgrade:
22
+
23
+ $ ruby script/generate rspec
24
+
25
+ Please be sure to read History.rdoc and Upgrade.rdoc
26
+ for useful information about this release.
27
+
28
+ **************************************************
29
+ }
30
+ s.rdoc_options = ["--main", "README.rdoc"]
31
+ s.require_paths = ["lib"]
32
+ s.rubyforge_project = %q{rspec}
33
+ s.rubygems_version = %q{1.3.1}
34
+ s.summary = %q{rspec-rails 1.2.2}
35
+
36
+ if s.respond_to? :specification_version then
37
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
38
+ s.specification_version = 2
39
+
40
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
+ s.add_runtime_dependency(%q<rspec>, ["= 1.2.2"])
42
+ s.add_runtime_dependency(%q<rack>, [">= 0.4.0"])
43
+ s.add_development_dependency(%q<cucumber>, [">= 0.1.16"])
44
+ s.add_development_dependency(%q<hoe>, [">= 1.12.1"])
45
+ else
46
+ s.add_dependency(%q<rspec>, ["= 1.2.2"])
47
+ s.add_dependency(%q<rack>, [">= 0.4.0"])
48
+ s.add_dependency(%q<cucumber>, [">= 0.1.16"])
49
+ s.add_dependency(%q<hoe>, [">= 1.12.1"])
50
+ end
51
+ else
52
+ s.add_dependency(%q<rspec>, ["= 1.2.2"])
53
+ s.add_dependency(%q<rack>, [">= 0.4.0"])
54
+ s.add_dependency(%q<cucumber>, [">= 0.1.16"])
55
+ s.add_dependency(%q<hoe>, [">= 1.12.1"])
56
+ end
57
+ end
@@ -0,0 +1,86 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../lib/autotest/rails_rspec'
3
+ require File.dirname(__FILE__) + '/../../../rspec/spec/autotest/autotest_matchers'
4
+
5
+ describe Autotest::RailsRspec, "file mapping" do
6
+ before(:each) do
7
+ @autotest = Autotest::RailsRspec.new
8
+ @autotest.hook :initialize
9
+ end
10
+
11
+ it "should map model example to model" do
12
+ @autotest.should map_specs(['spec/models/thing_spec.rb']).
13
+ to('app/models/thing.rb')
14
+ end
15
+
16
+ it "should map controller example to controller" do
17
+ @autotest.should map_specs(['spec/controllers/things_controller_spec.rb']).
18
+ to('app/controllers/things_controller.rb')
19
+ end
20
+
21
+ it "should map view.rhtml" do
22
+ @autotest.should map_specs(['spec/views/things/index.rhtml_spec.rb']).
23
+ to('app/views/things/index.rhtml')
24
+ end
25
+
26
+ it "should map view.rhtml with underscores in example filename" do
27
+ @autotest.should map_specs(['spec/views/things/index_rhtml_spec.rb']).
28
+ to('app/views/things/index.rhtml')
29
+ end
30
+
31
+ it "should map view.html.erb" do
32
+ @autotest.should map_specs(['spec/views/things/index.html.erb_spec.rb']).
33
+ to('app/views/things/index.html.erb')
34
+ end
35
+
36
+ describe "between routes.rb and things which depend on routes" do
37
+ it "should map routes.rb to controllers" do
38
+ @autotest.should map_specs(['spec/controllers/things_controller_spec.rb']).
39
+ to('config/routes.rb')
40
+ end
41
+
42
+ it "should map routes.rb to views" do
43
+ @autotest.should map_specs(['spec/views/things/action.html.erb_spec.rb']).
44
+ to('config/routes.rb')
45
+ end
46
+
47
+ it "should map routes.rb to helpers" do
48
+ @autotest.should map_specs(['spec/helpers/things_helper_spec.rb']).
49
+ to('config/routes.rb')
50
+ end
51
+
52
+ it "should map routing example to routes" do
53
+ @autotest.should map_specs(['spec/routing/thing_spec.rb']).
54
+ to('config/routes.rb')
55
+ end
56
+ end
57
+
58
+ describe "between the config and specs" do
59
+ ['spec/controllers/things_controller_spec.rb',
60
+ 'spec/views/things/action.html.erb_spec.rb',
61
+ 'spec/helpers/things_helper_spec.rb',
62
+ 'spec/routing/thing_spec.rb',
63
+ 'spec/models/thing_spec.rb'].each do |file_path|
64
+
65
+ it "should map environment.rb to #{file_path}" do
66
+ @autotest.should map_specs([file_path]).
67
+ to('config/environment.rb')
68
+ end
69
+
70
+ it "should map environments/test.rb to #{file_path}" do
71
+ @autotest.should map_specs([file_path]).
72
+ to('config/environments/test.rb')
73
+ end
74
+
75
+ it "should map boot.rb to #{file_path}" do
76
+ @autotest.should map_specs([file_path]).
77
+ to('config/boot.rb')
78
+ end
79
+
80
+ it "should map spec_helper.rb to #{file_path}" do
81
+ @autotest.should map_specs([file_path]).
82
+ to('spec/spec_helper.rb')
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,7 @@
1
+ dir = File.dirname(__FILE__)
2
+ Dir["#{dir}/**/*_example.rb"].each do |file|
3
+ require file
4
+ end
5
+ Dir["#{dir}/**/*_spec.rb"].each do |file|
6
+ require file
7
+ end
@@ -0,0 +1,2 @@
1
+ class ActionViewBaseSpecController < ActionController::Base
2
+ end
@@ -0,0 +1,9 @@
1
+ class ApplicationController < ActionController::Base
2
+ before_filter :i_should_only_be_run_once,
3
+ :only => 'action_with_inherited_before_filter'
4
+
5
+ def i_should_only_be_run_once
6
+ true
7
+ end
8
+ private :i_should_only_be_run_once
9
+ end
@@ -0,0 +1,120 @@
1
+ class ControllerSpecController < ActionController::Base
2
+ before_filter :raise_error, :only => :action_with_skipped_before_filter
3
+
4
+ def raise_error
5
+ raise "from a before filter"
6
+ end
7
+
8
+ skip_before_filter :raise_error
9
+
10
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "views")
11
+
12
+ def some_action
13
+ render :template => "template/that/does/not/actually/exist"
14
+ end
15
+
16
+ def action_with_template
17
+ render :template => "controller_spec/action_with_template"
18
+ end
19
+
20
+ def action_which_sets_flash
21
+ flash[:flash_key] = "flash value"
22
+ render :text => ""
23
+ end
24
+
25
+ def action_which_gets_session
26
+ raise "expected #{params[:session_key].inspect}\ngot #{session[:session_key].inspect}" unless (session[:session_key] == params[:expected])
27
+ render :text => ""
28
+ end
29
+
30
+ def action_which_sets_session
31
+ session[:session_key] = "session value"
32
+ end
33
+
34
+ def action_which_gets_cookie
35
+ raise "expected #{params[:expected].inspect}, got #{cookies[:cookie_key].inspect}" unless (cookies[:cookie_key] == params[:expected])
36
+ render :text => ""
37
+ end
38
+
39
+ def action_which_sets_cookie
40
+ cookies['cookie_key'] = params[:value]
41
+ render :text => ""
42
+ end
43
+
44
+ def action_with_partial
45
+ render :partial => "controller_spec/partial"
46
+ end
47
+
48
+ def action_with_partial_with_object
49
+ render :partial => "controller_spec/partial", :object => params[:thing]
50
+ end
51
+
52
+ def action_with_partial_with_locals
53
+ render :partial => "controller_spec/partial", :locals => {:thing => params[:thing]}
54
+ end
55
+
56
+ def action_with_errors_in_template
57
+ render :template => "controller_spec/action_with_errors_in_template"
58
+ end
59
+
60
+ def action_setting_the_assigns_hash
61
+ @indirect_assigns_key = :indirect_assigns_key_value
62
+ end
63
+
64
+ def action_setting_flash_after_session_reset
65
+ reset_session
66
+ flash[:after_reset] = "available"
67
+ end
68
+
69
+ def action_setting_flash_before_session_reset
70
+ flash[:before_reset] = 'available'
71
+ reset_session
72
+ end
73
+
74
+ def action_with_render_update
75
+ render :update do |page|
76
+ page.replace :bottom, 'replace_me',
77
+ :partial => 'non_existent_partial'
78
+ end
79
+ end
80
+
81
+ def action_with_skipped_before_filter
82
+ render :text => ""
83
+ end
84
+
85
+ def action_that_renders_inline
86
+ render :inline => "<%= 'inline code' %>"
87
+ end
88
+
89
+ def action_that_assigns_false_to_a_variable
90
+ @a_variable = false
91
+ render :text => ""
92
+ end
93
+
94
+ def action_with_two_arg_render
95
+ render :update, :status => 404 do |page|
96
+ page.visual_effect :highlight, 'user_list'
97
+ end
98
+ end
99
+
100
+ class RescuedError < Exception; end
101
+ class UnRescuedError < Exception; end
102
+
103
+ rescue_from RescuedError do |e|
104
+ render :text => 'Rescued!'
105
+ end
106
+
107
+ def rescued_error_action
108
+ raise RescuedError
109
+ end
110
+
111
+ def un_rescued_error_action
112
+ raise UnRescuedError
113
+ end
114
+ end
115
+
116
+ class ControllerInheritingFromApplicationControllerController < ApplicationController
117
+ def action_with_inherited_before_filter
118
+ render :text => ""
119
+ end
120
+ end
@@ -0,0 +1 @@
1
+ This is an example file to download.
@@ -0,0 +1,70 @@
1
+ class RedirectSpecController < ApplicationController
2
+
3
+ def action_with_no_redirect
4
+ render :text => "this is just here to keep this from causing a MissingTemplate error"
5
+ end
6
+
7
+ def action_with_redirect_to_somewhere
8
+ redirect_to :action => 'somewhere'
9
+ end
10
+
11
+ def action_with_redirect_to_other_somewhere
12
+ redirect_to :controller => 'render_spec', :action => 'text_action'
13
+ end
14
+
15
+ def action_with_redirect_to_somewhere_and_return
16
+ redirect_to :action => 'somewhere' and return
17
+ render :text => "this is after the return"
18
+ end
19
+
20
+ def somewhere
21
+ render :text => "this is just here to keep this from causing a MissingTemplate error"
22
+ end
23
+
24
+ def action_with_redirect_to_rspec_site
25
+ redirect_to "http://rspec.rubyforge.org"
26
+ end
27
+
28
+ def action_with_redirect_back
29
+ redirect_to :back
30
+ end
31
+
32
+ def action_with_redirect_in_respond_to
33
+ respond_to do |wants|
34
+ wants.html { redirect_to :action => 'somewhere' }
35
+ end
36
+ end
37
+
38
+ def action_with_redirect_which_creates_query_string
39
+ redirect_to :action => "somewhere", :id => 1111, :param1 => "value1", :param2 => "value2"
40
+ end
41
+
42
+ # note: sometimes this is the URL which rails will generate from the hash in
43
+ # action_with_redirect_which_creates_query_string
44
+ def action_with_redirect_with_query_string_order1
45
+ redirect_to "http://test.host/redirect_spec/somewhere/1111?param1=value1&param2=value2"
46
+ end
47
+
48
+ # note: sometimes this is the URL which rails will generate from the hash in
49
+ # action_with_redirect_which_creates_query_string
50
+ def action_with_redirect_with_query_string_order2
51
+ redirect_to "http://test.host/redirect_spec/somewhere/1111?param2=value2&param1=value1"
52
+ end
53
+
54
+ def action_with_redirect_to_unroutable_url_inside_app
55
+ redirect_to :controller => "nonexistant", :action => "none"
56
+ end
57
+
58
+ def action_with_method_restriction
59
+ render :text => ''
60
+ end
61
+
62
+ def action_to_redirect_to_action_with_method_restriction
63
+ redirect_to :action => 'action_with_method_restriction'
64
+ end
65
+
66
+ def action_with_redirect_to_somewhere_with_status
67
+ redirect_to :action => 'somewhere', :status => 301
68
+ end
69
+ end
70
+
@@ -0,0 +1,30 @@
1
+ class RenderSpecController < ApplicationController
2
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def some_action
5
+ respond_to do |format|
6
+ format.html
7
+ format.js
8
+ end
9
+ end
10
+
11
+ def action_which_renders_template_from_other_controller
12
+ render :template => 'controller_spec/action_with_template'
13
+ end
14
+
15
+ def text_action
16
+ render :text => "this is the text for this action"
17
+ end
18
+
19
+ def action_with_partial
20
+ render :partial => "a_partial"
21
+ end
22
+
23
+ def action_that_renders_nothing
24
+ render :nothing => true
25
+ end
26
+
27
+ def action_with_alternate_layout
28
+ render :layout => 'simple'
29
+ end
30
+ end
@@ -0,0 +1,58 @@
1
+ class RjsSpecController < ApplicationController
2
+ prepend_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def replace_html
5
+ end
6
+
7
+ def insert_html
8
+ end
9
+
10
+ def replace
11
+ end
12
+
13
+ def hide_div
14
+ end
15
+
16
+ def hide_page_element
17
+ end
18
+
19
+ def replace_html_with_partial
20
+ end
21
+
22
+ def render_replace_html
23
+ render :update do |page|
24
+ page.replace_html 'mydiv', 'replacement text'
25
+ page.replace_html 'myotherdiv', 'other replacement text'
26
+ end
27
+ end
28
+
29
+ def render_replace_html_with_partial
30
+ render :update do |page|
31
+ page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial'
32
+ end
33
+ end
34
+
35
+ def render_insert_html
36
+ render :update do |page|
37
+ page.insert_html 'mydiv', 'replacement text'
38
+ end
39
+ end
40
+
41
+ def render_replace
42
+ render :update do |page|
43
+ page.replace 'mydiv', 'replacement text'
44
+ end
45
+ end
46
+
47
+ def render_hide_div
48
+ render :update do |page|
49
+ page.hide 'mydiv'
50
+ end
51
+ end
52
+
53
+ def render_hide_page_element
54
+ render :update do |page|
55
+ page['mydiv'].hide
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,5 @@
1
+ module AdditionHelper
2
+ def plus(addend)
3
+ @addend + addend
4
+ end
5
+ end
@@ -0,0 +1,46 @@
1
+ module ExplicitHelper
2
+ def method_in_explicit_helper
3
+ "<div>This is text from a method in the ExplicitHelper</div>"
4
+ end
5
+
6
+ # this is an example of a method spec'able with eval_erb in helper specs
7
+ def prepend(arg, &block)
8
+ begin # rails edge after 2.1.0 eliminated need for block.binding
9
+ concat(arg) + block.call
10
+ rescue
11
+ concat(arg, block.binding) + block.call
12
+ end
13
+ end
14
+
15
+ def named_url
16
+ rspec_on_rails_specs_url
17
+ end
18
+
19
+ def named_path
20
+ rspec_on_rails_specs_path
21
+ end
22
+
23
+ def params_foo
24
+ params[:foo]
25
+ end
26
+
27
+ def session_foo
28
+ session[:foo]
29
+ end
30
+
31
+ def request_thing
32
+ request.thing
33
+ end
34
+
35
+ def flash_thing
36
+ flash[:thing]
37
+ end
38
+
39
+ def method_using_output_buffer
40
+ concat("the_text_from_concat")
41
+ end
42
+
43
+ def method_using_template
44
+ update_page { |p| p["#some_id"].replace_html "" }
45
+ end
46
+ end
@@ -0,0 +1,5 @@
1
+ module MoreExplicitHelper
2
+ def method_in_more_explicit_helper
3
+ "<div>This is text from a method in the MoreExplicitHelper</div>"
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # Methods added to this helper will be available to all templates in the application.
2
+ module ApplicationHelper
3
+ def method_in_plugin_application_helper
4
+ "<div>This is text from a method in the ApplicationHelper</div>"
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ module ViewSpecHelper
2
+ def method_in_helper
3
+ "<div>This is text from a method in the ViewSpecHelper</div>"
4
+ end
5
+
6
+ def method_in_template_with_partial
7
+ "<div>method_in_template_with_partial in ViewSpecHelper</div>"
8
+ end
9
+
10
+ def method_in_partial
11
+ "<div>method_in_partial in ViewSpecHelper</div>"
12
+ end
13
+ end