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,74 +0,0 @@
1
- module Spec
2
- module DSL
3
- class ExampleShouldRaiseHandler
4
- def initialize(file_and_line_number, opts)
5
- @file_and_line_number = file_and_line_number
6
- @options = opts
7
- @expected_error_class = determine_error_class(opts)
8
- @expected_error_message = determine_error_message(opts)
9
- end
10
-
11
- def determine_error_class(opts)
12
- if candidate = opts[:should_raise]
13
- if candidate.is_a?(Class)
14
- return candidate
15
- elsif candidate.is_a?(Array)
16
- return candidate[0]
17
- else
18
- return Exception
19
- end
20
- end
21
- end
22
-
23
- def determine_error_message(opts)
24
- if candidate = opts[:should_raise]
25
- if candidate.is_a?(Array)
26
- return candidate[1]
27
- end
28
- end
29
- return nil
30
- end
31
-
32
- def build_message(exception=nil)
33
- if @expected_error_message.nil?
34
- message = "example block expected #{@expected_error_class.to_s}"
35
- else
36
- message = "example block expected #{@expected_error_class.new(@expected_error_message.to_s).inspect}"
37
- end
38
- message << " but raised #{exception.inspect}" if exception
39
- message << " but nothing was raised" unless exception
40
- message << "\n"
41
- message << @file_and_line_number
42
- end
43
-
44
- def error_matches?(error)
45
- return false unless error.kind_of?(@expected_error_class)
46
- unless @expected_error_message.nil?
47
- if @expected_error_message.is_a?(Regexp)
48
- return false unless error.message =~ @expected_error_message
49
- else
50
- return false unless error.message == @expected_error_message
51
- end
52
- end
53
- return true
54
- end
55
-
56
- def handle(errors)
57
- if @expected_error_class
58
- if errors.empty?
59
- errors << Spec::Expectations::ExpectationNotMetError.new(build_message)
60
- else
61
- error_to_remove = errors.detect do |error|
62
- error_matches?(error)
63
- end
64
- if error_to_remove.nil?
65
- errors.insert(0,Spec::Expectations::ExpectationNotMetError.new(build_message(errors[0])))
66
- else
67
- errors.delete(error_to_remove)
68
- end
69
- end
70
- end
71
- end
72
- end
73
- end
74
- end
@@ -1,61 +0,0 @@
1
- begin
2
- require 'rubygems'
3
- require 'diff/lcs' #necessary due to loading bug on some machines - not sure why - DaC
4
- require 'diff/lcs/hunk'
5
- rescue LoadError ; raise "You must gem install diff-lcs to use diffing" ; end
6
-
7
- require 'pp'
8
-
9
- module Spec
10
- module Expectations
11
- module Differs
12
-
13
- # TODO add some rdoc
14
- class Default
15
- def initialize(format=:unified,context_lines=nil,colour=nil)
16
-
17
- context_lines ||= 3
18
- colour ||= false
19
-
20
- @format,@context_lines,@colour = format,context_lines,colour
21
- end
22
-
23
- # This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
24
- def diff_as_string(data_old, data_new)
25
- data_old = data_old.split(/\n/).map! { |e| e.chomp }
26
- data_new = data_new.split(/\n/).map! { |e| e.chomp }
27
- output = ""
28
- diffs = Diff::LCS.diff(data_old, data_new)
29
- return output if diffs.empty?
30
- oldhunk = hunk = nil
31
- file_length_difference = 0
32
- diffs.each do |piece|
33
- begin
34
- hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, @context_lines,
35
- file_length_difference)
36
- file_length_difference = hunk.file_length_difference
37
- next unless oldhunk
38
- # Hunks may overlap, which is why we need to be careful when our
39
- # diff includes lines of context. Otherwise, we might print
40
- # redundant lines.
41
- if (@context_lines > 0) and hunk.overlaps?(oldhunk)
42
- hunk.unshift(oldhunk)
43
- else
44
- output << oldhunk.diff(@format)
45
- end
46
- ensure
47
- oldhunk = hunk
48
- output << "\n"
49
- end
50
- end
51
- #Handle the last remaining hunk
52
- output << oldhunk.diff(@format) << "\n"
53
- end
54
-
55
- def diff_as_object(target,expected)
56
- diff_as_string(PP.pp(target,""), PP.pp(expected,""))
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,66 +0,0 @@
1
- module Spec
2
- module Expectations
3
- # rspec adds #should and #should_not to every Object (and,
4
- # implicitly, every Class).
5
- module ObjectExpectations
6
-
7
- # :call-seq:
8
- # should(matcher)
9
- # should == expected
10
- # should === expected
11
- # should =~ expected
12
- #
13
- # receiver.should(matcher)
14
- # => Passes if matcher.matches?(receiver)
15
- #
16
- # receiver.should == expected #any value
17
- # => Passes if (receiver == expected)
18
- #
19
- # receiver.should === expected #any value
20
- # => Passes if (receiver === expected)
21
- #
22
- # receiver.should =~ regexp
23
- # => Passes if (receiver =~ regexp)
24
- #
25
- # See Spec::Matchers for more information about matchers
26
- #
27
- # == Warning
28
- #
29
- # NOTE that this does NOT support receiver.should != expected.
30
- # Instead, use receiver.should_not == expected
31
- def should(matcher=nil, &block)
32
- return ExpectationMatcherHandler.handle_matcher(self, matcher, &block) if matcher
33
- Spec::Matchers::PositiveOperatorMatcher.new(self)
34
- end
35
-
36
- # :call-seq:
37
- # should_not(matcher)
38
- # should_not == expected
39
- # should_not === expected
40
- # should_not =~ expected
41
- #
42
- # receiver.should_not(matcher)
43
- # => Passes unless matcher.matches?(receiver)
44
- #
45
- # receiver.should_not == expected
46
- # => Passes unless (receiver == expected)
47
- #
48
- # receiver.should_not === expected
49
- # => Passes unless (receiver === expected)
50
- #
51
- # receiver.should_not =~ regexp
52
- # => Passes unless (receiver =~ regexp)
53
- #
54
- # See Spec::Matchers for more information about matchers
55
- def should_not(matcher=nil, &block)
56
- return NegativeExpectationMatcherHandler.handle_matcher(self, matcher, &block) if matcher
57
- Spec::Matchers::NegativeOperatorMatcher.new(self)
58
- end
59
-
60
- end
61
- end
62
- end
63
-
64
- class Object
65
- include Spec::Expectations::ObjectExpectations
66
- end
@@ -1,17 +0,0 @@
1
- module Spec
2
- module Expectations
3
- module StringHelpers
4
- def starts_with?(prefix)
5
- to_s[0..(prefix.length - 1)] == prefix
6
- end
7
- end
8
- end
9
- end
10
-
11
- class String
12
- include Spec::Expectations::StringHelpers
13
- end
14
-
15
- class Symbol
16
- include Spec::Expectations::StringHelpers
17
- end
@@ -1,6 +0,0 @@
1
- class Object
2
- def args_and_options(*args)
3
- options = Hash === args.last ? args.pop : {}
4
- return args, options
5
- end
6
- end
@@ -1 +0,0 @@
1
- require 'spec/extensions/object'
@@ -1,100 +0,0 @@
1
- module Spec
2
- module Matchers
3
-
4
- class RaiseError #:nodoc:
5
- def initialize(exception=Exception, message=nil)
6
- @expected_error = exception
7
- @expected_message = message
8
- end
9
-
10
- def matches?(proc)
11
- @raised_expected_error = false
12
- @raised_other = false
13
- begin
14
- proc.call
15
- rescue @expected_error => @actual_error
16
- if @expected_message.nil?
17
- @raised_expected_error = true
18
- else
19
- case @expected_message
20
- when Regexp
21
- if @expected_message =~ @actual_error.message
22
- @raised_expected_error = true
23
- else
24
- @raised_other = true
25
- end
26
- else
27
- if @expected_message == @actual_error.message
28
- @raised_expected_error = true
29
- else
30
- @raised_other = true
31
- end
32
- end
33
- end
34
- rescue => @actual_error
35
- @raised_other = true
36
- ensure
37
- return @raised_expected_error
38
- end
39
- end
40
-
41
- def failure_message
42
- return "expected #{expected_error}#{actual_error}" if @raised_other || !@raised_expected_error
43
- end
44
-
45
- def negative_failure_message
46
- "expected no #{expected_error}#{actual_error}"
47
- end
48
-
49
- def description
50
- "raise #{expected_error}"
51
- end
52
-
53
- private
54
- def expected_error
55
- case @expected_message
56
- when nil
57
- @expected_error
58
- when Regexp
59
- "#{@expected_error} with message matching #{@expected_message.inspect}"
60
- else
61
- "#{@expected_error} with #{@expected_message.inspect}"
62
- end
63
- end
64
-
65
- def actual_error
66
- @actual_error.nil? ? " but nothing was raised" : ", got #{@actual_error.inspect}"
67
- end
68
- end
69
-
70
- # :call-seq:
71
- # should raise_error()
72
- # should raise_error(NamedError)
73
- # should raise_error(NamedError, String)
74
- # should raise_error(NamedError, Regexp)
75
- # should_not raise_error()
76
- # should_not raise_error(NamedError)
77
- # should_not raise_error(NamedError, String)
78
- # should_not raise_error(NamedError, Regexp)
79
- #
80
- # With no args, matches if any error is raised.
81
- # With a named error, matches only if that specific error is raised.
82
- # With a named error and messsage specified as a String, matches only if both match.
83
- # With a named error and messsage specified as a Regexp, matches only if both match.
84
- #
85
- # == Examples
86
- #
87
- # lambda { do_something_risky }.should raise_error
88
- # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError)
89
- # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, "that was too risky")
90
- # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, /oo ri/)
91
- #
92
- # lambda { do_something_risky }.should_not raise_error
93
- # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError)
94
- # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, "that was too risky")
95
- # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, /oo ri/)
96
- def raise_error(error=Exception, message=nil)
97
- Matchers::RaiseError.new(error, message)
98
- end
99
- end
100
- end
@@ -1,12 +0,0 @@
1
- module Spec
2
- module Mocks
3
- module ArgumentConstraintMatchers
4
-
5
- # Shortcut for creating an instance of Spec::Mocks::DuckTypeArgConstraint
6
- def duck_type(*args)
7
- return Spec::Mocks::DuckTypeArgConstraint.new(*args)
8
- end
9
-
10
- end
11
- end
12
- end
@@ -1,30 +0,0 @@
1
- module Spec
2
- module Mocks
3
- module SpecMethods
4
- include Spec::Mocks::ArgumentConstraintMatchers
5
-
6
- # Shortcut for creating an instance of Spec::Mocks::Mock.
7
- def mock(name, options={})
8
- Spec::Mocks::Mock.new(name, options)
9
- end
10
-
11
- # Shortcut for creating an instance of Spec::Mocks::Mock with
12
- # predefined method stubs.
13
- #
14
- # == Examples
15
- #
16
- # stub_thing = stub("thing", :a => "A")
17
- # stub_thing.a == "A" => true
18
- #
19
- # stub_person = stub("thing", :name => "Joe", :email => "joe@domain.com")
20
- # stub_person.name => "Joe"
21
- # stub_person.email => "joe@domain.com"
22
- def stub(name, stubs={})
23
- object_stub = mock(name)
24
- stubs.each { |key, value| object_stub.stub!(key).and_return(value) }
25
- object_stub
26
- end
27
-
28
- end
29
- end
30
- end
@@ -1,102 +0,0 @@
1
- module Spec
2
- module Runner
3
- class BehaviourRunner
4
-
5
- def initialize(options)
6
- @behaviours = []
7
- @options = options
8
- end
9
-
10
- def add_behaviour(behaviour)
11
- unless specified_examples.nil? || specified_examples.empty? #|| behaviour.matches?(specified_examples)
12
- behaviour.retain_examples_matching!(specified_examples) #if behaviour.matches?(specified_examples)
13
- end
14
- @behaviours << behaviour if behaviour.number_of_examples != 0 && !behaviour.shared?
15
- end
16
-
17
- # Runs all contexts and returns the number of failures.
18
- def run(paths, exit_when_done)
19
- unless paths.nil? # It's nil when running single specs with ruby
20
- paths = find_paths(paths)
21
- sorted_paths = sort_paths(paths)
22
- load_specs(sorted_paths)
23
- end
24
- @options.reporter.start(number_of_examples)
25
- behaviours = @options.reverse ? @behaviours.reverse : @behaviours
26
- begin
27
- run_behaviours(behaviours)
28
- rescue Interrupt
29
- ensure
30
- @options.reporter.end
31
- end
32
- failure_count = @options.reporter.dump
33
-
34
- heckle if(failure_count == 0 && !@options.heckle_runner.nil?)
35
-
36
- if(exit_when_done)
37
- exit_code = (failure_count == 0) ? 0 : 1
38
- exit(exit_code)
39
- end
40
- failure_count
41
- end
42
-
43
- def run_behaviours(behaviours)
44
- behaviours.each do |behaviour|
45
- behaviour.run(@options.reporter, @options.dry_run, @options.reverse, @options.timeout)
46
- end
47
- end
48
-
49
- def number_of_examples
50
- @behaviours.inject(0) {|sum, behaviour| sum + behaviour.number_of_examples}
51
- end
52
-
53
- FILE_SORTERS = {
54
- 'mtime' => lambda {|file_a, file_b| File.mtime(file_b) <=> File.mtime(file_a)}
55
- }
56
-
57
- def sorter(paths)
58
- FILE_SORTERS[@options.loadby]
59
- end
60
-
61
- def sort_paths(paths)
62
- sorter = sorter(paths)
63
- paths = paths.sort(&sorter) unless sorter.nil?
64
- paths
65
- end
66
-
67
- private
68
-
69
- def find_paths(paths)
70
- result = []
71
- paths.each do |path|
72
- if File.directory?(path)
73
- result += Dir["#{path}/**/*.rb"]
74
- elsif File.file?(path)
75
- result << path
76
- else
77
- raise "File or directory not found: #{path}"
78
- end
79
- end
80
- result
81
- end
82
-
83
- def load_specs(paths)
84
- paths.each do |path|
85
- require path
86
- end
87
- end
88
-
89
- def specified_examples
90
- @options.examples
91
- end
92
-
93
- def heckle
94
- heckle_runner = @options.heckle_runner
95
- @options.heckle_runner = nil
96
- behaviour_runner = self.class.new(@options)
97
- behaviour_runner.instance_variable_set(:@behaviours, @behaviours)
98
- heckle_runner.heckle_with(behaviour_runner)
99
- end
100
- end
101
- end
102
- end
@@ -1,32 +0,0 @@
1
- # The following copyright applies to Object#copy_instance_variables_from,
2
- # which we borrowed from active_support.
3
- #
4
- # Copyright (c) 2004 David Heinemeier Hansson
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining
7
- # a copy of this software and associated documentation files (the
8
- # "Software"), to deal in the Software without restriction, including
9
- # without limitation the rights to use, copy, modify, merge, publish,
10
- # distribute, sublicense, and/or sell copies of the Software, and to
11
- # permit persons to whom the Software is furnished to do so, subject to
12
- # the following conditions:
13
- #
14
- # The above copyright notice and this permission notice shall be
15
- # included in all copies or substantial portions of the Software.
16
- #
17
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- class Object
25
- # From active_support
26
- def copy_instance_variables_from(object, exclude = []) # :nodoc:
27
- exclude += object.protected_instance_variables if object.respond_to? :protected_instance_variables
28
-
29
- instance_variables = object.instance_variables - exclude.map { |name| name.to_s }
30
- instance_variables.each { |name| instance_variable_set(name, object.instance_variable_get(name)) }
31
- end
32
- end
@@ -1,25 +0,0 @@
1
- module Spec
2
- module Runner
3
- module Formatter
4
- class FailingBehavioursFormatter < BaseTextFormatter
5
- def add_behaviour(behaviour_name)
6
- @behaviour_name = behaviour_name
7
- end
8
-
9
- def example_failed(name, counter, failure)
10
- unless @behaviour_name.nil?
11
- @output.puts @behaviour_name
12
- @behaviour_name = nil
13
- @output.flush
14
- end
15
- end
16
-
17
- def dump_failure(counter, failure)
18
- end
19
-
20
- def dump_summary(duration, example_count, failure_count, not_implemented_count)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,24 +0,0 @@
1
- module Spec
2
- module Runner
3
- module Formatter
4
- class RdocFormatter < BaseTextFormatter
5
- def add_behaviour(name)
6
- @output.puts "# #{name}"
7
- end
8
-
9
- def example_passed(name)
10
- @output.puts "# * #{name}"
11
- @output.flush
12
- end
13
-
14
- def example_failed(name, counter, failure)
15
- @output.puts "# * #{name} [#{counter} - FAILED]"
16
- end
17
-
18
- def example_not_implemented(name)
19
- @output.puts "# * #{name} [NOT IMPLEMENTED]"
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,9 +0,0 @@
1
- require 'spec/runner/formatter/base_formatter'
2
- require 'spec/runner/formatter/base_text_formatter'
3
- require 'spec/runner/formatter/progress_bar_formatter'
4
- require 'spec/runner/formatter/rdoc_formatter'
5
- require 'spec/runner/formatter/specdoc_formatter'
6
- require 'spec/runner/formatter/html_formatter'
7
- require 'spec/runner/formatter/failing_examples_formatter'
8
- require 'spec/runner/formatter/failing_behaviours_formatter'
9
- require 'spec/runner/formatter/snippet_extractor'
@@ -1,50 +0,0 @@
1
- module Spec
2
- module Runner
3
- # Parses a spec file and finds the nearest example for a given line number.
4
- class SpecParser
5
- def spec_name_for(io, line_number)
6
- source = io.read
7
- behaviour, behaviour_line = behaviour_at_line(source, line_number)
8
- example, example_line = example_at_line(source, line_number)
9
- if behaviour && example && (behaviour_line < example_line)
10
- "#{behaviour} #{example}"
11
- elsif behaviour
12
- behaviour
13
- else
14
- nil
15
- end
16
- end
17
-
18
- protected
19
-
20
- def behaviour_at_line(source, line_number)
21
- find_above(source, line_number, /^\s*(context|describe)\s+(.*)\s+do/)
22
- end
23
-
24
- def example_at_line(source, line_number)
25
- find_above(source, line_number, /^\s*(specify|it)\s+(.*)\s+do/)
26
- end
27
-
28
- # Returns the context/describe or specify/it name and the line number
29
- def find_above(source, line_number, pattern)
30
- lines_above_reversed(source, line_number).each_with_index do |line, n|
31
- return [parse_description($2), line_number-n] if line =~ pattern
32
- end
33
- nil
34
- end
35
-
36
- def lines_above_reversed(source, line_number)
37
- lines = source.split("\n")
38
- lines[0...line_number].reverse
39
- end
40
-
41
- def parse_description(str)
42
- return str[1..-2] if str =~ /^['"].*['"]$/
43
- if matches = /^(.*)\s*,\s*['"](.*)['"]$/.match(str)
44
- return ::Spec::DSL::Description.generate_description(matches[1], matches[2])
45
- end
46
- return str
47
- end
48
- end
49
- end
50
- end
@@ -1,10 +0,0 @@
1
- require 'spec/expectations'
2
- require 'spec/matchers'
3
-
4
- module Test
5
- module Unit
6
- class TestCase
7
- include Spec::Matchers
8
- end
9
- end
10
- end