opal-rspec 0.6.2 → 0.7.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (710) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +5 -5
  3. data/.travis.yml +47 -19
  4. data/Appraisals +9 -0
  5. data/CHANGELOG.md +4 -6
  6. data/Gemfile +9 -9
  7. data/README.md +2 -2
  8. data/Rakefile +4 -182
  9. data/bin/console +14 -0
  10. data/{util/create_requires.rb → bin/generate_requires} +20 -10
  11. data/bin/opal +3 -0
  12. data/bin/opal-rspec +3 -0
  13. data/bin/setup +7 -0
  14. data/config.ru +13 -11
  15. data/example/Gemfile +5 -1
  16. data/exe/opal-rspec +78 -0
  17. data/gemfiles/.bundle/config +2 -0
  18. data/gemfiles/opal_0.11.gemfile +14 -0
  19. data/gemfiles/opal_master.gemfile +14 -0
  20. data/{opal → lib-opal}/opal-rspec.rb +0 -0
  21. data/lib-opal/opal/rspec.rb +5 -0
  22. data/{opal → lib-opal}/opal/rspec/async.rb +3 -2
  23. data/lib-opal/opal/rspec/async/core_ext.rb +23 -0
  24. data/lib-opal/opal/rspec/async/example.rb +187 -0
  25. data/{opal → lib-opal}/opal/rspec/async/example_group.rb +1 -1
  26. data/{opal → lib-opal}/opal/rspec/async/hooks.rb +4 -2
  27. data/lib-opal/opal/rspec/async/legacy.rb +49 -0
  28. data/lib-opal/opal/rspec/async/reporter.rb +17 -0
  29. data/lib-opal/opal/rspec/async/runner.rb +44 -0
  30. data/lib-opal/opal/rspec/autorun.rb +3 -0
  31. data/lib-opal/opal/rspec/browser.rb +13 -0
  32. data/lib-opal/opal/rspec/default_config.rb +12 -0
  33. data/{opal → lib-opal}/opal/rspec/fixes.rb +0 -0
  34. data/{opal/opal/rspec/fixes/opal/compatibility.rb → lib-opal/opal/rspec/fixes/opal.rb} +35 -0
  35. data/{opal → lib-opal}/opal/rspec/fixes/rspec.rb +0 -0
  36. data/{opal → lib-opal}/opal/rspec/fixes/rspec/caller_filter.rb +0 -0
  37. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core.rb +0 -0
  38. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/configuration.rb +9 -0
  39. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/example.rb +0 -0
  40. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters.rb +0 -0
  41. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +0 -0
  42. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +0 -0
  43. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +0 -0
  44. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +0 -0
  45. data/lib-opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +15 -0
  46. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/formatters/loader.rb +6 -0
  47. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/metadata.rb +0 -0
  48. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications.rb +0 -0
  49. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +0 -0
  50. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +0 -0
  51. data/lib-opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +21 -0
  52. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/ordering.rb +0 -0
  53. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/ordering/random.rb +0 -0
  54. data/{opal → lib-opal}/opal/rspec/fixes/rspec/core/warnings.rb +10 -1
  55. data/{opal → lib-opal}/opal/rspec/fixes/rspec/example_groups.rb +0 -0
  56. data/{opal → lib-opal}/opal/rspec/fixes/rspec/expectations.rb +0 -0
  57. data/{opal → lib-opal}/opal/rspec/fixes/rspec/expectations/fail_with.rb +0 -0
  58. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers.rb +0 -0
  59. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in.rb +0 -0
  60. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/all.rb +0 -0
  61. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +0 -0
  62. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/start_and_end_with.rb +0 -0
  63. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +0 -0
  64. data/{opal → lib-opal}/opal/rspec/fixes/rspec/matchers/pretty.rb +0 -0
  65. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks.rb +0 -0
  66. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/error_generator.rb +0 -0
  67. data/lib-opal/opal/rspec/fixes/rspec/mocks/space.rb +41 -0
  68. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/test_double.rb +0 -0
  69. data/{opal → lib-opal}/opal/rspec/fixes/rspec/mocks/verifying_double.rb +0 -0
  70. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support.rb +1 -0
  71. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/encoded_string.rb +0 -0
  72. data/lib-opal/opal/rspec/fixes/rspec/support/formatter_support.rb +34 -0
  73. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +0 -0
  74. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/spec.rb +0 -0
  75. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/spec/stderr_splitter.rb +0 -0
  76. data/{opal → lib-opal}/opal/rspec/fixes/rspec/support/warnings.rb +0 -2
  77. data/{opal → lib-opal}/opal/rspec/formatter/browser_formatter.rb +0 -0
  78. data/{opal → lib-opal}/opal/rspec/formatter/document_io.rb +0 -0
  79. data/{opal → lib-opal}/opal/rspec/formatter/element.rb +0 -0
  80. data/{opal → lib-opal}/opal/rspec/formatter/html_printer.rb +0 -0
  81. data/{opal → lib-opal}/opal/rspec/formatter/noop_flush_string_io.rb +2 -0
  82. data/{opal → lib-opal}/opal/rspec/pre_require_fixes.rb +1 -1
  83. data/{opal → lib-opal}/opal/rspec/requires.rb +5 -2
  84. data/lib-opal/opal/rspec/spec_opts.rb.erb +1 -0
  85. data/{opal → lib-opal}/opal/rspec/sprockets_runner.rb.erb +0 -0
  86. data/lib/opal/rspec.rb +37 -28
  87. data/lib/opal/rspec/cached_environment.rb +7 -4
  88. data/lib/opal/rspec/locator.rb +38 -0
  89. data/lib/opal/rspec/rake_task.rb +12 -130
  90. data/lib/opal/rspec/runner.rb +136 -0
  91. data/lib/opal/rspec/sprockets_environment.rb +5 -3
  92. data/lib/opal/rspec/version.rb +1 -1
  93. data/opal-rspec.gemspec +32 -20
  94. data/rspec-core/spec/files_to_exclude.txt +12 -0
  95. data/rspec-core/spec/filters.rb +211 -0
  96. data/rspec-core/spec/fixes/missing_constants.rb +34 -0
  97. data/{spec/rspec/core → rspec-core/spec/fixes}/sandboxing.rb +0 -0
  98. data/rspec-core/spec/fixes/shared_examples.rb +6 -0
  99. data/rspec-core/spec/requires.rb +41 -0
  100. data/{spec/rspec/expectations/spec_files_exclude.txt → rspec-expectations/spec/files_to_exclude.txt} +0 -0
  101. data/rspec-expectations/spec/filters.rb +188 -0
  102. data/{spec/rspec/expectations/fixes/not_compatible.rb → rspec-expectations/spec/fixes/missing_constants.rb} +4 -0
  103. data/rspec-expectations/spec/fixes/shared_examples.rb +15 -0
  104. data/rspec-expectations/spec/requires.rb +32 -0
  105. data/{spec/rspec/mocks/spec_files_exclude.txt → rspec-mocks/spec/files_to_exclude.txt} +0 -0
  106. data/rspec-mocks/spec/filters.rb +98 -0
  107. data/rspec-mocks/spec/fixes/shared_examples.rb +6 -0
  108. data/rspec-mocks/spec/requires.rb +22 -0
  109. data/{spec/rspec/support/spec_files_exclude.txt → rspec-support/spec/files_to_exclude.txt} +0 -0
  110. data/rspec-support/spec/filters.rb +17 -0
  111. data/{spec/rspec/mocks → rspec-support/spec}/fixes/missing_constants.rb +0 -0
  112. data/{spec/rspec/core → rspec-support/spec}/fixes/shared_examples.rb +1 -0
  113. data/{spec/rspec/core/require_specs.rb → rspec-support/spec/requires.rb} +14 -8
  114. data/spec-opal-passing/spec_helper.rb +3 -0
  115. data/spec-opal-passing/tautology_spec.rb +21 -0
  116. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/example_group_spec.rb +0 -0
  117. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/failed_example_notification_spec.rb +0 -0
  118. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/hooks_spec.rb +0 -0
  119. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/memoized_helpers_spec.rb +3 -3
  120. data/{spec/rspec/core/opal_alternates/rspec → spec-opal-rspec}/core/metadata_spec.rb +0 -0
  121. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/be_instance_of_spec.rb +0 -0
  122. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/dsl_spec.rb +0 -0
  123. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/expectation_target_spec.rb +0 -0
  124. data/{spec/rspec/expectations/opal_alternates → spec-opal-rspec/expectations}/yield_spec.rb +0 -0
  125. data/{spec/opal → spec-opal}/after_hooks_spec.rb +0 -0
  126. data/{spec/opal → spec-opal}/around_hooks_spec.rb +0 -89
  127. data/{spec/opal → spec-opal}/async_spec.rb +1 -53
  128. data/{spec/opal → spec-opal}/before_hooks_spec.rb +0 -0
  129. data/{spec/mri/unit/opal/rspec/opal/browser_formatter_spec.rb → spec-opal/browser-formatter/opal_browser_formatter_spec.rb} +1 -1
  130. data/{spec/opal → spec-opal}/example_spec.rb +0 -0
  131. data/spec-opal/legacy_async_spec.rb +189 -0
  132. data/{spec/opal → spec-opal}/matchers_spec.rb +0 -0
  133. data/{spec/opal → spec-opal}/mock_spec.rb +0 -0
  134. data/{spec → spec-opal}/other/color_on_by_default_spec.rb +0 -0
  135. data/{spec → spec-opal}/other/dummy_spec.rb +0 -0
  136. data/{spec → spec-opal}/other/formatter_dependency.rb +0 -0
  137. data/{spec → spec-opal}/other/ignored_spec.opal +0 -0
  138. data/{spec → spec-opal}/other/test_formatter.rb +0 -0
  139. data/{spec/opal → spec-opal}/should_syntax_spec.rb +0 -0
  140. data/{spec/opal → spec-opal}/skip_pending_spec.rb +0 -0
  141. data/{spec/opal → spec-opal}/spec_helper.rb +4 -0
  142. data/{spec/mri/integration/rack → spec-opal}/sprockets_runner_js_errors.rb.erb +5 -7
  143. data/{spec/opal → spec-opal}/subject_spec.rb +0 -0
  144. data/{rspec-core/spec/rspec/core/resources/a_bar.rb → stubs/cgi/escape.rb} +0 -0
  145. data/{rspec-core/spec/rspec/core/resources/a_foo.rb → stubs/cgi/util.rb} +0 -0
  146. data/{rspec-core/spec/rspec/core/resources/acceptance/bar.rb → stubs/diff/lcs.rb} +0 -0
  147. data/{rspec-core/spec/rspec/core/resources/acceptance/foo_spec.rb → stubs/diff/lcs/assertions.rb} +0 -0
  148. data/{rspec-core/spec/support/fake_minitest/minitest.rb → stubs/diff/lcs/block.rb} +0 -0
  149. data/stubs/diff/lcs/callbacks.rb +0 -0
  150. data/stubs/diff/lcs/change.rb +0 -0
  151. data/stubs/diff/lcs/hunk.rb +0 -0
  152. data/stubs/diff/lcs/internals.rb +0 -0
  153. data/stubs/drb/drb.rb +0 -0
  154. data/stubs/minitest.rb +0 -0
  155. data/stubs/minitest/assertions.rb +0 -0
  156. data/stubs/minitest/unit.rb +0 -0
  157. data/stubs/mutex_m.rb +0 -0
  158. data/stubs/optparse.rb +0 -0
  159. data/stubs/prettyprint.rb +0 -0
  160. data/stubs/rubygems/bundler_version_finder.rb +0 -0
  161. data/stubs/rubygems/util.rb +0 -0
  162. data/stubs/shellwords.rb +0 -0
  163. data/stubs/socket.rb +0 -0
  164. data/stubs/tempfile.rb +0 -0
  165. data/stubs/test/unit/assertions.rb +0 -0
  166. data/stubs/uri.rb +0 -0
  167. data/tasks/building.rake +50 -0
  168. data/tasks/testing.rake +73 -0
  169. metadata +203 -651
  170. data/lib/opal/rspec/post_rack_locator.rb +0 -20
  171. data/lib/opal/rspec/pre_rack_locator.rb +0 -32
  172. data/opal/opal/rspec.rb +0 -23
  173. data/opal/opal/rspec/async/async_example.rb +0 -96
  174. data/opal/opal/rspec/async/legacy.rb +0 -49
  175. data/opal/opal/rspec/async/reporter.rb +0 -9
  176. data/opal/opal/rspec/fixes/opal.rb +0 -1
  177. data/opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +0 -10
  178. data/opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +0 -25
  179. data/opal/opal/rspec/fixes/rspec/mocks/space.rb +0 -37
  180. data/opal/opal/rspec/formatter/opal_closed_tty_io.rb +0 -27
  181. data/opal/opal/rspec/runner.rb +0 -91
  182. data/opal/opal/rspec/spec_opts.rb.erb +0 -27
  183. data/rspec-core/benchmarks/call_v_yield.rb +0 -81
  184. data/rspec-core/benchmarks/check_inclusion.rb +0 -125
  185. data/rspec-core/benchmarks/define_method_v_attr_reader_v_def.rb +0 -81
  186. data/rspec-core/benchmarks/eager_vs_lazy_metadata.rb +0 -126
  187. data/rspec-core/benchmarks/eager_vs_lazy_metadata/define_examples.rb +0 -22
  188. data/rspec-core/benchmarks/filter_object.rb +0 -35
  189. data/rspec-core/benchmarks/index_v_take_while.rb +0 -47
  190. data/rspec-core/benchmarks/map_then_flatten_vs_flat_map_benchmarks.rb +0 -94
  191. data/rspec-core/benchmarks/require_relative_v_require.rb +0 -75
  192. data/rspec-core/benchmarks/respond_to_v_defined.rb +0 -72
  193. data/rspec-core/benchmarks/several_regexps_v_one_big_one.rb +0 -86
  194. data/rspec-core/benchmarks/sort_by_v_shuffle.rb +0 -83
  195. data/rspec-core/benchmarks/to_proc_v_not_to_proc.rb +0 -539
  196. data/rspec-core/features/step_definitions/additional_cli_steps.rb +0 -126
  197. data/rspec-core/features/step_definitions/core_standalone_steps.rb +0 -12
  198. data/rspec-core/features/support/env.rb +0 -21
  199. data/rspec-core/features/support/require_expect_syntax_in_aruba_specs.rb +0 -29
  200. data/rspec-core/features/support/rubinius.rb +0 -6
  201. data/rspec-core/lib/rspec/autorun.rb +0 -2
  202. data/rspec-core/lib/rspec/core.rb +0 -169
  203. data/rspec-core/lib/rspec/core/backport_random.rb +0 -336
  204. data/rspec-core/lib/rspec/core/backtrace_formatter.rb +0 -66
  205. data/rspec-core/lib/rspec/core/configuration.rb +0 -1440
  206. data/rspec-core/lib/rspec/core/configuration_options.rb +0 -173
  207. data/rspec-core/lib/rspec/core/drb.rb +0 -111
  208. data/rspec-core/lib/rspec/core/dsl.rb +0 -93
  209. data/rspec-core/lib/rspec/core/example.rb +0 -502
  210. data/rspec-core/lib/rspec/core/example_group.rb +0 -606
  211. data/rspec-core/lib/rspec/core/filter_manager.rb +0 -259
  212. data/rspec-core/lib/rspec/core/flat_map.rb +0 -18
  213. data/rspec-core/lib/rspec/core/formatters.rb +0 -240
  214. data/rspec-core/lib/rspec/core/formatters/base_formatter.rb +0 -67
  215. data/rspec-core/lib/rspec/core/formatters/base_text_formatter.rb +0 -76
  216. data/rspec-core/lib/rspec/core/formatters/console_codes.rb +0 -64
  217. data/rspec-core/lib/rspec/core/formatters/deprecation_formatter.rb +0 -222
  218. data/rspec-core/lib/rspec/core/formatters/documentation_formatter.rb +0 -68
  219. data/rspec-core/lib/rspec/core/formatters/helpers.rb +0 -87
  220. data/rspec-core/lib/rspec/core/formatters/html_formatter.rb +0 -149
  221. data/rspec-core/lib/rspec/core/formatters/html_printer.rb +0 -403
  222. data/rspec-core/lib/rspec/core/formatters/json_formatter.rb +0 -94
  223. data/rspec-core/lib/rspec/core/formatters/profile_formatter.rb +0 -65
  224. data/rspec-core/lib/rspec/core/formatters/progress_formatter.rb +0 -28
  225. data/rspec-core/lib/rspec/core/formatters/protocol.rb +0 -163
  226. data/rspec-core/lib/rspec/core/formatters/snippet_extractor.rb +0 -104
  227. data/rspec-core/lib/rspec/core/hooks.rb +0 -591
  228. data/rspec-core/lib/rspec/core/memoized_helpers.rb +0 -472
  229. data/rspec-core/lib/rspec/core/metadata.rb +0 -437
  230. data/rspec-core/lib/rspec/core/metadata_filter.rb +0 -95
  231. data/rspec-core/lib/rspec/core/minitest_assertions_adapter.rb +0 -28
  232. data/rspec-core/lib/rspec/core/mocking_adapters/flexmock.rb +0 -31
  233. data/rspec-core/lib/rspec/core/mocking_adapters/mocha.rb +0 -57
  234. data/rspec-core/lib/rspec/core/mocking_adapters/null.rb +0 -14
  235. data/rspec-core/lib/rspec/core/mocking_adapters/rr.rb +0 -31
  236. data/rspec-core/lib/rspec/core/mocking_adapters/rspec.rb +0 -32
  237. data/rspec-core/lib/rspec/core/notifications.rb +0 -542
  238. data/rspec-core/lib/rspec/core/option_parser.rb +0 -222
  239. data/rspec-core/lib/rspec/core/ordering.rb +0 -155
  240. data/rspec-core/lib/rspec/core/pending.rb +0 -163
  241. data/rspec-core/lib/rspec/core/project_initializer.rb +0 -48
  242. data/rspec-core/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -89
  243. data/rspec-core/lib/rspec/core/rake_task.rb +0 -187
  244. data/rspec-core/lib/rspec/core/reporter.rb +0 -149
  245. data/rspec-core/lib/rspec/core/ruby_project.rb +0 -45
  246. data/rspec-core/lib/rspec/core/runner.rb +0 -158
  247. data/rspec-core/lib/rspec/core/shared_context.rb +0 -55
  248. data/rspec-core/lib/rspec/core/shared_example_group.rb +0 -182
  249. data/rspec-core/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  250. data/rspec-core/lib/rspec/core/version.rb +0 -9
  251. data/rspec-core/lib/rspec/core/warnings.rb +0 -40
  252. data/rspec-core/lib/rspec/core/world.rb +0 -183
  253. data/rspec-core/spec/command_line/order_spec.rb +0 -213
  254. data/rspec-core/spec/rspec/core/backtrace_formatter_spec.rb +0 -306
  255. data/rspec-core/spec/rspec/core/configuration_options_spec.rb +0 -425
  256. data/rspec-core/spec/rspec/core/configuration_spec.rb +0 -1963
  257. data/rspec-core/spec/rspec/core/drb_spec.rb +0 -278
  258. data/rspec-core/spec/rspec/core/dsl_spec.rb +0 -85
  259. data/rspec-core/spec/rspec/core/example_execution_result_spec.rb +0 -142
  260. data/rspec-core/spec/rspec/core/example_group_constants_spec.rb +0 -16
  261. data/rspec-core/spec/rspec/core/example_group_spec.rb +0 -1621
  262. data/rspec-core/spec/rspec/core/example_spec.rb +0 -662
  263. data/rspec-core/spec/rspec/core/failed_example_notification_spec.rb +0 -25
  264. data/rspec-core/spec/rspec/core/filter_manager_spec.rb +0 -299
  265. data/rspec-core/spec/rspec/core/formatters/base_text_formatter_spec.rb +0 -182
  266. data/rspec-core/spec/rspec/core/formatters/console_codes_spec.rb +0 -65
  267. data/rspec-core/spec/rspec/core/formatters/deprecation_formatter_spec.rb +0 -225
  268. data/rspec-core/spec/rspec/core/formatters/documentation_formatter_spec.rb +0 -111
  269. data/rspec-core/spec/rspec/core/formatters/helpers_spec.rb +0 -104
  270. data/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb +0 -111
  271. data/rspec-core/spec/rspec/core/formatters/json_formatter_spec.rb +0 -183
  272. data/rspec-core/spec/rspec/core/formatters/profile_formatter_spec.rb +0 -99
  273. data/rspec-core/spec/rspec/core/formatters/progress_formatter_spec.rb +0 -55
  274. data/rspec-core/spec/rspec/core/formatters/snippet_extractor_spec.rb +0 -26
  275. data/rspec-core/spec/rspec/core/formatters_spec.rb +0 -160
  276. data/rspec-core/spec/rspec/core/hooks_filtering_spec.rb +0 -227
  277. data/rspec-core/spec/rspec/core/hooks_spec.rb +0 -447
  278. data/rspec-core/spec/rspec/core/memoized_helpers_spec.rb +0 -537
  279. data/rspec-core/spec/rspec/core/metadata_filter_spec.rb +0 -181
  280. data/rspec-core/spec/rspec/core/metadata_spec.rb +0 -642
  281. data/rspec-core/spec/rspec/core/notifications_spec.rb +0 -92
  282. data/rspec-core/spec/rspec/core/option_parser_spec.rb +0 -270
  283. data/rspec-core/spec/rspec/core/ordering_spec.rb +0 -102
  284. data/rspec-core/spec/rspec/core/pending_example_spec.rb +0 -221
  285. data/rspec-core/spec/rspec/core/pending_spec.rb +0 -8
  286. data/rspec-core/spec/rspec/core/project_initializer_spec.rb +0 -123
  287. data/rspec-core/spec/rspec/core/rake_task_spec.rb +0 -351
  288. data/rspec-core/spec/rspec/core/random_spec.rb +0 -47
  289. data/rspec-core/spec/rspec/core/reporter_spec.rb +0 -198
  290. data/rspec-core/spec/rspec/core/resources/a_spec.rb +0 -1
  291. data/rspec-core/spec/rspec/core/resources/custom_example_group_runner.rb +0 -14
  292. data/rspec-core/spec/rspec/core/resources/formatter_specs.rb +0 -58
  293. data/rspec-core/spec/rspec/core/resources/utf8_encoded.rb +0 -9
  294. data/rspec-core/spec/rspec/core/rspec_matchers_spec.rb +0 -45
  295. data/rspec-core/spec/rspec/core/ruby_project_spec.rb +0 -26
  296. data/rspec-core/spec/rspec/core/runner_spec.rb +0 -309
  297. data/rspec-core/spec/rspec/core/shared_context_spec.rb +0 -102
  298. data/rspec-core/spec/rspec/core/shared_example_group_spec.rb +0 -268
  299. data/rspec-core/spec/rspec/core/warnings_spec.rb +0 -72
  300. data/rspec-core/spec/rspec/core/world_spec.rb +0 -142
  301. data/rspec-core/spec/rspec/core_spec.rb +0 -103
  302. data/rspec-core/spec/spec_helper.rb +0 -89
  303. data/rspec-core/spec/support/config_options_helper.rb +0 -13
  304. data/rspec-core/spec/support/fake_minitest/minitest/minitest_assertions.rb +0 -4
  305. data/rspec-core/spec/support/fake_minitest/test/unit/assertions.rb +0 -6
  306. data/rspec-core/spec/support/formatter_support.rb +0 -263
  307. data/rspec-core/spec/support/helper_methods.rb +0 -26
  308. data/rspec-core/spec/support/isolated_home_directory.rb +0 -16
  309. data/rspec-core/spec/support/matchers.rb +0 -103
  310. data/rspec-core/spec/support/mathn_integration_support.rb +0 -12
  311. data/rspec-core/spec/support/sandboxing.rb +0 -50
  312. data/rspec-core/spec/support/shared_example_groups.rb +0 -43
  313. data/rspec-core/spec/support/spec_files.rb +0 -44
  314. data/rspec-expectations/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +0 -253
  315. data/rspec-expectations/benchmarks/autoload_v_require.rb +0 -25
  316. data/rspec-expectations/benchmarks/cloning_matchers.rb +0 -19
  317. data/rspec-expectations/benchmarks/default_messages_as_methods_v_blocks.rb +0 -27
  318. data/rspec-expectations/benchmarks/example_spec.rb +0 -9
  319. data/rspec-expectations/benchmarks/include_v_superclass.rb +0 -39
  320. data/rspec-expectations/benchmarks/match_array/failing_with_distinct_items.rb +0 -147
  321. data/rspec-expectations/benchmarks/match_array/failing_with_duplicate_items.rb +0 -122
  322. data/rspec-expectations/benchmarks/match_array/passing_with_distinct_items.rb +0 -154
  323. data/rspec-expectations/benchmarks/match_array/passing_with_duplicate_items.rb +0 -132
  324. data/rspec-expectations/benchmarks/match_array/rubyprof/passing_with_distinct_items.rb +0 -9
  325. data/rspec-expectations/benchmarks/matcher_dsl_vs_classes.rb +0 -180
  326. data/rspec-expectations/benchmarks/method_to_proc.rb +0 -72
  327. data/rspec-expectations/benchmarks/set_vs_array_include.rb +0 -68
  328. data/rspec-expectations/features/step_definitions/additional_cli_steps.rb +0 -22
  329. data/rspec-expectations/features/support/disallow_certain_apis.rb +0 -34
  330. data/rspec-expectations/features/support/env.rb +0 -21
  331. data/rspec-expectations/features/support/rubinius.rb +0 -6
  332. data/rspec-expectations/lib/rspec/expectations.rb +0 -68
  333. data/rspec-expectations/lib/rspec/expectations/configuration.rb +0 -147
  334. data/rspec-expectations/lib/rspec/expectations/expectation_target.rb +0 -119
  335. data/rspec-expectations/lib/rspec/expectations/fail_with.rb +0 -34
  336. data/rspec-expectations/lib/rspec/expectations/handler.rb +0 -167
  337. data/rspec-expectations/lib/rspec/expectations/minitest_integration.rb +0 -17
  338. data/rspec-expectations/lib/rspec/expectations/syntax.rb +0 -132
  339. data/rspec-expectations/lib/rspec/expectations/version.rb +0 -8
  340. data/rspec-expectations/lib/rspec/matchers.rb +0 -967
  341. data/rspec-expectations/lib/rspec/matchers/aliased_matcher.rb +0 -116
  342. data/rspec-expectations/lib/rspec/matchers/built_in.rb +0 -52
  343. data/rspec-expectations/lib/rspec/matchers/built_in/all.rb +0 -85
  344. data/rspec-expectations/lib/rspec/matchers/built_in/base_matcher.rb +0 -132
  345. data/rspec-expectations/lib/rspec/matchers/built_in/be.rb +0 -277
  346. data/rspec-expectations/lib/rspec/matchers/built_in/be_between.rb +0 -77
  347. data/rspec-expectations/lib/rspec/matchers/built_in/be_instance_of.rb +0 -22
  348. data/rspec-expectations/lib/rspec/matchers/built_in/be_kind_of.rb +0 -16
  349. data/rspec-expectations/lib/rspec/matchers/built_in/be_within.rb +0 -72
  350. data/rspec-expectations/lib/rspec/matchers/built_in/change.rb +0 -337
  351. data/rspec-expectations/lib/rspec/matchers/built_in/compound.rb +0 -258
  352. data/rspec-expectations/lib/rspec/matchers/built_in/contain_exactly.rb +0 -249
  353. data/rspec-expectations/lib/rspec/matchers/built_in/cover.rb +0 -24
  354. data/rspec-expectations/lib/rspec/matchers/built_in/eq.rb +0 -75
  355. data/rspec-expectations/lib/rspec/matchers/built_in/eql.rb +0 -34
  356. data/rspec-expectations/lib/rspec/matchers/built_in/equal.rb +0 -81
  357. data/rspec-expectations/lib/rspec/matchers/built_in/exist.rb +0 -86
  358. data/rspec-expectations/lib/rspec/matchers/built_in/has.rb +0 -101
  359. data/rspec-expectations/lib/rspec/matchers/built_in/have_attributes.rb +0 -84
  360. data/rspec-expectations/lib/rspec/matchers/built_in/include.rb +0 -105
  361. data/rspec-expectations/lib/rspec/matchers/built_in/match.rb +0 -29
  362. data/rspec-expectations/lib/rspec/matchers/built_in/operators.rb +0 -119
  363. data/rspec-expectations/lib/rspec/matchers/built_in/output.rb +0 -152
  364. data/rspec-expectations/lib/rspec/matchers/built_in/raise_error.rb +0 -174
  365. data/rspec-expectations/lib/rspec/matchers/built_in/respond_to.rb +0 -91
  366. data/rspec-expectations/lib/rspec/matchers/built_in/satisfy.rb +0 -39
  367. data/rspec-expectations/lib/rspec/matchers/built_in/start_and_end_with.rb +0 -82
  368. data/rspec-expectations/lib/rspec/matchers/built_in/throw_symbol.rb +0 -132
  369. data/rspec-expectations/lib/rspec/matchers/built_in/yield.rb +0 -420
  370. data/rspec-expectations/lib/rspec/matchers/composable.rb +0 -183
  371. data/rspec-expectations/lib/rspec/matchers/dsl.rb +0 -391
  372. data/rspec-expectations/lib/rspec/matchers/generated_descriptions.rb +0 -42
  373. data/rspec-expectations/lib/rspec/matchers/matcher_delegator.rb +0 -33
  374. data/rspec-expectations/lib/rspec/matchers/matcher_protocol.rb +0 -99
  375. data/rspec-expectations/lib/rspec/matchers/pretty.rb +0 -77
  376. data/rspec-expectations/spec/rspec/expectations/configuration_spec.rb +0 -226
  377. data/rspec-expectations/spec/rspec/expectations/expectation_target_spec.rb +0 -147
  378. data/rspec-expectations/spec/rspec/expectations/extensions/kernel_spec.rb +0 -69
  379. data/rspec-expectations/spec/rspec/expectations/fail_with_spec.rb +0 -73
  380. data/rspec-expectations/spec/rspec/expectations/handler_spec.rb +0 -200
  381. data/rspec-expectations/spec/rspec/expectations/minitest_integration_spec.rb +0 -25
  382. data/rspec-expectations/spec/rspec/expectations/syntax_spec.rb +0 -93
  383. data/rspec-expectations/spec/rspec/expectations_spec.rb +0 -15
  384. data/rspec-expectations/spec/rspec/matchers/aliased_matcher_spec.rb +0 -113
  385. data/rspec-expectations/spec/rspec/matchers/aliases_spec.rb +0 -455
  386. data/rspec-expectations/spec/rspec/matchers/built_in/all_spec.rb +0 -212
  387. data/rspec-expectations/spec/rspec/matchers/built_in/base_matcher_spec.rb +0 -140
  388. data/rspec-expectations/spec/rspec/matchers/built_in/be_between_spec.rb +0 -157
  389. data/rspec-expectations/spec/rspec/matchers/built_in/be_instance_of_spec.rb +0 -61
  390. data/rspec-expectations/spec/rspec/matchers/built_in/be_kind_of_spec.rb +0 -39
  391. data/rspec-expectations/spec/rspec/matchers/built_in/be_spec.rb +0 -685
  392. data/rspec-expectations/spec/rspec/matchers/built_in/be_within_spec.rb +0 -139
  393. data/rspec-expectations/spec/rspec/matchers/built_in/change_spec.rb +0 -829
  394. data/rspec-expectations/spec/rspec/matchers/built_in/compound_spec.rb +0 -537
  395. data/rspec-expectations/spec/rspec/matchers/built_in/contain_exactly_spec.rb +0 -556
  396. data/rspec-expectations/spec/rspec/matchers/built_in/cover_spec.rb +0 -67
  397. data/rspec-expectations/spec/rspec/matchers/built_in/eq_spec.rb +0 -176
  398. data/rspec-expectations/spec/rspec/matchers/built_in/eql_spec.rb +0 -39
  399. data/rspec-expectations/spec/rspec/matchers/built_in/equal_spec.rb +0 -130
  400. data/rspec-expectations/spec/rspec/matchers/built_in/exist_spec.rb +0 -139
  401. data/rspec-expectations/spec/rspec/matchers/built_in/has_spec.rb +0 -179
  402. data/rspec-expectations/spec/rspec/matchers/built_in/have_attributes_spec.rb +0 -177
  403. data/rspec-expectations/spec/rspec/matchers/built_in/include_spec.rb +0 -587
  404. data/rspec-expectations/spec/rspec/matchers/built_in/match_spec.rb +0 -100
  405. data/rspec-expectations/spec/rspec/matchers/built_in/operators_spec.rb +0 -250
  406. data/rspec-expectations/spec/rspec/matchers/built_in/output_spec.rb +0 -168
  407. data/rspec-expectations/spec/rspec/matchers/built_in/raise_error_spec.rb +0 -446
  408. data/rspec-expectations/spec/rspec/matchers/built_in/respond_to_spec.rb +0 -290
  409. data/rspec-expectations/spec/rspec/matchers/built_in/satisfy_spec.rb +0 -42
  410. data/rspec-expectations/spec/rspec/matchers/built_in/start_and_end_with_spec.rb +0 -347
  411. data/rspec-expectations/spec/rspec/matchers/built_in/throw_symbol_spec.rb +0 -133
  412. data/rspec-expectations/spec/rspec/matchers/built_in/yield_spec.rb +0 -643
  413. data/rspec-expectations/spec/rspec/matchers/composable_spec.rb +0 -77
  414. data/rspec-expectations/spec/rspec/matchers/define_negated_matcher_spec.rb +0 -199
  415. data/rspec-expectations/spec/rspec/matchers/description_generation_spec.rb +0 -189
  416. data/rspec-expectations/spec/rspec/matchers/dsl_spec.rb +0 -1036
  417. data/rspec-expectations/spec/rspec/matchers/legacy_spec.rb +0 -104
  418. data/rspec-expectations/spec/rspec/matchers_spec.rb +0 -108
  419. data/rspec-expectations/spec/spec_helper.rb +0 -94
  420. data/rspec-expectations/spec/support/matchers.rb +0 -54
  421. data/rspec-expectations/spec/support/shared_examples.rb +0 -101
  422. data/rspec-mocks/benchmarks/double_creation.rb +0 -66
  423. data/rspec-mocks/benchmarks/each_value_v_values_each.rb +0 -58
  424. data/rspec-mocks/benchmarks/find_original_method_early.rb +0 -64
  425. data/rspec-mocks/benchmarks/method_defined_at_any_visibility.rb +0 -101
  426. data/rspec-mocks/benchmarks/thread_safety.rb +0 -24
  427. data/rspec-mocks/benchmarks/transfer_nested_constants.rb +0 -77
  428. data/rspec-mocks/features/step_definitions/additional_cli_steps.rb +0 -21
  429. data/rspec-mocks/features/support/disallow_certain_apis.rb +0 -24
  430. data/rspec-mocks/features/support/env.rb +0 -22
  431. data/rspec-mocks/features/support/rubinius.rb +0 -6
  432. data/rspec-mocks/lib/rspec/mocks.rb +0 -126
  433. data/rspec-mocks/lib/rspec/mocks/any_instance.rb +0 -10
  434. data/rspec-mocks/lib/rspec/mocks/any_instance/chain.rb +0 -109
  435. data/rspec-mocks/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -35
  436. data/rspec-mocks/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -48
  437. data/rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb +0 -85
  438. data/rspec-mocks/lib/rspec/mocks/any_instance/proxy.rb +0 -116
  439. data/rspec-mocks/lib/rspec/mocks/any_instance/recorder.rb +0 -267
  440. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain.rb +0 -45
  441. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -27
  442. data/rspec-mocks/lib/rspec/mocks/argument_list_matcher.rb +0 -72
  443. data/rspec-mocks/lib/rspec/mocks/argument_matchers.rb +0 -282
  444. data/rspec-mocks/lib/rspec/mocks/configuration.rb +0 -157
  445. data/rspec-mocks/lib/rspec/mocks/error_generator.rb +0 -253
  446. data/rspec-mocks/lib/rspec/mocks/example_methods.rb +0 -379
  447. data/rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb +0 -135
  448. data/rspec-mocks/lib/rspec/mocks/marshal_extension.rb +0 -41
  449. data/rspec-mocks/lib/rspec/mocks/matchers/expectation_customization.rb +0 -20
  450. data/rspec-mocks/lib/rspec/mocks/matchers/have_received.rb +0 -121
  451. data/rspec-mocks/lib/rspec/mocks/matchers/receive.rb +0 -106
  452. data/rspec-mocks/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -66
  453. data/rspec-mocks/lib/rspec/mocks/matchers/receive_messages.rb +0 -71
  454. data/rspec-mocks/lib/rspec/mocks/message_chain.rb +0 -91
  455. data/rspec-mocks/lib/rspec/mocks/message_expectation.rb +0 -694
  456. data/rspec-mocks/lib/rspec/mocks/method_double.rb +0 -260
  457. data/rspec-mocks/lib/rspec/mocks/method_reference.rb +0 -155
  458. data/rspec-mocks/lib/rspec/mocks/mutate_const.rb +0 -324
  459. data/rspec-mocks/lib/rspec/mocks/object_reference.rb +0 -91
  460. data/rspec-mocks/lib/rspec/mocks/order_group.rb +0 -81
  461. data/rspec-mocks/lib/rspec/mocks/proxy.rb +0 -431
  462. data/rspec-mocks/lib/rspec/mocks/space.rb +0 -221
  463. data/rspec-mocks/lib/rspec/mocks/standalone.rb +0 -3
  464. data/rspec-mocks/lib/rspec/mocks/syntax.rb +0 -329
  465. data/rspec-mocks/lib/rspec/mocks/targets.rb +0 -97
  466. data/rspec-mocks/lib/rspec/mocks/test_double.rb +0 -135
  467. data/rspec-mocks/lib/rspec/mocks/verifying_double.rb +0 -127
  468. data/rspec-mocks/lib/rspec/mocks/verifying_message_expecation.rb +0 -62
  469. data/rspec-mocks/lib/rspec/mocks/verifying_proxy.rb +0 -171
  470. data/rspec-mocks/lib/rspec/mocks/version.rb +0 -9
  471. data/rspec-mocks/spec/rspec/mocks/and_call_original_spec.rb +0 -267
  472. data/rspec-mocks/spec/rspec/mocks/and_return_spec.rb +0 -21
  473. data/rspec-mocks/spec/rspec/mocks/and_wrap_original_spec.rb +0 -63
  474. data/rspec-mocks/spec/rspec/mocks/and_yield_spec.rb +0 -161
  475. data/rspec-mocks/spec/rspec/mocks/any_instance/message_chains_spec.rb +0 -39
  476. data/rspec-mocks/spec/rspec/mocks/any_instance_spec.rb +0 -1242
  477. data/rspec-mocks/spec/rspec/mocks/argument_matchers_spec.rb +0 -336
  478. data/rspec-mocks/spec/rspec/mocks/array_including_matcher_spec.rb +0 -39
  479. data/rspec-mocks/spec/rspec/mocks/at_least_spec.rb +0 -147
  480. data/rspec-mocks/spec/rspec/mocks/at_most_spec.rb +0 -113
  481. data/rspec-mocks/spec/rspec/mocks/before_all_spec.rb +0 -75
  482. data/rspec-mocks/spec/rspec/mocks/block_return_value_spec.rb +0 -68
  483. data/rspec-mocks/spec/rspec/mocks/combining_implementation_instructions_spec.rb +0 -196
  484. data/rspec-mocks/spec/rspec/mocks/configuration_spec.rb +0 -175
  485. data/rspec-mocks/spec/rspec/mocks/double_spec.rb +0 -830
  486. data/rspec-mocks/spec/rspec/mocks/example_methods_spec.rb +0 -11
  487. data/rspec-mocks/spec/rspec/mocks/expiration_spec.rb +0 -90
  488. data/rspec-mocks/spec/rspec/mocks/hash_excluding_matcher_spec.rb +0 -65
  489. data/rspec-mocks/spec/rspec/mocks/hash_including_matcher_spec.rb +0 -92
  490. data/rspec-mocks/spec/rspec/mocks/instance_method_stasher_spec.rb +0 -72
  491. data/rspec-mocks/spec/rspec/mocks/marshal_extension_spec.rb +0 -67
  492. data/rspec-mocks/spec/rspec/mocks/matchers/have_received_spec.rb +0 -513
  493. data/rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +0 -227
  494. data/rspec-mocks/spec/rspec/mocks/matchers/receive_messages_spec.rb +0 -148
  495. data/rspec-mocks/spec/rspec/mocks/matchers/receive_spec.rb +0 -525
  496. data/rspec-mocks/spec/rspec/mocks/methods_spec.rb +0 -24
  497. data/rspec-mocks/spec/rspec/mocks/mock_expectation_error_spec.rb +0 -20
  498. data/rspec-mocks/spec/rspec/mocks/mock_ordering_spec.rb +0 -112
  499. data/rspec-mocks/spec/rspec/mocks/multiple_return_value_spec.rb +0 -130
  500. data/rspec-mocks/spec/rspec/mocks/mutate_const_spec.rb +0 -561
  501. data/rspec-mocks/spec/rspec/mocks/nil_expectation_warning_spec.rb +0 -52
  502. data/rspec-mocks/spec/rspec/mocks/null_object_double_spec.rb +0 -135
  503. data/rspec-mocks/spec/rspec/mocks/once_counts_spec.rb +0 -50
  504. data/rspec-mocks/spec/rspec/mocks/order_group_spec.rb +0 -26
  505. data/rspec-mocks/spec/rspec/mocks/partial_double_spec.rb +0 -379
  506. data/rspec-mocks/spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb +0 -83
  507. data/rspec-mocks/spec/rspec/mocks/precise_counts_spec.rb +0 -66
  508. data/rspec-mocks/spec/rspec/mocks/serialization_spec.rb +0 -89
  509. data/rspec-mocks/spec/rspec/mocks/should_syntax_spec.rb +0 -539
  510. data/rspec-mocks/spec/rspec/mocks/space_spec.rb +0 -242
  511. data/rspec-mocks/spec/rspec/mocks/spy_spec.rb +0 -127
  512. data/rspec-mocks/spec/rspec/mocks/stash_spec.rb +0 -43
  513. data/rspec-mocks/spec/rspec/mocks/stub_chain_spec.rb +0 -166
  514. data/rspec-mocks/spec/rspec/mocks/stub_implementation_spec.rb +0 -98
  515. data/rspec-mocks/spec/rspec/mocks/stub_spec.rb +0 -520
  516. data/rspec-mocks/spec/rspec/mocks/stubbed_message_expectations_spec.rb +0 -56
  517. data/rspec-mocks/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +0 -99
  518. data/rspec-mocks/spec/rspec/mocks/syntax_spec.rb +0 -7
  519. data/rspec-mocks/spec/rspec/mocks/test_double_spec.rb +0 -53
  520. data/rspec-mocks/spec/rspec/mocks/thrice_counts_spec.rb +0 -72
  521. data/rspec-mocks/spec/rspec/mocks/to_ary_spec.rb +0 -52
  522. data/rspec-mocks/spec/rspec/mocks/twice_counts_spec.rb +0 -64
  523. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb +0 -118
  524. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb +0 -58
  525. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb +0 -54
  526. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb +0 -81
  527. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb +0 -195
  528. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb +0 -57
  529. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb +0 -129
  530. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/object_double_spec.rb +0 -68
  531. data/rspec-mocks/spec/rspec/mocks_spec.rb +0 -199
  532. data/rspec-mocks/spec/spec_helper.rb +0 -131
  533. data/rspec-mocks/spec/support/before_all_shared_example_group.rb +0 -16
  534. data/rspec-mocks/spec/support/doubled_classes.rb +0 -74
  535. data/rspec-mocks/spec/support/matchers.rb +0 -15
  536. data/rspec-support/benchmarks/caller.rb +0 -81
  537. data/rspec-support/lib/rspec/support.rb +0 -76
  538. data/rspec-support/lib/rspec/support/caller_filter.rb +0 -63
  539. data/rspec-support/lib/rspec/support/differ.rb +0 -214
  540. data/rspec-support/lib/rspec/support/directory_maker.rb +0 -61
  541. data/rspec-support/lib/rspec/support/encoded_string.rb +0 -69
  542. data/rspec-support/lib/rspec/support/fuzzy_matcher.rb +0 -48
  543. data/rspec-support/lib/rspec/support/hunk_generator.rb +0 -47
  544. data/rspec-support/lib/rspec/support/matcher_definition.rb +0 -31
  545. data/rspec-support/lib/rspec/support/method_signature_verifier.rb +0 -272
  546. data/rspec-support/lib/rspec/support/os.rb +0 -18
  547. data/rspec-support/lib/rspec/support/recursive_const_methods.rb +0 -76
  548. data/rspec-support/lib/rspec/support/ruby_features.rb +0 -45
  549. data/rspec-support/lib/rspec/support/spec.rb +0 -72
  550. data/rspec-support/lib/rspec/support/spec/deprecation_helpers.rb +0 -60
  551. data/rspec-support/lib/rspec/support/spec/formatting_support.rb +0 -9
  552. data/rspec-support/lib/rspec/support/spec/in_sub_process.rb +0 -43
  553. data/rspec-support/lib/rspec/support/spec/prevent_load_time_warnings.rb +0 -44
  554. data/rspec-support/lib/rspec/support/spec/shell_out.rb +0 -69
  555. data/rspec-support/lib/rspec/support/spec/stderr_splitter.rb +0 -52
  556. data/rspec-support/lib/rspec/support/spec/with_isolated_directory.rb +0 -9
  557. data/rspec-support/lib/rspec/support/spec/with_isolated_stderr.rb +0 -13
  558. data/rspec-support/lib/rspec/support/version.rb +0 -7
  559. data/rspec-support/lib/rspec/support/version_checker.rb +0 -53
  560. data/rspec-support/lib/rspec/support/warnings.rb +0 -39
  561. data/rspec-support/spec/rspec/support/caller_filter_spec.rb +0 -66
  562. data/rspec-support/spec/rspec/support/differ_spec.rb +0 -322
  563. data/rspec-support/spec/rspec/support/directory_maker_spec.rb +0 -58
  564. data/rspec-support/spec/rspec/support/encoded_string_spec.rb +0 -86
  565. data/rspec-support/spec/rspec/support/fuzzy_matcher_spec.rb +0 -179
  566. data/rspec-support/spec/rspec/support/method_signature_verifier_spec.rb +0 -357
  567. data/rspec-support/spec/rspec/support/os_spec.rb +0 -36
  568. data/rspec-support/spec/rspec/support/recursive_const_methods_spec.rb +0 -49
  569. data/rspec-support/spec/rspec/support/spec/in_sub_process_spec.rb +0 -36
  570. data/rspec-support/spec/rspec/support/spec/prevent_load_time_warnings_spec.rb +0 -10
  571. data/rspec-support/spec/rspec/support/spec/shell_out_spec.rb +0 -44
  572. data/rspec-support/spec/rspec/support/spec/stderr_splitter_spec.rb +0 -60
  573. data/rspec-support/spec/rspec/support/spec/with_isolated_std_err_spec.rb +0 -21
  574. data/rspec-support/spec/rspec/support/version_checker_spec.rb +0 -29
  575. data/rspec-support/spec/rspec/support/warnings_spec.rb +0 -66
  576. data/rspec-support/spec/rspec/support_spec.rb +0 -119
  577. data/rspec-support/spec/spec_helper.rb +0 -2
  578. data/rspec/lib/rspec.rb +0 -3
  579. data/rspec/lib/rspec/version.rb +0 -5
  580. data/spec/mri/integration/browser_spec.rb +0 -21
  581. data/spec/mri/integration/spec_opts_spec.rb +0 -81
  582. data/spec/mri/spec_helper.rb +0 -2
  583. data/spec/mri/support/capybara.rb +0 -14
  584. data/spec/mri/unit/opal/rspec/browser_formatter_spec.rb +0 -26
  585. data/spec/mri/unit/opal/rspec/cached_environment_spec.rb +0 -85
  586. data/spec/mri/unit/opal/rspec/rack/config.ru +0 -12
  587. data/spec/mri/unit/opal/rspec/rake_task_spec.rb +0 -320
  588. data/spec/mri/unit/opal/rspec/sprockets_environment_spec.rb +0 -55
  589. data/spec/mri/unit/opal/rspec/temp_dir_helper.rb +0 -19
  590. data/spec/opal/expected_failures.txt +0 -40
  591. data/spec/rspec/core/config.rb +0 -5
  592. data/spec/rspec/core/config.ru +0 -4
  593. data/spec/rspec/core/core_spec_loader.rb +0 -46
  594. data/spec/rspec/core/filter/core/async/example_group.txt +0 -13
  595. data/spec/rspec/core/filter/core/async/hooks.rb +0 -11
  596. data/spec/rspec/core/filter/core/async/memoized_helpers.txt +0 -3
  597. data/spec/rspec/core/filter/core/async/metadata.rb +0 -4
  598. data/spec/rspec/core/filter/core/bugs/filter_manager.txt +0 -4
  599. data/spec/rspec/core/filter/core/bugs/formatters.txt +0 -4
  600. data/spec/rspec/core/filter/core/bugs/memoized_helpers.rb +0 -5
  601. data/spec/rspec/core/filter/core/bugs/metadata.txt +0 -5
  602. data/spec/rspec/core/filter/core/bugs/sandbox/subject_issue_test.rb +0 -328
  603. data/spec/rspec/core/filter/core/bugs/warnings_deprecations.txt +0 -3
  604. data/spec/rspec/core/filter/core/unsupported/core.txt +0 -5
  605. data/spec/rspec/core/filter/core/unsupported/example.txt +0 -7
  606. data/spec/rspec/core/filter/core/unsupported/example_group.txt +0 -13
  607. data/spec/rspec/core/filter/core/unsupported/filter_manager.txt +0 -7
  608. data/spec/rspec/core/filter/core/unsupported/formatters.txt +0 -27
  609. data/spec/rspec/core/filter/core/unsupported/hooks.txt +0 -2
  610. data/spec/rspec/core/filter/core/unsupported/memoized_helpers.txt +0 -6
  611. data/spec/rspec/core/filter/core/unsupported/metadata.txt +0 -14
  612. data/spec/rspec/core/filter/core/unsupported/notifications.txt +0 -8
  613. data/spec/rspec/core/filter/core/unsupported/world.txt +0 -3
  614. data/spec/rspec/core/fixes/missing_constants.rb +0 -20
  615. data/spec/rspec/core/spec_files_exclude.txt +0 -41
  616. data/spec/rspec/expectations/config.rb +0 -21
  617. data/spec/rspec/expectations/config.ru +0 -4
  618. data/spec/rspec/expectations/expectation_spec_loader.rb +0 -110
  619. data/spec/rspec/expectations/filter/bugs/aliased_matcher.txt +0 -2
  620. data/spec/rspec/expectations/filter/bugs/base_matcher.txt +0 -2
  621. data/spec/rspec/expectations/filter/bugs/be_spec.txt +0 -2
  622. data/spec/rspec/expectations/filter/bugs/configuration.txt +0 -5
  623. data/spec/rspec/expectations/filter/bugs/contain_exactly.rb +0 -8
  624. data/spec/rspec/expectations/filter/bugs/define_negated_matcher.rb +0 -8
  625. data/spec/rspec/expectations/filter/bugs/dsl.rb +0 -15
  626. data/spec/rspec/expectations/filter/bugs/equal.txt +0 -3
  627. data/spec/rspec/expectations/filter/bugs/expectation_target.rb +0 -4
  628. data/spec/rspec/expectations/filter/bugs/expectations.rb +0 -4
  629. data/spec/rspec/expectations/filter/bugs/operators.txt +0 -2
  630. data/spec/rspec/expectations/filter/bugs/raise_error.txt +0 -2
  631. data/spec/rspec/expectations/filter/bugs/respond_to.rb +0 -7
  632. data/spec/rspec/expectations/filter/bugs/sandbox/undef.rb +0 -20
  633. data/spec/rspec/expectations/filter/unsupported/aliases.txt +0 -5
  634. data/spec/rspec/expectations/filter/unsupported/be.txt +0 -2
  635. data/spec/rspec/expectations/filter/unsupported/be_instance_of.txt +0 -3
  636. data/spec/rspec/expectations/filter/unsupported/change.txt +0 -2
  637. data/spec/rspec/expectations/filter/unsupported/configuration.txt +0 -2
  638. data/spec/rspec/expectations/filter/unsupported/contain_exactly.txt +0 -2
  639. data/spec/rspec/expectations/filter/unsupported/description_generation.txt +0 -6
  640. data/spec/rspec/expectations/filter/unsupported/dsl.rb +0 -10
  641. data/spec/rspec/expectations/filter/unsupported/eq.txt +0 -10
  642. data/spec/rspec/expectations/filter/unsupported/equal.txt +0 -3
  643. data/spec/rspec/expectations/filter/unsupported/expectation_target.txt +0 -2
  644. data/spec/rspec/expectations/filter/unsupported/expectations.txt +0 -8
  645. data/spec/rspec/expectations/filter/unsupported/has.txt +0 -2
  646. data/spec/rspec/expectations/filter/unsupported/include.txt +0 -3
  647. data/spec/rspec/expectations/filter/unsupported/match.txt +0 -2
  648. data/spec/rspec/expectations/filter/unsupported/matchers.txt +0 -11
  649. data/spec/rspec/expectations/filter/unsupported/output.txt +0 -14
  650. data/spec/rspec/expectations/filter/unsupported/raise_error.txt +0 -3
  651. data/spec/rspec/expectations/filter/unsupported/syntax.txt +0 -3
  652. data/spec/rspec/expectations/filter/unsupported/yield.txt +0 -2
  653. data/spec/rspec/expectations/fixes/example_patches.rb +0 -15
  654. data/spec/rspec/expectations/fixes/missing_constants.rb +0 -12
  655. data/spec/rspec/expectations/require_specs.rb +0 -15
  656. data/spec/rspec/expectations/shared_examples.rb +0 -47
  657. data/spec/rspec/expectations/spec_helper_opal.rb +0 -13
  658. data/spec/rspec/filter_processor.rb +0 -93
  659. data/spec/rspec/mocks/config.ru +0 -4
  660. data/spec/rspec/mocks/filter/bugs/and_call_original.rb +0 -11
  661. data/spec/rspec/mocks/filter/bugs/and_wrap_original.txt +0 -2
  662. data/spec/rspec/mocks/filter/bugs/and_yield.rb +0 -4
  663. data/spec/rspec/mocks/filter/bugs/any_instance.rb +0 -18
  664. data/spec/rspec/mocks/filter/bugs/configuration.txt +0 -2
  665. data/spec/rspec/mocks/filter/bugs/expiration.txt +0 -2
  666. data/spec/rspec/mocks/filter/bugs/instance_method_stasher.txt +0 -2
  667. data/spec/rspec/mocks/filter/bugs/mocks.txt +0 -6
  668. data/spec/rspec/mocks/filter/bugs/mutate_const.txt +0 -2
  669. data/spec/rspec/mocks/filter/bugs/partial_double.rb +0 -7
  670. data/spec/rspec/mocks/filter/bugs/receive.rb +0 -7
  671. data/spec/rspec/mocks/filter/bugs/should_syntax.txt +0 -5
  672. data/spec/rspec/mocks/filter/bugs/space.txt +0 -2
  673. data/spec/rspec/mocks/filter/bugs/spy.txt +0 -5
  674. data/spec/rspec/mocks/filter/bugs/stub_implementation.rb +0 -5
  675. data/spec/rspec/mocks/filter/unsupported/and_call_original.rb +0 -7
  676. data/spec/rspec/mocks/filter/unsupported/and_return.rb +0 -4
  677. data/spec/rspec/mocks/filter/unsupported/any_instance.rb +0 -6
  678. data/spec/rspec/mocks/filter/unsupported/argument_matchers.rb +0 -7
  679. data/spec/rspec/mocks/filter/unsupported/combining_implementation_instructions.rb +0 -4
  680. data/spec/rspec/mocks/filter/unsupported/double.rb +0 -13
  681. data/spec/rspec/mocks/filter/unsupported/have_received.txt +0 -2
  682. data/spec/rspec/mocks/filter/unsupported/instance_double_with_class_loaded.rb +0 -10
  683. data/spec/rspec/mocks/filter/unsupported/mocks.rb +0 -8
  684. data/spec/rspec/mocks/filter/unsupported/nil_expectation_warning.rb +0 -4
  685. data/spec/rspec/mocks/filter/unsupported/partial_double.rb +0 -4
  686. data/spec/rspec/mocks/filter/unsupported/receive.txt +0 -13
  687. data/spec/rspec/mocks/filter/unsupported/receive_messages.txt +0 -2
  688. data/spec/rspec/mocks/filter/unsupported/should_syntax.txt +0 -1
  689. data/spec/rspec/mocks/filter/unsupported/space.rb +0 -7
  690. data/spec/rspec/mocks/fixes/doubled_classes.rb +0 -76
  691. data/spec/rspec/mocks/mocks_spec_loader.rb +0 -91
  692. data/spec/rspec/mocks/require_specs.rb +0 -14
  693. data/spec/rspec/mocks/spec_helper_opal.rb +0 -131
  694. data/spec/rspec/opal_rspec_spec_loader.rb +0 -371
  695. data/spec/rspec/shared/opal/fixes/deprecation_helpers.rb +0 -31
  696. data/spec/rspec/shared/opal/fixes/rspec_helpers.rb +0 -6
  697. data/spec/rspec/shared/opal/separator_formatter.rb +0 -14
  698. data/spec/rspec/support/config.rb +0 -5
  699. data/spec/rspec/support/config.ru +0 -4
  700. data/spec/rspec/support/filter/bugs/recursive_const_methods.txt +0 -3
  701. data/spec/rspec/support/filter/bugs/sandbox/basic_object.rb +0 -30
  702. data/spec/rspec/support/filter/bugs/stderr_splitter_spec.txt +0 -2
  703. data/spec/rspec/support/filter/bugs/support.txt +0 -2
  704. data/spec/rspec/support/filter/unsupported/fuzzy_matcher.rb +0 -4
  705. data/spec/rspec/support/filter/unsupported/support.rb +0 -4
  706. data/spec/rspec/support/filter/unsupported/warnings.txt +0 -6
  707. data/spec/rspec/support/fixes/missing_constants.rb +0 -3
  708. data/spec/rspec/support/require_specs.rb +0 -14
  709. data/spec/rspec/support/spec_helper.rb +0 -27
  710. data/spec/rspec/support/support_spec_loader.rb +0 -38
@@ -1,16 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- RSpec.describe "::RSpec::Core::ExampleGroup" do
5
- context "does not cause problems when users reference a top level constant of the same name" do
6
- file_in_outer_group = File
7
- example { expect(File).to eq ::File }
8
- example { expect(file_in_outer_group).to be(::File) }
9
-
10
- describe "File" do
11
- file_in_inner_group = File
12
- example { expect(File).to eq ::File }
13
- example { expect(file_in_inner_group).to be(::File) }
14
- end
15
- end
16
- end
@@ -1,1621 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- module RSpec::Core
5
- RSpec.describe ExampleGroup do
6
- it_behaves_like "metadata hash builder" do
7
- def metadata_hash(*args)
8
- group = ExampleGroup.describe('example description', *args)
9
- group.metadata
10
- end
11
- end
12
-
13
- context "when RSpec.configuration.format_docstrings is set to a block" do
14
- it "formats the description with that block" do
15
- RSpec.configuration.format_docstrings { |s| s.upcase }
16
- group = ExampleGroup.describe(' an example ')
17
- expect(group.description).to eq(' AN EXAMPLE ')
18
- end
19
- end
20
-
21
- it 'does not treat the first argument as a metadata key even if it is a symbol' do
22
- group = ExampleGroup.describe(:symbol)
23
- expect(group.metadata).not_to include(:symbol)
24
- end
25
-
26
- it 'treats the first argument as part of the description when it is a symbol' do
27
- group = ExampleGroup.describe(:symbol)
28
- expect(group.description).to eq("symbol")
29
- end
30
-
31
- describe "constant naming" do
32
- around do |ex|
33
- before_constants = RSpec::ExampleGroups.constants
34
- ex.run
35
- after_constants = RSpec::ExampleGroups.constants
36
-
37
- (after_constants - before_constants).each do |name|
38
- RSpec::ExampleGroups.send(:remove_const, name)
39
- end
40
- end
41
-
42
- if RUBY_VERSION == "1.9.2"
43
- RSpec::Matchers.define :have_class_const do |class_name|
44
- match do |group|
45
- class_name.gsub!('::','_::')
46
- class_name << '_'
47
- group.name == "RSpec::ExampleGroups::#{class_name}" &&
48
- group == class_name.split('::').inject(RSpec::ExampleGroups) do |mod, name|
49
- mod.const_get(name)
50
- end
51
- end
52
- end
53
- else
54
- RSpec::Matchers.define :have_class_const do |class_name, _|
55
- match do |group|
56
- group.name == "RSpec::ExampleGroups::#{class_name}" &&
57
- group == class_name.split('::').inject(RSpec::ExampleGroups) do |mod, name|
58
- mod.const_get(name)
59
- end
60
- end
61
- end
62
- end
63
-
64
- it 'gives groups friendly human readable class names' do
65
- stub_const("MyGem::Klass", Class.new)
66
- parent = ExampleGroup.describe(MyGem::Klass)
67
- expect(parent).to have_class_const("MyGemKlass")
68
- end
69
-
70
- it 'nests constants to match the group nesting' do
71
- grandparent = ExampleGroup.describe("The grandparent")
72
- parent = grandparent.describe("the parent")
73
- child = parent.describe("the child")
74
-
75
- expect(parent).to have_class_const("TheGrandparent::TheParent")
76
- expect(child).to have_class_const("TheGrandparent::TheParent::TheChild")
77
- end
78
-
79
- it 'removes non-ascii characters from the const name since some rubies barf on that' do
80
- group = ExampleGroup.describe("A chinese character: 们")
81
- expect(group).to have_class_const("AChineseCharacter")
82
- end
83
-
84
- it 'prefixes the const name with "Nested" if needed to make a valid const' do
85
- expect {
86
- ExampleGroup.const_set("1B", Object.new)
87
- }.to raise_error(NameError)
88
-
89
- group = ExampleGroup.describe("1B")
90
- expect(group).to have_class_const("Nested1B")
91
- end
92
-
93
- it 'does not warn when defining a Config example group (since RbConfig triggers warnings when Config is referenced)' do
94
- expect { ExampleGroup.describe("Config") }.not_to output.to_stderr
95
- end
96
-
97
- it 'ignores top level constants that have the same name' do
98
- parent = RSpec.describe("Some Parent Group")
99
- child = parent.describe("Hash")
100
- # This would be `SomeParentGroup::Hash_2` if we didn't ignore the top level `Hash`
101
- expect(child).to have_class_const("SomeParentGroup::Hash")
102
- end
103
-
104
- it 'disambiguates name collisions by appending a number', :unless => RUBY_VERSION == '1.9.2' do
105
- groups = 10.times.map { ExampleGroup.describe("Collision") }
106
- expect(groups[0]).to have_class_const("Collision")
107
- expect(groups[1]).to have_class_const("Collision_2")
108
- expect(groups[8]).to have_class_const("Collision_9")
109
-
110
- if RUBY_VERSION.to_f > 1.8 && !(defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx')
111
- # on 1.8.7, rbx "Collision_9".next => "Collisioo_0"
112
- expect(groups[9]).to have_class_const("Collision_10")
113
- end
114
- end
115
-
116
- it 'identifies unnamed groups as "Anonymous"' do
117
- # Wrap the anonymous group is a uniquely named one,
118
- # so the presence of another anonymous group in our
119
- # test suite doesn't cause an unexpected number
120
- # to be appended.
121
- group = ExampleGroup.describe("name of unnamed group")
122
- subgroup = group.describe
123
- expect(subgroup).to have_class_const("NameOfUnnamedGroup::Anonymous")
124
- end
125
-
126
- it 'assigns the const before evaling the group so error messages include the name' do
127
- expect {
128
- ExampleGroup.describe("Calling an undefined method") { foo }
129
- }.to raise_error(/ExampleGroups::CallingAnUndefinedMethod/)
130
- end
131
-
132
- it 'does not have problems with example groups named "Core"', :unless => RUBY_VERSION == '1.9.2' do
133
- ExampleGroup.describe("Core")
134
- expect(defined?(::RSpec::ExampleGroups::Core)).to be_truthy
135
-
136
- # The original bug was triggered when a group was defined AFTER one named `Core`,
137
- # due to it not using the fully qualified `::RSpec::Core::ExampleGroup` constant.
138
- group = ExampleGroup.describe("Another group")
139
- expect(group).to have_class_const("AnotherGroup")
140
- end
141
-
142
- it 'does not have problems with example groups named "RSpec"', :unless => RUBY_VERSION == '1.9.2' do
143
- ExampleGroup.describe("RSpec")
144
- expect(defined?(::RSpec::ExampleGroups::RSpec)).to be_truthy
145
-
146
- # The original bug was triggered when a group was defined AFTER one named `RSpec`,
147
- # due to it not using the fully qualified `::RSpec::Core::ExampleGroup` constant.
148
- group = ExampleGroup.describe("Yet Another group")
149
- expect(group).to have_class_const("YetAnotherGroup")
150
- end
151
- end
152
-
153
- describe "ordering" do
154
- context "when tagged with `:order => :defined`" do
155
- it 'orders the subgroups and examples in defined order regardless of global order' do
156
- RSpec.configuration.order = :random
157
-
158
- run_order = []
159
- group = ExampleGroup.describe "outer", :order => :defined do
160
- context "subgroup 1" do
161
- example { run_order << :g1_e1 }
162
- example { run_order << :g1_e2 }
163
- end
164
-
165
- context "subgroup 2" do
166
- example { run_order << :g2_e1 }
167
- example { run_order << :g2_e2 }
168
- end
169
- end
170
-
171
- group.run
172
- expect(run_order).to eq([:g1_e1, :g1_e2, :g2_e1, :g2_e2])
173
- end
174
- end
175
-
176
- context "when tagged with an unrecognized ordering" do
177
- let(:run_order) { [] }
178
- let(:definition_line) { __LINE__ + 4 }
179
- let(:group) do
180
- order = self.run_order
181
-
182
- ExampleGroup.describe "group", :order => :unrecognized do
183
- example { order << :ex_1 }
184
- example { order << :ex_2 }
185
- end
186
- end
187
-
188
- before do
189
- RSpec.configuration.register_ordering(:global, &:reverse)
190
- allow(group).to receive(:warn)
191
- end
192
-
193
- it 'falls back to the global ordering' do
194
- group.run
195
- expect(run_order).to eq([:ex_2, :ex_1])
196
- end
197
-
198
- it 'prints a warning so users are notified of their mistake' do
199
- warning = nil
200
- allow(group).to receive(:warn) { |msg| warning = msg }
201
-
202
- group.run
203
-
204
- expect(warning).to match(/unrecognized/)
205
- expect(warning).to match(/#{File.basename __FILE__}:#{definition_line}/)
206
- end
207
- end
208
-
209
- context "when tagged with a custom ordering" do
210
- def ascending_numbers
211
- lambda { |g| Integer(g.description[/\d+/]) }
212
- end
213
-
214
- it 'uses the custom orderings' do
215
- RSpec.configure do |c|
216
- c.register_ordering :custom do |items|
217
- items.sort_by(&ascending_numbers)
218
- end
219
- end
220
-
221
- run_order = []
222
- group = ExampleGroup.describe "outer", :order => :custom do
223
- example("e2") { run_order << :e2 }
224
- example("e1") { run_order << :e1 }
225
-
226
- context "subgroup 2" do
227
- example("ex 3") { run_order << :g2_e3 }
228
- example("ex 1") { run_order << :g2_e1 }
229
- example("ex 2") { run_order << :g2_e2 }
230
- end
231
-
232
- context "subgroup 1" do
233
- example("ex 2") { run_order << :g1_e2 }
234
- example("ex 1") { run_order << :g1_e1 }
235
- example("ex 3") { run_order << :g1_e3 }
236
- end
237
-
238
- context "subgroup 3" do
239
- example("ex 2") { run_order << :g3_e2 }
240
- example("ex 3") { run_order << :g3_e3 }
241
- example("ex 1") { run_order << :g3_e1 }
242
- end
243
- end
244
-
245
- group.run
246
-
247
- expect(run_order).to eq([
248
- :e1, :e2,
249
- :g1_e1, :g1_e2, :g1_e3,
250
- :g2_e1, :g2_e2, :g2_e3,
251
- :g3_e1, :g3_e2, :g3_e3
252
- ])
253
- end
254
- end
255
- end
256
-
257
- describe "top level group" do
258
- it "runs its children" do
259
- examples_run = []
260
- group = ExampleGroup.describe("parent") do
261
- describe("child") do
262
- it "does something" do |ex|
263
- examples_run << ex
264
- end
265
- end
266
- end
267
-
268
- group.run
269
- expect(examples_run.count).to eq(1)
270
- end
271
-
272
- context "with a failure in the top level group" do
273
- it "runs its children " do
274
- examples_run = []
275
- group = ExampleGroup.describe("parent") do
276
- it "fails" do |ex|
277
- examples_run << ex
278
- raise "fail"
279
- end
280
- describe("child") do
281
- it "does something" do |ex|
282
- examples_run << ex
283
- end
284
- end
285
- end
286
-
287
- group.run
288
- expect(examples_run.count).to eq(2)
289
- end
290
- end
291
-
292
- describe "descendants" do
293
- it "returns self + all descendants" do
294
- group = ExampleGroup.describe("parent") do
295
- describe("child") do
296
- describe("grandchild 1") {}
297
- describe("grandchild 2") {}
298
- end
299
- end
300
- expect(group.descendants.size).to eq(4)
301
- end
302
- end
303
- end
304
-
305
- describe "child" do
306
- it "is known by parent" do
307
- parent = ExampleGroup.describe
308
- child = parent.describe
309
- expect(parent.children).to eq([child])
310
- end
311
-
312
- it "is not registered in world" do
313
- world = RSpec::Core::World.new
314
- parent = ExampleGroup.describe
315
- world.register(parent)
316
- parent.describe
317
- expect(world.example_groups).to eq([parent])
318
- end
319
- end
320
-
321
- describe "filtering" do
322
- let(:world) { World.new }
323
- before { allow(RSpec).to receive_messages(:world => world) }
324
-
325
- shared_examples "matching filters" do
326
- context "inclusion" do
327
- before do
328
- filter_manager = FilterManager.new
329
- filter_manager.include filter_metadata
330
- allow(world).to receive_messages(:filter_manager => filter_manager)
331
- end
332
-
333
- it "includes examples in groups matching filter" do
334
- group = ExampleGroup.describe("does something", spec_metadata)
335
- all_examples = [ group.example("first"), group.example("second") ]
336
-
337
- expect(group.filtered_examples).to eq(all_examples)
338
- end
339
-
340
- it "includes examples directly matching filter" do
341
- group = ExampleGroup.describe("does something")
342
- filtered_examples = [
343
- group.example("first", spec_metadata),
344
- group.example("second", spec_metadata)
345
- ]
346
- group.example("third (not-filtered)")
347
-
348
- expect(group.filtered_examples).to eq(filtered_examples)
349
- end
350
- end
351
-
352
- context "exclusion" do
353
- before do
354
- filter_manager = FilterManager.new
355
- filter_manager.exclude filter_metadata
356
- allow(world).to receive_messages(:filter_manager => filter_manager)
357
- end
358
-
359
- it "excludes examples in groups matching filter" do
360
- group = ExampleGroup.describe("does something", spec_metadata)
361
- [ group.example("first"), group.example("second") ]
362
-
363
- expect(group.filtered_examples).to be_empty
364
- end
365
-
366
- it "excludes examples directly matching filter" do
367
- group = ExampleGroup.describe("does something")
368
- [
369
- group.example("first", spec_metadata),
370
- group.example("second", spec_metadata)
371
- ]
372
- unfiltered_example = group.example("third (not-filtered)")
373
-
374
- expect(group.filtered_examples).to eq([unfiltered_example])
375
- end
376
- end
377
- end
378
-
379
- context "matching false" do
380
- let(:spec_metadata) { { :awesome => false }}
381
-
382
- context "against false" do
383
- let(:filter_metadata) { { :awesome => false }}
384
- include_examples "matching filters"
385
- end
386
-
387
- context "against 'false'" do
388
- let(:filter_metadata) { { :awesome => 'false' }}
389
- include_examples "matching filters"
390
- end
391
-
392
- context "against :false" do
393
- let(:filter_metadata) { { :awesome => :false }}
394
- include_examples "matching filters"
395
- end
396
- end
397
-
398
- context "matching true" do
399
- let(:spec_metadata) { { :awesome => true }}
400
-
401
- context "against true" do
402
- let(:filter_metadata) { { :awesome => true }}
403
- include_examples "matching filters"
404
- end
405
-
406
- context "against 'true'" do
407
- let(:filter_metadata) { { :awesome => 'true' }}
408
- include_examples "matching filters"
409
- end
410
-
411
- context "against :true" do
412
- let(:filter_metadata) { { :awesome => :true }}
413
- include_examples "matching filters"
414
- end
415
- end
416
-
417
- context "matching a string" do
418
- let(:spec_metadata) { { :type => 'special' }}
419
-
420
- context "against a string" do
421
- let(:filter_metadata) { { :type => 'special' }}
422
- include_examples "matching filters"
423
- end
424
-
425
- context "against a symbol" do
426
- let(:filter_metadata) { { :type => :special }}
427
- include_examples "matching filters"
428
- end
429
- end
430
-
431
- context "matching a symbol" do
432
- let(:spec_metadata) { { :type => :special }}
433
-
434
- context "against a string" do
435
- let(:filter_metadata) { { :type => 'special' }}
436
- include_examples "matching filters"
437
- end
438
-
439
- context "against a symbol" do
440
- let(:filter_metadata) { { :type => :special }}
441
- include_examples "matching filters"
442
- end
443
- end
444
-
445
- context "with no filters" do
446
- it "returns all" do
447
- group = ExampleGroup.describe
448
- allow(group).to receive(:world) { world }
449
- example = group.example("does something")
450
- expect(group.filtered_examples).to eq([example])
451
- end
452
- end
453
-
454
- context "with no examples or groups that match filters" do
455
- it "returns none" do
456
- filter_manager = FilterManager.new
457
- filter_manager.include :awesome => false
458
- allow(world).to receive_messages(:filter_manager => filter_manager)
459
- group = ExampleGroup.describe
460
- allow(group).to receive(:world) { world }
461
- group.example("does something")
462
- expect(group.filtered_examples).to eq([])
463
- end
464
- end
465
- end
466
-
467
- describe '#described_class' do
468
-
469
- context "with a constant as the first parameter" do
470
- it "is that constant" do
471
- expect(ExampleGroup.describe(Object) { }.described_class).to eq(Object)
472
- end
473
- end
474
-
475
- context "with a string as the first parameter" do
476
- it "is nil" do
477
- expect(ExampleGroup.describe("i'm a computer") { }.described_class).to be_nil
478
- end
479
- end
480
-
481
- context "with a constant in an outer group" do
482
- context "and a string in an inner group" do
483
- it "is the top level constant" do
484
- group = ExampleGroup.describe(String) do
485
- describe "inner" do
486
- example "described_class is String" do
487
- expect(described_class).to eq(String)
488
- end
489
- end
490
- end
491
-
492
- expect(group.run).to be_truthy
493
- end
494
- end
495
-
496
- context "and metadata redefinition after `described_class` call" do
497
- it "is the redefined level constant" do
498
- group = ExampleGroup.describe(String) do
499
- described_class
500
- metadata[:described_class] = Object
501
- describe "inner" do
502
- example "described_class is Object" do
503
- expect(described_class).to eq(Object)
504
- end
505
- end
506
- end
507
-
508
- expect(group.run).to be_truthy
509
- end
510
- end
511
- end
512
-
513
- context "in a nested group" do
514
- it "inherits the described class/module from the outer group" do
515
- group = ExampleGroup.describe(String) do
516
- describe "nested" do
517
- example "describes is String" do
518
- expect(described_class).to eq(String)
519
- end
520
- end
521
- end
522
-
523
- expect(group.run).to be_truthy, "expected examples in group to pass"
524
- end
525
-
526
- context "when a class is passed" do
527
- def described_class_value
528
- value = nil
529
-
530
- ExampleGroup.describe(String) do
531
- yield if block_given?
532
- describe Array do
533
- example { value = described_class }
534
- end
535
- end.run
536
-
537
- value
538
- end
539
-
540
- it "overrides the described class" do
541
- expect(described_class_value).to eq(Array)
542
- end
543
-
544
- it "overrides the described class even when described_class is referenced in the outer group" do
545
- expect(described_class_value { described_class }).to eq(Array)
546
- end
547
- end
548
- end
549
-
550
- context "for `describe(SomeClass)` within a `describe 'some string' group" do
551
- def define_and_run_group(define_outer_example = false)
552
- outer_described_class = inner_described_class = nil
553
-
554
- ExampleGroup.describe("some string") do
555
- example { outer_described_class = described_class } if define_outer_example
556
-
557
- describe Array do
558
- example { inner_described_class = described_class }
559
- end
560
- end.run
561
-
562
- return outer_described_class, inner_described_class
563
- end
564
-
565
- it "has a `nil` described_class in the outer group" do
566
- outer_described_class, _ = define_and_run_group(:define_outer_example)
567
- expect(outer_described_class).to be(nil)
568
- end
569
-
570
- it "has the inner described class as the described_class of the inner group" do
571
- _, inner_described_class = define_and_run_group
572
- expect(inner_described_class).to be(Array)
573
-
574
- # This is weird, but in RSpec 2.12 (and before, presumably),
575
- # the `described_class` value would be incorrect if there was an
576
- # example in the outer group, and correct if there was not one.
577
- _, inner_described_class = define_and_run_group(:define_outer_example)
578
- expect(inner_described_class).to be(Array)
579
- end
580
- end
581
- end
582
-
583
- describe '#described_class' do
584
- it "is the same as described_class" do
585
- expect(self.class.described_class).to eq(self.class.described_class)
586
- end
587
- end
588
-
589
- describe '#description' do
590
- it "grabs the description from the metadata" do
591
- group = ExampleGroup.describe(Object, "my desc") { }
592
- expect(group.description).to eq(group.metadata[:description])
593
- end
594
- end
595
-
596
- describe '#metadata' do
597
- it "adds the third parameter to the metadata" do
598
- expect(ExampleGroup.describe(Object, nil, 'foo' => 'bar') { }.metadata).to include({ "foo" => 'bar' })
599
- end
600
-
601
- it "adds the the file_path to metadata" do
602
- expect(ExampleGroup.describe(Object) { }.metadata[:file_path]).to eq(relative_path(__FILE__))
603
- end
604
-
605
- it "has a reader for file_path" do
606
- expect(ExampleGroup.describe(Object) { }.file_path).to eq(relative_path(__FILE__))
607
- end
608
-
609
- it "adds the line_number to metadata" do
610
- expect(ExampleGroup.describe(Object) { }.metadata[:line_number]).to eq(__LINE__)
611
- end
612
- end
613
-
614
- [:focus, :fexample, :fit, :fspecify].each do |example_alias|
615
- describe ".#{example_alias}" do
616
- let(:focused_example) { ExampleGroup.describe.send example_alias, "a focused example" }
617
-
618
- it 'defines an example that can be filtered with :focus => true' do
619
- expect(focused_example.metadata[:focus]).to be_truthy
620
- end
621
- end
622
- end
623
-
624
- describe "#before, after, and around hooks" do
625
- describe "scope aliasing" do
626
- it "aliases the `:context` hook scope to `:all` for before-hooks" do
627
- group = ExampleGroup.describe
628
- order = []
629
- group.before(:context) { order << :before_context }
630
- group.example("example") { order << :example }
631
- group.example("example") { order << :example }
632
-
633
- group.run
634
- expect(order).to eq([:before_context, :example, :example])
635
- end
636
-
637
- it "aliases the `:example` hook scope to `:each` for before-hooks" do
638
- group = ExampleGroup.describe
639
- order = []
640
- group.before(:example) { order << :before_example }
641
- group.example("example") { order << :example }
642
- group.example("example") { order << :example }
643
-
644
- group.run
645
- expect(order).to eq([:before_example, :example, :before_example, :example])
646
- end
647
-
648
- it "aliases the `:context` hook scope to `:all` for after-hooks" do
649
- group = ExampleGroup.describe
650
- order = []
651
- group.example("example") { order << :example }
652
- group.example("example") { order << :example }
653
- group.after(:context) { order << :after_context }
654
-
655
- group.run
656
- expect(order).to eq([:example, :example, :after_context])
657
- end
658
-
659
- it "aliases the `:example` hook scope to `:each` for after-hooks" do
660
- group = ExampleGroup.describe
661
- order = []
662
- group.example("example") { order << :example }
663
- group.example("example") { order << :example }
664
- group.after(:example) { order << :after_example }
665
-
666
- group.run
667
- expect(order).to eq([:example, :after_example, :example, :after_example])
668
- end
669
- end
670
-
671
- it "runs the before alls in order" do
672
- group = ExampleGroup.describe
673
- order = []
674
- group.before(:all) { order << 1 }
675
- group.before(:all) { order << 2 }
676
- group.before(:all) { order << 3 }
677
- group.example("example") {}
678
-
679
- group.run
680
-
681
- expect(order).to eq([1,2,3])
682
- end
683
-
684
- it "does not set RSpec.world.wants_to_quit in case of an error in before all (without fail_fast?)" do
685
- group = ExampleGroup.describe
686
- group.before(:all) { raise "error in before all" }
687
- group.example("example") {}
688
-
689
- group.run
690
- expect(RSpec.world.wants_to_quit).to be_falsey
691
- end
692
-
693
- it "runs the before eachs in order" do
694
- group = ExampleGroup.describe
695
- order = []
696
- group.before(:each) { order << 1 }
697
- group.before(:each) { order << 2 }
698
- group.before(:each) { order << 3 }
699
- group.example("example") {}
700
-
701
- group.run
702
-
703
- expect(order).to eq([1,2,3])
704
- end
705
-
706
- it "runs the after eachs in reverse order" do
707
- group = ExampleGroup.describe
708
- order = []
709
- group.after(:each) { order << 1 }
710
- group.after(:each) { order << 2 }
711
- group.after(:each) { order << 3 }
712
- group.example("example") {}
713
-
714
- group.run
715
-
716
- expect(order).to eq([3,2,1])
717
- end
718
-
719
- it "runs the after alls in reverse order" do
720
- group = ExampleGroup.describe
721
- order = []
722
- group.after(:all) { order << 1 }
723
- group.after(:all) { order << 2 }
724
- group.after(:all) { order << 3 }
725
- group.example("example") {}
726
-
727
- group.run
728
-
729
- expect(order).to eq([3,2,1])
730
- end
731
-
732
- it "only runs before/after(:all) hooks from example groups that have specs that run" do
733
- hooks_run = []
734
-
735
- RSpec.configure do |c|
736
- c.filter_run :focus => true
737
- end
738
-
739
- unfiltered_group = ExampleGroup.describe "unfiltered" do
740
- before(:all) { hooks_run << :unfiltered_before_all }
741
- after(:all) { hooks_run << :unfiltered_after_all }
742
-
743
- context "a subcontext" do
744
- it("has an example") { }
745
- end
746
- end
747
-
748
- filtered_group = ExampleGroup.describe "filtered", :focus => true do
749
- before(:all) { hooks_run << :filtered_before_all }
750
- after(:all) { hooks_run << :filtered_after_all }
751
-
752
- context "a subcontext" do
753
- it("has an example") { }
754
- end
755
- end
756
-
757
- unfiltered_group.run
758
- filtered_group.run
759
-
760
- expect(hooks_run).to eq([:filtered_before_all, :filtered_after_all])
761
- end
762
-
763
- it "runs before_all_defined_in_config, before all, before each, example, after each, after all, after_all_defined_in_config in that order" do
764
- order = []
765
-
766
- RSpec.configure do |c|
767
- c.before(:all) { order << :before_all_defined_in_config }
768
- c.after(:all) { order << :after_all_defined_in_config }
769
- end
770
-
771
- group = ExampleGroup.describe
772
- group.before(:all) { order << :top_level_before_all }
773
- group.before(:each) { order << :before_each }
774
- group.after(:each) { order << :after_each }
775
- group.after(:all) { order << :top_level_after_all }
776
- group.example("top level example") { order << :top_level_example }
777
-
778
- context1 = group.describe("context 1")
779
- context1.before(:all) { order << :nested_before_all }
780
- context1.example("nested example 1") { order << :nested_example_1 }
781
-
782
- context2 = group.describe("context 2")
783
- context2.after(:all) { order << :nested_after_all }
784
- context2.example("nested example 2") { order << :nested_example_2 }
785
-
786
- group.run
787
-
788
- expect(order).to eq([
789
- :before_all_defined_in_config,
790
- :top_level_before_all,
791
- :before_each,
792
- :top_level_example,
793
- :after_each,
794
- :nested_before_all,
795
- :before_each,
796
- :nested_example_1,
797
- :after_each,
798
- :before_each,
799
- :nested_example_2,
800
- :after_each,
801
- :nested_after_all,
802
- :top_level_after_all,
803
- :after_all_defined_in_config
804
- ])
805
- end
806
-
807
- context "after(:all)" do
808
- let(:outer) { ExampleGroup.describe }
809
- let(:inner) { outer.describe }
810
-
811
- it "has access to state defined before(:all)" do
812
- outer.before(:all) { @outer = "outer" }
813
- inner.before(:all) { @inner = "inner" }
814
-
815
- outer.after(:all) do
816
- expect(@outer).to eq("outer")
817
- expect(@inner).to eq("inner")
818
- end
819
- inner.after(:all) do
820
- expect(@inner).to eq("inner")
821
- expect(@outer).to eq("outer")
822
- end
823
-
824
- outer.run
825
- end
826
-
827
- it "cleans up ivars in after(:all)" do
828
- outer.before(:all) { @outer = "outer" }
829
- inner.before(:all) { @inner = "inner" }
830
-
831
- outer.run
832
-
833
- expect(inner.before_context_ivars[:@inner]).to be_nil
834
- expect(inner.before_context_ivars[:@outer]).to be_nil
835
- expect(outer.before_context_ivars[:@inner]).to be_nil
836
- expect(outer.before_context_ivars[:@outer]).to be_nil
837
- end
838
- end
839
-
840
- it "treats an error in before(:each) as a failure" do
841
- group = ExampleGroup.describe
842
- group.before(:each) { raise "error in before each" }
843
- example = group.example("equality") { expect(1).to eq(2) }
844
- expect(group.run).to be(false)
845
-
846
- expect(example.execution_result.exception.message).to eq("error in before each")
847
- end
848
-
849
- it "treats an error in before(:all) as a failure" do
850
- group = ExampleGroup.describe
851
- group.before(:all) { raise "error in before all" }
852
- example = group.example("equality") { expect(1).to eq(2) }
853
- expect(group.run).to be_falsey
854
-
855
- expect(example.metadata).not_to be_nil
856
- expect(example.execution_result.exception).not_to be_nil
857
- expect(example.execution_result.exception.message).to eq("error in before all")
858
- end
859
-
860
- it "exposes instance variables set in before(:all) from after(:all) even if a before(:all) error occurs" do
861
- ivar_value_in_after_hook = nil
862
-
863
- group = ExampleGroup.describe do
864
- before(:all) do
865
- @an_ivar = :set_in_before_all
866
- raise "fail"
867
- end
868
-
869
- after(:all) { ivar_value_in_after_hook = @an_ivar }
870
-
871
- it("has a spec") { }
872
- end
873
-
874
- group.run
875
- expect(ivar_value_in_after_hook).to eq(:set_in_before_all)
876
- end
877
-
878
- it "treats an error in before(:all) as a failure for a spec in a nested group" do
879
- example = nil
880
- group = ExampleGroup.describe do
881
- before(:all) { raise "error in before all" }
882
-
883
- describe "nested" do
884
- example = it("equality") { expect(1).to eq(2) }
885
- end
886
- end
887
- group.run
888
-
889
- expect(example.metadata).not_to be_nil
890
- expect(example.execution_result.exception).not_to be_nil
891
- expect(example.execution_result.exception.message).to eq("error in before all")
892
- end
893
-
894
- context "when an error occurs in an after(:all) hook" do
895
- hooks_run = []
896
-
897
- before(:each) do
898
- hooks_run = []
899
- allow(RSpec.configuration.reporter).to receive(:message)
900
- end
901
-
902
- let(:group) do
903
- ExampleGroup.describe do
904
- after(:all) { hooks_run << :one; raise "An error in an after(:all) hook" }
905
- after(:all) { hooks_run << :two; raise "A different hook raising an error" }
906
- it("equality") { expect(1).to eq(1) }
907
- end
908
- end
909
-
910
- it "allows the example to pass" do
911
- group.run
912
- example = group.examples.first
913
- expect(example.execution_result.status).to eq(:passed)
914
- end
915
-
916
- it "rescues any error(s) and prints them out" do
917
- expect(RSpec.configuration.reporter).to receive(:message).with(/An error in an after\(:all\) hook/)
918
- expect(RSpec.configuration.reporter).to receive(:message).with(/A different hook raising an error/)
919
- group.run
920
- end
921
-
922
- it "still runs both after blocks" do
923
- group.run
924
- expect(hooks_run).to eq [:two,:one]
925
- end
926
- end
927
- end
928
-
929
- describe ".pending" do
930
- let(:group) { ExampleGroup.describe { pending { fail } } }
931
-
932
- it "generates a pending example" do
933
- group.run
934
- expect(group.examples.first).to be_pending
935
- end
936
-
937
- it "sets the pending message" do
938
- group.run
939
- expect(group.examples.first.execution_result.pending_message).to eq(RSpec::Core::Pending::NO_REASON_GIVEN)
940
- end
941
-
942
- it 'sets the backtrace to the example definition so it can be located by the user' do
943
- file = RSpec::Core::Metadata.relative_path(__FILE__)
944
- expected = [file, __LINE__ + 2].map(&:to_s)
945
- group = RSpec::Core::ExampleGroup.describe do
946
- pending { }
947
- end
948
- group.run
949
-
950
- actual = group.examples.first.exception.backtrace.first.split(':')[0..1]
951
- expect(actual).to eq(expected)
952
- end
953
-
954
- it 'generates a pending example when no block is provided' do
955
- group = RSpec.describe "group"
956
- example = group.pending "just because"
957
- group.run
958
- expect(example).to be_pending
959
- end
960
- end
961
-
962
- describe "pending with metadata" do
963
- let(:group) { ExampleGroup.describe {
964
- example("unimplemented", :pending => true) { fail }
965
- } }
966
-
967
- it "generates a pending example" do
968
- group.run
969
- expect(group.examples.first).to be_pending
970
- end
971
-
972
- it "sets the pending message" do
973
- group.run
974
- expect(group.examples.first.execution_result.pending_message).to eq(RSpec::Core::Pending::NO_REASON_GIVEN)
975
- end
976
- end
977
-
978
- describe "pending with message in metadata" do
979
- let(:group) { ExampleGroup.describe {
980
- example("unimplemented", :pending => 'not done') { fail }
981
- } }
982
-
983
- it "generates a pending example" do
984
- group.run
985
- expect(group.examples.first).to be_pending
986
- end
987
-
988
- it "sets the pending message" do
989
- group.run
990
- expect(group.examples.first.execution_result.pending_message).to eq("not done")
991
- end
992
- end
993
-
994
- describe ".skip" do
995
- let(:group) { ExampleGroup.describe { skip("skip this") { } } }
996
-
997
- it "generates a skipped example" do
998
- group.run
999
- expect(group.examples.first).to be_skipped
1000
- end
1001
-
1002
- it "sets the pending message" do
1003
- group.run
1004
- expect(group.examples.first.execution_result.pending_message).to eq(RSpec::Core::Pending::NO_REASON_GIVEN)
1005
- end
1006
- end
1007
-
1008
- describe "skip with metadata" do
1009
- let(:group) { ExampleGroup.describe {
1010
- example("skip this", :skip => true) { }
1011
- } }
1012
-
1013
- it "generates a skipped example" do
1014
- group.run
1015
- expect(group.examples.first).to be_skipped
1016
- end
1017
-
1018
- it "sets the pending message" do
1019
- group.run
1020
- expect(group.examples.first.execution_result.pending_message).to eq(RSpec::Core::Pending::NO_REASON_GIVEN)
1021
- end
1022
- end
1023
-
1024
- describe "skip with message in metadata" do
1025
- let(:group) { ExampleGroup.describe {
1026
- example("skip this", :skip => 'not done') { }
1027
- } }
1028
-
1029
- it "generates a skipped example" do
1030
- group.run
1031
- expect(group.examples.first).to be_skipped
1032
- end
1033
-
1034
- it "sets the pending message" do
1035
- group.run
1036
- expect(group.examples.first.execution_result.pending_message).to eq('not done')
1037
- end
1038
- end
1039
-
1040
- %w[xit xspecify xexample].each do |method_name|
1041
- describe ".#{method_name}" do
1042
- let(:group) { ExampleGroup.describe.tap {|x|
1043
- x.send(method_name, "is pending") { }
1044
- }}
1045
-
1046
- it "generates a skipped example" do
1047
- group.run
1048
- expect(group.examples.first).to be_skipped
1049
- end
1050
-
1051
- it "sets the pending message" do
1052
- group.run
1053
- expect(group.examples.first.execution_result.pending_message).to eq("Temporarily skipped with #{method_name}")
1054
- end
1055
- end
1056
- end
1057
-
1058
- %w[ xdescribe xcontext ].each do |method_name|
1059
- describe ".#{method_name}" do
1060
- def extract_execution_results(group)
1061
- group.examples.map do |ex|
1062
- ex.metadata.fetch(:execution_result)
1063
- end
1064
- end
1065
-
1066
- it 'generates a pending example group' do
1067
- group = ExampleGroup.send(method_name, "group") do
1068
- it("passes") { }
1069
- it("fails") { expect(2).to eq(3) }
1070
- end
1071
- group.run
1072
-
1073
- expect(extract_execution_results(group).map(&:to_h)).to match([
1074
- a_hash_including(
1075
- :status => :pending,
1076
- :pending_message => "Temporarily skipped with #{method_name}"
1077
- )
1078
- ] * 2)
1079
- end
1080
- end
1081
- end
1082
-
1083
- %w[ fdescribe fcontext ].each do |method_name|
1084
- describe ".#{method_name}" do
1085
- def executed_examples_of(group)
1086
- examples = group.examples.select { |ex| ex.execution_result.started_at }
1087
- group.children.inject(examples) { |exs, child| exs + executed_examples_of(child) }
1088
- end
1089
-
1090
- it "generates an example group that can be filtered with :focus" do
1091
- RSpec.configuration.filter_run :focus
1092
-
1093
- parent_group = ExampleGroup.describe do
1094
- describe "not focused" do
1095
- example("not focused example") { }
1096
- end
1097
-
1098
- send(method_name, "focused") do
1099
- example("focused example") { }
1100
- end
1101
- end
1102
-
1103
- parent_group.run
1104
-
1105
- executed_descriptions = executed_examples_of(parent_group).map(&:description)
1106
- expect(executed_descriptions).to eq(["focused example"])
1107
- end
1108
- end
1109
- end
1110
-
1111
- describe "setting pending metadata in parent" do
1112
- def extract_execution_results(group)
1113
- group.examples.map do |ex|
1114
- ex.metadata.fetch(:execution_result)
1115
- end
1116
- end
1117
-
1118
- it 'marks every example as pending' do
1119
- group = ExampleGroup.describe("group", :pending => true) do
1120
- it("passes") { }
1121
- it("fails", :pending => 'unimplemented') { fail }
1122
- end
1123
- group.run
1124
-
1125
- expect(extract_execution_results(group).map(&:to_h)).to match([
1126
- a_hash_including(
1127
- :status => :failed,
1128
- :pending_message => "No reason given"
1129
- ),
1130
- a_hash_including(
1131
- :status => :pending,
1132
- :pending_message => "unimplemented"
1133
- )
1134
- ])
1135
- end
1136
- end
1137
-
1138
- describe "adding examples" do
1139
-
1140
- it "allows adding an example using 'it'" do
1141
- group = ExampleGroup.describe
1142
- group.it("should do something") { }
1143
- expect(group.examples.size).to eq(1)
1144
- end
1145
-
1146
- it "exposes all examples at examples" do
1147
- group = ExampleGroup.describe
1148
- group.it("should do something 1") { }
1149
- group.it("should do something 2") { }
1150
- group.it("should do something 3") { }
1151
- expect(group.examples.count).to eq(3)
1152
- end
1153
-
1154
- it "maintains the example order" do
1155
- group = ExampleGroup.describe
1156
- group.it("should 1") { }
1157
- group.it("should 2") { }
1158
- group.it("should 3") { }
1159
- expect(group.examples[0].description).to eq('should 1')
1160
- expect(group.examples[1].description).to eq('should 2')
1161
- expect(group.examples[2].description).to eq('should 3')
1162
- end
1163
-
1164
- end
1165
-
1166
- describe Object, "describing nested example_groups", :little_less_nested => 'yep' do
1167
-
1168
- describe "A sample nested group", :nested_describe => "yep" do
1169
- it "sets the described class to the nearest described class" do |ex|
1170
- expect(ex.example_group.described_class).to eq(Object)
1171
- end
1172
-
1173
- it "sets the description to 'A sample nested describe'" do |ex|
1174
- expect(ex.example_group.description).to eq('A sample nested group')
1175
- end
1176
-
1177
- it "has top level metadata from the example_group and its parent groups" do |ex|
1178
- expect(ex.example_group.metadata).to include(:little_less_nested => 'yep', :nested_describe => 'yep')
1179
- end
1180
-
1181
- it "exposes the parent metadata to the contained examples" do |ex|
1182
- expect(ex.metadata).to include(:little_less_nested => 'yep', :nested_describe => 'yep')
1183
- end
1184
- end
1185
-
1186
- end
1187
-
1188
- describe "#run_examples" do
1189
-
1190
- let(:reporter) { double("reporter").as_null_object }
1191
-
1192
- it "returns true if all examples pass" do
1193
- group = ExampleGroup.describe('group') do
1194
- example('ex 1') { expect(1).to eq(1) }
1195
- example('ex 2') { expect(1).to eq(1) }
1196
- end
1197
- allow(group).to receive(:filtered_examples) { group.examples }
1198
- expect(group.run(reporter)).to be_truthy
1199
- end
1200
-
1201
- it "returns false if any of the examples fail" do
1202
- group = ExampleGroup.describe('group') do
1203
- example('ex 1') { expect(1).to eq(1) }
1204
- example('ex 2') { expect(1).to eq(2) }
1205
- end
1206
- allow(group).to receive(:filtered_examples) { group.examples }
1207
- expect(group.run(reporter)).to be_falsey
1208
- end
1209
-
1210
- it "runs all examples, regardless of any of them failing" do
1211
- group = ExampleGroup.describe('group') do
1212
- example('ex 1') { expect(1).to eq(2) }
1213
- example('ex 2') { expect(1).to eq(1) }
1214
- end
1215
- allow(group).to receive(:filtered_examples) { group.examples }
1216
- group.filtered_examples.each do |example|
1217
- expect(example).to receive(:run)
1218
- end
1219
- expect(group.run(reporter)).to be_falsey
1220
- end
1221
- end
1222
-
1223
- describe "how instance variables are inherited" do
1224
- before(:all) do
1225
- @before_all_top_level = 'before_all_top_level'
1226
- end
1227
-
1228
- before(:each) do
1229
- @before_each_top_level = 'before_each_top_level'
1230
- end
1231
-
1232
- it "can access a before each ivar at the same level" do
1233
- expect(@before_each_top_level).to eq('before_each_top_level')
1234
- end
1235
-
1236
- it "can access a before all ivar at the same level" do
1237
- expect(@before_all_top_level).to eq('before_all_top_level')
1238
- end
1239
-
1240
- it "can access the before all ivars in the before_all_ivars hash", :ruby => 1.8 do |ex|
1241
- expect(ex.example_group.before_context_ivars).to include('@before_all_top_level' => 'before_all_top_level')
1242
- end
1243
-
1244
- it "can access the before all ivars in the before_all_ivars hash", :ruby => 1.9 do |ex|
1245
- expect(ex.example_group.before_context_ivars).to include(:@before_all_top_level => 'before_all_top_level')
1246
- end
1247
-
1248
- describe "but now I am nested" do
1249
- it "can access a parent example groups before each ivar at a nested level" do
1250
- expect(@before_each_top_level).to eq('before_each_top_level')
1251
- end
1252
-
1253
- it "can access a parent example groups before all ivar at a nested level" do
1254
- expect(@before_all_top_level).to eq("before_all_top_level")
1255
- end
1256
-
1257
- it "changes to before all ivars from within an example do not persist outside the current describe" do
1258
- @before_all_top_level = "ive been changed"
1259
- end
1260
-
1261
- describe "accessing a before_all ivar that was changed in a parent example_group" do
1262
- it "does not have access to the modified version" do
1263
- expect(@before_all_top_level).to eq('before_all_top_level')
1264
- end
1265
- end
1266
- end
1267
-
1268
- end
1269
-
1270
- describe "ivars are not shared across examples" do
1271
- it "(first example)" do
1272
- @a = 1
1273
- expect(defined?(@b)).to be_falsey
1274
- end
1275
-
1276
- it "(second example)" do
1277
- @b = 2
1278
- expect(defined?(@a)).to be_falsey
1279
- end
1280
- end
1281
-
1282
-
1283
- describe "#top_level_description" do
1284
- it "returns the description from the outermost example group" do
1285
- group = nil
1286
- ExampleGroup.describe("top") do
1287
- context "middle" do
1288
- group = describe "bottom" do
1289
- end
1290
- end
1291
- end
1292
-
1293
- expect(group.top_level_description).to eq("top")
1294
- end
1295
- end
1296
-
1297
- describe "#run" do
1298
- let(:reporter) { double("reporter").as_null_object }
1299
-
1300
- context "with fail_fast? => true" do
1301
- let(:group) do
1302
- group = RSpec::Core::ExampleGroup.describe
1303
- allow(group).to receive(:fail_fast?) { true }
1304
- group
1305
- end
1306
-
1307
- it "does not run examples after the failed example" do
1308
- examples_run = []
1309
- group.example('example 1') { examples_run << self }
1310
- group.example('example 2') { examples_run << self; fail; }
1311
- group.example('example 3') { examples_run << self }
1312
-
1313
- group.run
1314
-
1315
- expect(examples_run.length).to eq(2)
1316
- end
1317
-
1318
- it "sets RSpec.world.wants_to_quit flag if encountering an exception in before(:all)" do
1319
- group.before(:all) { raise "error in before all" }
1320
- group.example("equality") { expect(1).to eq(2) }
1321
- expect(group.run).to be_falsey
1322
- expect(RSpec.world.wants_to_quit).to be_truthy
1323
- end
1324
- end
1325
-
1326
- context "with RSpec.world.wants_to_quit=true" do
1327
- let(:group) { RSpec::Core::ExampleGroup.describe }
1328
-
1329
- before do
1330
- allow(RSpec.world).to receive(:wants_to_quit) { true }
1331
- allow(RSpec.world).to receive(:clear_remaining_example_groups)
1332
- end
1333
-
1334
- it "returns without starting the group" do
1335
- expect(reporter).not_to receive(:example_group_started)
1336
- group.run(reporter)
1337
- end
1338
-
1339
- context "at top level" do
1340
- it "purges remaining groups" do
1341
- expect(RSpec.world).to receive(:clear_remaining_example_groups)
1342
- group.run(reporter)
1343
- end
1344
- end
1345
-
1346
- context "in a nested group" do
1347
- it "does not purge remaining groups" do
1348
- nested_group = group.describe
1349
- expect(RSpec.world).not_to receive(:clear_remaining_example_groups)
1350
- nested_group.run(reporter)
1351
- end
1352
- end
1353
- end
1354
-
1355
- context "with all examples passing" do
1356
- it "returns true" do
1357
- group = RSpec::Core::ExampleGroup.describe("something") do
1358
- it "does something" do
1359
- # pass
1360
- end
1361
- describe "nested" do
1362
- it "does something else" do
1363
- # pass
1364
- end
1365
- end
1366
- end
1367
-
1368
- expect(group.run(reporter)).to be_truthy
1369
- end
1370
- end
1371
-
1372
- context "with top level example failing" do
1373
- it "returns false" do
1374
- group = RSpec::Core::ExampleGroup.describe("something") do
1375
- it "does something (wrong - fail)" do
1376
- raise "fail"
1377
- end
1378
- describe "nested" do
1379
- it "does something else" do
1380
- # pass
1381
- end
1382
- end
1383
- end
1384
-
1385
- expect(group.run(reporter)).to be_falsey
1386
- end
1387
- end
1388
-
1389
- context "with nested example failing" do
1390
- it "returns true" do
1391
- group = RSpec::Core::ExampleGroup.describe("something") do
1392
- it "does something" do
1393
- # pass
1394
- end
1395
- describe "nested" do
1396
- it "does something else (wrong -fail)" do
1397
- raise "fail"
1398
- end
1399
- end
1400
- end
1401
-
1402
- expect(group.run(reporter)).to be_falsey
1403
- end
1404
- end
1405
- end
1406
-
1407
- %w[include_examples include_context].each do |name|
1408
- describe "##{name}" do
1409
- let(:group) { ExampleGroup.describe }
1410
- before do
1411
- group.shared_examples "named this" do
1412
- example("does something") {}
1413
- end
1414
- end
1415
-
1416
- it "includes the named examples" do
1417
- group.send(name, "named this")
1418
- expect(group.examples.first.description).to eq("does something")
1419
- end
1420
-
1421
- it "raises a helpful error message when shared content is not found" do
1422
- expect do
1423
- group.send(name, "shared stuff")
1424
- end.to raise_error(ArgumentError, /Could not find .* "shared stuff"/)
1425
- end
1426
-
1427
- it "passes parameters to the shared content" do
1428
- passed_params = {}
1429
- group = ExampleGroup.describe
1430
-
1431
- group.shared_examples "named this with params" do |param1, param2|
1432
- it("has access to the given parameters") do
1433
- passed_params[:param1] = param1
1434
- passed_params[:param2] = param2
1435
- end
1436
- end
1437
-
1438
- group.send(name, "named this with params", :value1, :value2)
1439
- group.run
1440
-
1441
- expect(passed_params).to eq({ :param1 => :value1, :param2 => :value2 })
1442
- end
1443
-
1444
- it "adds shared instance methods to the group" do
1445
- group = ExampleGroup.describe('fake group')
1446
- group.shared_examples "named this with params" do |param1|
1447
- def foo; end
1448
- end
1449
- group.send(name, "named this with params", :a)
1450
- expect(group.public_instance_methods.map{|m| m.to_s}).to include("foo")
1451
- end
1452
-
1453
- it "evals the shared example group only once" do
1454
- eval_count = 0
1455
- group = ExampleGroup.describe('fake group')
1456
- group.shared_examples("named this with params") { |p| eval_count += 1 }
1457
- group.send(name, "named this with params", :a)
1458
- expect(eval_count).to eq(1)
1459
- end
1460
-
1461
- it "evals the block when given" do
1462
- key = "#{__FILE__}:#{__LINE__}"
1463
- group = ExampleGroup.describe do
1464
- shared_examples(key) do
1465
- it("does something") do
1466
- expect(foo).to eq("bar")
1467
- end
1468
- end
1469
-
1470
- send name, key do
1471
- def foo; "bar"; end
1472
- end
1473
- end
1474
- expect(group.run).to be_truthy
1475
- end
1476
- end
1477
- end
1478
-
1479
- describe "#it_should_behave_like" do
1480
- it "creates a nested group" do
1481
- group = ExampleGroup.describe('fake group')
1482
- group.shared_examples_for("thing") {}
1483
- group.it_should_behave_like("thing")
1484
- expect(group.children.count).to eq(1)
1485
- end
1486
-
1487
- it "creates a nested group for a class" do
1488
- klass = Class.new
1489
- group = ExampleGroup.describe('fake group')
1490
- group.shared_examples_for(klass) {}
1491
- group.it_should_behave_like(klass)
1492
- expect(group.children.count).to eq(1)
1493
- end
1494
-
1495
- it "adds shared examples to nested group" do
1496
- group = ExampleGroup.describe('fake group')
1497
- group.shared_examples_for("thing") do
1498
- it("does something")
1499
- end
1500
- shared_group = group.it_should_behave_like("thing")
1501
- expect(shared_group.examples.count).to eq(1)
1502
- end
1503
-
1504
- it "adds shared instance methods to nested group" do
1505
- group = ExampleGroup.describe('fake group')
1506
- group.shared_examples_for("thing") do
1507
- def foo; end
1508
- end
1509
- shared_group = group.it_should_behave_like("thing")
1510
- expect(shared_group.public_instance_methods.map{|m| m.to_s}).to include("foo")
1511
- end
1512
-
1513
- it "adds shared class methods to nested group" do
1514
- group = ExampleGroup.describe('fake group')
1515
- group.shared_examples_for("thing") do
1516
- def self.foo; end
1517
- end
1518
- shared_group = group.it_should_behave_like("thing")
1519
- expect(shared_group.methods.map{|m| m.to_s}).to include("foo")
1520
- end
1521
-
1522
- it "passes parameters to the shared example group" do
1523
- passed_params = {}
1524
-
1525
- group = ExampleGroup.describe("group") do
1526
- shared_examples_for("thing") do |param1, param2|
1527
- it("has access to the given parameters") do
1528
- passed_params[:param1] = param1
1529
- passed_params[:param2] = param2
1530
- end
1531
- end
1532
-
1533
- it_should_behave_like "thing", :value1, :value2
1534
- end
1535
-
1536
- group.run
1537
-
1538
- expect(passed_params).to eq({ :param1 => :value1, :param2 => :value2 })
1539
- end
1540
-
1541
- it "adds shared instance methods to nested group" do
1542
- group = ExampleGroup.describe('fake group')
1543
- group.shared_examples_for("thing") do |param1|
1544
- def foo; end
1545
- end
1546
- shared_group = group.it_should_behave_like("thing", :a)
1547
- expect(shared_group.public_instance_methods.map{|m| m.to_s}).to include("foo")
1548
- end
1549
-
1550
- it "evals the shared example group only once" do
1551
- eval_count = 0
1552
- group = ExampleGroup.describe('fake group')
1553
- group.shared_examples_for("thing") { |p| eval_count += 1 }
1554
- group.it_should_behave_like("thing", :a)
1555
- expect(eval_count).to eq(1)
1556
- end
1557
-
1558
- context "given a block" do
1559
- it "evaluates the block in nested group" do
1560
- scopes = []
1561
- group = ExampleGroup.describe("group") do
1562
- shared_examples_for("thing") do
1563
- it("gets run in the nested group") do
1564
- scopes << self.class
1565
- end
1566
- end
1567
- it_should_behave_like "thing" do
1568
- it("gets run in the same nested group") do
1569
- scopes << self.class
1570
- end
1571
- end
1572
- end
1573
- group.run
1574
-
1575
- expect(scopes[0]).to be(scopes[1])
1576
- end
1577
- end
1578
-
1579
- it "raises a helpful error message when shared context is not found" do
1580
- expect do
1581
- ExampleGroup.describe do
1582
- it_should_behave_like "shared stuff"
1583
- end
1584
- end.to raise_error(ArgumentError,%q|Could not find shared examples "shared stuff"|)
1585
- end
1586
- end
1587
-
1588
- it 'minimizes the number of methods that users could inadvertantly overwrite' do
1589
- rspec_core_methods = ExampleGroup.instance_methods -
1590
- RSpec::Matchers.instance_methods -
1591
- RSpec::Mocks::ExampleMethods.instance_methods -
1592
- Object.instance_methods
1593
-
1594
- # Feel free to expand this list if you intend to add another public API
1595
- # for users. RSpec internals should not add methods here, though.
1596
- expect(rspec_core_methods.map(&:to_sym)).to contain_exactly(
1597
- :described_class, :subject,
1598
- :is_expected, :should, :should_not,
1599
- :pending, :skip,
1600
- :setup_mocks_for_rspec, :teardown_mocks_for_rspec, :verify_mocks_for_rspec
1601
- )
1602
- end
1603
-
1604
- it 'prevents defining nested isolated contexts' do
1605
- expect {
1606
- RSpec.describe do
1607
- describe {}
1608
- RSpec.describe {}
1609
- end
1610
- }.to raise_error(/not allowed/)
1611
- end
1612
-
1613
- it 'prevents defining nested isolated shared contexts' do
1614
- expect {
1615
- ExampleGroup.describe do
1616
- ExampleGroup.shared_examples("common functionality") {}
1617
- end
1618
- }.to raise_error(/not allowed/)
1619
- end
1620
- end
1621
- end