rspec-instructure 1.3.3

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 (395) hide show
  1. data/.autotest +5 -0
  2. data/.document +7 -0
  3. data/.gitignore +15 -0
  4. data/Gemfile +20 -0
  5. data/History.rdoc +1565 -0
  6. data/License.txt +22 -0
  7. data/README.rdoc +44 -0
  8. data/Rakefile +110 -0
  9. data/Ruby1.9.rdoc +31 -0
  10. data/TODO.txt +17 -0
  11. data/Upgrade.rdoc +260 -0
  12. data/bin/autospec +4 -0
  13. data/bin/spec +5 -0
  14. data/cucumber.yml +5 -0
  15. data/example_spec.rb +4 -0
  16. data/examples/failing/README.txt +11 -0
  17. data/examples/failing/diffing_spec.rb +36 -0
  18. data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  19. data/examples/failing/failure_in_after.rb +10 -0
  20. data/examples/failing/failure_in_before.rb +10 -0
  21. data/examples/failing/mocking_example.rb +38 -0
  22. data/examples/failing/mocking_with_flexmock.rb +26 -0
  23. data/examples/failing/mocking_with_mocha.rb +25 -0
  24. data/examples/failing/mocking_with_rr.rb +27 -0
  25. data/examples/failing/partial_mock_example.rb +18 -0
  26. data/examples/failing/pending_example.rb +7 -0
  27. data/examples/failing/predicate_example.rb +32 -0
  28. data/examples/failing/raising_example.rb +47 -0
  29. data/examples/failing/syntax_error_example.rb +7 -0
  30. data/examples/failing/team_spec.rb +41 -0
  31. data/examples/failing/timeout_behaviour.rb +5 -0
  32. data/examples/passing/custom_formatter.rb +11 -0
  33. data/examples/passing/custom_matchers.rb +54 -0
  34. data/examples/passing/dynamic_spec.rb +7 -0
  35. data/examples/passing/file_accessor.rb +18 -0
  36. data/examples/passing/file_accessor_spec.rb +37 -0
  37. data/examples/passing/filtered_formatter.rb +17 -0
  38. data/examples/passing/filtered_formatter_example.rb +31 -0
  39. data/examples/passing/greeter_spec.rb +30 -0
  40. data/examples/passing/helper_method_example.rb +12 -0
  41. data/examples/passing/implicit_docstrings_example.rb +16 -0
  42. data/examples/passing/io_processor.rb +8 -0
  43. data/examples/passing/io_processor_spec.rb +20 -0
  44. data/examples/passing/mocking_example.rb +25 -0
  45. data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  46. data/examples/passing/nested_classes_example.rb +35 -0
  47. data/examples/passing/options_example.rb +29 -0
  48. data/examples/passing/options_formatter.rb +20 -0
  49. data/examples/passing/partial_mock_example.rb +27 -0
  50. data/examples/passing/pending_example.rb +18 -0
  51. data/examples/passing/predicate_example.rb +25 -0
  52. data/examples/passing/shared_example_group_example.rb +43 -0
  53. data/examples/passing/shared_stack_examples.rb +36 -0
  54. data/examples/passing/simple_matcher_example.rb +29 -0
  55. data/examples/passing/stack.rb +36 -0
  56. data/examples/passing/stack_spec.rb +63 -0
  57. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  58. data/examples/passing/stubbing_example.rb +67 -0
  59. data/examples/passing/yielding_example.rb +31 -0
  60. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  61. data/features-pending/cli/conditional_exclusion.feature +39 -0
  62. data/features-pending/heckle/heckle.feature +56 -0
  63. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  64. data/features/command_line/line_number_option.feature +56 -0
  65. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  66. data/features/example_groups/define_example_attribute.feature +41 -0
  67. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  68. data/features/example_groups/implicit_docstrings.feature +59 -0
  69. data/features/example_groups/nested_groups.feature +32 -0
  70. data/features/expectations/customized_message.feature +54 -0
  71. data/features/expectations/expect_change.feature +65 -0
  72. data/features/expectations/expect_error.feature +44 -0
  73. data/features/extensions/custom_example_group.feature +19 -0
  74. data/features/formatters/custom_formatter.feature +30 -0
  75. data/features/formatters/nested_formatter.feature +32 -0
  76. data/features/interop/cucumber_stubs_dont_leak.feature +11 -0
  77. data/features/interop/examples_and_tests_together.feature +84 -0
  78. data/features/interop/rspec_output.feature +25 -0
  79. data/features/interop/test_but_not_test_unit.feature +26 -0
  80. data/features/interop/test_case_with_should_methods.feature +46 -0
  81. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  82. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  83. data/features/matchers/define_diffable_matcher.feature +26 -0
  84. data/features/matchers/define_matcher.feature +179 -0
  85. data/features/matchers/define_matcher_outside_rspec.feature +37 -0
  86. data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
  87. data/features/matchers/define_wrapped_matcher.feature +56 -0
  88. data/features/matchers/match_unless_raises.feature +60 -0
  89. data/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  90. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  91. data/features/mock_framework_integration/use_mocha.feature +27 -0
  92. data/features/mock_framework_integration/use_rr.feature +27 -0
  93. data/features/mocks/block_local_expectations.feature +62 -0
  94. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  95. data/features/mocks/stub_implementation.feature +26 -0
  96. data/features/pending/pending_examples.feature +81 -0
  97. data/features/runner/specify_line_number.feature +32 -0
  98. data/features/spec_helper/spec_helper.feature +25 -0
  99. data/features/step_definitions/running_rspec_steps.rb +52 -0
  100. data/features/step_definitions/stubbing_steps.rb +16 -0
  101. data/features/subject/explicit_subject.feature +31 -0
  102. data/features/subject/implicit_subject.feature +43 -0
  103. data/features/support/env.rb +83 -0
  104. data/features/support/matchers/smart_match.rb +31 -0
  105. data/init.rb +9 -0
  106. data/lib/autotest/discover.rb +3 -0
  107. data/lib/autotest/rspec.rb +54 -0
  108. data/lib/spec.rb +8 -0
  109. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  110. data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  111. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  112. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  113. data/lib/spec/autorun.rb +3 -0
  114. data/lib/spec/deprecation.rb +41 -0
  115. data/lib/spec/dsl.rb +1 -0
  116. data/lib/spec/dsl/main.rb +93 -0
  117. data/lib/spec/example.rb +164 -0
  118. data/lib/spec/example/args_and_options.rb +27 -0
  119. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  120. data/lib/spec/example/errors.rb +25 -0
  121. data/lib/spec/example/example_group.rb +10 -0
  122. data/lib/spec/example/example_group_factory.rb +82 -0
  123. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  124. data/lib/spec/example/example_group_methods.rb +287 -0
  125. data/lib/spec/example/example_group_proxy.rb +61 -0
  126. data/lib/spec/example/example_matcher.rb +43 -0
  127. data/lib/spec/example/example_methods.rb +152 -0
  128. data/lib/spec/example/example_proxy.rb +41 -0
  129. data/lib/spec/example/module_reopening_fix.rb +43 -0
  130. data/lib/spec/example/pending.rb +18 -0
  131. data/lib/spec/example/predicate_matchers.rb +46 -0
  132. data/lib/spec/example/shared_example_group.rb +59 -0
  133. data/lib/spec/example/subject.rb +114 -0
  134. data/lib/spec/expectations.rb +35 -0
  135. data/lib/spec/expectations/errors.rb +12 -0
  136. data/lib/spec/expectations/extensions.rb +1 -0
  137. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  138. data/lib/spec/expectations/fail_with.rb +45 -0
  139. data/lib/spec/expectations/handler.rb +50 -0
  140. data/lib/spec/extensions/instance_exec.rb +31 -0
  141. data/lib/spec/interop/test.rb +44 -0
  142. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  143. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  144. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  145. data/lib/spec/interop/test/unit/testsuite_adapter.rb +36 -0
  146. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  147. data/lib/spec/matchers.rb +214 -0
  148. data/lib/spec/matchers/be.rb +249 -0
  149. data/lib/spec/matchers/be_close.rb +32 -0
  150. data/lib/spec/matchers/be_instance_of.rb +26 -0
  151. data/lib/spec/matchers/be_kind_of.rb +26 -0
  152. data/lib/spec/matchers/change.rb +151 -0
  153. data/lib/spec/matchers/compatibility.rb +14 -0
  154. data/lib/spec/matchers/dsl.rb +20 -0
  155. data/lib/spec/matchers/eql.rb +42 -0
  156. data/lib/spec/matchers/equal.rb +53 -0
  157. data/lib/spec/matchers/errors.rb +5 -0
  158. data/lib/spec/matchers/exist.rb +16 -0
  159. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  160. data/lib/spec/matchers/has.rb +35 -0
  161. data/lib/spec/matchers/have.rb +152 -0
  162. data/lib/spec/matchers/include.rb +44 -0
  163. data/lib/spec/matchers/match.rb +21 -0
  164. data/lib/spec/matchers/match_array.rb +71 -0
  165. data/lib/spec/matchers/matcher.rb +132 -0
  166. data/lib/spec/matchers/method_missing.rb +9 -0
  167. data/lib/spec/matchers/operator_matcher.rb +83 -0
  168. data/lib/spec/matchers/pretty.rb +37 -0
  169. data/lib/spec/matchers/raise_exception.rb +131 -0
  170. data/lib/spec/matchers/respond_to.rb +71 -0
  171. data/lib/spec/matchers/satisfy.rb +47 -0
  172. data/lib/spec/matchers/simple_matcher.rb +134 -0
  173. data/lib/spec/matchers/throw_symbol.rb +100 -0
  174. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  175. data/lib/spec/mocks.rb +200 -0
  176. data/lib/spec/mocks/argument_expectation.rb +51 -0
  177. data/lib/spec/mocks/argument_matchers.rb +237 -0
  178. data/lib/spec/mocks/error_generator.rb +92 -0
  179. data/lib/spec/mocks/errors.rb +10 -0
  180. data/lib/spec/mocks/example_methods.rb +69 -0
  181. data/lib/spec/mocks/extensions.rb +1 -0
  182. data/lib/spec/mocks/extensions/object.rb +3 -0
  183. data/lib/spec/mocks/framework.rb +15 -0
  184. data/lib/spec/mocks/message_expectation.rb +344 -0
  185. data/lib/spec/mocks/methods.rb +94 -0
  186. data/lib/spec/mocks/mock.rb +71 -0
  187. data/lib/spec/mocks/order_group.rb +29 -0
  188. data/lib/spec/mocks/proxy.rb +254 -0
  189. data/lib/spec/mocks/space.rb +28 -0
  190. data/lib/spec/rake/spectask.rb +230 -0
  191. data/lib/spec/rake/verify_rcov.rb +52 -0
  192. data/lib/spec/ruby.rb +9 -0
  193. data/lib/spec/runner.rb +66 -0
  194. data/lib/spec/runner/backtrace_tweaker.rb +78 -0
  195. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  196. data/lib/spec/runner/command_line.rb +15 -0
  197. data/lib/spec/runner/configuration.rb +202 -0
  198. data/lib/spec/runner/differs/default.rb +93 -0
  199. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  200. data/lib/spec/runner/drb_command_line.rb +32 -0
  201. data/lib/spec/runner/example_group_runner.rb +62 -0
  202. data/lib/spec/runner/extensions/kernel.rb +9 -0
  203. data/lib/spec/runner/formatter/base_formatter.rb +139 -0
  204. data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  205. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  206. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  207. data/lib/spec/runner/formatter/html_formatter.rb +338 -0
  208. data/lib/spec/runner/formatter/nested_text_formatter.rb +50 -0
  209. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  210. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  211. data/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  212. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  213. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  214. data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  215. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  216. data/lib/spec/runner/heckle_runner.rb +77 -0
  217. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  218. data/lib/spec/runner/line_number_query.rb +78 -0
  219. data/lib/spec/runner/option_parser.rb +225 -0
  220. data/lib/spec/runner/options.rb +406 -0
  221. data/lib/spec/runner/reporter.rb +171 -0
  222. data/lib/spec/stubs/cucumber.rb +5 -0
  223. data/lib/spec/test/unit.rb +10 -0
  224. data/lib/spec/version.rb +14 -0
  225. data/resources/helpers/cmdline.rb +8 -0
  226. data/resources/rake/examples.rake +7 -0
  227. data/resources/rake/examples_with_rcov.rake +9 -0
  228. data/resources/rake/failing_examples_with_html.rake +9 -0
  229. data/resources/rake/verify_rcov.rake +7 -0
  230. data/rspec.gemspec +26 -0
  231. data/spec/README.jruby +15 -0
  232. data/spec/autotest/autotest_helper.rb +8 -0
  233. data/spec/autotest/autotest_matchers.rb +38 -0
  234. data/spec/autotest/discover_spec.rb +8 -0
  235. data/spec/autotest/failed_results_re_spec.rb +31 -0
  236. data/spec/autotest/rspec_spec.rb +126 -0
  237. data/spec/ruby_forker.rb +13 -0
  238. data/spec/spec.opts +6 -0
  239. data/spec/spec/dsl/main_spec.rb +103 -0
  240. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  241. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  242. data/spec/spec/example/example_group_methods_spec.rb +778 -0
  243. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  244. data/spec/spec/example/example_group_spec.rb +632 -0
  245. data/spec/spec/example/example_matcher_spec.rb +85 -0
  246. data/spec/spec/example/example_methods_spec.rb +162 -0
  247. data/spec/spec/example/example_proxy_spec.rb +57 -0
  248. data/spec/spec/example/helper_method_spec.rb +24 -0
  249. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  250. data/spec/spec/example/pending_module_spec.rb +58 -0
  251. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  252. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  253. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  254. data/spec/spec/example/subject_spec.rb +110 -0
  255. data/spec/spec/expectations/differs/default_spec.rb +194 -0
  256. data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  257. data/spec/spec/expectations/fail_with_spec.rb +96 -0
  258. data/spec/spec/expectations/handler_spec.rb +206 -0
  259. data/spec/spec/expectations/wrap_expectation_spec.rb +31 -0
  260. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  261. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  262. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  263. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  264. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  265. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  266. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  267. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  268. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  269. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  270. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  271. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  272. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  273. data/spec/spec/matchers/be_close_spec.rb +50 -0
  274. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  275. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  276. data/spec/spec/matchers/be_spec.rb +460 -0
  277. data/spec/spec/matchers/change_spec.rb +349 -0
  278. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  279. data/spec/spec/matchers/description_generation_spec.rb +160 -0
  280. data/spec/spec/matchers/dsl_spec.rb +34 -0
  281. data/spec/spec/matchers/eql_spec.rb +33 -0
  282. data/spec/spec/matchers/equal_spec.rb +57 -0
  283. data/spec/spec/matchers/exist_spec.rb +65 -0
  284. data/spec/spec/matchers/has_spec.rb +190 -0
  285. data/spec/spec/matchers/have_spec.rb +381 -0
  286. data/spec/spec/matchers/include_spec.rb +88 -0
  287. data/spec/spec/matchers/match_array_spec.rb +115 -0
  288. data/spec/spec/matchers/match_spec.rb +57 -0
  289. data/spec/spec/matchers/matcher_spec.rb +289 -0
  290. data/spec/spec/matchers/matchers_spec.rb +2 -0
  291. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  292. data/spec/spec/matchers/pretty_spec.rb +22 -0
  293. data/spec/spec/matchers/raise_exception_spec.rb +345 -0
  294. data/spec/spec/matchers/respond_to_spec.rb +116 -0
  295. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  296. data/spec/spec/matchers/simple_matcher_spec.rb +100 -0
  297. data/spec/spec/matchers/throw_symbol_spec.rb +121 -0
  298. data/spec/spec/mocks/and_yield_spec.rb +117 -0
  299. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  300. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  301. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  302. data/spec/spec/mocks/at_least_spec.rb +97 -0
  303. data/spec/spec/mocks/at_most_spec.rb +93 -0
  304. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  305. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  306. data/spec/spec/mocks/bug_report_1049_spec.rb +30 -0
  307. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  308. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  309. data/spec/spec/mocks/bug_report_496_spec.rb +17 -0
  310. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  311. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  312. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  313. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  314. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  315. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  316. data/spec/spec/mocks/bug_report_957_spec.rb +22 -0
  317. data/spec/spec/mocks/double_spec.rb +12 -0
  318. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  319. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  320. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  321. data/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  322. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  323. data/spec/spec/mocks/mock_spec.rb +601 -0
  324. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  325. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  326. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  327. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  328. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  329. data/spec/spec/mocks/partial_mock_spec.rb +164 -0
  330. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  331. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  332. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  333. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  334. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  335. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  336. data/spec/spec/mocks/stub_spec.rb +203 -0
  337. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  338. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  339. data/spec/spec/mocks/unstub_spec.rb +127 -0
  340. data/spec/spec/package/bin_spec_spec.rb +16 -0
  341. data/spec/spec/rake/spectask_spec.rb +150 -0
  342. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  343. data/spec/spec/runner/command_line_spec.rb +162 -0
  344. data/spec/spec/runner/configuration_spec.rb +320 -0
  345. data/spec/spec/runner/drb_command_line_spec.rb +146 -0
  346. data/spec/spec/runner/empty_file.txt +0 -0
  347. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  348. data/spec/spec/runner/examples.txt +2 -0
  349. data/spec/spec/runner/failed.txt +3 -0
  350. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  351. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  352. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  353. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  354. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  355. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  356. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  357. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  358. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +377 -0
  359. data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  360. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -0
  361. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  362. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  363. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  364. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  365. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  366. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  367. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  368. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +371 -0
  370. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  371. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  372. data/spec/spec/runner/heckler_spec.rb +20 -0
  373. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  374. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  375. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  376. data/spec/spec/runner/option_parser_spec.rb +552 -0
  377. data/spec/spec/runner/options_spec.rb +554 -0
  378. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  379. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  380. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  381. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
  382. data/spec/spec/runner/reporter_spec.rb +244 -0
  383. data/spec/spec/runner/resources/a_bar.rb +0 -0
  384. data/spec/spec/runner/resources/a_foo.rb +0 -0
  385. data/spec/spec/runner/resources/a_spec.rb +1 -0
  386. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  387. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  388. data/spec/spec/runner/spec.opts +2 -0
  389. data/spec/spec/runner/spec_drb.opts +2 -0
  390. data/spec/spec/runner/spec_spaced.opts +2 -0
  391. data/spec/spec/runner_spec.rb +13 -0
  392. data/spec/spec_helper.rb +113 -0
  393. data/spec/support/macros.rb +29 -0
  394. data/spec/support/spec_classes.rb +133 -0
  395. metadata +727 -0
@@ -0,0 +1,31 @@
1
+ Feature: explicit subject
2
+
3
+ You can override the implicit subject using the subject() method.
4
+
5
+ Scenario: subject in top level group
6
+ Given a file named "top_level_subject_spec.rb" with:
7
+ """
8
+ describe Array, "with some elements" do
9
+ subject { [1,2,3] }
10
+ it "should have the prescribed elements" do
11
+ subject.should == [1,2,3]
12
+ end
13
+ end
14
+ """
15
+ When I run "spec top_level_subject_spec.rb"
16
+ Then the stdout should include "1 example, 0 failures"
17
+
18
+ Scenario: subject in a nested group
19
+ Given a file named "nested_subject_spec.rb" with:
20
+ """
21
+ describe Array do
22
+ subject { [1,2,3] }
23
+ describe "with some elements" do
24
+ it "should have the prescribed elements" do
25
+ subject.should == [1,2,3]
26
+ end
27
+ end
28
+ end
29
+ """
30
+ When I run "spec nested_subject_spec.rb"
31
+ Then the stdout should include "1 example, 0 failures"
@@ -0,0 +1,43 @@
1
+ Feature: implicit subject
2
+
3
+ The first argument to the outermost example group block is
4
+ made available to each example as an implicit subject of
5
+ that example.
6
+
7
+ Scenario: subject in top level group
8
+ Given a file named "top_level_subject_spec.rb" with:
9
+ """
10
+ describe Array, "when first created" do
11
+ it "should be empty" do
12
+ subject.should == []
13
+ end
14
+ end
15
+ """
16
+ When I run "spec top_level_subject_spec.rb"
17
+ Then the stdout should include "1 example, 0 failures"
18
+
19
+ Scenario: subject in a nested group
20
+ Given a file named "nested_subject_spec.rb" with:
21
+ """
22
+ describe Array do
23
+ describe "when first created" do
24
+ it "should be empty" do
25
+ subject.should == []
26
+ end
27
+ end
28
+ end
29
+ """
30
+ When I run "spec nested_subject_spec.rb"
31
+ Then the stdout should include "1 example, 0 failures"
32
+
33
+ Scenario: subject with getters
34
+ Given a file named "subject_with_getter_spec.rb" with:
35
+ """
36
+ describe Array do
37
+ describe "when first created" do
38
+ its(:length) { should == 0 }
39
+ end
40
+ end
41
+ """
42
+ When I run "spec subject_with_getter_spec.rb"
43
+ Then the stdout should include "1 example, 0 failures"
@@ -0,0 +1,83 @@
1
+ $:.unshift File.expand_path("../../../lib", __FILE__)
2
+
3
+ require 'spec/expectations'
4
+ require 'forwardable'
5
+ require 'tempfile'
6
+ require './spec/ruby_forker'
7
+ require './features/support/matchers/smart_match'
8
+ require 'spec/stubs/cucumber'
9
+
10
+ class RspecWorld
11
+ include Spec::Expectations
12
+ include Spec::Matchers
13
+ include RubyForker
14
+
15
+ extend Forwardable
16
+ def_delegators RspecWorld, :working_dir, :spec_command, :cmdline_file, :rspec_lib
17
+
18
+ def self.working_dir
19
+ @working_dir ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../tmp/cucumber-generated-files"))
20
+ end
21
+
22
+ def self.spec_command
23
+ @spec_command ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../bin/spec"))
24
+ end
25
+
26
+ def self.cmdline_file
27
+ @cmdline_file ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../resources/helpers/cmdline.rb"))
28
+ end
29
+
30
+ def self.rspec_lib
31
+ @rspec_lib ||= File.join(working_dir, "/../../lib")
32
+ end
33
+
34
+ def spec(args)
35
+ ruby("#{spec_command} #{args}")
36
+ end
37
+
38
+ def cmdline(args)
39
+ ruby("#{cmdline_file} #{args}")
40
+ end
41
+
42
+ def create_file(file_name, contents)
43
+ file_path = File.join(working_dir, file_name)
44
+ File.open(file_path, "w") { |f| f << contents }
45
+ end
46
+
47
+ def create_directory(dirname)
48
+ FileUtils.mkdir_p File.join(working_dir, dirname)
49
+ end
50
+
51
+ def last_stdout
52
+ @stdout
53
+ end
54
+
55
+ def last_stderr
56
+ @stderr
57
+ end
58
+
59
+ def last_exit_code
60
+ @exit_code
61
+ end
62
+
63
+ # it seems like this, and the last_* methods, could be moved into RubyForker-- is that being used anywhere but the features?
64
+ def ruby(args)
65
+ stderr_file = Tempfile.new('rspec')
66
+ stderr_file.close
67
+ Dir.chdir(working_dir) do
68
+ @stdout = super("-I #{rspec_lib} #{args}", stderr_file.path)
69
+ end
70
+ @stderr = IO.read(stderr_file.path)
71
+ @exit_code = $?.to_i
72
+ end
73
+
74
+ end
75
+
76
+ Before do
77
+ FileUtils.rm_rf RspecWorld.working_dir if test ?d, RspecWorld.working_dir
78
+ FileUtils.mkdir_p RspecWorld.working_dir
79
+ end
80
+
81
+ World do
82
+ RspecWorld.new
83
+ end
@@ -0,0 +1,31 @@
1
+ Spec::Matchers.define :smart_match do |expected|
2
+ def regexp?
3
+ /^\/.*\/?$/
4
+ end
5
+
6
+ def quoted?
7
+ /^".*"$/
8
+ end
9
+
10
+ match do |actual|
11
+ case expected
12
+ when regexp?
13
+ actual =~ eval(expected)
14
+ when quoted?
15
+ actual.index(eval(expected))
16
+ else # multi-line string
17
+ actual.index(expected)
18
+ end
19
+ end
20
+
21
+ failure_message_for_should do |actual|
22
+ <<-MESSAGE
23
+ #{'*'*50}
24
+ got:
25
+ #{'*'*30}
26
+ #{actual}
27
+ #{'*'*50}
28
+ MESSAGE
29
+ end
30
+ end
31
+
data/init.rb ADDED
@@ -0,0 +1,9 @@
1
+ # Placeholder to satisfy Rails.
2
+ #
3
+ # Do NOT add any require statements to this file. Doing
4
+ # so will cause Rails to load this plugin all of the time.
5
+ #
6
+ # Running 'ruby script/generate rspec' will
7
+ # generate spec/spec_helper.rb, which includes the necessary
8
+ # require statements and configuration. This file should
9
+ # be required by all of your spec files.
@@ -0,0 +1,3 @@
1
+ Autotest.add_discovery do
2
+ "rspec" if File.directory?('spec') && ENV['RSPEC']
3
+ end
@@ -0,0 +1,54 @@
1
+ require 'autotest'
2
+
3
+ Autotest.add_hook :initialize do |at|
4
+ at.clear_mappings
5
+ # watch out for Ruby bug (1.8.6): %r(/) != /\//
6
+ at.add_mapping(%r%^spec/.*_spec\.rb$%) { |filename, _|
7
+ filename
8
+ }
9
+ at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
10
+ ["spec/#{m[1]}_spec.rb"]
11
+ }
12
+ at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) {
13
+ at.files_matching %r%^spec/.*_spec\.rb$%
14
+ }
15
+ end
16
+
17
+ class RspecCommandError < StandardError; end
18
+
19
+ class Autotest::Rspec < Autotest
20
+
21
+ SPEC_PROGRAM = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec'))
22
+
23
+ def initialize
24
+ super
25
+ self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n\n?(.*?(\n\n\(.*?)?)\n\n/m
26
+ self.completed_re = /\n(?:\e\[\d*m)?\d* examples?/m
27
+ end
28
+
29
+ def consolidate_failures(failed)
30
+ filters = new_hash_of_arrays
31
+ failed.each do |spec, trace|
32
+ if trace =~ /\n(\.\/)?(.*spec\.rb):[\d]+:/
33
+ filters[$2] << spec
34
+ end
35
+ end
36
+ return filters
37
+ end
38
+
39
+ def make_test_cmd(files_to_test)
40
+ files_to_test.empty? ? '' :
41
+ "#{ruby} #{SPEC_PROGRAM} --autospec #{normalize(files_to_test).keys.flatten.join(' ')} #{add_options_if_present}"
42
+ end
43
+
44
+ def normalize(files_to_test)
45
+ files_to_test.keys.inject({}) do |result, filename|
46
+ result[File.expand_path(filename)] = []
47
+ result
48
+ end
49
+ end
50
+
51
+ def add_options_if_present # :nodoc:
52
+ File.exist?("spec/spec.opts") ? "-O #{File.join('spec','spec.opts')} " : ""
53
+ end
54
+ end
data/lib/spec.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'spec/deprecation'
2
+ require 'spec/ruby'
3
+ require 'spec/matchers'
4
+ require 'spec/expectations'
5
+ require 'spec/example'
6
+ require 'spec/runner'
7
+ require 'spec/version'
8
+ require 'spec/dsl'
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Jim Weirich on 2007-04-10.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
7
+ require 'flexmock/rspec'
8
+
9
+ module Spec
10
+ module Adapters
11
+ module MockFramework
12
+ include FlexMock::MockContainer
13
+ def setup_mocks_for_rspec
14
+ # No setup required
15
+ end
16
+ def verify_mocks_for_rspec
17
+ flexmock_verify
18
+ end
19
+ def teardown_mocks_for_rspec
20
+ flexmock_close
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
2
+ require 'mocha/standalone'
3
+ require 'mocha/object'
4
+
5
+ module Spec
6
+ module Adapters
7
+ module MockFramework
8
+ # Mocha::Standalone was deprecated as of Mocha 0.9.7.
9
+ begin
10
+ include Mocha::API
11
+ rescue NameError
12
+ include Mocha::Standalone
13
+ end
14
+ def setup_mocks_for_rspec
15
+ mocha_setup
16
+ end
17
+ def verify_mocks_for_rspec
18
+ mocha_verify
19
+ end
20
+ def teardown_mocks_for_rspec
21
+ mocha_teardown
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
2
+ require 'rr'
3
+
4
+ patterns = ::Spec::Runner::QuietBacktraceTweaker::IGNORE_PATTERNS
5
+ patterns.push(RR::Errors::BACKTRACE_IDENTIFIER)
6
+
7
+ module Spec
8
+ module Adapters
9
+ module MockFramework
10
+ include RR::Extensions::InstanceMethods
11
+ def setup_mocks_for_rspec
12
+ RR::Space.instance.reset
13
+ end
14
+ def verify_mocks_for_rspec
15
+ RR::Space.instance.verify_doubles
16
+ end
17
+ def teardown_mocks_for_rspec
18
+ RR::Space.instance.reset
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec/mocks/framework'
2
+ require 'spec/mocks/extensions'
3
+
4
+ module Spec
5
+ module Adapters
6
+ unless defined?(MockFramework)
7
+ module MockFramework
8
+ include Spec::Mocks::ExampleMethods
9
+ def setup_mocks_for_rspec
10
+ $rspec_mocks ||= Spec::Mocks::Space.new
11
+ end
12
+ def verify_mocks_for_rspec
13
+ $rspec_mocks.verify_all
14
+ end
15
+ def teardown_mocks_for_rspec
16
+ $rspec_mocks.reset_all
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ require 'spec'
2
+
3
+ Spec::Runner.autorun
@@ -0,0 +1,41 @@
1
+ module Spec
2
+ class << self
3
+ def deprecate(method, alternate_method=nil)
4
+ return if Spec::Runner.configuration.suppress_deprecation_warnings?
5
+ message = <<-NOTICE
6
+
7
+ *****************************************************************
8
+ DEPRECATION WARNING: you are using deprecated behaviour that will
9
+ be removed from a future version of RSpec.
10
+
11
+ #{caller(0)[2]}
12
+
13
+ * #{method} is deprecated.
14
+ NOTICE
15
+ if alternate_method
16
+ message << <<-ADDITIONAL
17
+ * please use #{alternate_method} instead.
18
+ ADDITIONAL
19
+ end
20
+
21
+ message << "*****************************************************************"
22
+ warn(message)
23
+ end
24
+
25
+ def warn(message)
26
+ Kernel.warn(message)
27
+ end
28
+
29
+ end
30
+
31
+ class HashWithDeprecationNotice < Hash
32
+ def initialize(method, alternate_method=nil, &block)
33
+ @method, @alternate_method = method, alternate_method
34
+ end
35
+ def []=(k,v)
36
+ Spec.deprecate(@method, @alternate_method)
37
+ super
38
+ end
39
+ end
40
+ end
41
+
data/lib/spec/dsl.rb ADDED
@@ -0,0 +1 @@
1
+ require 'spec/dsl/main'
@@ -0,0 +1,93 @@
1
+ module Spec
2
+ module DSL
3
+ module Main
4
+ include Spec::Example::ArgsAndOptions
5
+
6
+ # Creates and returns a class that includes the ExampleGroupMethods
7
+ # module. Which ExampleGroup type is created depends on the directory of the file
8
+ # calling this method. For example, Spec::Rails will use different
9
+ # classes for specs living in <tt>spec/models</tt>,
10
+ # <tt>spec/helpers</tt>, <tt>spec/views</tt> and
11
+ # <tt>spec/controllers</tt>.
12
+ #
13
+ # It is also possible to override autodiscovery of the example group
14
+ # type with an options Hash as the last argument:
15
+ #
16
+ # describe "name", :type => :something_special do ...
17
+ #
18
+ # The reason for using different example group classes is to have different
19
+ # matcher methods available from within the <tt>describe</tt> block.
20
+ #
21
+ # See Spec::Example::ExampleGroupFactory#register for details about how to
22
+ # register special implementations.
23
+ #
24
+ def describe(*args, &block)
25
+ raise Spec::Example::NoDescriptionError.new("example group", caller(0)[1]) if args.empty?
26
+ add_options(args, :scope => self)
27
+ set_location(args.options, caller(0)[1])
28
+ Spec::Example::ExampleGroupFactory.create_example_group(*args, &block)
29
+ end
30
+ alias :context :describe unless defined?(IRB::Context)
31
+
32
+ # Creates an example group that can be shared by other example groups
33
+ #
34
+ # == Examples
35
+ #
36
+ # share_examples_for "All Editions" do
37
+ # it "all editions behaviour" ...
38
+ # end
39
+ #
40
+ # describe SmallEdition do
41
+ # it_should_behave_like "All Editions"
42
+ #
43
+ # it "should do small edition stuff" do
44
+ # ...
45
+ # end
46
+ # end
47
+ def share_examples_for(*args, &block)
48
+ add_options(args)
49
+ set_location(args.options, caller(0)[1])
50
+ Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block)
51
+ end
52
+ alias :shared_examples_for :share_examples_for
53
+
54
+ # Creates a Shared Example Group and assigns it to a constant
55
+ #
56
+ # share_as :AllEditions do
57
+ # it "should do all editions stuff" ...
58
+ # end
59
+ #
60
+ # describe SmallEdition do
61
+ # it_should_behave_like AllEditions
62
+ #
63
+ # it "should do small edition stuff" do
64
+ # ...
65
+ # end
66
+ # end
67
+ #
68
+ # And, for those of you who prefer to use something more like Ruby, you
69
+ # can just include the module directly
70
+ #
71
+ # describe SmallEdition do
72
+ # include AllEditions
73
+ #
74
+ # it "should do small edition stuff" do
75
+ # ...
76
+ # end
77
+ # end
78
+ def share_as(name, &block)
79
+ Spec.deprecate("share_as","shared_examples_for")
80
+ begin
81
+ args = [name]
82
+ add_options(args)
83
+ set_location(args.options, caller(0)[1])
84
+ Object.const_set(name, Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block))
85
+ rescue NameError => e
86
+ raise NameError.new(e.message + "\nThe first argument to share_as must be a legal name for a constant\n")
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+
93
+ include Spec::DSL::Main