rspec 1.0.0 → 1.3.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 (456) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +1546 -0
  3. data/{MIT-LICENSE → License.txt} +3 -1
  4. data/Manifest.txt +384 -0
  5. data/README.rdoc +41 -0
  6. data/Rakefile +94 -229
  7. data/Ruby1.9.rdoc +31 -0
  8. data/TODO.txt +17 -0
  9. data/Upgrade.rdoc +260 -0
  10. data/bin/autospec +4 -0
  11. data/bin/spec +5 -3
  12. data/cucumber.yml +5 -0
  13. data/examples/failing/README.txt +11 -0
  14. data/examples/failing/diffing_spec.rb +36 -0
  15. data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  16. data/examples/failing/failure_in_after.rb +10 -0
  17. data/examples/failing/failure_in_before.rb +10 -0
  18. data/examples/failing/mocking_example.rb +38 -0
  19. data/examples/failing/mocking_with_flexmock.rb +26 -0
  20. data/examples/failing/mocking_with_mocha.rb +25 -0
  21. data/examples/failing/mocking_with_rr.rb +27 -0
  22. data/examples/failing/partial_mock_example.rb +18 -0
  23. data/examples/failing/pending_example.rb +7 -0
  24. data/examples/failing/predicate_example.rb +32 -0
  25. data/examples/failing/raising_example.rb +47 -0
  26. data/examples/failing/syntax_error_example.rb +7 -0
  27. data/examples/failing/team_spec.rb +41 -0
  28. data/examples/failing/timeout_behaviour.rb +5 -0
  29. data/examples/{custom_formatter.rb → passing/custom_formatter.rb} +1 -1
  30. data/examples/passing/dynamic_spec.rb +7 -0
  31. data/examples/{file_accessor.rb → passing/file_accessor.rb} +18 -18
  32. data/examples/{file_accessor_spec.rb → passing/file_accessor_spec.rb} +37 -38
  33. data/examples/passing/filtered_formatter.rb +17 -0
  34. data/examples/passing/filtered_formatter_example.rb +31 -0
  35. data/examples/{greeter_spec.rb → passing/greeter_spec.rb} +1 -1
  36. data/examples/passing/helper_method_example.rb +12 -0
  37. data/examples/passing/implicit_docstrings_example.rb +16 -0
  38. data/examples/{io_processor.rb → passing/io_processor.rb} +8 -8
  39. data/examples/{io_processor_spec.rb → passing/io_processor_spec.rb} +2 -3
  40. data/examples/{mocking_example.rb → passing/mocking_example.rb} +0 -2
  41. data/examples/{multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +10 -9
  42. data/examples/passing/nested_classes_example.rb +35 -0
  43. data/examples/passing/options_example.rb +29 -0
  44. data/examples/passing/options_formatter.rb +20 -0
  45. data/examples/{partial_mock_example.rb → passing/partial_mock_example.rb} +2 -3
  46. data/examples/passing/pending_example.rb +18 -0
  47. data/examples/{predicate_example.rb → passing/predicate_example.rb} +1 -3
  48. data/examples/{shared_behaviours_example.rb → passing/shared_example_group_example.rb} +15 -11
  49. data/examples/passing/shared_stack_examples.rb +36 -0
  50. data/examples/passing/simple_matcher_example.rb +29 -0
  51. data/examples/{stack.rb → passing/stack.rb} +1 -1
  52. data/examples/{stack_spec.rb → passing/stack_spec.rb} +6 -40
  53. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  54. data/examples/{stubbing_example.rb → passing/stubbing_example.rb} +1 -3
  55. data/examples/passing/yielding_example.rb +31 -0
  56. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  57. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  58. data/features/command_line/line_number_option.feature +56 -0
  59. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  60. data/features/example_groups/define_example_attribute.feature +41 -0
  61. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  62. data/features/example_groups/implicit_docstrings.feature +59 -0
  63. data/features/example_groups/nested_groups.feature +32 -0
  64. data/features/expectations/customized_message.feature +54 -0
  65. data/features/expectations/expect_change.feature +65 -0
  66. data/features/expectations/expect_error.feature +44 -0
  67. data/features/extensions/custom_example_group.feature +19 -0
  68. data/features/formatters/custom_formatter.feature +30 -0
  69. data/features/formatters/nested_formatter.feature +32 -0
  70. data/features/interop/cucumber_stubs_dont_leak.feature +11 -0
  71. data/features/interop/examples_and_tests_together.feature +84 -0
  72. data/features/interop/rspec_output.feature +25 -0
  73. data/features/interop/test_but_not_test_unit.feature +26 -0
  74. data/features/interop/test_case_with_should_methods.feature +46 -0
  75. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  76. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  77. data/features/matchers/define_diffable_matcher.feature +26 -0
  78. data/features/matchers/define_matcher.feature +179 -0
  79. data/features/matchers/define_matcher_outside_rspec.feature +38 -0
  80. data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
  81. data/features/matchers/define_wrapped_matcher.feature +56 -0
  82. data/features/matchers/match_unless_raises.feature +60 -0
  83. data/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  84. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  85. data/features/mock_framework_integration/use_mocha.feature +27 -0
  86. data/features/mock_framework_integration/use_rr.feature +27 -0
  87. data/features/mocks/block_local_expectations.feature +62 -0
  88. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  89. data/features/mocks/stub_implementation.feature +26 -0
  90. data/features/pending/pending_examples.feature +81 -0
  91. data/features/runner/specify_line_number.feature +32 -0
  92. data/features/spec_helper/spec_helper.feature +25 -0
  93. data/features/step_definitions/running_rspec_steps.rb +52 -0
  94. data/features/step_definitions/stubbing_steps.rb +16 -0
  95. data/features/subject/explicit_subject.feature +31 -0
  96. data/features/subject/implicit_subject.feature +43 -0
  97. data/features/support/env.rb +83 -0
  98. data/features/support/matchers/smart_match.rb +31 -0
  99. data/geminstaller.yml +29 -0
  100. data/init.rb +9 -0
  101. data/lib/autotest/discover.rb +3 -0
  102. data/lib/autotest/rspec.rb +54 -0
  103. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  104. data/{plugins → lib/spec/adapters}/mock_frameworks/mocha.rb +8 -4
  105. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  106. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  107. data/lib/spec/autorun.rb +3 -0
  108. data/lib/spec/deprecation.rb +41 -0
  109. data/lib/spec/dsl/main.rb +93 -0
  110. data/lib/spec/dsl.rb +1 -10
  111. data/lib/spec/example/args_and_options.rb +27 -0
  112. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  113. data/lib/spec/example/errors.rb +25 -0
  114. data/lib/spec/example/example_group.rb +10 -0
  115. data/lib/spec/example/example_group_factory.rb +82 -0
  116. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  117. data/lib/spec/example/example_group_methods.rb +287 -0
  118. data/lib/spec/example/example_group_proxy.rb +61 -0
  119. data/lib/spec/example/example_matcher.rb +43 -0
  120. data/lib/spec/example/example_methods.rb +152 -0
  121. data/lib/spec/example/example_proxy.rb +41 -0
  122. data/lib/spec/example/module_reopening_fix.rb +43 -0
  123. data/lib/spec/example/pending.rb +18 -0
  124. data/lib/spec/example/predicate_matchers.rb +46 -0
  125. data/lib/spec/example/shared_example_group.rb +59 -0
  126. data/lib/spec/example/subject.rb +114 -0
  127. data/lib/spec/example.rb +164 -0
  128. data/lib/spec/expectations/errors.rb +7 -1
  129. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  130. data/lib/spec/expectations/extensions.rb +1 -2
  131. data/lib/spec/expectations/fail_with.rb +45 -0
  132. data/lib/spec/expectations/handler.rb +37 -30
  133. data/lib/spec/expectations.rb +2 -23
  134. data/lib/spec/extensions/instance_exec.rb +31 -0
  135. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  136. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  137. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  138. data/lib/spec/interop/test/unit/testsuite_adapter.rb +36 -0
  139. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  140. data/lib/spec/interop/test.rb +44 -0
  141. data/lib/spec/matchers/be.rb +183 -140
  142. data/lib/spec/matchers/be_close.rb +18 -23
  143. data/lib/spec/matchers/be_instance_of.rb +26 -0
  144. data/lib/spec/matchers/be_kind_of.rb +26 -0
  145. data/lib/spec/matchers/change.rb +72 -41
  146. data/lib/spec/matchers/compatibility.rb +14 -0
  147. data/lib/spec/matchers/dsl.rb +20 -0
  148. data/lib/spec/matchers/eql.rb +25 -26
  149. data/lib/spec/matchers/equal.rb +35 -25
  150. data/lib/spec/matchers/errors.rb +5 -0
  151. data/lib/spec/matchers/exist.rb +16 -0
  152. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  153. data/lib/spec/matchers/has.rb +17 -26
  154. data/lib/spec/matchers/have.rb +36 -24
  155. data/lib/spec/matchers/include.rb +22 -48
  156. data/lib/spec/matchers/match.rb +11 -31
  157. data/lib/spec/matchers/match_array.rb +71 -0
  158. data/lib/spec/matchers/matcher.rb +132 -0
  159. data/lib/spec/matchers/method_missing.rb +9 -0
  160. data/lib/spec/matchers/operator_matcher.rb +55 -44
  161. data/lib/spec/matchers/pretty.rb +37 -0
  162. data/lib/spec/matchers/raise_exception.rb +131 -0
  163. data/lib/spec/matchers/respond_to.rb +35 -9
  164. data/lib/spec/matchers/satisfy.rb +2 -2
  165. data/lib/spec/matchers/simple_matcher.rb +134 -0
  166. data/lib/spec/matchers/throw_symbol.rb +56 -31
  167. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  168. data/lib/spec/matchers.rb +104 -48
  169. data/lib/spec/mocks/argument_expectation.rb +28 -112
  170. data/lib/spec/mocks/argument_matchers.rb +237 -0
  171. data/lib/spec/mocks/error_generator.rb +20 -13
  172. data/lib/spec/mocks/errors.rb +1 -1
  173. data/lib/spec/mocks/example_methods.rb +69 -0
  174. data/lib/spec/mocks/extensions.rb +1 -0
  175. data/lib/spec/mocks/framework.rb +15 -0
  176. data/lib/spec/mocks/message_expectation.rb +206 -93
  177. data/lib/spec/mocks/methods.rb +66 -7
  178. data/lib/spec/mocks/mock.rb +53 -11
  179. data/lib/spec/mocks/proxy.rb +160 -55
  180. data/lib/spec/mocks/space.rb +2 -2
  181. data/lib/spec/mocks.rb +14 -23
  182. data/lib/spec/rake/spectask.rb +108 -53
  183. data/lib/spec/rake/verify_rcov.rb +4 -4
  184. data/lib/spec/ruby.rb +9 -0
  185. data/lib/spec/runner/backtrace_tweaker.rb +45 -23
  186. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  187. data/lib/spec/runner/command_line.rb +7 -14
  188. data/lib/spec/runner/configuration.rb +202 -0
  189. data/lib/spec/runner/differs/default.rb +93 -0
  190. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  191. data/lib/spec/runner/drb_command_line.rb +18 -7
  192. data/lib/spec/runner/example_group_runner.rb +58 -0
  193. data/lib/spec/runner/extensions/kernel.rb +5 -46
  194. data/lib/spec/runner/formatter/base_formatter.rb +97 -26
  195. data/lib/spec/runner/formatter/base_text_formatter.rb +79 -39
  196. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  197. data/lib/spec/runner/formatter/failing_examples_formatter.rb +6 -8
  198. data/lib/spec/runner/formatter/html_formatter.rb +101 -75
  199. data/lib/spec/runner/formatter/nested_text_formatter.rb +50 -0
  200. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  201. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  202. data/lib/spec/runner/formatter/progress_bar_formatter.rb +11 -8
  203. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  204. data/lib/spec/runner/formatter/snippet_extractor.rb +2 -2
  205. data/lib/spec/runner/formatter/specdoc_formatter.rb +20 -15
  206. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  207. data/lib/spec/runner/heckle_runner.rb +56 -56
  208. data/lib/spec/runner/{heckle_runner_win.rb → heckle_runner_unsupported.rb} +10 -10
  209. data/lib/spec/runner/line_number_query.rb +78 -0
  210. data/lib/spec/runner/option_parser.rb +147 -148
  211. data/lib/spec/runner/options.rb +343 -95
  212. data/lib/spec/runner/reporter.rb +117 -60
  213. data/lib/spec/runner.rb +39 -138
  214. data/lib/spec/stubs/cucumber.rb +5 -0
  215. data/lib/spec/test/unit.rb +10 -0
  216. data/lib/spec/version.rb +14 -22
  217. data/lib/spec.rb +5 -10
  218. data/resources/helpers/cmdline.rb +8 -0
  219. data/resources/rake/examples.rake +7 -0
  220. data/resources/rake/examples_with_rcov.rake +9 -0
  221. data/resources/rake/failing_examples_with_html.rake +9 -0
  222. data/resources/rake/verify_rcov.rake +7 -0
  223. data/spec/README.jruby +15 -0
  224. data/spec/autotest/autotest_helper.rb +8 -0
  225. data/spec/autotest/autotest_matchers.rb +38 -0
  226. data/spec/autotest/discover_spec.rb +8 -0
  227. data/spec/autotest/failed_results_re_spec.rb +31 -0
  228. data/spec/autotest/rspec_spec.rb +126 -0
  229. data/spec/ruby_forker.rb +13 -0
  230. data/spec/spec/dsl/main_spec.rb +103 -0
  231. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  232. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  233. data/spec/spec/example/example_group_methods_spec.rb +778 -0
  234. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  235. data/spec/spec/example/example_group_spec.rb +632 -0
  236. data/spec/spec/example/example_matcher_spec.rb +85 -0
  237. data/spec/spec/example/example_methods_spec.rb +162 -0
  238. data/spec/spec/example/example_proxy_spec.rb +57 -0
  239. data/spec/spec/example/helper_method_spec.rb +24 -0
  240. data/spec/spec/{dsl/behaviour_eval_spec.rb → example/nested_example_group_spec.rb} +25 -3
  241. data/spec/spec/example/pending_module_spec.rb +58 -0
  242. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  243. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  244. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  245. data/spec/spec/example/subject_spec.rb +110 -0
  246. data/spec/spec/expectations/differs/default_spec.rb +100 -13
  247. data/spec/spec/expectations/extensions/{object_spec.rb → kernel_spec.rb} +13 -14
  248. data/spec/spec/expectations/fail_with_spec.rb +42 -17
  249. data/spec/spec/expectations/handler_spec.rb +206 -0
  250. data/spec/spec/expectations/wrap_expectation_spec.rb +31 -0
  251. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  252. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  253. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  254. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  255. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  256. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  257. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  258. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  259. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  260. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  261. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  262. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  263. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  264. data/spec/spec/matchers/be_close_spec.rb +32 -21
  265. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  266. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  267. data/spec/spec/matchers/be_spec.rb +261 -10
  268. data/spec/spec/matchers/change_spec.rb +178 -61
  269. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  270. data/spec/spec/matchers/description_generation_spec.rb +47 -46
  271. data/spec/spec/matchers/dsl_spec.rb +34 -0
  272. data/spec/spec/matchers/eql_spec.rb +14 -9
  273. data/spec/spec/matchers/equal_spec.rb +43 -14
  274. data/spec/spec/matchers/exist_spec.rb +41 -24
  275. data/spec/spec/matchers/has_spec.rb +154 -1
  276. data/spec/spec/matchers/have_spec.rb +311 -189
  277. data/spec/spec/matchers/include_spec.rb +45 -2
  278. data/spec/spec/matchers/match_array_spec.rb +115 -0
  279. data/spec/spec/matchers/match_spec.rb +25 -5
  280. data/spec/spec/matchers/matcher_spec.rb +289 -0
  281. data/spec/spec/matchers/matchers_spec.rb +2 -0
  282. data/spec/spec/matchers/operator_matcher_spec.rb +48 -15
  283. data/spec/spec/matchers/raise_exception_spec.rb +345 -0
  284. data/spec/spec/matchers/respond_to_spec.rb +78 -16
  285. data/spec/spec/matchers/satisfy_spec.rb +1 -1
  286. data/spec/spec/matchers/simple_matcher_spec.rb +100 -0
  287. data/spec/spec/matchers/throw_symbol_spec.rb +111 -41
  288. data/spec/spec/mocks/and_yield_spec.rb +117 -0
  289. data/spec/spec/mocks/any_number_of_times_spec.rb +9 -2
  290. data/spec/spec/mocks/argument_expectation_spec.rb +19 -15
  291. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  292. data/spec/spec/mocks/at_least_spec.rb +2 -2
  293. data/spec/spec/mocks/at_most_spec.rb +3 -3
  294. data/spec/spec/mocks/bug_report_10260_spec.rb +1 -1
  295. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  296. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  297. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  298. data/spec/spec/mocks/bug_report_496_spec.rb +17 -0
  299. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  300. data/spec/spec/mocks/bug_report_7611_spec.rb +2 -2
  301. data/spec/spec/mocks/bug_report_7805_spec.rb +2 -2
  302. data/spec/spec/mocks/bug_report_8165_spec.rb +4 -4
  303. data/spec/spec/mocks/bug_report_8302_spec.rb +2 -2
  304. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  305. data/spec/spec/mocks/double_spec.rb +12 -0
  306. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  307. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  308. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  309. data/spec/spec/mocks/mock_ordering_spec.rb +15 -5
  310. data/spec/spec/mocks/mock_space_spec.rb +1 -1
  311. data/spec/spec/mocks/mock_spec.rb +346 -129
  312. data/spec/spec/mocks/multiple_return_value_spec.rb +9 -9
  313. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  314. data/spec/spec/mocks/null_object_mock_spec.rb +15 -1
  315. data/spec/spec/mocks/once_counts_spec.rb +2 -2
  316. data/spec/spec/mocks/options_hash_spec.rb +19 -17
  317. data/spec/spec/mocks/partial_mock_spec.rb +124 -12
  318. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +2 -2
  319. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  320. data/spec/spec/mocks/precise_counts_spec.rb +2 -2
  321. data/spec/spec/mocks/record_messages_spec.rb +2 -2
  322. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  323. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  324. data/spec/spec/mocks/stub_spec.rb +147 -103
  325. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  326. data/spec/spec/mocks/twice_counts_spec.rb +2 -2
  327. data/spec/spec/mocks/unstub_spec.rb +127 -0
  328. data/spec/spec/package/bin_spec_spec.rb +11 -7
  329. data/spec/spec/rake/spectask_spec.rb +150 -0
  330. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  331. data/spec/spec/runner/command_line_spec.rb +158 -29
  332. data/spec/spec/runner/configuration_spec.rb +320 -0
  333. data/spec/spec/runner/drb_command_line_spec.rb +137 -72
  334. data/spec/spec/runner/empty_file.txt +0 -0
  335. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  336. data/spec/spec/runner/examples.txt +2 -0
  337. data/spec/spec/runner/failed.txt +3 -0
  338. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  339. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  340. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  341. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +17 -12
  342. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  343. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  344. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  345. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  346. data/spec/spec/runner/formatter/html_formatter_spec.rb +112 -52
  347. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -0
  348. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  349. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +87 -16
  350. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
  351. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +153 -50
  352. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  353. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  354. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  355. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  356. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  357. data/spec/spec/runner/heckle_runner_spec.rb +32 -17
  358. data/spec/spec/runner/heckler_spec.rb +17 -11
  359. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  360. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  361. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +27 -21
  362. data/spec/spec/runner/option_parser_spec.rb +367 -164
  363. data/spec/spec/runner/options_spec.rb +506 -94
  364. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  365. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  366. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  367. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +94 -27
  368. data/spec/spec/runner/reporter_spec.rb +212 -121
  369. data/spec/spec/runner/resources/a_bar.rb +0 -0
  370. data/spec/spec/runner/resources/a_foo.rb +0 -0
  371. data/spec/spec/runner/resources/a_spec.rb +1 -0
  372. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  373. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  374. data/spec/spec/runner/spec.opts +2 -0
  375. data/spec/spec/runner/spec_drb.opts +2 -0
  376. data/spec/spec/runner/spec_spaced.opts +2 -0
  377. data/spec/spec/runner_spec.rb +13 -0
  378. data/spec/spec.opts +6 -0
  379. data/spec/spec_helper.rb +87 -45
  380. data/spec/support/macros.rb +29 -0
  381. data/spec/{spec → support}/spec_classes.rb +26 -4
  382. metadata +461 -141
  383. data/CHANGES +0 -748
  384. data/EXAMPLES.rd +0 -108
  385. data/README +0 -70
  386. data/UPGRADE +0 -31
  387. data/bin/spec_translator +0 -8
  388. data/examples/auto_spec_description_example.rb +0 -19
  389. data/examples/before_and_after_example.rb +0 -39
  390. data/examples/behave_as_example.rb +0 -45
  391. data/examples/dynamic_spec.rb +0 -9
  392. data/examples/helper_method_example.rb +0 -11
  393. data/examples/legacy_spec.rb +0 -10
  394. data/examples/not_yet_implemented_spec.rb +0 -12
  395. data/examples/priority.txt +0 -1
  396. data/examples/spec_helper.rb +0 -1
  397. data/examples/test_case_adapter_example.rb +0 -26
  398. data/examples/test_case_spec.rb +0 -65
  399. data/lib/spec/dsl/behaviour.rb +0 -204
  400. data/lib/spec/dsl/behaviour_callbacks.rb +0 -77
  401. data/lib/spec/dsl/behaviour_eval.rb +0 -177
  402. data/lib/spec/dsl/behaviour_factory.rb +0 -42
  403. data/lib/spec/dsl/composite_proc_builder.rb +0 -28
  404. data/lib/spec/dsl/configuration.rb +0 -119
  405. data/lib/spec/dsl/description.rb +0 -46
  406. data/lib/spec/dsl/example.rb +0 -127
  407. data/lib/spec/dsl/example_matcher.rb +0 -28
  408. data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
  409. data/lib/spec/expectations/differs/default.rb +0 -61
  410. data/lib/spec/expectations/extensions/object.rb +0 -66
  411. data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  412. data/lib/spec/extensions/object.rb +0 -6
  413. data/lib/spec/extensions.rb +0 -1
  414. data/lib/spec/matchers/raise_error.rb +0 -100
  415. data/lib/spec/mocks/argument_constraint_matchers.rb +0 -12
  416. data/lib/spec/mocks/spec_methods.rb +0 -30
  417. data/lib/spec/runner/behaviour_runner.rb +0 -102
  418. data/lib/spec/runner/extensions/object.rb +0 -32
  419. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -25
  420. data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
  421. data/lib/spec/runner/formatter.rb +0 -9
  422. data/lib/spec/runner/spec_parser.rb +0 -50
  423. data/lib/spec/test_case_adapter.rb +0 -10
  424. data/lib/spec/translator.rb +0 -106
  425. data/plugins/mock_frameworks/flexmock.rb +0 -27
  426. data/plugins/mock_frameworks/rspec.rb +0 -18
  427. data/spec/spec/dsl/behaviour_factory_spec.rb +0 -30
  428. data/spec/spec/dsl/behaviour_spec.rb +0 -604
  429. data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -57
  430. data/spec/spec/dsl/configuration_spec.rb +0 -50
  431. data/spec/spec/dsl/description_spec.rb +0 -81
  432. data/spec/spec/dsl/example_class_spec.rb +0 -24
  433. data/spec/spec/dsl/example_instance_spec.rb +0 -162
  434. data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
  435. data/spec/spec/dsl/predicate_matcher_spec.rb +0 -21
  436. data/spec/spec/dsl/shared_behaviour_spec.rb +0 -208
  437. data/spec/spec/matchers/handler_spec.rb +0 -88
  438. data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  439. data/spec/spec/matchers/raise_error_spec.rb +0 -147
  440. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -73
  441. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -92
  442. data/spec/spec/runner/behaviour_runner_spec.rb +0 -118
  443. data/spec/spec/runner/context_matching_spec.rb +0 -27
  444. data/spec/spec/runner/execution_context_spec.rb +0 -31
  445. data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
  446. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -27
  447. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -21
  448. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
  449. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
  450. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
  451. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
  452. data/spec/spec/runner/object_ext_spec.rb +0 -11
  453. data/spec/spec/runner/spec_matcher_spec.rb +0 -102
  454. data/spec/spec/runner/spec_parser_spec.rb +0 -93
  455. data/spec/spec/translator_spec.rb +0 -216
  456. /data/examples/{custom_expectation_matchers.rb → passing/custom_matchers.rb} +0 -0
@@ -1,33 +1,162 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- describe "CommandLine" do
4
- it "should run directory" do
5
- file = File.dirname(__FILE__) + '/../../../examples'
6
- err = StringIO.new
7
- out = StringIO.new
8
- Spec::Runner::CommandLine.run([file], err, out, false, true)
9
-
10
- out.rewind
11
- out.read.should =~ /77 examples, 0 failures/n
12
- end
1
+ require 'spec_helper'
13
2
 
14
- it "should run file" do
15
- file = File.dirname(__FILE__) + '/../../../failing_examples/predicate_example.rb'
16
- err = StringIO.new
17
- out = StringIO.new
18
- Spec::Runner::CommandLine.run([file], err, out, false, true)
19
-
20
- out.rewind
21
- out.read.should =~ /2 examples, 1 failure/n
22
- end
3
+ module Spec
4
+ module Runner
5
+ describe CommandLine, ".run" do
6
+ with_sandboxed_options do
7
+ attr_reader :err, :out
8
+ before do
9
+ @err = options.error_stream
10
+ @out = options.output_stream
11
+ end
12
+
13
+ it "should run directory" do
14
+ file = File.dirname(__FILE__) + '/../../../examples/passing'
15
+ run_with(OptionParser.parse([file,"-p","**/*_spec.rb,**/*_example.rb"], @err, @out))
16
+
17
+ @out.rewind
18
+ @out.read.should =~ /\d+ examples, 0 failures, 3 pending/n
19
+ end
20
+
21
+ it "should run file" do
22
+ file = File.dirname(__FILE__) + '/../../../examples/failing/predicate_example.rb'
23
+ run_with(OptionParser.parse([file], @err, @out))
24
+
25
+ @out.rewind
26
+ @out.read.should =~ /3 examples, 2 failures/n
27
+ end
28
+
29
+ it "should raise when file does not exist" do
30
+ file = File.dirname(__FILE__) + '/doesntexist'
31
+
32
+ lambda {
33
+ Spec::Runner::CommandLine.run(OptionParser.parse([file], @err, @out))
34
+ }.should raise_error
35
+ end
36
+
37
+ it "should return true when in --generate-options mode" do
38
+ # NOTE - this used to say /dev/null but jruby hangs on that for some reason
39
+ Spec::Runner::CommandLine.run(
40
+ OptionParser.parse(['--generate-options', '/tmp/foo'], @err, @out)
41
+ ).should be_true
42
+ end
43
+
44
+ it "should exit if Interrupt exception occurrs during the spec" do
45
+ example_group = Class.new(::Spec::Example::ExampleGroup) do
46
+ describe("example_group")
47
+ it "no error" do
48
+ end
49
+
50
+ it "should interrupt" do
51
+ raise Interrupt, "I'm interrupting"
52
+ end
53
+ end
54
+
55
+ options = ::Spec::Runner::Options.new(@err, @out)
56
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
57
+ options.add_example_group(example_group)
58
+
59
+ expect {
60
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
61
+ }.to raise_error(SystemExit)
62
+ end
63
+
64
+ it "should exit if Interrupt exception occurrs during an after(:each)" do
65
+ example_group = Class.new(::Spec::Example::ExampleGroup) do
66
+ describe("example_group")
67
+ it "no error" do
68
+ end
69
+
70
+ after do
71
+ raise Interrupt, "I'm interrupting"
72
+ end
73
+ end
74
+
75
+ options = ::Spec::Runner::Options.new(@err, @out)
76
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
77
+ options.add_example_group(example_group)
78
+
79
+ expect {
80
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
81
+ }.to raise_error(SystemExit)
82
+ end
83
+
84
+ it "should heckle when options have heckle_runner" do
85
+ example_group = Class.new(::Spec::Example::ExampleGroup).describe("example_group") do
86
+ it "no error" do
87
+ end
88
+ end
89
+ options = ::Spec::Runner::Options.new(@err, @out)
90
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
91
+ options.add_example_group example_group
92
+
93
+ heckle_runner = mock("heckle_runner")
94
+ heckle_runner.should_receive(:heckle_with)
95
+ $rspec_mocks.__send__(:mocks).delete(heckle_runner)
96
+
97
+ options.heckle_runner = heckle_runner
98
+ options.add_example_group(example_group)
99
+
100
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
101
+ heckle_runner.rspec_verify
102
+ end
103
+
104
+ it "should run examples backwards if options.reverse is true" do
105
+ options = ::Spec::Runner::Options.new(@err, @out)
106
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
107
+ options.reverse = true
108
+
109
+ b1 = Class.new(Spec::Example::ExampleGroup)
110
+ b2 = Class.new(Spec::Example::ExampleGroup)
111
+
112
+ b2.should_receive(:run).ordered
113
+ b1.should_receive(:run).ordered
114
+
115
+ options.add_example_group(b1)
116
+ options.add_example_group(b2)
117
+
118
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
119
+ end
120
+
121
+ it "should pass its ExampleGroup to the reporter" do
122
+ example_group = describe("example_group") do
123
+ it "should" do
124
+ end
125
+ end
126
+ options = ::Spec::Runner::Options.new(@err, @out)
127
+ options.add_example_group(example_group)
128
+
129
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
130
+ options.reporter.should_receive(:add_example_group).with(Spec::Example::ExampleGroupProxy.new(example_group))
131
+
132
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
133
+ end
134
+
135
+ it "runs only selected Examples when options.examples is set" do
136
+ options = ::Spec::Runner::Options.new(@err, @out)
137
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
138
+
139
+ options.examples << "example group expected example"
140
+ expected_example_was_run = false
141
+ unexpected_example_was_run = false
142
+ example_group = describe("example group") do
143
+ it "expected example" do
144
+ expected_example_was_run = true
145
+ end
146
+ it "unexpected example" do
147
+ unexpected_example_was_run = true
148
+ end
149
+ end
150
+
151
+ options.reporter.should_receive(:add_example_group).with(Spec::Example::ExampleGroupProxy.new(example_group))
23
152
 
24
- it "should raise when file does not exist" do
25
- file = File.dirname(__FILE__) + '/doesntexist'
26
- err = StringIO.new
27
- out = StringIO.new
153
+ options.add_example_group example_group
154
+ run_with(options)
28
155
 
29
- lambda {
30
- Spec::Runner::CommandLine.run([file], err, out, false, true)
31
- }.should raise_error
156
+ expected_example_was_run.should be_true
157
+ unexpected_example_was_run.should be_false
158
+ end
159
+ end
160
+ end
32
161
  end
33
- end
162
+ end
@@ -0,0 +1,320 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Runner
5
+ describe Configuration do
6
+ with_sandboxed_options do
7
+ with_sandboxed_config do
8
+
9
+ describe "#mock_with" do
10
+ it "should default mock framework to rspec" do
11
+ config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rspec$/
12
+ end
13
+
14
+ it "should set rspec mocking explicitly" do
15
+ config.mock_with(:rspec)
16
+ config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rspec$/
17
+ end
18
+
19
+ it "should set mocha" do
20
+ config.mock_with(:mocha)
21
+ config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/mocha$/
22
+ end
23
+
24
+ it "should set flexmock" do
25
+ config.mock_with(:flexmock)
26
+ config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/flexmock$/
27
+ end
28
+
29
+ it "should set rr" do
30
+ config.mock_with(:rr)
31
+ config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rr$/
32
+ end
33
+
34
+ it "should set an arbitrary adapter module" do
35
+ adapter = Module.new
36
+ config.mock_with(adapter)
37
+ config.mock_framework.should == adapter
38
+ end
39
+ end
40
+
41
+ describe "#include" do
42
+
43
+ before(:each) do
44
+ @example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) {}
45
+ Spec::Example::ExampleGroupFactory.register(:foobar, @example_group_class)
46
+ end
47
+
48
+ it "should include the submitted module in ExampleGroup subclasses" do
49
+ mod = Module.new
50
+ config.include mod
51
+ Class.new(@example_group_class).included_modules.should include(mod)
52
+ end
53
+
54
+ it "should scope modules to be included for a specific type" do
55
+ mod = Module.new
56
+ config.include mod, :type => :foobar
57
+ Class.new(@example_group_class).included_modules.should include(mod)
58
+ end
59
+
60
+ it "should not include modules in a type they are not intended for" do
61
+ mod = Module.new
62
+ @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble)
63
+ Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class)
64
+
65
+ config.include mod, :type => :foobar
66
+
67
+ Class.new(@other_example_group_class).included_modules.should_not include(mod)
68
+ end
69
+
70
+ it "accepts an Array of types" do
71
+ mod = Module.new
72
+ @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble)
73
+ Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class)
74
+
75
+ config.include mod, :type => [:foobar, :baz]
76
+
77
+ Class.new(@example_group_class).included_modules.should include(mod)
78
+ Class.new(@other_example_group_class).included_modules.should include(mod)
79
+ end
80
+
81
+ end
82
+
83
+ describe "#extend" do
84
+
85
+ before(:each) do
86
+ @example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) {}
87
+ Spec::Example::ExampleGroupFactory.register(:foobar, @example_group_class)
88
+ end
89
+
90
+ it "should extend all groups" do
91
+ mod = Module.new
92
+ ExampleGroup.should_receive(:extend).with(mod)
93
+ Spec::Runner.configuration.extend mod
94
+ end
95
+
96
+ it "should extend specified groups" do
97
+ mod = Module.new
98
+ @example_group_class.should_receive(:extend).with(mod)
99
+ Spec::Runner.configuration.extend mod, :type => :foobar
100
+ end
101
+
102
+ it "should not extend non-specified groups" do
103
+ @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble)
104
+ Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class)
105
+
106
+ mod = Module.new
107
+ @other_example_group_class.should_not_receive(:extend)
108
+
109
+ Spec::Runner.configuration.extend mod, :type => :foobar
110
+ end
111
+
112
+ end
113
+ end
114
+
115
+ describe "ordering methods: " do
116
+
117
+ before(:each) do
118
+ @special_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("special_example_group")
119
+ @special_child_example_group = Class.new(@special_example_group).describe("special_child_example_group")
120
+ @nonspecial_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("nonspecial_example_group")
121
+ Spec::Example::ExampleGroupFactory.register(:special, @special_example_group)
122
+ Spec::Example::ExampleGroupFactory.register(:special_child, @special_child_example_group)
123
+ Spec::Example::ExampleGroupFactory.register(:non_special, @nonspecial_example_group)
124
+ @example_group = @special_child_example_group.describe "Special Example Group"
125
+ @unselected_example_group = Class.new(@nonspecial_example_group).describe "Non Special Example Group"
126
+ end
127
+
128
+ describe "#prepend_before" do
129
+ it "prepends the before block on all instances of the passed in type" do
130
+ order = []
131
+ config.prepend_before(:all) do
132
+ order << :prepend__before_all
133
+ end
134
+ config.prepend_before(:all, :type => :special) do
135
+ order << :special_prepend__before_all
136
+ end
137
+ config.prepend_before(:all, :type => :special_child) do
138
+ order << :special_child_prepend__before_all
139
+ end
140
+ config.prepend_before(:each) do
141
+ order << :prepend__before_each
142
+ end
143
+ config.prepend_before(:each, :type => :special) do
144
+ order << :special_prepend__before_each
145
+ end
146
+ config.prepend_before(:each, :type => :special_child) do
147
+ order << :special_child_prepend__before_each
148
+ end
149
+ config.prepend_before(:all, :type => :non_special) do
150
+ order << :special_prepend__before_all
151
+ end
152
+ config.prepend_before(:each, :type => :non_special) do
153
+ order << :special_prepend__before_each
154
+ end
155
+ @example_group.it "calls prepend_before" do
156
+ end
157
+
158
+ @example_group.run(options)
159
+ order.should == [
160
+ :prepend__before_all,
161
+ :special_prepend__before_all,
162
+ :special_child_prepend__before_all,
163
+ :prepend__before_each,
164
+ :special_prepend__before_each,
165
+ :special_child_prepend__before_each
166
+ ]
167
+ end
168
+ end
169
+
170
+ describe "#append_before" do
171
+
172
+ it "calls append_before on the type" do
173
+ order = []
174
+ config.append_before(:all) do
175
+ order << :append_before_all
176
+ end
177
+ config.append_before(:all, :type => :special) do
178
+ order << :special_append_before_all
179
+ end
180
+ config.append_before(:all, :type => :special_child) do
181
+ order << :special_child_append_before_all
182
+ end
183
+ config.append_before do # default is :each
184
+ order << :append_before_each
185
+ end
186
+ config.append_before(:each, :type => :special) do
187
+ order << :special_append_before_each
188
+ end
189
+ config.append_before(:each, :type => :special_child) do
190
+ order << :special_child_append_before_each
191
+ end
192
+ config.append_before(:all, :type => :non_special) do
193
+ order << :special_append_before_all
194
+ end
195
+ config.append_before(:each, :type => :non_special) do
196
+ order << :special_append_before_each
197
+ end
198
+ @example_group.it "calls append_before" do
199
+ end
200
+
201
+ @example_group.run(options)
202
+ order.should == [
203
+ :append_before_all,
204
+ :special_append_before_all,
205
+ :special_child_append_before_all,
206
+ :append_before_each,
207
+ :special_append_before_each,
208
+ :special_child_append_before_each
209
+ ]
210
+ end
211
+ end
212
+
213
+ describe "#prepend_after" do
214
+
215
+ it "prepends the after block on all instances of the passed in type" do
216
+ order = []
217
+ config.prepend_after(:all) do
218
+ order << :prepend__after_all
219
+ end
220
+ config.prepend_after(:all, :type => :special) do
221
+ order << :special_prepend__after_all
222
+ end
223
+ config.prepend_after(:all, :type => :special) do
224
+ order << :special_child_prepend__after_all
225
+ end
226
+ config.prepend_after(:each) do
227
+ order << :prepend__after_each
228
+ end
229
+ config.prepend_after(:each, :type => :special) do
230
+ order << :special_prepend__after_each
231
+ end
232
+ config.prepend_after(:each, :type => :special) do
233
+ order << :special_child_prepend__after_each
234
+ end
235
+ config.prepend_after(:all, :type => :non_special) do
236
+ order << :special_prepend__after_all
237
+ end
238
+ config.prepend_after(:each, :type => :non_special) do
239
+ order << :special_prepend__after_each
240
+ end
241
+ @example_group.it "calls prepend_after" do
242
+ end
243
+
244
+ @example_group.run(options)
245
+ order.should == [
246
+ :special_child_prepend__after_each,
247
+ :special_prepend__after_each,
248
+ :prepend__after_each,
249
+ :special_child_prepend__after_all,
250
+ :special_prepend__after_all,
251
+ :prepend__after_all
252
+ ]
253
+ end
254
+ end
255
+
256
+ describe "#append_after" do
257
+
258
+ it "calls append_after on the type" do
259
+ order = []
260
+ config.append_after(:all) do
261
+ order << :append__after_all
262
+ end
263
+ config.append_after(:all, :type => :special) do
264
+ order << :special_append__after_all
265
+ end
266
+ config.append_after(:all, :type => :special_child) do
267
+ order << :special_child_append__after_all
268
+ end
269
+ config.append_after(:each) do
270
+ order << :append__after_each
271
+ end
272
+ config.append_after(:each, :type => :special) do
273
+ order << :special_append__after_each
274
+ end
275
+ config.append_after(:each, :type => :special_child) do
276
+ order << :special_child_append__after_each
277
+ end
278
+ config.append_after(:all, :type => :non_special) do
279
+ order << :non_special_append_after_all
280
+ end
281
+ config.append_after(:each, :type => :non_special) do
282
+ order << :non_special_append_after_each
283
+ end
284
+ @example_group.it "calls append_after" do
285
+ end
286
+
287
+ @example_group.run(options)
288
+ order.should == [
289
+ :special_child_append__after_each,
290
+ :special_append__after_each,
291
+ :append__after_each,
292
+ :special_child_append__after_all,
293
+ :special_append__after_all,
294
+ :append__after_all
295
+ ]
296
+ end
297
+
298
+ end
299
+
300
+ describe "#ignore_backtrace_patterns" do
301
+ it "adds patterns to ignore in backtrace" do
302
+ config.ignore_backtrace_patterns /custom_pattern/, /shoulda/, /spork/
303
+ config.ignored_backtrace_patterns.should include(/custom_pattern/)
304
+ config.ignored_backtrace_patterns.should include(/shoulda/)
305
+ config.ignored_backtrace_patterns.should include(/spork/)
306
+ end
307
+ end
308
+
309
+ describe "#predicate_matchers (DEPRECATED)" do
310
+ it "is deprecated" do
311
+ Spec.should_receive(:deprecate)
312
+ config.predicate_matchers[:foo] = :bar?
313
+ end
314
+ end
315
+
316
+ end
317
+ end
318
+ end
319
+ end
320
+ end