has_finder 0.1.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 (432) hide show
  1. data/History.txt +4 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +431 -0
  4. data/README.txt +1 -0
  5. data/Rakefile +4 -0
  6. data/config/hoe.rb +70 -0
  7. data/config/requirements.rb +17 -0
  8. data/lib/has_finder.rb +1 -0
  9. data/lib/has_finder/has_finder.rb +84 -0
  10. data/lib/has_finder/metaid.rb +15 -0
  11. data/lib/has_finder/version.rb +9 -0
  12. data/log/debug.log +0 -0
  13. data/nbproject/private/private.xml +4 -0
  14. data/nbproject/private/rake-t.txt +1 -0
  15. data/nbproject/project.properties +4 -0
  16. data/nbproject/project.xml +15 -0
  17. data/script/destroy +14 -0
  18. data/script/generate +14 -0
  19. data/setup.rb +1585 -0
  20. data/spec/rails/README +182 -0
  21. data/spec/rails/Rakefile +10 -0
  22. data/spec/rails/app/controllers/application.rb +7 -0
  23. data/spec/rails/app/helpers/application_helper.rb +3 -0
  24. data/spec/rails/app/models/being.rb +3 -0
  25. data/spec/rails/config/boot.rb +45 -0
  26. data/spec/rails/config/database.yml +36 -0
  27. data/spec/rails/config/environment.rb +62 -0
  28. data/spec/rails/config/environments/development.rb +21 -0
  29. data/spec/rails/config/environments/production.rb +18 -0
  30. data/spec/rails/config/environments/test.rb +19 -0
  31. data/spec/rails/config/routes.rb +23 -0
  32. data/spec/rails/db/migrate/001_create_beings.rb +12 -0
  33. data/spec/rails/db/schema.rb +17 -0
  34. data/spec/rails/doc/README_FOR_APP +2 -0
  35. data/spec/rails/log/development.log +432 -0
  36. data/spec/rails/log/production.log +0 -0
  37. data/spec/rails/log/server.log +0 -0
  38. data/spec/rails/log/test.log +5820 -0
  39. data/spec/rails/nbproject/private/config.properties +0 -0
  40. data/spec/rails/nbproject/private/private.properties +1 -0
  41. data/spec/rails/nbproject/private/rake-t.txt +54 -0
  42. data/spec/rails/nbproject/project.properties +4 -0
  43. data/spec/rails/nbproject/project.xml +9 -0
  44. data/spec/rails/previous_failures.txt +0 -0
  45. data/spec/rails/public/404.html +30 -0
  46. data/spec/rails/public/500.html +30 -0
  47. data/spec/rails/public/dispatch.cgi +10 -0
  48. data/spec/rails/public/dispatch.fcgi +24 -0
  49. data/spec/rails/public/dispatch.rb +10 -0
  50. data/spec/rails/public/favicon.ico +0 -0
  51. data/spec/rails/public/images/rails.png +0 -0
  52. data/spec/rails/public/index.html +277 -0
  53. data/spec/rails/public/javascripts/application.js +2 -0
  54. data/spec/rails/public/javascripts/controls.js +833 -0
  55. data/spec/rails/public/javascripts/dragdrop.js +942 -0
  56. data/spec/rails/public/javascripts/effects.js +1088 -0
  57. data/spec/rails/public/javascripts/prototype.js +2515 -0
  58. data/spec/rails/public/robots.txt +1 -0
  59. data/spec/rails/script/about +3 -0
  60. data/spec/rails/script/breakpointer +3 -0
  61. data/spec/rails/script/console +3 -0
  62. data/spec/rails/script/destroy +3 -0
  63. data/spec/rails/script/generate +3 -0
  64. data/spec/rails/script/performance/benchmarker +3 -0
  65. data/spec/rails/script/performance/profiler +3 -0
  66. data/spec/rails/script/plugin +3 -0
  67. data/spec/rails/script/process/inspector +3 -0
  68. data/spec/rails/script/process/reaper +3 -0
  69. data/spec/rails/script/process/spawner +3 -0
  70. data/spec/rails/script/runner +3 -0
  71. data/spec/rails/script/server +3 -0
  72. data/spec/rails/script/spec +4 -0
  73. data/spec/rails/script/spec_server +45 -0
  74. data/spec/rails/spec/fixtures/beings.yml +12 -0
  75. data/spec/rails/spec/models/being_spec.rb +98 -0
  76. data/spec/rails/spec/spec.opts +6 -0
  77. data/spec/rails/spec/spec_helper.rb +15 -0
  78. data/spec/rails/test/test_helper.rb +28 -0
  79. data/spec/rails/tmp/sessions/ruby_sess.5edc9bf3b65456d0 +0 -0
  80. data/spec/rails/vendor/plugins/rspec/CHANGES +797 -0
  81. data/spec/rails/vendor/plugins/rspec/MIT-LICENSE +20 -0
  82. data/spec/rails/vendor/plugins/rspec/README +70 -0
  83. data/spec/rails/vendor/plugins/rspec/Rakefile +304 -0
  84. data/spec/rails/vendor/plugins/rspec/UPGRADE +31 -0
  85. data/spec/rails/vendor/plugins/rspec/bin/spec +3 -0
  86. data/spec/rails/vendor/plugins/rspec/bin/spec_translator +8 -0
  87. data/spec/rails/vendor/plugins/rspec/examples/auto_spec_description_example.rb +19 -0
  88. data/spec/rails/vendor/plugins/rspec/examples/before_and_after_example.rb +39 -0
  89. data/spec/rails/vendor/plugins/rspec/examples/behave_as_example.rb +45 -0
  90. data/spec/rails/vendor/plugins/rspec/examples/custom_expectation_matchers.rb +54 -0
  91. data/spec/rails/vendor/plugins/rspec/examples/custom_formatter.rb +11 -0
  92. data/spec/rails/vendor/plugins/rspec/examples/dynamic_spec.rb +9 -0
  93. data/spec/rails/vendor/plugins/rspec/examples/file_accessor.rb +18 -0
  94. data/spec/rails/vendor/plugins/rspec/examples/file_accessor_spec.rb +38 -0
  95. data/spec/rails/vendor/plugins/rspec/examples/greeter_spec.rb +30 -0
  96. data/spec/rails/vendor/plugins/rspec/examples/helper_method_example.rb +11 -0
  97. data/spec/rails/vendor/plugins/rspec/examples/io_processor.rb +8 -0
  98. data/spec/rails/vendor/plugins/rspec/examples/io_processor_spec.rb +21 -0
  99. data/spec/rails/vendor/plugins/rspec/examples/legacy_spec.rb +10 -0
  100. data/spec/rails/vendor/plugins/rspec/examples/mocking_example.rb +27 -0
  101. data/spec/rails/vendor/plugins/rspec/examples/multi_threaded_behaviour_runner.rb +25 -0
  102. data/spec/rails/vendor/plugins/rspec/examples/not_yet_implemented_spec.rb +12 -0
  103. data/spec/rails/vendor/plugins/rspec/examples/partial_mock_example.rb +28 -0
  104. data/spec/rails/vendor/plugins/rspec/examples/predicate_example.rb +27 -0
  105. data/spec/rails/vendor/plugins/rspec/examples/priority.txt +1 -0
  106. data/spec/rails/vendor/plugins/rspec/examples/shared_behaviours_example.rb +39 -0
  107. data/spec/rails/vendor/plugins/rspec/examples/spec_helper.rb +1 -0
  108. data/spec/rails/vendor/plugins/rspec/examples/stack.rb +36 -0
  109. data/spec/rails/vendor/plugins/rspec/examples/stack_spec.rb +97 -0
  110. data/spec/rails/vendor/plugins/rspec/examples/stubbing_example.rb +69 -0
  111. data/spec/rails/vendor/plugins/rspec/examples/test_case_adapter_example.rb +26 -0
  112. data/spec/rails/vendor/plugins/rspec/examples/test_case_spec.rb +65 -0
  113. data/spec/rails/vendor/plugins/rspec/failing_examples/diffing_spec.rb +36 -0
  114. data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +10 -0
  115. data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +10 -0
  116. data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_example.rb +33 -0
  117. data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_flexmock.rb +26 -0
  118. data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_mocha.rb +25 -0
  119. data/spec/rails/vendor/plugins/rspec/failing_examples/partial_mock_example.rb +20 -0
  120. data/spec/rails/vendor/plugins/rspec/failing_examples/predicate_example.rb +29 -0
  121. data/spec/rails/vendor/plugins/rspec/failing_examples/raising_example.rb +47 -0
  122. data/spec/rails/vendor/plugins/rspec/failing_examples/spec_helper.rb +1 -0
  123. data/spec/rails/vendor/plugins/rspec/failing_examples/syntax_error_example.rb +7 -0
  124. data/spec/rails/vendor/plugins/rspec/failing_examples/team_spec.rb +46 -0
  125. data/spec/rails/vendor/plugins/rspec/failing_examples/timeout_behaviour.rb +7 -0
  126. data/spec/rails/vendor/plugins/rspec/init.rb +3 -0
  127. data/spec/rails/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
  128. data/spec/rails/vendor/plugins/rspec/lib/autotest/rspec.rb +67 -0
  129. data/spec/rails/vendor/plugins/rspec/lib/spec.rb +13 -0
  130. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl.rb +10 -0
  131. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb +210 -0
  132. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_callbacks.rb +78 -0
  133. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_eval.rb +220 -0
  134. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_factory.rb +42 -0
  135. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb +28 -0
  136. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/configuration.rb +119 -0
  137. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/description.rb +69 -0
  138. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example.rb +127 -0
  139. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_matcher.rb +40 -0
  140. data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_should_raise_handler.rb +74 -0
  141. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations.rb +56 -0
  142. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +61 -0
  143. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/errors.rb +6 -0
  144. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +2 -0
  145. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +66 -0
  146. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  147. data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/handler.rb +43 -0
  148. data/spec/rails/vendor/plugins/rspec/lib/spec/extensions.rb +1 -0
  149. data/spec/rails/vendor/plugins/rspec/lib/spec/extensions/object.rb +6 -0
  150. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers.rb +166 -0
  151. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be.rb +206 -0
  152. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +37 -0
  153. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/change.rb +120 -0
  154. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/eql.rb +43 -0
  155. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/equal.rb +43 -0
  156. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/has.rb +44 -0
  157. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/have.rb +145 -0
  158. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/include.rb +70 -0
  159. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/match.rb +41 -0
  160. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +72 -0
  161. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +100 -0
  162. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +45 -0
  163. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
  164. data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +72 -0
  165. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks.rb +208 -0
  166. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +27 -0
  167. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +183 -0
  168. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +84 -0
  169. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
  170. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  171. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +231 -0
  172. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/methods.rb +35 -0
  173. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/mock.rb +29 -0
  174. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
  175. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +163 -0
  176. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
  177. data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +30 -0
  178. data/spec/rails/vendor/plugins/rspec/lib/spec/rake/spectask.rb +175 -0
  179. data/spec/rails/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  180. data/spec/rails/vendor/plugins/rspec/lib/spec/runner.rb +165 -0
  181. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +56 -0
  182. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb +102 -0
  183. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/command_line.rb +22 -0
  184. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +21 -0
  185. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/kernel.rb +50 -0
  186. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/object.rb +32 -0
  187. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter.rb +9 -0
  188. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +68 -0
  189. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +102 -0
  190. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
  191. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  192. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +316 -0
  193. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +30 -0
  194. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/rdoc_formatter.rb +24 -0
  195. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  196. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +28 -0
  197. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  198. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  199. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +226 -0
  200. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/options.rb +158 -0
  201. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/reporter.rb +114 -0
  202. data/spec/rails/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +50 -0
  203. data/spec/rails/vendor/plugins/rspec/lib/spec/test_case_adapter.rb +10 -0
  204. data/spec/rails/vendor/plugins/rspec/lib/spec/translator.rb +106 -0
  205. data/spec/rails/vendor/plugins/rspec/lib/spec/version.rb +22 -0
  206. data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +27 -0
  207. data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +21 -0
  208. data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +18 -0
  209. data/spec/rails/vendor/plugins/rspec/rake_tasks/examples.rake +7 -0
  210. data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_specdoc.rake +9 -0
  211. data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_with_rcov.rake +9 -0
  212. data/spec/rails/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +9 -0
  213. data/spec/rails/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +7 -0
  214. data/spec/rails/vendor/plugins/rspec/spec.opts +13 -0
  215. data/spec/rails/vendor/plugins/rspec/spec/README.jruby +14 -0
  216. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
  217. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
  218. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb +624 -0
  219. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
  220. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb +50 -0
  221. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb +81 -0
  222. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb +24 -0
  223. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb +162 -0
  224. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb +137 -0
  225. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  226. data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb +228 -0
  227. data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +107 -0
  228. data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +46 -0
  229. data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +71 -0
  230. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +39 -0
  231. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +209 -0
  232. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +232 -0
  233. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +159 -0
  234. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +28 -0
  235. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +28 -0
  236. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +48 -0
  237. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +88 -0
  238. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +37 -0
  239. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +272 -0
  240. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +45 -0
  241. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +37 -0
  242. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +78 -0
  243. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
  244. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +158 -0
  245. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +147 -0
  246. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +54 -0
  247. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  248. data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +51 -0
  249. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +29 -0
  250. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +19 -0
  251. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  252. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  253. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  254. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  255. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  256. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  257. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  258. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +114 -0
  259. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  260. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  261. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +377 -0
  262. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  263. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +40 -0
  264. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  265. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +33 -0
  266. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +52 -0
  267. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  268. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +148 -0
  269. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  270. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  271. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +159 -0
  272. data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  273. data/spec/rails/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +12 -0
  274. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb +206 -0
  275. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +33 -0
  276. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb +27 -0
  277. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +81 -0
  278. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
  279. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/example_matcher_spec.rb +127 -0
  280. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
  281. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +31 -0
  282. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb +36 -0
  283. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
  284. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
  285. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
  286. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +333 -0
  287. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +344 -0
  288. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +338 -0
  289. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +338 -0
  290. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +56 -0
  291. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
  292. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
  293. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
  294. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +19 -0
  295. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb +46 -0
  296. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  297. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
  298. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +56 -0
  299. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +63 -0
  300. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +14 -0
  301. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  302. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb +11 -0
  303. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +348 -0
  304. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +142 -0
  305. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +56 -0
  306. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +153 -0
  307. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
  308. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +93 -0
  309. data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  310. data/spec/rails/vendor/plugins/rspec/spec/spec/spec_classes.rb +111 -0
  311. data/spec/rails/vendor/plugins/rspec/spec/spec/translator_spec.rb +216 -0
  312. data/spec/rails/vendor/plugins/rspec/spec/spec_helper.rb +43 -0
  313. data/spec/rails/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
  314. data/spec/rails/vendor/plugins/rspec_on_rails/README +1 -0
  315. data/spec/rails/vendor/plugins/rspec_on_rails/Rakefile +9 -0
  316. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
  317. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +31 -0
  318. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
  319. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
  320. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +45 -0
  321. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
  322. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +26 -0
  323. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
  324. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +42 -0
  325. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +23 -0
  326. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  327. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
  328. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
  329. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
  330. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
  331. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +161 -0
  332. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +303 -0
  333. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
  334. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +4 -0
  335. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
  336. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
  337. data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
  338. data/spec/rails/vendor/plugins/rspec_on_rails/init.rb +9 -0
  339. data/spec/rails/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
  340. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl.rb +2 -0
  341. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl/configuration.rb +23 -0
  342. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers.rb +3 -0
  343. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers/have.rb +12 -0
  344. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +57 -0
  345. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl.rb +40 -0
  346. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb +42 -0
  347. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour.rb +8 -0
  348. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/base.rb +82 -0
  349. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/controller.rb +246 -0
  350. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/functional.rb +90 -0
  351. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/helper.rb +100 -0
  352. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/model.rb +21 -0
  353. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb +185 -0
  354. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/ivar_proxy.rb +62 -0
  355. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +7 -0
  356. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +11 -0
  357. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +10 -0
  358. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +5 -0
  359. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +26 -0
  360. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +29 -0
  361. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
  362. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
  363. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +131 -0
  364. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
  365. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +106 -0
  366. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +63 -0
  367. data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +26 -0
  368. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/assigns_hash_proxy_spec.rb +55 -0
  369. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/behaviour_factory_spec.rb +53 -0
  370. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_isolation_spec.rb +43 -0
  371. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_spec_spec.rb +124 -0
  372. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/helper_spec_spec.rb +62 -0
  373. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/ivar_proxy_spec.rb +64 -0
  374. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/model_spec_spec.rb +14 -0
  375. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/shared_behaviour_spec.rb +16 -0
  376. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/test_unit_assertion_accessibility_spec.rb +28 -0
  377. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/view_spec_spec.rb +165 -0
  378. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +17 -0
  379. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +718 -0
  380. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +42 -0
  381. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +183 -0
  382. data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +112 -0
  383. data/spec/rails/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +40 -0
  384. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +36 -0
  385. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
  386. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +18 -0
  387. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
  388. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
  389. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
  390. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
  391. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
  392. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_a_partial.rhtml +0 -0
  393. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  394. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  395. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  396. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  397. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
  398. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
  399. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
  400. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
  401. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
  402. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  403. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
  404. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
  405. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
  406. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
  407. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
  408. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  409. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
  410. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  411. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
  412. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  413. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  414. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial.rhtml +2 -0
  415. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial_collection_with_spacer_template.rhtml +1 -0
  416. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  417. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
  418. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
  419. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
  420. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
  421. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
  422. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_collection_including_template.rhtml +2 -0
  423. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_including_template.rhtml +2 -0
  424. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_with_array.rhtml +1 -0
  425. data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/show.rhtml +2 -0
  426. data/spec/rails/vendor/plugins/rspec_on_rails/tasks/rspec.rake +90 -0
  427. data/tasks/deployment.rake +27 -0
  428. data/tasks/environment.rake +7 -0
  429. data/tasks/website.rake +9 -0
  430. data/test/test_has_finder.rb +11 -0
  431. data/test/test_helper.rb +2 -0
  432. metadata +490 -0
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Jim Weirich on 2007-04-10.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ begin
7
+ require 'rubygems'
8
+ rescue LoadError => ex
9
+ end
10
+ require 'flexmock/rspec'
11
+
12
+ module Spec
13
+ module Plugins
14
+ module MockFramework
15
+ include FlexMock::MockContainer
16
+ def setup_mocks_for_rspec
17
+ # No setup required
18
+ end
19
+ def verify_mocks_for_rspec
20
+ flexmock_verify
21
+ end
22
+ def teardown_mocks_for_rspec
23
+ flexmock_close
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ gem 'mocha'
3
+ require 'mocha/standalone'
4
+ require 'mocha/object'
5
+
6
+ module Spec
7
+ module Plugins
8
+ module MockFramework
9
+ include Mocha::Standalone
10
+ def setup_mocks_for_rspec
11
+ mocha_setup
12
+ end
13
+ def verify_mocks_for_rspec
14
+ mocha_verify
15
+ end
16
+ def teardown_mocks_for_rspec
17
+ mocha_teardown
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "spec", "mocks"))
2
+
3
+ module Spec
4
+ module Plugins
5
+ module MockFramework
6
+ include Spec::Mocks::SpecMethods
7
+ def setup_mocks_for_rspec
8
+ $rspec_mocks ||= Spec::Mocks::Space.new
9
+ end
10
+ def verify_mocks_for_rspec
11
+ $rspec_mocks.verify_all
12
+ end
13
+ def teardown_mocks_for_rspec
14
+ $rspec_mocks.reset_all
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ require 'rake'
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Run all examples"
5
+ Spec::Rake::SpecTask.new('examples') do |t|
6
+ t.spec_files = FileList['examples/**/*.rb']
7
+ end
@@ -0,0 +1,9 @@
1
+ require 'rake'
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Generate specdocs for examples for inclusion in RDoc"
5
+ Spec::Rake::SpecTask.new('examples_specdoc') do |t|
6
+ t.spec_files = FileList['examples/**/*.rb']
7
+ t.spec_opts = ["--format", "rdoc"]
8
+ t.out = 'EXAMPLES.rd'
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'rake'
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Run all examples with RCov"
5
+ Spec::Rake::SpecTask.new('examples_with_rcov') do |t|
6
+ t.spec_files = FileList['examples/**/*.rb']
7
+ t.rcov = true
8
+ t.rcov_opts = ['--exclude', 'examples']
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'rake'
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Generate HTML report for failing examples"
5
+ Spec::Rake::SpecTask.new('failing_examples_with_html') do |t|
6
+ t.spec_files = FileList['failing_examples/**/*.rb']
7
+ t.spec_opts = ["--format", "html:../doc/output/documentation/tools/failing_examples.html", "--diff"]
8
+ t.fail_on_error = false
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'rake'
2
+ require 'spec/rake/verify_rcov'
3
+
4
+ RCov::VerifyTask.new(:verify_rcov => :spec) do |t|
5
+ t.threshold = 100.0 # Make sure you have rcov 0.7 or higher!
6
+ t.index_html = '../doc/output/coverage/index.html'
7
+ end
@@ -0,0 +1,13 @@
1
+ --colour
2
+ --format
3
+ progress
4
+ --format
5
+ failing_examples:previous_failures.txt
6
+ --example
7
+ previous_failures.txt
8
+ --loadby
9
+ mtime
10
+ --reverse
11
+ --timeout
12
+ 20
13
+ --diff
@@ -0,0 +1,14 @@
1
+ = Running specs on JRuby =
2
+
3
+ svn co http://svn.codehaus.org/jruby/trunk jruby
4
+ cd jruby/jruby
5
+ ant clean
6
+ ant
7
+ # put JRuby's bin dir on your PATH
8
+ jruby -S gem install rake --no-ri --no-rdoc
9
+ jruby -S gem install diff-lcs
10
+ cd ../testsuites/rspec
11
+ mkdir target
12
+ jruby -S rake checkout_code
13
+ cd target/rspec
14
+ jruby bin/spec spec -c
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Spec
4
+ module DSL
5
+ describe BehaviourEval do
6
+ def count
7
+ @count ||= 0
8
+ @count = @count + 1
9
+ @count
10
+ end
11
+
12
+ before(:all) do
13
+ count.should == 1
14
+ end
15
+
16
+ before(:all) do
17
+ count.should == 2
18
+ end
19
+
20
+ before(:each) do
21
+ count.should == 3
22
+ end
23
+
24
+ before(:each) do
25
+ count.should == 4
26
+ end
27
+
28
+ it "should run before(:all), before(:each), example, after(:each), after(:all) in order" do
29
+ count.should == 5
30
+ end
31
+
32
+ after(:each) do
33
+ count.should == 7
34
+ end
35
+
36
+ after(:each) do
37
+ count.should == 6
38
+ end
39
+
40
+ after(:all) do
41
+ count.should == 9
42
+ end
43
+
44
+ after(:all) do
45
+ count.should == 8
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Spec
4
+ module DSL
5
+ describe BehaviourFactory do
6
+ it "should create a Spec::DSL::Behaviour by default" do
7
+ Spec::DSL::BehaviourFactory.create("behaviour") {
8
+ }.should be_an_instance_of(Spec::DSL::Behaviour)
9
+ end
10
+
11
+ it "should create a Spec::DSL::Behaviour when :behaviour_type => :default" do
12
+ Spec::DSL::BehaviourFactory.create("behaviour", :behaviour_type => :default) {
13
+ }.should be_an_instance_of(Spec::DSL::Behaviour)
14
+ end
15
+
16
+ it "should create specified type when :behaviour_type => :something_other_than_default" do
17
+ behaviour_class = Class.new do
18
+ def initialize(*args, &block); end
19
+ end
20
+ Spec::DSL::BehaviourFactory.add_behaviour_class(:something_other_than_default, behaviour_class)
21
+ Spec::DSL::BehaviourFactory.create("behaviour", :behaviour_type => :something_other_than_default) {
22
+ }.should be_an_instance_of(behaviour_class)
23
+ end
24
+
25
+ after(:each) do
26
+ Spec::DSL::BehaviourFactory.remove_behaviour_class(:something_other_than_default)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,624 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Spec
4
+ module DSL
5
+ class FakeReporter < Spec::Runner::Reporter
6
+ attr_reader :added_behaviour
7
+ def add_behaviour(description)
8
+ @added_behaviour = description
9
+ end
10
+ end
11
+
12
+ describe Behaviour, "class methods" do
13
+ before :each do
14
+ @reporter = FakeReporter.new(mock("formatter", :null_object => true), mock("backtrace_tweaker", :null_object => true))
15
+ @behaviour = Behaviour.new("example") {}
16
+ end
17
+
18
+ after :each do
19
+ Behaviour.clear_before_and_after!
20
+ end
21
+
22
+ it "should not run before(:all) or after(:all) on dry run" do
23
+ before_all_ran = false
24
+ after_all_ran = false
25
+ Behaviour.before(:all) { before_all_ran = true }
26
+ Behaviour.after(:all) { after_all_ran = true }
27
+ @behaviour.it("should") {}
28
+ @behaviour.run(@reporter, true)
29
+ before_all_ran.should be_false
30
+ after_all_ran.should be_false
31
+ end
32
+
33
+ it "should not run any example if before(:all) fails" do
34
+ spec_ran = false
35
+ Behaviour.before(:all) { raise "help" }
36
+ @behaviour.it("test") {spec_ran = true}
37
+ @behaviour.run(@reporter)
38
+ spec_ran.should be_false
39
+ end
40
+
41
+ it "should run after(:all) if before(:all) fails" do
42
+ after_all_ran = false
43
+ Behaviour.before(:all) { raise }
44
+ Behaviour.after(:all) { after_all_ran = true }
45
+ @behaviour.run(@reporter)
46
+ after_all_ran.should be_true
47
+ end
48
+
49
+ it "should run after(:all) if before(:each) fails" do
50
+ after_all_ran = false
51
+ Behaviour.before(:each) { raise }
52
+ Behaviour.after(:all) { after_all_ran = true }
53
+ @behaviour.run(@reporter)
54
+ after_all_ran.should be_true
55
+ end
56
+
57
+ it "should run after(:all) if any example fails" do
58
+ after_all_ran = false
59
+ @behaviour.it("should") { raise "before all error" }
60
+ Behaviour.after(:all) { after_all_ran = true }
61
+ @behaviour.run(@reporter)
62
+ after_all_ran.should be_true
63
+ end
64
+
65
+ it "should supply before(:all) as description if failure in before(:all)" do
66
+ @reporter.should_receive(:example_finished) do |name, error, location|
67
+ name.should eql("before(:all)")
68
+ error.message.should eql("in before(:all)")
69
+ location.should eql("before(:all)")
70
+ end
71
+
72
+ Behaviour.before(:all) { raise "in before(:all)" }
73
+ @behaviour.it("test") {true}
74
+ @behaviour.run(@reporter)
75
+ end
76
+
77
+ it "should provide after(:all) as description if failure in after(:all)" do
78
+ @reporter.should_receive(:example_finished) do |name, error, location|
79
+ name.should eql("after(:all)")
80
+ error.message.should eql("in after(:all)")
81
+ location.should eql("after(:all)")
82
+ end
83
+
84
+ Behaviour.after(:all) { raise "in after(:all)" }
85
+ @behaviour.run(@reporter)
86
+ end
87
+ end
88
+
89
+ describe Behaviour do
90
+ before :each do
91
+ @reporter = FakeReporter.new(mock("formatter", :null_object => true), mock("backtrace_tweaker", :null_object => true))
92
+ @behaviour = Behaviour.new("example") {}
93
+ end
94
+
95
+ after :each do
96
+ Behaviour.clear_before_and_after!
97
+ end
98
+
99
+ it "should send reporter add_behaviour" do
100
+ @behaviour.run(@reporter)
101
+ @reporter.added_behaviour.should == "example"
102
+ end
103
+
104
+ it "should run example on run" do
105
+ example_ran = false
106
+ @behaviour.it("should") {example_ran = true}
107
+ @behaviour.run(@reporter)
108
+ example_ran.should be_true
109
+ end
110
+
111
+ it "should not run example on dry run" do
112
+ example_ran = false
113
+ @behaviour.it("should") {example_ran = true}
114
+ @behaviour.run(@reporter, true)
115
+ example_ran.should be_false
116
+ end
117
+
118
+ it "should not run before(:all) or after(:all) on dry run" do
119
+ before_all_ran = false
120
+ after_all_ran = false
121
+ @behaviour.before(:all) { before_all_ran = true }
122
+ @behaviour.after(:all) { after_all_ran = true }
123
+ @behaviour.it("should") {}
124
+ @behaviour.run(@reporter, true)
125
+ before_all_ran.should be_false
126
+ after_all_ran.should be_false
127
+ end
128
+
129
+ it "should not run any example if before(:all) fails" do
130
+ spec_ran = false
131
+ @behaviour.before(:all) { raise "help" }
132
+ @behaviour.it("test") {spec_ran = true}
133
+ @behaviour.run(@reporter)
134
+ spec_ran.should be_false
135
+ end
136
+
137
+ it "should run after(:all) if before(:all) fails" do
138
+ after_all_ran = false
139
+ @behaviour.before(:all) { raise }
140
+ @behaviour.after(:all) { after_all_ran = true }
141
+ @behaviour.run(@reporter)
142
+ after_all_ran.should be_true
143
+ end
144
+
145
+ it "should run after(:all) if before(:each) fails" do
146
+ after_all_ran = false
147
+ @behaviour.before(:each) { raise }
148
+ @behaviour.after(:all) { after_all_ran = true }
149
+ @behaviour.run(@reporter)
150
+ after_all_ran.should be_true
151
+ end
152
+
153
+ it "should run after(:all) if any example fails" do
154
+ after_all_ran = false
155
+ @behaviour.it("should") { raise "before all error" }
156
+ @behaviour.after(:all) { after_all_ran = true }
157
+ @behaviour.run(@reporter)
158
+ after_all_ran.should be_true
159
+ end
160
+
161
+ it "should supply before(:all) as description if failure in before(:all)" do
162
+ @reporter.should_receive(:example_finished) do |name, error, location|
163
+ name.should eql("before(:all)")
164
+ error.message.should eql("in before(:all)")
165
+ location.should eql("before(:all)")
166
+ end
167
+
168
+ @behaviour.before(:all) { raise "in before(:all)" }
169
+ @behaviour.it("test") {true}
170
+ @behaviour.run(@reporter)
171
+ end
172
+
173
+ it "should provide after(:all) as description if failure in after(:all)" do
174
+ @reporter.should_receive(:example_finished) do |name, error, location|
175
+ name.should eql("after(:all)")
176
+ error.message.should eql("in after(:all)")
177
+ location.should eql("after(:all)")
178
+ end
179
+
180
+ @behaviour.after(:all) { raise "in after(:all)" }
181
+ @behaviour.run(@reporter)
182
+ end
183
+
184
+ it "should run before(:all) block only once" do
185
+ before_all_run_count_run_count = 0
186
+ @behaviour.before(:all) {before_all_run_count_run_count += 1}
187
+ @behaviour.it("test") {true}
188
+ @behaviour.it("test2") {true}
189
+ @behaviour.run(@reporter)
190
+ before_all_run_count_run_count.should == 1
191
+ end
192
+
193
+ it "calls spec_inherited class method" do
194
+ super_class_before_ran = false
195
+ super_class = Class.new do
196
+ def self.spec_inherited(mod)
197
+ mod.before {setup}
198
+ end
199
+
200
+ define_method :setup do
201
+ super_class_before_ran = true
202
+ end
203
+ end
204
+ @behaviour.inherit super_class
205
+
206
+ before_ran = false
207
+ @behaviour.before {before_ran = true}
208
+ @behaviour.it("test") {true}
209
+ @behaviour.run(@reporter)
210
+ super_class_before_ran.should be_true
211
+ before_ran.should be_true
212
+ end
213
+
214
+ it "should run after(:all) block only once" do
215
+ after_all_run_count = 0
216
+ @behaviour.after(:all) {after_all_run_count += 1}
217
+ @behaviour.it("test") {true}
218
+ @behaviour.it("test2") {true}
219
+ @behaviour.run(@reporter)
220
+ after_all_run_count.should == 1
221
+ @reporter.rspec_verify
222
+ end
223
+
224
+ it "after(:all) should have access to all instance variables defined in before(:all)" do
225
+ context_instance_value_in = "Hello there"
226
+ context_instance_value_out = ""
227
+ @behaviour.before(:all) { @instance_var = context_instance_value_in }
228
+ @behaviour.after(:all) { context_instance_value_out = @instance_var }
229
+ @behaviour.it("test") {true}
230
+ @behaviour.run(@reporter)
231
+ context_instance_value_in.should == context_instance_value_out
232
+ end
233
+
234
+ it "should copy instance variables from before(:all)'s execution context into spec's execution context" do
235
+ context_instance_value_in = "Hello there"
236
+ context_instance_value_out = ""
237
+ @behaviour.before(:all) { @instance_var = context_instance_value_in }
238
+ @behaviour.it("test") {context_instance_value_out = @instance_var}
239
+ @behaviour.run(@reporter)
240
+ context_instance_value_in.should == context_instance_value_out
241
+ end
242
+
243
+ it "should not add global before callbacks for untargetted behaviours" do
244
+ fiddle = []
245
+
246
+ Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
247
+ Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
248
+ Behaviour.before(:each, :behaviour_type => :special) { fiddle << "Behaviour.before(:each, :behaviour_type => :special)" }
249
+ Behaviour.prepend_before(:each, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:each, :behaviour_type => :special)" }
250
+ Behaviour.before(:all, :behaviour_type => :special) { fiddle << "Behaviour.before(:all, :behaviour_type => :special)" }
251
+ Behaviour.prepend_before(:all, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:all, :behaviour_type => :special)" }
252
+
253
+ behaviour = Behaviour.new("I'm not special", :behaviour_type => :not_special) {}
254
+ behaviour.run(@reporter)
255
+ fiddle.should == [
256
+ 'Behaviour.prepend_before(:all)',
257
+ 'Behaviour.before(:all)',
258
+ ]
259
+ end
260
+
261
+ it "should add global before callbacks for targetted behaviours" do
262
+ fiddle = []
263
+
264
+ Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
265
+ Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
266
+ Behaviour.before(:each, :behaviour_type => :special) { fiddle << "Behaviour.before(:each, :behaviour_type => :special)" }
267
+ Behaviour.prepend_before(:each, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:each, :behaviour_type => :special)" }
268
+ Behaviour.before(:all, :behaviour_type => :special) { fiddle << "Behaviour.before(:all, :behaviour_type => :special)" }
269
+ Behaviour.prepend_before(:all, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:all, :behaviour_type => :special)" }
270
+
271
+ Behaviour.append_before(:behaviour_type => :special) { fiddle << "Behaviour.append_before(:each, :behaviour_type => :special)" }
272
+
273
+ behaviour = Behaviour.new("I'm not special", :behaviour_type => :special) {}
274
+ behaviour.it("test") {true}
275
+ behaviour.run(@reporter)
276
+ fiddle.should == [
277
+ 'Behaviour.prepend_before(:all)',
278
+ 'Behaviour.before(:all)',
279
+ 'Behaviour.prepend_before(:all, :behaviour_type => :special)',
280
+ 'Behaviour.before(:all, :behaviour_type => :special)',
281
+ 'Behaviour.prepend_before(:each, :behaviour_type => :special)',
282
+ 'Behaviour.before(:each, :behaviour_type => :special)',
283
+ 'Behaviour.append_before(:each, :behaviour_type => :special)',
284
+ ]
285
+ end
286
+
287
+ it "before callbacks are ordered from global to local" do
288
+ fiddle = []
289
+ super_class = Class.new do
290
+ define_method :setup do
291
+ fiddle << "superclass setup"
292
+ end
293
+ end
294
+ @behaviour.inherit super_class
295
+
296
+ Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
297
+ Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
298
+ @behaviour.prepend_before(:all) { fiddle << "prepend_before(:all)" }
299
+ @behaviour.before(:all) { fiddle << "before(:all)" }
300
+ @behaviour.prepend_before(:each) { fiddle << "prepend_before(:each)" }
301
+ @behaviour.before(:each) { fiddle << "before(:each)" }
302
+ @behaviour.it("test") {true}
303
+ @behaviour.run(@reporter)
304
+ fiddle.should == [
305
+ 'Behaviour.prepend_before(:all)',
306
+ 'Behaviour.before(:all)',
307
+ 'prepend_before(:all)',
308
+ 'before(:all)',
309
+ 'prepend_before(:each)',
310
+ 'before(:each)'
311
+ ]
312
+ end
313
+
314
+ it "after callbacks are ordered from local to global" do
315
+ @reporter.should_receive(:add_behaviour).with any_args()
316
+ @reporter.should_receive(:example_finished).with any_args()
317
+
318
+ fiddle = []
319
+ super_class = Class.new do
320
+ define_method :teardown do
321
+ fiddle << "superclass teardown"
322
+ end
323
+ end
324
+ @behaviour.inherit super_class
325
+
326
+ @behaviour.after(:each) { fiddle << "after(:each)" }
327
+ @behaviour.append_after(:each) { fiddle << "append_after(:each)" }
328
+ @behaviour.after(:all) { fiddle << "after(:all)" }
329
+ @behaviour.append_after(:all) { fiddle << "append_after(:all)" }
330
+ Behaviour.after(:all) { fiddle << "Behaviour.after(:all)" }
331
+ Behaviour.append_after(:all) { fiddle << "Behaviour.append_after(:all)" }
332
+ @behaviour.it("test") {true}
333
+ @behaviour.run(@reporter)
334
+ fiddle.should == [
335
+ 'after(:each)',
336
+ 'append_after(:each)',
337
+ 'after(:all)',
338
+ 'append_after(:all)',
339
+ 'Behaviour.after(:all)',
340
+ 'Behaviour.append_after(:all)'
341
+ ]
342
+ end
343
+
344
+ it "should run superclass teardown method and after block" do
345
+ super_class_teardown_ran = false
346
+ super_class = Class.new do
347
+ define_method :teardown do
348
+ super_class_teardown_ran = true
349
+ end
350
+ end
351
+ @behaviour.inherit super_class
352
+
353
+ teardown_ran = false
354
+ @behaviour.after {teardown_ran = true}
355
+ @behaviour.it("test") {true}
356
+ @behaviour.run(@reporter)
357
+ super_class_teardown_ran.should be_false
358
+ teardown_ran.should be_true
359
+ @reporter.rspec_verify
360
+ end
361
+
362
+ it "should have accessible methods from inherited superclass" do
363
+ helper_method_ran = false
364
+ super_class = Class.new do
365
+ define_method :helper_method do
366
+ helper_method_ran = true
367
+ end
368
+ end
369
+ @behaviour.inherit super_class
370
+
371
+ @behaviour.it("test") {helper_method}
372
+ @behaviour.run(@reporter)
373
+ helper_method_ran.should be_true
374
+ end
375
+
376
+ it "should have accessible class methods from inherited superclass" do
377
+ class_method_ran = false
378
+ super_class = Class.new
379
+ (class << super_class; self; end).class_eval do
380
+ define_method :class_method do
381
+ class_method_ran = true
382
+ end
383
+ end
384
+ @behaviour.inherit super_class
385
+ @behaviour.class_method
386
+ class_method_ran.should be_true
387
+
388
+ lambda {@behaviour.foobar}.should raise_error(NoMethodError)
389
+ end
390
+
391
+ it "should include inherited class methods" do
392
+ class_method_ran = false
393
+ super_class = Class.new
394
+ class << super_class
395
+ def super_class_class_method; end
396
+ end
397
+ @behaviour.inherit super_class
398
+
399
+ @behaviour.methods.should include("super_class_class_method")
400
+ end
401
+
402
+ it "should have accessible instance methods from included module" do
403
+ @reporter.should_receive(:add_behaviour).with any_args()
404
+ @reporter.should_receive(:example_finished).with any_args()
405
+
406
+ mod1_method_called = false
407
+ mod1 = Module.new do
408
+ define_method :mod1_method do
409
+ mod1_method_called = true
410
+ end
411
+ end
412
+
413
+ mod2_method_called = false
414
+ mod2 = Module.new do
415
+ define_method :mod2_method do
416
+ mod2_method_called = true
417
+ end
418
+ end
419
+
420
+ @behaviour.include mod1, mod2
421
+
422
+ @behaviour.it("test") do
423
+ mod1_method
424
+ mod2_method
425
+ end
426
+ @behaviour.run(@reporter)
427
+ mod1_method_called.should be_true
428
+ mod2_method_called.should be_true
429
+ end
430
+
431
+ it "should not include untargeted modules" do
432
+ special_method_called = false
433
+ special_mod = Module.new do
434
+ define_method :special_method do
435
+ special_method_called = true
436
+ end
437
+ end
438
+
439
+ behaviour = Behaviour.new("I'm not special", :behaviour_type => :not_special) {}
440
+ behaviour.include special_mod, :behaviour_type => :special
441
+ behaviour.it "test" do
442
+ special_method
443
+ end
444
+ behaviour.run(@reporter)
445
+
446
+ special_method_called.should be_false
447
+ end
448
+
449
+ it "should include targeted modules" do
450
+ special_method_called = false
451
+ special_mod = Module.new do
452
+ define_method :special_method do
453
+ special_method_called = true
454
+ end
455
+ end
456
+
457
+ behaviour = Behaviour.new("I'm not special", :behaviour_type => :special) {}
458
+ behaviour.include special_mod, :behaviour_type => :special
459
+ behaviour.it "test" do
460
+ special_method
461
+ end
462
+ behaviour.run(@reporter)
463
+
464
+ special_method_called.should be_true
465
+ end
466
+
467
+ it "should have accessible class methods from included module" do
468
+ mod1_method_called = false
469
+ mod1 = Module.new do
470
+ class_methods = Module.new do
471
+ define_method :mod1_method do
472
+ mod1_method_called = true
473
+ end
474
+ end
475
+
476
+ metaclass.class_eval do
477
+ define_method(:included) do |receiver|
478
+ receiver.extend class_methods
479
+ end
480
+ end
481
+ end
482
+
483
+ mod2_method_called = false
484
+ mod2 = Module.new do
485
+ class_methods = Module.new do
486
+ define_method :mod2_method do
487
+ mod2_method_called = true
488
+ end
489
+ end
490
+
491
+ metaclass.class_eval do
492
+ define_method(:included) do |receiver|
493
+ receiver.extend class_methods
494
+ end
495
+ end
496
+ end
497
+
498
+ @behaviour.include mod1, mod2
499
+
500
+ @behaviour.mod1_method
501
+ @behaviour.mod2_method
502
+ mod1_method_called.should be_true
503
+ mod2_method_called.should be_true
504
+ end
505
+
506
+ it "should count number of specs" do
507
+ @behaviour.it("one") {}
508
+ @behaviour.it("two") {}
509
+ @behaviour.it("three") {}
510
+ @behaviour.it("four") {}
511
+ @behaviour.number_of_examples.should == 4
512
+ end
513
+
514
+ it "should not match anything when there are no examples" do
515
+ @behaviour.should_not be_matches(['context'])
516
+ end
517
+
518
+ it "should match when one of the examples match" do
519
+ example = mock('my example')
520
+ example.should_receive(:matches?).and_return(true)
521
+ @behaviour.stub!(:examples).and_return([example])
522
+ @behaviour.should be_matches(['jalla'])
523
+ end
524
+
525
+ it "should include any modules included using configuration" do
526
+ mod1 = Module.new do
527
+ class << self
528
+ def included(mod)
529
+ $included_modules << self
530
+ end
531
+ end
532
+ end
533
+
534
+ mod2 = Module.new do
535
+ class << self
536
+ def included(mod)
537
+ $included_modules << self
538
+ end
539
+ end
540
+ end
541
+
542
+ begin
543
+ $included_modules = []
544
+ Spec::Runner.configuration.include(mod1, mod2)
545
+
546
+ behaviour = Behaviour.new('example') do
547
+ end.run(@reporter)
548
+
549
+ $included_modules.should include(mod1)
550
+ $included_modules.should include(mod2)
551
+ ensure
552
+ Spec::Runner.configuration.included_modules.delete(mod1)
553
+ Spec::Runner.configuration.included_modules.delete(mod2)
554
+ end
555
+ end
556
+
557
+ it "should include any predicate_matchers included using configuration" do
558
+ $included_predicate_matcher_found = false
559
+ Spec::Runner.configuration.predicate_matchers[:do_something] = :does_something?
560
+ Behaviour.new('example') do
561
+ it "should respond to do_something" do
562
+ $included_predicate_matcher_found = respond_to?(:do_something)
563
+ end
564
+ end.run(@reporter)
565
+ $included_predicate_matcher_found.should be(true)
566
+ end
567
+
568
+ it "should use a mock framework set up in config" do
569
+ mod = Module.new do
570
+ class << self
571
+ def included(mod)
572
+ $included_module = mod
573
+ end
574
+ end
575
+ end
576
+
577
+ begin
578
+ $included_module = nil
579
+ Spec::Runner.configuration.mock_with mod
580
+
581
+ behaviour = Behaviour.new('example') do
582
+ end.run(@reporter)
583
+
584
+ $included_module.should_not be_nil
585
+ ensure
586
+ Spec::Runner.configuration.mock_with :rspec
587
+ end
588
+ end
589
+
590
+ end
591
+
592
+ class BehaviourSubclass < Behaviour
593
+ public :described_type
594
+ end
595
+
596
+ describe Behaviour, " subclass" do
597
+ it "should have access to the described_type" do
598
+ BehaviourSubclass.new(Example){}.described_type.should == Example
599
+ end
600
+
601
+ it "should figure out its behaviour_type based on its name ()" do
602
+ BehaviourSubclass.new(Object){}.behaviour_type.should == :subclass
603
+ end
604
+
605
+ # TODO - add an example about shared behaviours
606
+ end
607
+
608
+ describe Enumerable do
609
+ def each(&block)
610
+ ["4", "2", "1"].each(&block)
611
+ end
612
+
613
+ it "should be included in examples because it is a module" do
614
+ map{|e| e.to_i}.should == [4,2,1]
615
+ end
616
+ end
617
+
618
+ describe String do
619
+ it "should not be included in examples because it is not a module" do
620
+ lambda{self.map}.should raise_error(NoMethodError, /undefined method `map' for/)
621
+ end
622
+ end
623
+ end
624
+ end