dchelimsky-rspec 1.1.10

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 (404) hide show
  1. data/History.txt +1192 -0
  2. data/License.txt +22 -0
  3. data/Manifest.txt +403 -0
  4. data/README.txt +39 -0
  5. data/Rakefile +90 -0
  6. data/TODO.txt +10 -0
  7. data/bin/autospec +4 -0
  8. data/bin/spec +4 -0
  9. data/examples/pure/autogenerated_docstrings_example.rb +19 -0
  10. data/examples/pure/before_and_after_example.rb +40 -0
  11. data/examples/pure/behave_as_example.rb +45 -0
  12. data/examples/pure/custom_expectation_matchers.rb +54 -0
  13. data/examples/pure/custom_formatter.rb +12 -0
  14. data/examples/pure/dynamic_spec.rb +9 -0
  15. data/examples/pure/file_accessor.rb +19 -0
  16. data/examples/pure/file_accessor_spec.rb +38 -0
  17. data/examples/pure/greeter_spec.rb +31 -0
  18. data/examples/pure/helper_method_example.rb +14 -0
  19. data/examples/pure/io_processor.rb +8 -0
  20. data/examples/pure/io_processor_spec.rb +21 -0
  21. data/examples/pure/legacy_spec.rb +11 -0
  22. data/examples/pure/mocking_example.rb +27 -0
  23. data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
  24. data/examples/pure/nested_classes_example.rb +36 -0
  25. data/examples/pure/partial_mock_example.rb +29 -0
  26. data/examples/pure/pending_example.rb +20 -0
  27. data/examples/pure/predicate_example.rb +27 -0
  28. data/examples/pure/priority.txt +1 -0
  29. data/examples/pure/shared_example_group_example.rb +81 -0
  30. data/examples/pure/shared_stack_examples.rb +38 -0
  31. data/examples/pure/spec_helper.rb +3 -0
  32. data/examples/pure/stack.rb +36 -0
  33. data/examples/pure/stack_spec.rb +63 -0
  34. data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
  35. data/examples/pure/stubbing_example.rb +69 -0
  36. data/examples/pure/yielding_example.rb +33 -0
  37. data/examples/stories/adder.rb +13 -0
  38. data/examples/stories/addition +34 -0
  39. data/examples/stories/addition.rb +9 -0
  40. data/examples/stories/calculator.rb +65 -0
  41. data/examples/stories/game-of-life/.loadpath +5 -0
  42. data/examples/stories/game-of-life/README.txt +21 -0
  43. data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
  44. data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
  45. data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
  46. data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
  47. data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
  48. data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
  49. data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
  50. data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
  51. data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
  52. data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
  53. data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
  54. data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
  55. data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
  56. data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
  57. data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
  58. data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
  59. data/examples/stories/game-of-life/life/game.rb +23 -0
  60. data/examples/stories/game-of-life/life/grid.rb +43 -0
  61. data/examples/stories/game-of-life/life.rb +3 -0
  62. data/examples/stories/helper.rb +9 -0
  63. data/examples/stories/steps/addition_steps.rb +18 -0
  64. data/failing_examples/README.txt +7 -0
  65. data/failing_examples/diffing_spec.rb +36 -0
  66. data/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
  67. data/failing_examples/failure_in_setup.rb +10 -0
  68. data/failing_examples/failure_in_teardown.rb +10 -0
  69. data/failing_examples/mocking_example.rb +40 -0
  70. data/failing_examples/mocking_with_flexmock.rb +26 -0
  71. data/failing_examples/mocking_with_mocha.rb +25 -0
  72. data/failing_examples/mocking_with_rr.rb +27 -0
  73. data/failing_examples/partial_mock_example.rb +20 -0
  74. data/failing_examples/predicate_example.rb +29 -0
  75. data/failing_examples/raising_example.rb +47 -0
  76. data/failing_examples/spec_helper.rb +3 -0
  77. data/failing_examples/syntax_error_example.rb +7 -0
  78. data/failing_examples/team_spec.rb +44 -0
  79. data/failing_examples/timeout_behaviour.rb +7 -0
  80. data/init.rb +9 -0
  81. data/lib/autotest/discover.rb +3 -0
  82. data/lib/autotest/rspec.rb +46 -0
  83. data/lib/spec/adapters/ruby_engine/mri.rb +8 -0
  84. data/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
  85. data/lib/spec/adapters/ruby_engine.rb +26 -0
  86. data/lib/spec/adapters.rb +1 -0
  87. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  88. data/lib/spec/example/configuration.rb +167 -0
  89. data/lib/spec/example/errors.rb +30 -0
  90. data/lib/spec/example/example_group.rb +25 -0
  91. data/lib/spec/example/example_group_factory.rb +81 -0
  92. data/lib/spec/example/example_group_methods.rb +368 -0
  93. data/lib/spec/example/example_matcher.rb +44 -0
  94. data/lib/spec/example/example_methods.rb +105 -0
  95. data/lib/spec/example/module_reopening_fix.rb +21 -0
  96. data/lib/spec/example/pending.rb +18 -0
  97. data/lib/spec/example/shared_example_group.rb +52 -0
  98. data/lib/spec/example.rb +12 -0
  99. data/lib/spec/expectations/differs/default.rb +66 -0
  100. data/lib/spec/expectations/errors.rb +12 -0
  101. data/lib/spec/expectations/extensions/object.rb +63 -0
  102. data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  103. data/lib/spec/expectations/extensions.rb +2 -0
  104. data/lib/spec/expectations/handler.rb +52 -0
  105. data/lib/spec/expectations.rb +56 -0
  106. data/lib/spec/extensions/class.rb +24 -0
  107. data/lib/spec/extensions/main.rb +87 -0
  108. data/lib/spec/extensions/metaclass.rb +7 -0
  109. data/lib/spec/extensions/object.rb +6 -0
  110. data/lib/spec/extensions.rb +4 -0
  111. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  112. data/lib/spec/interop/test/unit/testcase.rb +71 -0
  113. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  114. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  115. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  116. data/lib/spec/interop/test.rb +12 -0
  117. data/lib/spec/matchers/be.rb +221 -0
  118. data/lib/spec/matchers/be_close.rb +37 -0
  119. data/lib/spec/matchers/change.rb +148 -0
  120. data/lib/spec/matchers/eql.rb +43 -0
  121. data/lib/spec/matchers/equal.rb +43 -0
  122. data/lib/spec/matchers/exist.rb +22 -0
  123. data/lib/spec/matchers/has.rb +34 -0
  124. data/lib/spec/matchers/have.rb +150 -0
  125. data/lib/spec/matchers/include.rb +77 -0
  126. data/lib/spec/matchers/match.rb +41 -0
  127. data/lib/spec/matchers/operator_matcher.rb +79 -0
  128. data/lib/spec/matchers/raise_error.rb +132 -0
  129. data/lib/spec/matchers/respond_to.rb +46 -0
  130. data/lib/spec/matchers/satisfy.rb +47 -0
  131. data/lib/spec/matchers/simple_matcher.rb +132 -0
  132. data/lib/spec/matchers/throw_symbol.rb +74 -0
  133. data/lib/spec/matchers.rb +162 -0
  134. data/lib/spec/mocks/argument_constraints.rb +165 -0
  135. data/lib/spec/mocks/argument_expectation.rb +49 -0
  136. data/lib/spec/mocks/error_generator.rb +84 -0
  137. data/lib/spec/mocks/errors.rb +10 -0
  138. data/lib/spec/mocks/extensions/object.rb +3 -0
  139. data/lib/spec/mocks/extensions.rb +1 -0
  140. data/lib/spec/mocks/framework.rb +15 -0
  141. data/lib/spec/mocks/message_expectation.rb +331 -0
  142. data/lib/spec/mocks/methods.rb +51 -0
  143. data/lib/spec/mocks/mock.rb +56 -0
  144. data/lib/spec/mocks/order_group.rb +29 -0
  145. data/lib/spec/mocks/proxy.rb +224 -0
  146. data/lib/spec/mocks/space.rb +28 -0
  147. data/lib/spec/mocks/spec_methods.rb +46 -0
  148. data/lib/spec/mocks.rb +200 -0
  149. data/lib/spec/rake/spectask.rb +227 -0
  150. data/lib/spec/rake/verify_rcov.rb +52 -0
  151. data/lib/spec/runner/backtrace_tweaker.rb +56 -0
  152. data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
  153. data/lib/spec/runner/command_line.rb +17 -0
  154. data/lib/spec/runner/drb_command_line.rb +20 -0
  155. data/lib/spec/runner/example_group_runner.rb +59 -0
  156. data/lib/spec/runner/formatter/base_formatter.rb +79 -0
  157. data/lib/spec/runner/formatter/base_text_formatter.rb +126 -0
  158. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
  159. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  160. data/lib/spec/runner/formatter/html_formatter.rb +337 -0
  161. data/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
  162. data/lib/spec/runner/formatter/profile_formatter.rb +51 -0
  163. data/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
  164. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  165. data/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
  166. data/lib/spec/runner/formatter/story/html_formatter.rb +174 -0
  167. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +194 -0
  168. data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
  169. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  170. data/lib/spec/runner/heckle_runner.rb +72 -0
  171. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  172. data/lib/spec/runner/option_parser.rb +205 -0
  173. data/lib/spec/runner/options.rb +320 -0
  174. data/lib/spec/runner/reporter.rb +167 -0
  175. data/lib/spec/runner/spec_parser.rb +71 -0
  176. data/lib/spec/runner.rb +213 -0
  177. data/lib/spec/story/extensions/main.rb +86 -0
  178. data/lib/spec/story/extensions/regexp.rb +9 -0
  179. data/lib/spec/story/extensions/string.rb +9 -0
  180. data/lib/spec/story/extensions.rb +3 -0
  181. data/lib/spec/story/given_scenario.rb +14 -0
  182. data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
  183. data/lib/spec/story/runner/scenario_collector.rb +18 -0
  184. data/lib/spec/story/runner/scenario_runner.rb +54 -0
  185. data/lib/spec/story/runner/story_mediator.rb +137 -0
  186. data/lib/spec/story/runner/story_parser.rb +247 -0
  187. data/lib/spec/story/runner/story_runner.rb +70 -0
  188. data/lib/spec/story/runner.rb +59 -0
  189. data/lib/spec/story/scenario.rb +14 -0
  190. data/lib/spec/story/step.rb +70 -0
  191. data/lib/spec/story/step_group.rb +89 -0
  192. data/lib/spec/story/step_mother.rb +38 -0
  193. data/lib/spec/story/story.rb +39 -0
  194. data/lib/spec/story/world.rb +128 -0
  195. data/lib/spec/story.rb +10 -0
  196. data/lib/spec/version.rb +13 -0
  197. data/lib/spec.rb +32 -0
  198. data/plugins/mock_frameworks/flexmock.rb +23 -0
  199. data/plugins/mock_frameworks/mocha.rb +19 -0
  200. data/plugins/mock_frameworks/rr.rb +21 -0
  201. data/plugins/mock_frameworks/rspec.rb +20 -0
  202. data/rake_tasks/examples.rake +7 -0
  203. data/rake_tasks/examples_with_rcov.rake +9 -0
  204. data/rake_tasks/failing_examples_with_html.rake +9 -0
  205. data/rake_tasks/verify_rcov.rake +7 -0
  206. data/rspec.gemspec +42 -0
  207. data/spec/README.jruby +15 -0
  208. data/spec/autotest/autotest_helper.rb +6 -0
  209. data/spec/autotest/autotest_matchers.rb +47 -0
  210. data/spec/autotest/discover_spec.rb +19 -0
  211. data/spec/autotest/rspec_spec.rb +150 -0
  212. data/spec/rspec_suite.rb +6 -0
  213. data/spec/ruby_forker.rb +13 -0
  214. data/spec/spec/adapters/ruby_engine_spec.rb +16 -0
  215. data/spec/spec/example/configuration_spec.rb +296 -0
  216. data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
  217. data/spec/spec/example/example_group_factory_spec.rb +165 -0
  218. data/spec/spec/example/example_group_methods_spec.rb +584 -0
  219. data/spec/spec/example/example_group_spec.rb +683 -0
  220. data/spec/spec/example/example_matcher_spec.rb +96 -0
  221. data/spec/spec/example/example_methods_spec.rb +169 -0
  222. data/spec/spec/example/example_runner_spec.rb +194 -0
  223. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  224. data/spec/spec/example/pending_module_spec.rb +145 -0
  225. data/spec/spec/example/predicate_matcher_spec.rb +21 -0
  226. data/spec/spec/example/shared_example_group_spec.rb +281 -0
  227. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  228. data/spec/spec/expectations/differs/default_spec.rb +127 -0
  229. data/spec/spec/expectations/extensions/object_spec.rb +95 -0
  230. data/spec/spec/expectations/fail_with_spec.rb +71 -0
  231. data/spec/spec/extensions/main_spec.rb +71 -0
  232. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  233. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  234. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  235. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  236. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  237. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  238. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  239. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  240. data/spec/spec/interop/test/unit/spec_spec.rb +52 -0
  241. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
  242. data/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
  243. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  244. data/spec/spec/matchers/be_close_spec.rb +39 -0
  245. data/spec/spec/matchers/be_spec.rb +248 -0
  246. data/spec/spec/matchers/change_spec.rb +329 -0
  247. data/spec/spec/matchers/description_generation_spec.rb +153 -0
  248. data/spec/spec/matchers/eql_spec.rb +28 -0
  249. data/spec/spec/matchers/equal_spec.rb +28 -0
  250. data/spec/spec/matchers/exist_spec.rb +57 -0
  251. data/spec/spec/matchers/handler_spec.rb +150 -0
  252. data/spec/spec/matchers/has_spec.rb +63 -0
  253. data/spec/spec/matchers/have_spec.rb +394 -0
  254. data/spec/spec/matchers/include_spec.rb +64 -0
  255. data/spec/spec/matchers/match_spec.rb +37 -0
  256. data/spec/spec/matchers/matcher_methods_spec.rb +78 -0
  257. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
  258. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  259. data/spec/spec/matchers/raise_error_spec.rb +315 -0
  260. data/spec/spec/matchers/respond_to_spec.rb +54 -0
  261. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  262. data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  263. data/spec/spec/matchers/throw_symbol_spec.rb +54 -0
  264. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  265. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  266. data/spec/spec/mocks/at_least_spec.rb +97 -0
  267. data/spec/spec/mocks/at_most_spec.rb +93 -0
  268. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  269. data/spec/spec/mocks/bug_report_10263_spec.rb +24 -0
  270. data/spec/spec/mocks/bug_report_11545_spec.rb +33 -0
  271. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  272. data/spec/spec/mocks/bug_report_496.rb +17 -0
  273. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  274. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  275. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  276. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  277. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +95 -0
  278. data/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
  279. data/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  280. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  281. data/spec/spec/mocks/mock_spec.rb +555 -0
  282. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  283. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  284. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  285. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  286. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  287. data/spec/spec/mocks/partial_mock_spec.rb +149 -0
  288. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  289. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +130 -0
  290. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  291. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  292. data/spec/spec/mocks/stub_spec.rb +188 -0
  293. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  294. data/spec/spec/package/bin_spec_spec.rb +22 -0
  295. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  296. data/spec/spec/runner/command_line_spec.rb +141 -0
  297. data/spec/spec/runner/drb_command_line_spec.rb +97 -0
  298. data/spec/spec/runner/empty_file.txt +0 -0
  299. data/spec/spec/runner/examples.txt +2 -0
  300. data/spec/spec/runner/failed.txt +3 -0
  301. data/spec/spec/runner/formatter/base_formatter_spec.rb +112 -0
  302. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  303. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  304. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  305. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
  306. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  307. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
  308. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +370 -0
  309. data/spec/spec/runner/formatter/html_formatter_spec.rb +61 -0
  310. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
  311. data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
  312. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +155 -0
  313. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  314. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
  315. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  316. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +135 -0
  317. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +600 -0
  318. data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
  319. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
  320. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +370 -0
  321. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  322. data/spec/spec/runner/heckler_spec.rb +13 -0
  323. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  324. data/spec/spec/runner/option_parser_spec.rb +421 -0
  325. data/spec/spec/runner/options_spec.rb +450 -0
  326. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  327. data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
  328. data/spec/spec/runner/output_one_time_spec.rb +16 -0
  329. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
  330. data/spec/spec/runner/reporter_spec.rb +238 -0
  331. data/spec/spec/runner/resources/a_bar.rb +0 -0
  332. data/spec/spec/runner/resources/a_foo.rb +0 -0
  333. data/spec/spec/runner/resources/a_spec.rb +1 -0
  334. data/spec/spec/runner/spec.opts +2 -0
  335. data/spec/spec/runner/spec_drb.opts +1 -0
  336. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
  337. data/spec/spec/runner/spec_parser_spec.rb +85 -0
  338. data/spec/spec/runner/spec_spaced.opts +2 -0
  339. data/spec/spec/runner_spec.rb +11 -0
  340. data/spec/spec/spec_classes.rb +133 -0
  341. data/spec/spec/story/builders.rb +46 -0
  342. data/spec/spec/story/extensions/main_spec.rb +161 -0
  343. data/spec/spec/story/extensions_spec.rb +14 -0
  344. data/spec/spec/story/given_scenario_spec.rb +27 -0
  345. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +90 -0
  346. data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
  347. data/spec/spec/story/runner/scenario_runner_spec.rb +214 -0
  348. data/spec/spec/story/runner/story_mediator_spec.rb +143 -0
  349. data/spec/spec/story/runner/story_parser_spec.rb +401 -0
  350. data/spec/spec/story/runner/story_runner_spec.rb +294 -0
  351. data/spec/spec/story/runner_spec.rb +93 -0
  352. data/spec/spec/story/scenario_spec.rb +18 -0
  353. data/spec/spec/story/step_group_spec.rb +157 -0
  354. data/spec/spec/story/step_mother_spec.rb +84 -0
  355. data/spec/spec/story/step_spec.rb +272 -0
  356. data/spec/spec/story/story_helper.rb +2 -0
  357. data/spec/spec/story/story_spec.rb +84 -0
  358. data/spec/spec/story/world_spec.rb +423 -0
  359. data/spec/spec.opts +6 -0
  360. data/spec/spec_helper.rb +77 -0
  361. data/stories/all.rb +5 -0
  362. data/stories/configuration/before_blocks.story +21 -0
  363. data/stories/configuration/stories.rb +7 -0
  364. data/stories/example_groups/autogenerated_docstrings +45 -0
  365. data/stories/example_groups/example_group_with_should_methods +17 -0
  366. data/stories/example_groups/nested_groups +17 -0
  367. data/stories/example_groups/output +25 -0
  368. data/stories/example_groups/stories.rb +7 -0
  369. data/stories/helper.rb +6 -0
  370. data/stories/interop/examples_and_tests_together +30 -0
  371. data/stories/interop/stories.rb +7 -0
  372. data/stories/interop/test_case_with_should_methods +17 -0
  373. data/stories/mock_framework_integration/stories.rb +7 -0
  374. data/stories/mock_framework_integration/use_flexmock.story +9 -0
  375. data/stories/pending_stories/README +3 -0
  376. data/stories/resources/helpers/cmdline.rb +9 -0
  377. data/stories/resources/helpers/story_helper.rb +16 -0
  378. data/stories/resources/matchers/smart_match.rb +37 -0
  379. data/stories/resources/spec/before_blocks_example.rb +32 -0
  380. data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
  381. data/stories/resources/spec/simple_spec.rb +8 -0
  382. data/stories/resources/spec/spec_with_flexmock.rb +18 -0
  383. data/stories/resources/steps/running_rspec.rb +50 -0
  384. data/stories/resources/stories/failing_story.rb +15 -0
  385. data/stories/resources/test/spec_and_test_together.rb +57 -0
  386. data/stories/resources/test/test_case_with_should_methods.rb +30 -0
  387. data/stories/stories/multiline_steps.story +23 -0
  388. data/stories/stories/steps/multiline_steps.rb +13 -0
  389. data/stories/stories/stories.rb +6 -0
  390. data/story_server/prototype/javascripts/builder.js +136 -0
  391. data/story_server/prototype/javascripts/controls.js +972 -0
  392. data/story_server/prototype/javascripts/dragdrop.js +976 -0
  393. data/story_server/prototype/javascripts/effects.js +1117 -0
  394. data/story_server/prototype/javascripts/prototype.js +4140 -0
  395. data/story_server/prototype/javascripts/rspec.js +149 -0
  396. data/story_server/prototype/javascripts/scriptaculous.js +58 -0
  397. data/story_server/prototype/javascripts/slider.js +276 -0
  398. data/story_server/prototype/javascripts/sound.js +55 -0
  399. data/story_server/prototype/javascripts/unittest.js +568 -0
  400. data/story_server/prototype/lib/server.rb +24 -0
  401. data/story_server/prototype/stories.html +176 -0
  402. data/story_server/prototype/stylesheets/rspec.css +136 -0
  403. data/story_server/prototype/stylesheets/test.css +90 -0
  404. metadata +495 -0
@@ -0,0 +1,329 @@
1
+ #Based on patch from Wilson Bilkovich
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
4
+ class SomethingExpected
5
+ attr_accessor :some_value
6
+ end
7
+
8
+ describe "should change(actual, message)" do
9
+ before(:each) do
10
+ @instance = SomethingExpected.new
11
+ @instance.some_value = 5
12
+ end
13
+
14
+ it "should pass when actual is modified by the block" do
15
+ lambda {@instance.some_value = 6}.should change(@instance, :some_value)
16
+ end
17
+
18
+ it "should fail when actual is not modified by the block" do
19
+ lambda do
20
+ lambda {}.should change(@instance, :some_value)
21
+ end.should fail_with("some_value should have changed, but is still 5")
22
+ end
23
+ end
24
+
25
+ describe "should_not change(actual, message)" do
26
+ before(:each) do
27
+ @instance = SomethingExpected.new
28
+ @instance.some_value = 5
29
+ end
30
+
31
+ it "should pass when actual is not modified by the block" do
32
+ lambda { }.should_not change(@instance, :some_value)
33
+ end
34
+
35
+ it "should fail when actual is not modified by the block" do
36
+ lambda do
37
+ lambda {@instance.some_value = 6}.should_not change(@instance, :some_value)
38
+ end.should fail_with("some_value should not have changed, but did change from 5 to 6")
39
+ end
40
+ end
41
+
42
+ describe "should change { block }" do
43
+ before(:each) do
44
+ @instance = SomethingExpected.new
45
+ @instance.some_value = 5
46
+ end
47
+
48
+ it "should pass when actual is modified by the block" do
49
+ lambda {@instance.some_value = 6}.should change { @instance.some_value }
50
+ end
51
+
52
+ it "should fail when actual is not modified by the block" do
53
+ lambda do
54
+ lambda {}.should change{ @instance.some_value }
55
+ end.should fail_with("result should have changed, but is still 5")
56
+ end
57
+
58
+ it "should warn if passed a block using do/end instead of {}" do
59
+ lambda do
60
+ lambda {}.should change do; end
61
+ end.should raise_error(Spec::Matchers::MatcherError, /block passed to should or should_not/)
62
+ end
63
+ end
64
+
65
+ describe "should_not change { block }" do
66
+ before(:each) do
67
+ @instance = SomethingExpected.new
68
+ @instance.some_value = 5
69
+ end
70
+
71
+ it "should pass when actual is modified by the block" do
72
+ lambda {}.should_not change{ @instance.some_value }
73
+ end
74
+
75
+ it "should fail when actual is not modified by the block" do
76
+ lambda do
77
+ lambda {@instance.some_value = 6}.should_not change { @instance.some_value }
78
+ end.should fail_with("result should not have changed, but did change from 5 to 6")
79
+ end
80
+
81
+ it "should warn if passed a block using do/end instead of {}" do
82
+ lambda do
83
+ lambda {}.should_not change do; end
84
+ end.should raise_error(Spec::Matchers::MatcherError, /block passed to should or should_not/)
85
+ end
86
+ end
87
+
88
+ describe "should change(actual, message).by(expected)" do
89
+ before(:each) do
90
+ @instance = SomethingExpected.new
91
+ @instance.some_value = 5
92
+ end
93
+
94
+ it "should pass when attribute is changed by expected amount" do
95
+ lambda { @instance.some_value += 1 }.should change(@instance, :some_value).by(1)
96
+ end
97
+
98
+ it "should fail when the attribute is changed by unexpected amount" do
99
+ lambda do
100
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by(1)
101
+ end.should fail_with("some_value should have been changed by 1, but was changed by 2")
102
+ end
103
+
104
+ it "should fail when the attribute is changed by unexpected amount in the opposite direction" do
105
+ lambda do
106
+ lambda { @instance.some_value -= 1 }.should change(@instance, :some_value).by(1)
107
+ end.should fail_with("some_value should have been changed by 1, but was changed by -1")
108
+ end
109
+ end
110
+
111
+ describe "should change{ block }.by(expected)" do
112
+ before(:each) do
113
+ @instance = SomethingExpected.new
114
+ @instance.some_value = 5
115
+ end
116
+
117
+ it "should pass when attribute is changed by expected amount" do
118
+ lambda { @instance.some_value += 1 }.should change{@instance.some_value}.by(1)
119
+ end
120
+
121
+ it "should fail when the attribute is changed by unexpected amount" do
122
+ lambda do
123
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by(1)
124
+ end.should fail_with("result should have been changed by 1, but was changed by 2")
125
+ end
126
+
127
+ it "should fail when the attribute is changed by unexpected amount in the opposite direction" do
128
+ lambda do
129
+ lambda { @instance.some_value -= 1 }.should change{@instance.some_value}.by(1)
130
+ end.should fail_with("result should have been changed by 1, but was changed by -1")
131
+ end
132
+ end
133
+
134
+ describe "should change(actual, message).by_at_least(expected)" do
135
+ before(:each) do
136
+ @instance = SomethingExpected.new
137
+ @instance.some_value = 5
138
+ end
139
+
140
+ it "should pass when attribute is changed by greater than the expected amount" do
141
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(1)
142
+ end
143
+
144
+ it "should pass when attribute is changed by the expected amount" do
145
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(2)
146
+ end
147
+
148
+ it "should fail when the attribute is changed by less than the expected amount" do
149
+ lambda do
150
+ lambda { @instance.some_value += 1 }.should change(@instance, :some_value).by_at_least(2)
151
+ end.should fail_with("some_value should have been changed by at least 2, but was changed by 1")
152
+ end
153
+
154
+ end
155
+
156
+ describe "should change{ block }.by_at_least(expected)" do
157
+ before(:each) do
158
+ @instance = SomethingExpected.new
159
+ @instance.some_value = 5
160
+ end
161
+
162
+ it "should pass when attribute is changed by greater than expected amount" do
163
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(1)
164
+ end
165
+
166
+ it "should pass when attribute is changed by the expected amount" do
167
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(2)
168
+ end
169
+
170
+ it "should fail when the attribute is changed by less than the unexpected amount" do
171
+ lambda do
172
+ lambda { @instance.some_value += 1 }.should change{@instance.some_value}.by_at_least(2)
173
+ end.should fail_with("result should have been changed by at least 2, but was changed by 1")
174
+ end
175
+ end
176
+
177
+
178
+ describe "should change(actual, message).by_at_most(expected)" do
179
+ before(:each) do
180
+ @instance = SomethingExpected.new
181
+ @instance.some_value = 5
182
+ end
183
+
184
+ it "should pass when attribute is changed by less than the expected amount" do
185
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(3)
186
+ end
187
+
188
+ it "should pass when attribute is changed by the expected amount" do
189
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(2)
190
+ end
191
+
192
+ it "should fail when the attribute is changed by greater than the expected amount" do
193
+ lambda do
194
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(1)
195
+ end.should fail_with("some_value should have been changed by at most 1, but was changed by 2")
196
+ end
197
+
198
+ end
199
+
200
+ describe "should change{ block }.by_at_most(expected)" do
201
+ before(:each) do
202
+ @instance = SomethingExpected.new
203
+ @instance.some_value = 5
204
+ end
205
+
206
+ it "should pass when attribute is changed by less than expected amount" do
207
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(3)
208
+ end
209
+
210
+ it "should pass when attribute is changed by the expected amount" do
211
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(2)
212
+ end
213
+
214
+ it "should fail when the attribute is changed by greater than the unexpected amount" do
215
+ lambda do
216
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(1)
217
+ end.should fail_with("result should have been changed by at most 1, but was changed by 2")
218
+ end
219
+ end
220
+
221
+ describe "should change(actual, message).from(old)" do
222
+ before(:each) do
223
+ @instance = SomethingExpected.new
224
+ @instance.some_value = 'string'
225
+ end
226
+
227
+ it "should pass when attribute is == to expected value before executing block" do
228
+ lambda { @instance.some_value = "astring" }.should change(@instance, :some_value).from("string")
229
+ end
230
+
231
+ it "should fail when attribute is not == to expected value before executing block" do
232
+ lambda do
233
+ lambda { @instance.some_value = "knot" }.should change(@instance, :some_value).from("cat")
234
+ end.should fail_with("some_value should have initially been \"cat\", but was \"string\"")
235
+ end
236
+ end
237
+
238
+ describe "should change{ block }.from(old)" do
239
+ before(:each) do
240
+ @instance = SomethingExpected.new
241
+ @instance.some_value = 'string'
242
+ end
243
+
244
+ it "should pass when attribute is == to expected value before executing block" do
245
+ lambda { @instance.some_value = "astring" }.should change{@instance.some_value}.from("string")
246
+ end
247
+
248
+ it "should fail when attribute is not == to expected value before executing block" do
249
+ lambda do
250
+ lambda { @instance.some_value = "knot" }.should change{@instance.some_value}.from("cat")
251
+ end.should fail_with("result should have initially been \"cat\", but was \"string\"")
252
+ end
253
+ end
254
+
255
+ describe "should change(actual, message).to(new)" do
256
+ before(:each) do
257
+ @instance = SomethingExpected.new
258
+ @instance.some_value = 'string'
259
+ end
260
+
261
+ it "should pass when attribute is == to expected value after executing block" do
262
+ lambda { @instance.some_value = "cat" }.should change(@instance, :some_value).to("cat")
263
+ end
264
+
265
+ it "should fail when attribute is not == to expected value after executing block" do
266
+ lambda do
267
+ lambda { @instance.some_value = "cat" }.should change(@instance, :some_value).from("string").to("dog")
268
+ end.should fail_with("some_value should have been changed to \"dog\", but is now \"cat\"")
269
+ end
270
+ end
271
+
272
+ describe "should change{ block }.to(new)" do
273
+ before(:each) do
274
+ @instance = SomethingExpected.new
275
+ @instance.some_value = 'string'
276
+ end
277
+
278
+ it "should pass when attribute is == to expected value after executing block" do
279
+ lambda { @instance.some_value = "cat" }.should change{@instance.some_value}.to("cat")
280
+ end
281
+
282
+ it "should fail when attribute is not == to expected value after executing block" do
283
+ lambda do
284
+ lambda { @instance.some_value = "cat" }.should change{@instance.some_value}.from("string").to("dog")
285
+ end.should fail_with("result should have been changed to \"dog\", but is now \"cat\"")
286
+ end
287
+ end
288
+
289
+ describe "should change(actual, message).from(old).to(new)" do
290
+ before(:each) do
291
+ @instance = SomethingExpected.new
292
+ @instance.some_value = 'string'
293
+ end
294
+
295
+ it "should pass when #to comes before #from" do
296
+ lambda { @instance.some_value = "cat" }.should change(@instance, :some_value).to("cat").from("string")
297
+ end
298
+
299
+ it "should pass when #from comes before #to" do
300
+ lambda { @instance.some_value = "cat" }.should change(@instance, :some_value).from("string").to("cat")
301
+ end
302
+ end
303
+
304
+ describe "should change{ block }.from(old).to(new)" do
305
+ before(:each) do
306
+ @instance = SomethingExpected.new
307
+ @instance.some_value = 'string'
308
+ end
309
+
310
+ it "should pass when #to comes before #from" do
311
+ lambda { @instance.some_value = "cat" }.should change{@instance.some_value}.to("cat").from("string")
312
+ end
313
+
314
+ it "should pass when #from comes before #to" do
315
+ lambda { @instance.some_value = "cat" }.should change{@instance.some_value}.from("string").to("cat")
316
+ end
317
+ end
318
+
319
+ describe Spec::Matchers::Change do
320
+ it "should work when the receiver has implemented #send" do
321
+ @instance = SomethingExpected.new
322
+ @instance.some_value = "string"
323
+ def @instance.send(*args); raise "DOH! Library developers shouldn't use #send!" end
324
+
325
+ lambda {
326
+ lambda { @instance.some_value = "cat" }.should change(@instance, :some_value)
327
+ }.should_not raise_error
328
+ end
329
+ end
@@ -0,0 +1,153 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe "Matchers should be able to generate their own descriptions" do
4
+ after(:each) do
5
+ Spec::Matchers.clear_generated_description
6
+ end
7
+
8
+ it "should == expected" do
9
+ "this".should == "this"
10
+ Spec::Matchers.generated_description.should == "should == \"this\""
11
+ end
12
+
13
+ it "should not == expected" do
14
+ "this".should_not == "that"
15
+ Spec::Matchers.generated_description.should == "should not == \"that\""
16
+ end
17
+
18
+ it "should be empty (arbitrary predicate)" do
19
+ [].should be_empty
20
+ Spec::Matchers.generated_description.should == "should be empty"
21
+ end
22
+
23
+ it "should not be empty (arbitrary predicate)" do
24
+ [1].should_not be_empty
25
+ Spec::Matchers.generated_description.should == "should not be empty"
26
+ end
27
+
28
+ it "should be true" do
29
+ true.should be_true
30
+ Spec::Matchers.generated_description.should == "should be true"
31
+ end
32
+
33
+ it "should be false" do
34
+ false.should be_false
35
+ Spec::Matchers.generated_description.should == "should be false"
36
+ end
37
+
38
+ it "should be nil" do
39
+ nil.should be_nil
40
+ Spec::Matchers.generated_description.should == "should be nil"
41
+ end
42
+
43
+ it "should be > n" do
44
+ 5.should be > 3
45
+ Spec::Matchers.generated_description.should == "should be > 3"
46
+ end
47
+
48
+ it "should be predicate arg1, arg2 and arg3" do
49
+ 5.0.should be_between(0,10)
50
+ Spec::Matchers.generated_description.should == "should be between 0 and 10"
51
+ end
52
+
53
+ it "should be_few_words predicate should be transformed to 'be few words'" do
54
+ 5.should be_kind_of(Fixnum)
55
+ Spec::Matchers.generated_description.should == "should be kind of Fixnum"
56
+ end
57
+
58
+ it "should preserve a proper prefix for be predicate" do
59
+ 5.should be_a_kind_of(Fixnum)
60
+ Spec::Matchers.generated_description.should == "should be a kind of Fixnum"
61
+ 5.should be_an_instance_of(Fixnum)
62
+ Spec::Matchers.generated_description.should == "should be an instance of Fixnum"
63
+ end
64
+
65
+ it "should equal" do
66
+ expected = "expected"
67
+ expected.should equal(expected)
68
+ Spec::Matchers.generated_description.should == "should equal \"expected\""
69
+ end
70
+
71
+ it "should_not equal" do
72
+ 5.should_not equal(37)
73
+ Spec::Matchers.generated_description.should == "should not equal 37"
74
+ end
75
+
76
+ it "should eql" do
77
+ "string".should eql("string")
78
+ Spec::Matchers.generated_description.should == "should eql \"string\""
79
+ end
80
+
81
+ it "should not eql" do
82
+ "a".should_not eql(:a)
83
+ Spec::Matchers.generated_description.should == "should not eql :a"
84
+ end
85
+
86
+ it "should have_key" do
87
+ {:a => "a"}.should have_key(:a)
88
+ Spec::Matchers.generated_description.should == "should have key :a"
89
+ end
90
+
91
+ it "should have n items" do
92
+ team.should have(3).players
93
+ Spec::Matchers.generated_description.should == "should have 3 players"
94
+ end
95
+
96
+ it "should have at least n items" do
97
+ team.should have_at_least(2).players
98
+ Spec::Matchers.generated_description.should == "should have at least 2 players"
99
+ end
100
+
101
+ it "should have at most n items" do
102
+ team.should have_at_most(4).players
103
+ Spec::Matchers.generated_description.should == "should have at most 4 players"
104
+ end
105
+
106
+ it "should include" do
107
+ [1,2,3].should include(3)
108
+ Spec::Matchers.generated_description.should == "should include 3"
109
+ end
110
+
111
+ it "should match" do
112
+ "this string".should match(/this string/)
113
+ Spec::Matchers.generated_description.should == "should match /this string/"
114
+ end
115
+
116
+ it "should raise_error" do
117
+ lambda { raise }.should raise_error
118
+ Spec::Matchers.generated_description.should == "should raise Exception"
119
+ end
120
+
121
+ it "should raise_error with type" do
122
+ lambda { raise }.should raise_error(RuntimeError)
123
+ Spec::Matchers.generated_description.should == "should raise RuntimeError"
124
+ end
125
+
126
+ it "should raise_error with type and message" do
127
+ lambda { raise "there was an error" }.should raise_error(RuntimeError, "there was an error")
128
+ Spec::Matchers.generated_description.should == "should raise RuntimeError with \"there was an error\""
129
+ end
130
+
131
+ it "should respond_to" do
132
+ [].should respond_to(:insert)
133
+ Spec::Matchers.generated_description.should == "should respond to #insert"
134
+ end
135
+
136
+ it "should throw symbol" do
137
+ lambda { throw :what_a_mess }.should throw_symbol
138
+ Spec::Matchers.generated_description.should == "should throw a Symbol"
139
+ end
140
+
141
+ it "should throw symbol (with named symbol)" do
142
+ lambda { throw :what_a_mess }.should throw_symbol(:what_a_mess)
143
+ Spec::Matchers.generated_description.should == "should throw :what_a_mess"
144
+ end
145
+
146
+ def team
147
+ Class.new do
148
+ def players
149
+ [1,2,3]
150
+ end
151
+ end.new
152
+ end
153
+ end