ageweke-rspec 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +1496 -0
  3. data/License.txt +22 -0
  4. data/Manifest.txt +377 -0
  5. data/README.rdoc +55 -0
  6. data/Rakefile +145 -0
  7. data/Ruby1.9.rdoc +31 -0
  8. data/TODO.txt +17 -0
  9. data/Upgrade.rdoc +199 -0
  10. data/bin/autospec +4 -0
  11. data/bin/spec +5 -0
  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/passing/custom_formatter.rb +11 -0
  30. data/examples/passing/custom_matchers.rb +54 -0
  31. data/examples/passing/dynamic_spec.rb +7 -0
  32. data/examples/passing/file_accessor.rb +18 -0
  33. data/examples/passing/file_accessor_spec.rb +37 -0
  34. data/examples/passing/filtered_formatter.rb +17 -0
  35. data/examples/passing/filtered_formatter_example.rb +31 -0
  36. data/examples/passing/greeter_spec.rb +30 -0
  37. data/examples/passing/helper_method_example.rb +12 -0
  38. data/examples/passing/implicit_docstrings_example.rb +16 -0
  39. data/examples/passing/io_processor.rb +8 -0
  40. data/examples/passing/io_processor_spec.rb +20 -0
  41. data/examples/passing/mocking_example.rb +25 -0
  42. data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  43. data/examples/passing/nested_classes_example.rb +35 -0
  44. data/examples/passing/options_example.rb +29 -0
  45. data/examples/passing/options_formatter.rb +20 -0
  46. data/examples/passing/partial_mock_example.rb +27 -0
  47. data/examples/passing/pending_example.rb +18 -0
  48. data/examples/passing/predicate_example.rb +25 -0
  49. data/examples/passing/shared_example_group_example.rb +79 -0
  50. data/examples/passing/shared_stack_examples.rb +36 -0
  51. data/examples/passing/simple_matcher_example.rb +29 -0
  52. data/examples/passing/stack.rb +36 -0
  53. data/examples/passing/stack_spec.rb +63 -0
  54. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  55. data/examples/passing/stubbing_example.rb +67 -0
  56. data/examples/passing/yielding_example.rb +31 -0
  57. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  58. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  59. data/features/command_line/line_number_option.feature +56 -0
  60. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  61. data/features/example_groups/define_example_attribute.feature +41 -0
  62. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  63. data/features/example_groups/implicit_docstrings.feature +59 -0
  64. data/features/example_groups/nested_groups.feature +32 -0
  65. data/features/expectations/customized_message.feature +54 -0
  66. data/features/expectations/expect_change.feature +65 -0
  67. data/features/expectations/expect_error.feature +44 -0
  68. data/features/extensions/custom_example_group.feature +19 -0
  69. data/features/formatters/custom_formatter.feature +30 -0
  70. data/features/interop/examples_and_tests_together.feature +84 -0
  71. data/features/interop/rspec_output.feature +25 -0
  72. data/features/interop/test_but_not_test_unit.feature +26 -0
  73. data/features/interop/test_case_with_should_methods.feature +46 -0
  74. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  75. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  76. data/features/matchers/define_diffable_matcher.feature +26 -0
  77. data/features/matchers/define_matcher.feature +179 -0
  78. data/features/matchers/define_matcher_outside_rspec.feature +38 -0
  79. data/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  80. data/features/matchers/define_wrapped_matcher.feature +29 -0
  81. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  82. data/features/mock_framework_integration/use_mocha.feature +27 -0
  83. data/features/mock_framework_integration/use_rr.feature +27 -0
  84. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  85. data/features/mocks/stub_implementation.feature +26 -0
  86. data/features/pending/pending_examples.feature +81 -0
  87. data/features/runner/specify_line_number.feature +32 -0
  88. data/features/spec_helper/spec_helper.feature +25 -0
  89. data/features/step_definitions/running_rspec_steps.rb +43 -0
  90. data/features/subject/explicit_subject.feature +31 -0
  91. data/features/subject/implicit_subject.feature +43 -0
  92. data/features/support/env.rb +82 -0
  93. data/features/support/matchers/smart_match.rb +12 -0
  94. data/init.rb +9 -0
  95. data/lib/autotest/discover.rb +3 -0
  96. data/lib/autotest/rspec.rb +47 -0
  97. data/lib/spec.rb +8 -0
  98. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  99. data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  100. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  101. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  102. data/lib/spec/autorun.rb +3 -0
  103. data/lib/spec/deprecation.rb +40 -0
  104. data/lib/spec/dsl.rb +1 -0
  105. data/lib/spec/dsl/main.rb +92 -0
  106. data/lib/spec/example.rb +164 -0
  107. data/lib/spec/example/args_and_options.rb +27 -0
  108. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  109. data/lib/spec/example/errors.rb +25 -0
  110. data/lib/spec/example/example_group.rb +10 -0
  111. data/lib/spec/example/example_group_factory.rb +82 -0
  112. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  113. data/lib/spec/example/example_group_methods.rb +282 -0
  114. data/lib/spec/example/example_group_proxy.rb +61 -0
  115. data/lib/spec/example/example_matcher.rb +43 -0
  116. data/lib/spec/example/example_methods.rb +148 -0
  117. data/lib/spec/example/example_proxy.rb +41 -0
  118. data/lib/spec/example/module_reopening_fix.rb +43 -0
  119. data/lib/spec/example/pending.rb +18 -0
  120. data/lib/spec/example/predicate_matchers.rb +46 -0
  121. data/lib/spec/example/shared_example_group.rb +59 -0
  122. data/lib/spec/example/subject.rb +108 -0
  123. data/lib/spec/expectations.rb +35 -0
  124. data/lib/spec/expectations/errors.rb +12 -0
  125. data/lib/spec/expectations/extensions.rb +1 -0
  126. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  127. data/lib/spec/expectations/fail_with.rb +45 -0
  128. data/lib/spec/expectations/handler.rb +50 -0
  129. data/lib/spec/interop/test.rb +44 -0
  130. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  131. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  132. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  133. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  134. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  135. data/lib/spec/matchers.rb +195 -0
  136. data/lib/spec/matchers/be.rb +210 -0
  137. data/lib/spec/matchers/be_close.rb +32 -0
  138. data/lib/spec/matchers/be_instance_of.rb +26 -0
  139. data/lib/spec/matchers/be_kind_of.rb +26 -0
  140. data/lib/spec/matchers/change.rb +151 -0
  141. data/lib/spec/matchers/compatibility.rb +14 -0
  142. data/lib/spec/matchers/dsl.rb +20 -0
  143. data/lib/spec/matchers/eql.rb +42 -0
  144. data/lib/spec/matchers/equal.rb +53 -0
  145. data/lib/spec/matchers/errors.rb +5 -0
  146. data/lib/spec/matchers/exist.rb +16 -0
  147. data/lib/spec/matchers/extensions/instance_exec.rb +31 -0
  148. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  149. data/lib/spec/matchers/has.rb +35 -0
  150. data/lib/spec/matchers/have.rb +151 -0
  151. data/lib/spec/matchers/include.rb +44 -0
  152. data/lib/spec/matchers/match.rb +21 -0
  153. data/lib/spec/matchers/match_array.rb +71 -0
  154. data/lib/spec/matchers/matcher.rb +87 -0
  155. data/lib/spec/matchers/method_missing.rb +9 -0
  156. data/lib/spec/matchers/operator_matcher.rb +78 -0
  157. data/lib/spec/matchers/pretty.rb +37 -0
  158. data/lib/spec/matchers/raise_error.rb +129 -0
  159. data/lib/spec/matchers/respond_to.rb +71 -0
  160. data/lib/spec/matchers/satisfy.rb +47 -0
  161. data/lib/spec/matchers/simple_matcher.rb +133 -0
  162. data/lib/spec/matchers/throw_symbol.rb +104 -0
  163. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  164. data/lib/spec/mocks.rb +200 -0
  165. data/lib/spec/mocks/argument_expectation.rb +51 -0
  166. data/lib/spec/mocks/argument_matchers.rb +237 -0
  167. data/lib/spec/mocks/error_generator.rb +92 -0
  168. data/lib/spec/mocks/errors.rb +10 -0
  169. data/lib/spec/mocks/example_methods.rb +69 -0
  170. data/lib/spec/mocks/extensions.rb +1 -0
  171. data/lib/spec/mocks/extensions/object.rb +3 -0
  172. data/lib/spec/mocks/framework.rb +15 -0
  173. data/lib/spec/mocks/message_expectation.rb +329 -0
  174. data/lib/spec/mocks/methods.rb +89 -0
  175. data/lib/spec/mocks/mock.rb +71 -0
  176. data/lib/spec/mocks/order_group.rb +29 -0
  177. data/lib/spec/mocks/proxy.rb +245 -0
  178. data/lib/spec/mocks/space.rb +28 -0
  179. data/lib/spec/rake/spectask.rb +230 -0
  180. data/lib/spec/rake/verify_rcov.rb +52 -0
  181. data/lib/spec/ruby.rb +9 -0
  182. data/lib/spec/runner.rb +66 -0
  183. data/lib/spec/runner/backtrace_tweaker.rb +77 -0
  184. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  185. data/lib/spec/runner/command_line.rb +15 -0
  186. data/lib/spec/runner/configuration.rb +194 -0
  187. data/lib/spec/runner/differs/default.rb +93 -0
  188. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  189. data/lib/spec/runner/drb_command_line.rb +33 -0
  190. data/lib/spec/runner/example_group_runner.rb +59 -0
  191. data/lib/spec/runner/extensions/kernel.rb +9 -0
  192. data/lib/spec/runner/formatter/base_formatter.rb +139 -0
  193. data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  194. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  195. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  196. data/lib/spec/runner/formatter/html_formatter.rb +338 -0
  197. data/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  198. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  199. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  200. data/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  201. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  202. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  203. data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  204. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  205. data/lib/spec/runner/heckle_runner.rb +72 -0
  206. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  207. data/lib/spec/runner/line_number_query.rb +78 -0
  208. data/lib/spec/runner/option_parser.rb +225 -0
  209. data/lib/spec/runner/options.rb +406 -0
  210. data/lib/spec/runner/reporter.rb +171 -0
  211. data/lib/spec/stubs/cucumber.rb +5 -0
  212. data/lib/spec/test/unit.rb +10 -0
  213. data/lib/spec/version.rb +14 -0
  214. data/resources/helpers/cmdline.rb +8 -0
  215. data/resources/rake/examples.rake +7 -0
  216. data/resources/rake/examples_with_rcov.rake +9 -0
  217. data/resources/rake/failing_examples_with_html.rake +9 -0
  218. data/resources/rake/verify_rcov.rake +7 -0
  219. data/spec/README.jruby +15 -0
  220. data/spec/autotest/autotest_helper.rb +8 -0
  221. data/spec/autotest/autotest_matchers.rb +38 -0
  222. data/spec/autotest/discover_spec.rb +8 -0
  223. data/spec/autotest/failed_results_re_spec.rb +31 -0
  224. data/spec/autotest/rspec_spec.rb +111 -0
  225. data/spec/ruby_forker.rb +13 -0
  226. data/spec/spec.opts +6 -0
  227. data/spec/spec/dsl/main_spec.rb +95 -0
  228. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  229. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  230. data/spec/spec/example/example_group_methods_spec.rb +758 -0
  231. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  232. data/spec/spec/example/example_group_spec.rb +643 -0
  233. data/spec/spec/example/example_matcher_spec.rb +86 -0
  234. data/spec/spec/example/example_methods_spec.rb +162 -0
  235. data/spec/spec/example/example_proxy_spec.rb +57 -0
  236. data/spec/spec/example/helper_method_spec.rb +24 -0
  237. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  238. data/spec/spec/example/pending_module_spec.rb +58 -0
  239. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  240. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  241. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  242. data/spec/spec/example/subject_spec.rb +103 -0
  243. data/spec/spec/expectations/differs/default_spec.rb +194 -0
  244. data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  245. data/spec/spec/expectations/fail_with_spec.rb +96 -0
  246. data/spec/spec/expectations/handler_spec.rb +206 -0
  247. data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  248. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  249. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  250. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  251. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  252. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  253. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  254. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  255. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  256. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  257. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  258. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  259. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  260. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  261. data/spec/spec/matchers/be_close_spec.rb +50 -0
  262. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  263. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  264. data/spec/spec/matchers/be_spec.rb +311 -0
  265. data/spec/spec/matchers/change_spec.rb +349 -0
  266. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  267. data/spec/spec/matchers/description_generation_spec.rb +160 -0
  268. data/spec/spec/matchers/dsl_spec.rb +34 -0
  269. data/spec/spec/matchers/eql_spec.rb +33 -0
  270. data/spec/spec/matchers/equal_spec.rb +57 -0
  271. data/spec/spec/matchers/exist_spec.rb +65 -0
  272. data/spec/spec/matchers/has_spec.rb +81 -0
  273. data/spec/spec/matchers/have_spec.rb +396 -0
  274. data/spec/spec/matchers/include_spec.rb +88 -0
  275. data/spec/spec/matchers/match_array_spec.rb +108 -0
  276. data/spec/spec/matchers/match_spec.rb +57 -0
  277. data/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  278. data/spec/spec/matchers/matcher_spec.rb +228 -0
  279. data/spec/spec/matchers/matchers_spec.rb +2 -0
  280. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  281. data/spec/spec/matchers/raise_error_spec.rb +333 -0
  282. data/spec/spec/matchers/respond_to_spec.rb +116 -0
  283. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  284. data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  285. data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  286. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  287. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  288. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  289. data/spec/spec/mocks/at_least_spec.rb +97 -0
  290. data/spec/spec/mocks/at_most_spec.rb +93 -0
  291. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  292. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  293. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  294. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  295. data/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  296. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  297. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  298. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  299. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  300. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  301. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  302. data/spec/spec/mocks/double_spec.rb +12 -0
  303. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  304. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  305. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  306. data/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  307. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  308. data/spec/spec/mocks/mock_spec.rb +594 -0
  309. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  310. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  311. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  312. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  313. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  314. data/spec/spec/mocks/partial_mock_spec.rb +164 -0
  315. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  316. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  317. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  318. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  319. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  320. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  321. data/spec/spec/mocks/stub_spec.rb +203 -0
  322. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  323. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  324. data/spec/spec/mocks/unstub_spec.rb +127 -0
  325. data/spec/spec/package/bin_spec_spec.rb +16 -0
  326. data/spec/spec/rake/spectask_spec.rb +150 -0
  327. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  328. data/spec/spec/runner/command_line_spec.rb +141 -0
  329. data/spec/spec/runner/configuration_spec.rb +320 -0
  330. data/spec/spec/runner/drb_command_line_spec.rb +148 -0
  331. data/spec/spec/runner/empty_file.txt +0 -0
  332. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  333. data/spec/spec/runner/examples.txt +2 -0
  334. data/spec/spec/runner/failed.txt +3 -0
  335. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  336. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  337. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  338. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  339. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  340. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  341. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  342. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  343. data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  344. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  345. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  346. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  347. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  348. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  349. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  350. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  351. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  352. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  353. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  354. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  355. data/spec/spec/runner/heckler_spec.rb +20 -0
  356. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  357. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  358. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  359. data/spec/spec/runner/option_parser_spec.rb +554 -0
  360. data/spec/spec/runner/options_spec.rb +554 -0
  361. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  362. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  363. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  364. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
  365. data/spec/spec/runner/reporter_spec.rb +244 -0
  366. data/spec/spec/runner/resources/a_bar.rb +0 -0
  367. data/spec/spec/runner/resources/a_foo.rb +0 -0
  368. data/spec/spec/runner/resources/a_spec.rb +1 -0
  369. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  370. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  371. data/spec/spec/runner/spec.opts +2 -0
  372. data/spec/spec/runner/spec_drb.opts +2 -0
  373. data/spec/spec/runner/spec_spaced.opts +2 -0
  374. data/spec/spec/runner_spec.rb +13 -0
  375. data/spec/spec_helper.rb +112 -0
  376. data/spec/support/macros.rb +29 -0
  377. data/spec/support/spec_classes.rb +133 -0
  378. metadata +505 -0
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Running an Example" do
4
+ it "should not output twice" do
5
+ true.should be_true
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require "spec_helper"
2
+
3
+ triggering_double_output = Spec::Runner.options
4
+ options = Spec::Runner::OptionParser.parse(
5
+ [File.dirname(__FILE__) + "/output_one_time_fixture.rb"], $stderr, $stdout
6
+ )
7
+ Spec::Runner::CommandLine.run(options)
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+ require 'ruby_forker'
3
+
4
+ module Spec
5
+ module Runner
6
+ describe CommandLine do
7
+ include RubyForker
8
+ it "should not output twice" do
9
+ output = ruby "-Ilib bin/spec spec/spec/runner/output_one_time_fixture_runner.rb"
10
+ output.should include("1 example, 0 failures")
11
+ output.should_not include("0 examples, 0 failures")
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,105 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Runner
5
+ describe QuietBacktraceTweaker do
6
+ before(:each) do
7
+ @error = RuntimeError.new
8
+ @tweaker = QuietBacktraceTweaker.new
9
+ end
10
+
11
+ it "gracefully handles nil backtrace" do
12
+ lambda do
13
+ @tweaker.tweak_backtrace(@error)
14
+ end.should_not raise_error
15
+ end
16
+
17
+ it "gracefully handle backtraces with newlines" do
18
+ @error.set_backtrace(["we like\nbin/spec:\nnewlines"])
19
+ @tweaker.tweak_backtrace(@error)
20
+ @error.backtrace.should include("we like\nnewlines")
21
+ end
22
+
23
+ it "cleans up double slashes" do
24
+ @error.set_backtrace(["/a//b/c//d.rb"])
25
+ @tweaker.tweak_backtrace(@error)
26
+ @error.backtrace.should include("/a/b/c/d.rb")
27
+ end
28
+
29
+ it "preserves lines from textmate ruby bundle" do
30
+ @error.set_backtrace(["/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby.tmbundle/Support/tmruby.rb:147"])
31
+ @tweaker.tweak_backtrace(@error)
32
+ @error.backtrace.should be_empty
33
+ end
34
+
35
+ it "removes lines in lib/spec" do
36
+ ["expectations", "mocks", "runner"].each do |child|
37
+ element="/lib/spec/#{child}/anything.rb"
38
+ @error.set_backtrace([element])
39
+ @tweaker.tweak_backtrace(@error)
40
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
41
+ end
42
+ end
43
+
44
+ it "removes lines in bin/spec" do
45
+ @error.set_backtrace(["bin/spec:"])
46
+ @tweaker.tweak_backtrace(@error)
47
+ @error.backtrace.should be_empty
48
+ end
49
+
50
+ it "removes lines in mock_frameworks/rspec" do
51
+ element = "mock_frameworks/rspec"
52
+ @error.set_backtrace([element])
53
+ @tweaker.tweak_backtrace(@error)
54
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
55
+ end
56
+
57
+ it "removes custom patterns" do
58
+ element = "/vendor/lib/custom_pattern/"
59
+ @tweaker.ignore_patterns /custom_pattern/
60
+ @error.set_backtrace([element])
61
+ @tweaker.tweak_backtrace(@error)
62
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
63
+ end
64
+
65
+ it "removes custom patterns added as a string" do
66
+ element = "/vendor/lib/custom_pattern/"
67
+ @tweaker.ignore_patterns "custom_pattern"
68
+ @error.set_backtrace([element])
69
+ @tweaker.tweak_backtrace(@error)
70
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
71
+ end
72
+
73
+ it "removes lines in mock_frameworks/rspec" do
74
+ element = "mock_frameworks/rspec"
75
+ @error.set_backtrace([element])
76
+ @tweaker.tweak_backtrace(@error)
77
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
78
+ end
79
+
80
+ it "removes lines in rspec gem" do
81
+ ["/rspec-1.2.3/lib/spec.rb","/rspec-1.2.3/lib/spec/anything.rb","bin/spec:123"].each do |element|
82
+ @error.set_backtrace([element])
83
+ @tweaker.tweak_backtrace(@error)
84
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
85
+ end
86
+ end
87
+
88
+ it "removes lines in pre-release rspec gems" do
89
+ ["/rspec-1.2.3.a1.gem/lib/spec.rb","/rspec-1.2.3.b1.gem/lib/spec.rb","/rspec-1.2.3.rc1.gem/lib/spec.rb"].each do |element|
90
+ @error.set_backtrace([element])
91
+ @tweaker.tweak_backtrace(@error)
92
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
93
+ end
94
+ end
95
+
96
+ it "removes lines in spork gem" do
97
+ ["/spork-1.2.3/lib/spec.rb","/spork-1.2.3/lib/spec/anything.rb","bin/spork:123"].each do |element|
98
+ @error.set_backtrace([element])
99
+ @tweaker.tweak_backtrace(@error)
100
+ @error.backtrace.should be_empty, "Should have removed line with '#{element}'"
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,244 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Runner
5
+ describe Reporter do
6
+ attr_reader :formatter_output, :options, :backtrace_tweaker, :formatter, :reporter, :example_group, :example_group_proxy, :example_proxy
7
+ before(:each) do
8
+ @formatter_output = StringIO.new
9
+ @options = Options.new(StringIO.new, StringIO.new)
10
+ @backtrace_tweaker = stub("backtrace tweaker", :tweak_backtrace => nil)
11
+ options.backtrace_tweaker = backtrace_tweaker
12
+ @formatter = ::Spec::Runner::Formatter::BaseTextFormatter.new(options, formatter_output)
13
+ options.formatters << formatter
14
+ @reporter = Reporter.new(options)
15
+ @example_group = create_example_group("example_group")
16
+ @example_group_proxy = Spec::Example::ExampleGroupProxy.new(@example_group)
17
+ @example_proxy = Spec::Example::ExampleProxy.new
18
+ example_group.notify(reporter)
19
+ end
20
+
21
+ def failure
22
+ Mocks::ArgumentMatchers::DuckTypeMatcher.new(:header, :exception)
23
+ end
24
+
25
+ def create_example_group(text)
26
+ example_group = Spec::Example::ExampleGroup.describe(text) do
27
+ it "should do something" do
28
+ end
29
+ end
30
+ example_group
31
+ end
32
+
33
+ it "should assign itself as the reporter to options" do
34
+ options.reporter.should equal(@reporter)
35
+ end
36
+
37
+ it "should tell formatter when example_group is added" do
38
+ formatter.should_receive(:example_group_started).with(example_group_proxy)
39
+ example_group.notify(reporter)
40
+ end
41
+
42
+ it "should handle multiple example_groups with same name" do
43
+ formatter.should_receive(:example_group_started).exactly(3).times
44
+ formatter.should_receive(:example_started).exactly(3).times
45
+ formatter.should_receive(:example_passed).exactly(3).times
46
+ formatter.should_receive(:start_dump)
47
+ formatter.should_receive(:dump_pending)
48
+ formatter.should_receive(:close).with(no_args)
49
+ formatter.should_receive(:dump_summary).with(anything(), 3, 0, 0)
50
+ create_example_group("example_group").notify(reporter)
51
+ reporter.example_started(description_of("spec 1"))
52
+ reporter.example_finished(description_of("spec 1"))
53
+ create_example_group("example_group").notify(reporter)
54
+ reporter.example_started(description_of("spec 2"))
55
+ reporter.example_finished(description_of("spec 2"))
56
+ create_example_group("example_group").notify(reporter)
57
+ reporter.example_started(description_of("spec 3"))
58
+ reporter.example_finished(description_of("spec 3"))
59
+ reporter.dump
60
+ end
61
+
62
+ def description_of(example)
63
+ ::Spec::Example::ExampleProxy.new(String === example ? example : example.description)
64
+ end
65
+
66
+ it "should handle multiple examples with the same name" do
67
+ error=RuntimeError.new
68
+ passing = ::Spec::Example::ExampleGroupDouble.new(example_proxy)
69
+ failing = ::Spec::Example::ExampleGroupDouble.new(example_proxy)
70
+
71
+ formatter.should_receive(:example_group_started).exactly(2).times
72
+ formatter.should_receive(:example_passed).with(description_of(passing)).exactly(2).times
73
+ formatter.should_receive(:example_failed).with(description_of(failing), 1, failure)
74
+ formatter.should_receive(:example_failed).with(description_of(failing), 2, failure)
75
+ formatter.should_receive(:dump_failure).exactly(2).times
76
+ formatter.should_receive(:start_dump)
77
+ formatter.should_receive(:dump_pending)
78
+ formatter.should_receive(:close).with(no_args)
79
+ formatter.should_receive(:dump_summary).with(anything(), 4, 2, 0)
80
+ backtrace_tweaker.should_receive(:tweak_backtrace).twice
81
+
82
+ create_example_group("example_group").notify(reporter)
83
+ reporter.example_finished(description_of(passing))
84
+ reporter.example_finished(description_of(failing), error)
85
+
86
+ create_example_group("example_group").notify(reporter)
87
+ reporter.example_finished(description_of(passing))
88
+ reporter.example_finished(description_of(failing), error)
89
+ reporter.dump
90
+ end
91
+
92
+ it "should push stats to formatter even with no data" do
93
+ formatter.should_receive(:start_dump)
94
+ formatter.should_receive(:dump_pending)
95
+ formatter.should_receive(:dump_summary).with(anything(), 0, 0, 0)
96
+ formatter.should_receive(:close).with(no_args)
97
+ reporter.dump
98
+ end
99
+
100
+ it "should push time to formatter" do
101
+ formatter.should_receive(:start).with(5)
102
+ formatter.should_receive(:start_dump)
103
+ formatter.should_receive(:dump_pending)
104
+ formatter.should_receive(:close).with(no_args)
105
+ formatter.should_receive(:dump_summary) do |time, a, b|
106
+ time.to_s.should match(/[0-9].[0-9|e|-]+/)
107
+ end
108
+ reporter.start(5)
109
+ reporter.end
110
+ reporter.dump
111
+ end
112
+
113
+ describe "reporting one passing example" do
114
+ it "should tell formatter example passed" do
115
+ formatter.should_receive(:example_passed)
116
+ reporter.example_finished(description_of("example"))
117
+ end
118
+
119
+ it "should not delegate to backtrace tweaker" do
120
+ formatter.should_receive(:example_passed)
121
+ backtrace_tweaker.should_not_receive(:tweak_backtrace)
122
+ reporter.example_finished(description_of("example"))
123
+ end
124
+
125
+ it "should account for passing example in stats" do
126
+ formatter.should_receive(:example_passed)
127
+ formatter.should_receive(:start_dump)
128
+ formatter.should_receive(:dump_pending)
129
+ formatter.should_receive(:dump_summary).with(anything(), 1, 0, 0)
130
+ formatter.should_receive(:close).with(no_args)
131
+ reporter.example_finished(description_of("example"))
132
+ reporter.dump
133
+ end
134
+ end
135
+
136
+ describe "reporting one failing example" do
137
+ it "should tell formatter that example failed" do
138
+ example = example_group.it("should do something") {}
139
+ formatter.should_receive(:example_failed)
140
+ reporter.example_finished(description_of(example), RuntimeError.new)
141
+ end
142
+
143
+ it "should delegate to backtrace tweaker" do
144
+ formatter.should_receive(:example_failed)
145
+ backtrace_tweaker.should_receive(:tweak_backtrace)
146
+ reporter.example_finished(example_proxy, RuntimeError.new)
147
+ end
148
+
149
+ it "should account for failing example in stats" do
150
+ example = ::Spec::Example::ExampleGroupDouble.new(example_proxy)
151
+ formatter.should_receive(:example_failed).with(description_of(example), 1, failure)
152
+ formatter.should_receive(:start_dump)
153
+ formatter.should_receive(:dump_pending)
154
+ formatter.should_receive(:dump_failure).with(1, anything())
155
+ formatter.should_receive(:dump_summary).with(anything(), 1, 1, 0)
156
+ formatter.should_receive(:close).with(no_args)
157
+ reporter.example_finished(description_of(example), RuntimeError.new)
158
+ reporter.dump
159
+ end
160
+
161
+ end
162
+
163
+ describe "reporting one pending example (ExamplePendingError)" do
164
+ before :each do
165
+ @pending_error = Spec::Example::ExamplePendingError.new("reason")
166
+ end
167
+
168
+ it "should tell formatter example is pending" do
169
+ example = ExampleGroup.new(example_proxy)
170
+ formatter.should_receive(:example_pending).with(description_of(example), "reason")
171
+ formatter.should_receive(:example_group_started).with(example_group_proxy)
172
+ example_group.notify(reporter)
173
+ reporter.example_finished(description_of(example), @pending_error)
174
+ end
175
+
176
+ it "should account for pending example in stats" do
177
+ example = ExampleGroup.new(example_proxy)
178
+ formatter.should_receive(:example_pending).with(description_of(example), "reason")
179
+ formatter.should_receive(:start_dump)
180
+ formatter.should_receive(:dump_pending)
181
+ formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1)
182
+ formatter.should_receive(:close).with(no_args)
183
+ formatter.should_receive(:example_group_started).with(example_group_proxy)
184
+ example_group.notify(reporter)
185
+ reporter.example_finished(description_of(example), @pending_error)
186
+ reporter.dump
187
+ end
188
+
189
+ describe "to formatters which have example_pending's arity of 3 (which is now deprecated)" do
190
+ before :each do
191
+ Spec.stub!(:warn)
192
+
193
+ @deprecated_formatter = Class.new(@formatter.class) do
194
+ attr_reader :example_passed_to_method, :message_passed_to_method
195
+
196
+ def example_pending(example_passed_to_method, message_passed_to_method, deprecated_pending_location)
197
+ @example_passed_to_method = example_passed_to_method
198
+ @message_passed_to_method = message_passed_to_method
199
+ end
200
+ end.new(options, formatter_output)
201
+
202
+ options.formatters << @deprecated_formatter
203
+ end
204
+
205
+ it "should pass the correct example description to the formatter" do
206
+ proxy = Spec::Example::ExampleProxy.new("name")
207
+ example = ExampleGroup.new(proxy)
208
+ example_group.notify(reporter)
209
+ reporter.example_finished(description_of(example), @pending_error)
210
+
211
+ @deprecated_formatter.example_passed_to_method.should == proxy
212
+ end
213
+
214
+ it "should pass the correct pending error message to the formatter" do
215
+ example = ExampleGroup.new(example_proxy)
216
+ example_group.notify(reporter)
217
+ reporter.example_finished(description_of(example), @pending_error)
218
+
219
+ @deprecated_formatter.message_passed_to_method.should == @pending_error.message
220
+ end
221
+
222
+ it "should raise a deprecation warning" do
223
+ Spec.should_receive(:warn)
224
+
225
+ example = ExampleGroup.new(example_proxy)
226
+ example_group.notify(reporter)
227
+ reporter.example_finished(description_of(example), @pending_error)
228
+ end
229
+ end
230
+ end
231
+
232
+ describe "reporting one pending example (PendingExampleFixedError)" do
233
+ it "should tell formatter pending example is fixed" do
234
+ formatter.should_receive(:example_failed) do |name, counter, failure|
235
+ failure.header.should == "'example_group should do something' FIXED"
236
+ end
237
+ formatter.should_receive(:example_group_started).with(example_group_proxy)
238
+ example_group.notify(reporter)
239
+ reporter.example_finished(description_of(example_group.examples.first), Spec::Example::PendingExampleFixedError.new("reason"))
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end
File without changes
File without changes
@@ -0,0 +1 @@
1
+ # Empty - used by ../options_spec.rb
@@ -0,0 +1,14 @@
1
+ module Custom
2
+ class ExampleGroupRunner
3
+ attr_reader :options, :arg
4
+ def initialize(options, arg)
5
+ @options, @arg = options, arg
6
+ end
7
+
8
+ def load_files(files)
9
+ end
10
+
11
+ def run
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ module Custom
3
+ class ExampleUTF8ClassNameVarietà
4
+ def self.è
5
+ così = :però
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,2 @@
1
+ --diff
2
+ --colour
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --drb
@@ -0,0 +1,2 @@
1
+ --diff --colour
2
+ --format s
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ describe Runner do
5
+ describe ".configure" do
6
+ it "should yield global configuration" do
7
+ Spec::Runner.configure do |config|
8
+ config.should equal(Spec::Runner.configuration)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,112 @@
1
+ require 'stringio'
2
+
3
+ $_spec_spec = true # Prevents Kernel.exit in various places
4
+
5
+ require 'spec'
6
+ require 'spec/mocks'
7
+ require 'spec/runner/differs/default'
8
+ require 'spec/autorun'
9
+
10
+ require 'support/spec_classes'
11
+ require 'support/macros'
12
+
13
+ def jruby?
14
+ ::RUBY_PLATFORM == 'java'
15
+ end
16
+
17
+ module Spec
18
+ module Example
19
+ class NonStandardError < Exception; end
20
+ end
21
+
22
+ module Matchers
23
+ def fail
24
+ raise_error(Spec::Expectations::ExpectationNotMetError)
25
+ end
26
+
27
+ def fail_with(message)
28
+ raise_error(Spec::Expectations::ExpectationNotMetError, message)
29
+ end
30
+
31
+ def exception_from(&block)
32
+ exception = nil
33
+ begin
34
+ yield
35
+ rescue StandardError => e
36
+ exception = e
37
+ end
38
+ exception
39
+ end
40
+
41
+ def run_with(options)
42
+ ::Spec::Runner::CommandLine.run(options)
43
+ end
44
+
45
+ def with_ruby(version)
46
+ yield if RUBY_VERSION =~ Regexp.compile("^#{version.to_s}")
47
+ end
48
+ end
49
+ end
50
+
51
+ def with_sandboxed_options
52
+ attr_reader :options
53
+
54
+ before(:each) do
55
+ @original_rspec_options = ::Spec::Runner.options
56
+ ::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new))
57
+ end
58
+
59
+ after(:each) do
60
+ ::Spec::Runner.use(@original_rspec_options)
61
+ end
62
+
63
+ yield
64
+ end
65
+
66
+ def with_sandboxed_config
67
+ attr_reader :config
68
+
69
+ before(:each) do
70
+ @config = ::Spec::Runner::Configuration.new
71
+ @original_configuration = ::Spec::Runner.configuration
72
+ spec_configuration = @config
73
+ ::Spec::Runner.instance_eval {@configuration = spec_configuration}
74
+ end
75
+
76
+ after(:each) do
77
+ original_configuration = @original_configuration
78
+ ::Spec::Runner.instance_eval {@configuration = original_configuration}
79
+ ::Spec::Example::ExampleGroupFactory.reset
80
+ end
81
+
82
+ yield
83
+ end
84
+
85
+ module Spec
86
+ module Example
87
+ module Resettable
88
+ def reset # :nodoc:
89
+ @before_all_parts = nil
90
+ @after_all_parts = nil
91
+ @before_each_parts = nil
92
+ @after_each_parts = nil
93
+ end
94
+ end
95
+ class ExampleGroup
96
+ extend Resettable
97
+ end
98
+ class ExampleGroupDouble < ExampleGroup
99
+ ::Spec::Runner.options.remove_example_group self
100
+ def register_example_group(klass)
101
+ #ignore
102
+ end
103
+ def initialize(proxy=nil, &block)
104
+ super(proxy || ExampleProxy.new, &block)
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ Spec::Runner.configure do |config|
111
+ config.extend(Macros)
112
+ end