media-path 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. data/CHANGELOG +3 -0
  2. data/LICENSE +20 -0
  3. data/README.textile +40 -0
  4. data/Rakefile +79 -0
  5. data/TODO.txt +6 -0
  6. data/deps.rip +5 -0
  7. data/lib/media-path.rb +269 -0
  8. data/media-path.gemspec +38 -0
  9. data/script/spec +14 -0
  10. data/spec/media-path_spec.rb +158 -0
  11. data/spec/spec.opts +5 -0
  12. data/spec/stubs/blog/public/js/moo.js +0 -0
  13. data/url.rb +20 -0
  14. data/url_spec.rb +35 -0
  15. data/vendor/rspec/History.rdoc +1512 -0
  16. data/vendor/rspec/License.txt +22 -0
  17. data/vendor/rspec/Manifest.txt +383 -0
  18. data/vendor/rspec/README.rdoc +55 -0
  19. data/vendor/rspec/Rakefile +145 -0
  20. data/vendor/rspec/Ruby1.9.rdoc +31 -0
  21. data/vendor/rspec/TODO.txt +17 -0
  22. data/vendor/rspec/Upgrade.rdoc +199 -0
  23. data/vendor/rspec/bin/autospec +4 -0
  24. data/vendor/rspec/bin/spec +5 -0
  25. data/vendor/rspec/cucumber.yml +5 -0
  26. data/vendor/rspec/examples/failing/README.txt +11 -0
  27. data/vendor/rspec/examples/failing/diffing_spec.rb +36 -0
  28. data/vendor/rspec/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  29. data/vendor/rspec/examples/failing/failure_in_after.rb +10 -0
  30. data/vendor/rspec/examples/failing/failure_in_before.rb +10 -0
  31. data/vendor/rspec/examples/failing/mocking_example.rb +38 -0
  32. data/vendor/rspec/examples/failing/mocking_with_flexmock.rb +26 -0
  33. data/vendor/rspec/examples/failing/mocking_with_mocha.rb +25 -0
  34. data/vendor/rspec/examples/failing/mocking_with_rr.rb +27 -0
  35. data/vendor/rspec/examples/failing/partial_mock_example.rb +18 -0
  36. data/vendor/rspec/examples/failing/pending_example.rb +7 -0
  37. data/vendor/rspec/examples/failing/predicate_example.rb +32 -0
  38. data/vendor/rspec/examples/failing/raising_example.rb +47 -0
  39. data/vendor/rspec/examples/failing/syntax_error_example.rb +7 -0
  40. data/vendor/rspec/examples/failing/team_spec.rb +41 -0
  41. data/vendor/rspec/examples/failing/timeout_behaviour.rb +5 -0
  42. data/vendor/rspec/examples/passing/custom_formatter.rb +11 -0
  43. data/vendor/rspec/examples/passing/custom_matchers.rb +54 -0
  44. data/vendor/rspec/examples/passing/dynamic_spec.rb +7 -0
  45. data/vendor/rspec/examples/passing/file_accessor.rb +18 -0
  46. data/vendor/rspec/examples/passing/file_accessor_spec.rb +37 -0
  47. data/vendor/rspec/examples/passing/filtered_formatter.rb +17 -0
  48. data/vendor/rspec/examples/passing/filtered_formatter_example.rb +31 -0
  49. data/vendor/rspec/examples/passing/greeter_spec.rb +30 -0
  50. data/vendor/rspec/examples/passing/helper_method_example.rb +12 -0
  51. data/vendor/rspec/examples/passing/implicit_docstrings_example.rb +16 -0
  52. data/vendor/rspec/examples/passing/io_processor.rb +8 -0
  53. data/vendor/rspec/examples/passing/io_processor_spec.rb +20 -0
  54. data/vendor/rspec/examples/passing/mocking_example.rb +25 -0
  55. data/vendor/rspec/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  56. data/vendor/rspec/examples/passing/nested_classes_example.rb +35 -0
  57. data/vendor/rspec/examples/passing/options_example.rb +29 -0
  58. data/vendor/rspec/examples/passing/options_formatter.rb +20 -0
  59. data/vendor/rspec/examples/passing/partial_mock_example.rb +27 -0
  60. data/vendor/rspec/examples/passing/pending_example.rb +18 -0
  61. data/vendor/rspec/examples/passing/predicate_example.rb +25 -0
  62. data/vendor/rspec/examples/passing/shared_example_group_example.rb +79 -0
  63. data/vendor/rspec/examples/passing/shared_stack_examples.rb +36 -0
  64. data/vendor/rspec/examples/passing/simple_matcher_example.rb +29 -0
  65. data/vendor/rspec/examples/passing/stack.rb +36 -0
  66. data/vendor/rspec/examples/passing/stack_spec.rb +63 -0
  67. data/vendor/rspec/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  68. data/vendor/rspec/examples/passing/stubbing_example.rb +67 -0
  69. data/vendor/rspec/examples/passing/yielding_example.rb +31 -0
  70. data/vendor/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  71. data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
  72. data/vendor/rspec/features-pending/heckle/heckle.feature +56 -0
  73. data/vendor/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  74. data/vendor/rspec/features/command_line/line_number_option.feature +56 -0
  75. data/vendor/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  76. data/vendor/rspec/features/example_groups/define_example_attribute.feature +41 -0
  77. data/vendor/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
  78. data/vendor/rspec/features/example_groups/implicit_docstrings.feature +59 -0
  79. data/vendor/rspec/features/example_groups/nested_groups.feature +32 -0
  80. data/vendor/rspec/features/expectations/customized_message.feature +54 -0
  81. data/vendor/rspec/features/expectations/expect_change.feature +65 -0
  82. data/vendor/rspec/features/expectations/expect_error.feature +44 -0
  83. data/vendor/rspec/features/extensions/custom_example_group.feature +19 -0
  84. data/vendor/rspec/features/formatters/custom_formatter.feature +30 -0
  85. data/vendor/rspec/features/interop/examples_and_tests_together.feature +84 -0
  86. data/vendor/rspec/features/interop/rspec_output.feature +25 -0
  87. data/vendor/rspec/features/interop/test_but_not_test_unit.feature +26 -0
  88. data/vendor/rspec/features/interop/test_case_with_should_methods.feature +46 -0
  89. data/vendor/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
  90. data/vendor/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
  91. data/vendor/rspec/features/matchers/define_diffable_matcher.feature +26 -0
  92. data/vendor/rspec/features/matchers/define_matcher.feature +179 -0
  93. data/vendor/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
  94. data/vendor/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  95. data/vendor/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
  96. data/vendor/rspec/features/matchers/match_unless_raises.feature +60 -0
  97. data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  98. data/vendor/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
  99. data/vendor/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
  100. data/vendor/rspec/features/mock_framework_integration/use_rr.feature +27 -0
  101. data/vendor/rspec/features/mocks/block_local_expectations.feature +62 -0
  102. data/vendor/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
  103. data/vendor/rspec/features/mocks/stub_implementation.feature +26 -0
  104. data/vendor/rspec/features/pending/pending_examples.feature +81 -0
  105. data/vendor/rspec/features/runner/specify_line_number.feature +32 -0
  106. data/vendor/rspec/features/spec_helper/spec_helper.feature +25 -0
  107. data/vendor/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
  108. data/vendor/rspec/features/subject/explicit_subject.feature +31 -0
  109. data/vendor/rspec/features/subject/implicit_subject.feature +43 -0
  110. data/vendor/rspec/features/support/env.rb +82 -0
  111. data/vendor/rspec/features/support/matchers/smart_match.rb +12 -0
  112. data/vendor/rspec/geminstaller.yml +28 -0
  113. data/vendor/rspec/init.rb +9 -0
  114. data/vendor/rspec/lib/autotest/discover.rb +3 -0
  115. data/vendor/rspec/lib/autotest/rspec.rb +54 -0
  116. data/vendor/rspec/lib/spec.rb +8 -0
  117. data/vendor/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  118. data/vendor/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  119. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  120. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  121. data/vendor/rspec/lib/spec/autorun.rb +3 -0
  122. data/vendor/rspec/lib/spec/deprecation.rb +40 -0
  123. data/vendor/rspec/lib/spec/dsl.rb +1 -0
  124. data/vendor/rspec/lib/spec/dsl/main.rb +92 -0
  125. data/vendor/rspec/lib/spec/example.rb +164 -0
  126. data/vendor/rspec/lib/spec/example/args_and_options.rb +27 -0
  127. data/vendor/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  128. data/vendor/rspec/lib/spec/example/errors.rb +25 -0
  129. data/vendor/rspec/lib/spec/example/example_group.rb +10 -0
  130. data/vendor/rspec/lib/spec/example/example_group_factory.rb +82 -0
  131. data/vendor/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
  132. data/vendor/rspec/lib/spec/example/example_group_methods.rb +282 -0
  133. data/vendor/rspec/lib/spec/example/example_group_proxy.rb +61 -0
  134. data/vendor/rspec/lib/spec/example/example_matcher.rb +43 -0
  135. data/vendor/rspec/lib/spec/example/example_methods.rb +152 -0
  136. data/vendor/rspec/lib/spec/example/example_proxy.rb +41 -0
  137. data/vendor/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
  138. data/vendor/rspec/lib/spec/example/pending.rb +18 -0
  139. data/vendor/rspec/lib/spec/example/predicate_matchers.rb +46 -0
  140. data/vendor/rspec/lib/spec/example/shared_example_group.rb +59 -0
  141. data/vendor/rspec/lib/spec/example/subject.rb +108 -0
  142. data/vendor/rspec/lib/spec/expectations.rb +35 -0
  143. data/vendor/rspec/lib/spec/expectations/errors.rb +12 -0
  144. data/vendor/rspec/lib/spec/expectations/extensions.rb +1 -0
  145. data/vendor/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
  146. data/vendor/rspec/lib/spec/expectations/fail_with.rb +45 -0
  147. data/vendor/rspec/lib/spec/expectations/handler.rb +50 -0
  148. data/vendor/rspec/lib/spec/extensions/instance_exec.rb +31 -0
  149. data/vendor/rspec/lib/spec/interop/test.rb +44 -0
  150. data/vendor/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
  151. data/vendor/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
  152. data/vendor/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
  153. data/vendor/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  154. data/vendor/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  155. data/vendor/rspec/lib/spec/matchers.rb +195 -0
  156. data/vendor/rspec/lib/spec/matchers/be.rb +211 -0
  157. data/vendor/rspec/lib/spec/matchers/be_close.rb +32 -0
  158. data/vendor/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
  159. data/vendor/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
  160. data/vendor/rspec/lib/spec/matchers/change.rb +151 -0
  161. data/vendor/rspec/lib/spec/matchers/compatibility.rb +14 -0
  162. data/vendor/rspec/lib/spec/matchers/dsl.rb +20 -0
  163. data/vendor/rspec/lib/spec/matchers/eql.rb +42 -0
  164. data/vendor/rspec/lib/spec/matchers/equal.rb +53 -0
  165. data/vendor/rspec/lib/spec/matchers/errors.rb +5 -0
  166. data/vendor/rspec/lib/spec/matchers/exist.rb +16 -0
  167. data/vendor/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
  168. data/vendor/rspec/lib/spec/matchers/has.rb +35 -0
  169. data/vendor/rspec/lib/spec/matchers/have.rb +152 -0
  170. data/vendor/rspec/lib/spec/matchers/include.rb +44 -0
  171. data/vendor/rspec/lib/spec/matchers/match.rb +21 -0
  172. data/vendor/rspec/lib/spec/matchers/match_array.rb +71 -0
  173. data/vendor/rspec/lib/spec/matchers/matcher.rb +102 -0
  174. data/vendor/rspec/lib/spec/matchers/method_missing.rb +9 -0
  175. data/vendor/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
  176. data/vendor/rspec/lib/spec/matchers/pretty.rb +37 -0
  177. data/vendor/rspec/lib/spec/matchers/raise_error.rb +129 -0
  178. data/vendor/rspec/lib/spec/matchers/respond_to.rb +71 -0
  179. data/vendor/rspec/lib/spec/matchers/satisfy.rb +47 -0
  180. data/vendor/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
  181. data/vendor/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
  182. data/vendor/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  183. data/vendor/rspec/lib/spec/mocks.rb +200 -0
  184. data/vendor/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
  185. data/vendor/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
  186. data/vendor/rspec/lib/spec/mocks/error_generator.rb +92 -0
  187. data/vendor/rspec/lib/spec/mocks/errors.rb +10 -0
  188. data/vendor/rspec/lib/spec/mocks/example_methods.rb +69 -0
  189. data/vendor/rspec/lib/spec/mocks/extensions.rb +1 -0
  190. data/vendor/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  191. data/vendor/rspec/lib/spec/mocks/framework.rb +15 -0
  192. data/vendor/rspec/lib/spec/mocks/message_expectation.rb +343 -0
  193. data/vendor/rspec/lib/spec/mocks/methods.rb +89 -0
  194. data/vendor/rspec/lib/spec/mocks/mock.rb +71 -0
  195. data/vendor/rspec/lib/spec/mocks/order_group.rb +29 -0
  196. data/vendor/rspec/lib/spec/mocks/proxy.rb +245 -0
  197. data/vendor/rspec/lib/spec/mocks/space.rb +28 -0
  198. data/vendor/rspec/lib/spec/rake/spectask.rb +230 -0
  199. data/vendor/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  200. data/vendor/rspec/lib/spec/ruby.rb +9 -0
  201. data/vendor/rspec/lib/spec/runner.rb +66 -0
  202. data/vendor/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
  203. data/vendor/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  204. data/vendor/rspec/lib/spec/runner/command_line.rb +15 -0
  205. data/vendor/rspec/lib/spec/runner/configuration.rb +194 -0
  206. data/vendor/rspec/lib/spec/runner/differs/default.rb +93 -0
  207. data/vendor/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  208. data/vendor/rspec/lib/spec/runner/drb_command_line.rb +32 -0
  209. data/vendor/rspec/lib/spec/runner/example_group_runner.rb +58 -0
  210. data/vendor/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
  211. data/vendor/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
  212. data/vendor/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  213. data/vendor/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  214. data/vendor/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  215. data/vendor/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
  216. data/vendor/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  217. data/vendor/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  218. data/vendor/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  219. data/vendor/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  220. data/vendor/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  221. data/vendor/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  222. data/vendor/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  223. data/vendor/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  224. data/vendor/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  225. data/vendor/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  226. data/vendor/rspec/lib/spec/runner/line_number_query.rb +78 -0
  227. data/vendor/rspec/lib/spec/runner/option_parser.rb +225 -0
  228. data/vendor/rspec/lib/spec/runner/options.rb +405 -0
  229. data/vendor/rspec/lib/spec/runner/reporter.rb +171 -0
  230. data/vendor/rspec/lib/spec/stubs/cucumber.rb +5 -0
  231. data/vendor/rspec/lib/spec/test/unit.rb +10 -0
  232. data/vendor/rspec/lib/spec/version.rb +14 -0
  233. data/vendor/rspec/resources/helpers/cmdline.rb +8 -0
  234. data/vendor/rspec/resources/rake/examples.rake +7 -0
  235. data/vendor/rspec/resources/rake/examples_with_rcov.rake +9 -0
  236. data/vendor/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  237. data/vendor/rspec/resources/rake/verify_rcov.rake +7 -0
  238. data/vendor/rspec/spec/README.jruby +15 -0
  239. data/vendor/rspec/spec/autotest/autotest_helper.rb +8 -0
  240. data/vendor/rspec/spec/autotest/autotest_matchers.rb +38 -0
  241. data/vendor/rspec/spec/autotest/discover_spec.rb +8 -0
  242. data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
  243. data/vendor/rspec/spec/autotest/rspec_spec.rb +126 -0
  244. data/vendor/rspec/spec/ruby_forker.rb +13 -0
  245. data/vendor/rspec/spec/spec.opts +6 -0
  246. data/vendor/rspec/spec/spec/dsl/main_spec.rb +95 -0
  247. data/vendor/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  248. data/vendor/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
  249. data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +759 -0
  250. data/vendor/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
  251. data/vendor/rspec/spec/spec/example/example_group_spec.rb +643 -0
  252. data/vendor/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
  253. data/vendor/rspec/spec/spec/example/example_methods_spec.rb +162 -0
  254. data/vendor/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
  255. data/vendor/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  256. data/vendor/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
  257. data/vendor/rspec/spec/spec/example/pending_module_spec.rb +58 -0
  258. data/vendor/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
  259. data/vendor/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
  260. data/vendor/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  261. data/vendor/rspec/spec/spec/example/subject_spec.rb +103 -0
  262. data/vendor/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
  263. data/vendor/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  264. data/vendor/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
  265. data/vendor/rspec/spec/spec/expectations/handler_spec.rb +206 -0
  266. data/vendor/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  267. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  268. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  269. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  270. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  271. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  272. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  273. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  274. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  275. data/vendor/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  276. data/vendor/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  277. data/vendor/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  278. data/vendor/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  279. data/vendor/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  280. data/vendor/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
  281. data/vendor/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  282. data/vendor/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  283. data/vendor/rspec/spec/spec/matchers/be_spec.rb +419 -0
  284. data/vendor/rspec/spec/spec/matchers/change_spec.rb +349 -0
  285. data/vendor/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
  286. data/vendor/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
  287. data/vendor/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
  288. data/vendor/rspec/spec/spec/matchers/eql_spec.rb +33 -0
  289. data/vendor/rspec/spec/spec/matchers/equal_spec.rb +57 -0
  290. data/vendor/rspec/spec/spec/matchers/exist_spec.rb +65 -0
  291. data/vendor/rspec/spec/spec/matchers/has_spec.rb +190 -0
  292. data/vendor/rspec/spec/spec/matchers/have_spec.rb +396 -0
  293. data/vendor/rspec/spec/spec/matchers/include_spec.rb +88 -0
  294. data/vendor/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
  295. data/vendor/rspec/spec/spec/matchers/match_spec.rb +57 -0
  296. data/vendor/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  297. data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +273 -0
  298. data/vendor/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
  299. data/vendor/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  300. data/vendor/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
  301. data/vendor/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
  302. data/vendor/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  303. data/vendor/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  304. data/vendor/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  305. data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +117 -0
  306. data/vendor/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  307. data/vendor/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  308. data/vendor/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  309. data/vendor/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  310. data/vendor/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  311. data/vendor/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  312. data/vendor/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  313. data/vendor/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  314. data/vendor/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  315. data/vendor/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  316. data/vendor/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  317. data/vendor/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  318. data/vendor/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  319. data/vendor/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  320. data/vendor/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  321. data/vendor/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  322. data/vendor/rspec/spec/spec/mocks/double_spec.rb +12 -0
  323. data/vendor/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  324. data/vendor/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  325. data/vendor/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  326. data/vendor/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  327. data/vendor/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  328. data/vendor/rspec/spec/spec/mocks/mock_spec.rb +594 -0
  329. data/vendor/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  330. data/vendor/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  331. data/vendor/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  332. data/vendor/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  333. data/vendor/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
  334. data/vendor/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
  335. data/vendor/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  336. data/vendor/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  337. data/vendor/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  338. data/vendor/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  339. data/vendor/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
  340. data/vendor/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  341. data/vendor/rspec/spec/spec/mocks/stub_spec.rb +203 -0
  342. data/vendor/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  343. data/vendor/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  344. data/vendor/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
  345. data/vendor/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
  346. data/vendor/rspec/spec/spec/rake/spectask_spec.rb +150 -0
  347. data/vendor/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  348. data/vendor/rspec/spec/spec/runner/command_line_spec.rb +162 -0
  349. data/vendor/rspec/spec/spec/runner/configuration_spec.rb +320 -0
  350. data/vendor/rspec/spec/spec/runner/drb_command_line_spec.rb +146 -0
  351. data/vendor/rspec/spec/spec/runner/empty_file.txt +0 -0
  352. data/vendor/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
  353. data/vendor/rspec/spec/spec/runner/examples.txt +2 -0
  354. data/vendor/rspec/spec/spec/runner/failed.txt +3 -0
  355. data/vendor/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  356. data/vendor/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  357. data/vendor/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  358. data/vendor/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  359. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  360. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  361. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  362. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  363. data/vendor/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  364. data/vendor/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  365. data/vendor/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  366. data/vendor/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  367. data/vendor/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  368. data/vendor/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  369. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  370. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  371. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  372. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  373. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  374. data/vendor/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
  375. data/vendor/rspec/spec/spec/runner/heckler_spec.rb +20 -0
  376. data/vendor/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  377. data/vendor/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
  378. data/vendor/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  379. data/vendor/rspec/spec/spec/runner/option_parser_spec.rb +554 -0
  380. data/vendor/rspec/spec/spec/runner/options_spec.rb +554 -0
  381. data/vendor/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
  382. data/vendor/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  383. data/vendor/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
  384. data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
  385. data/vendor/rspec/spec/spec/runner/reporter_spec.rb +244 -0
  386. data/vendor/rspec/spec/spec/runner/resources/a_bar.rb +0 -0
  387. data/vendor/rspec/spec/spec/runner/resources/a_foo.rb +0 -0
  388. data/vendor/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
  389. data/vendor/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  390. data/vendor/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  391. data/vendor/rspec/spec/spec/runner/spec.opts +2 -0
  392. data/vendor/rspec/spec/spec/runner/spec_drb.opts +2 -0
  393. data/vendor/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  394. data/vendor/rspec/spec/spec/runner_spec.rb +13 -0
  395. data/vendor/rspec/spec/spec_helper.rb +112 -0
  396. data/vendor/rspec/spec/support/macros.rb +29 -0
  397. data/vendor/rspec/spec/support/spec_classes.rb +133 -0
  398. data/vendor/rubyexts/CHANGELOG +2 -0
  399. data/vendor/rubyexts/LICENSE +20 -0
  400. data/vendor/rubyexts/README.textile +0 -0
  401. data/vendor/rubyexts/Rakefile +79 -0
  402. data/vendor/rubyexts/TODO.txt +6 -0
  403. data/vendor/rubyexts/lib/rubyexts.rb +102 -0
  404. data/vendor/rubyexts/lib/rubyexts/array.rb +20 -0
  405. data/vendor/rubyexts/lib/rubyexts/attribute.rb +151 -0
  406. data/vendor/rubyexts/lib/rubyexts/capture_io.rb +32 -0
  407. data/vendor/rubyexts/lib/rubyexts/class.rb +177 -0
  408. data/vendor/rubyexts/lib/rubyexts/colored_string.rb +103 -0
  409. data/vendor/rubyexts/lib/rubyexts/enumerable.rb +30 -0
  410. data/vendor/rubyexts/lib/rubyexts/file.rb +84 -0
  411. data/vendor/rubyexts/lib/rubyexts/hash.rb +180 -0
  412. data/vendor/rubyexts/lib/rubyexts/kernel.rb +91 -0
  413. data/vendor/rubyexts/lib/rubyexts/module.rb +53 -0
  414. data/vendor/rubyexts/lib/rubyexts/object.rb +56 -0
  415. data/vendor/rubyexts/lib/rubyexts/object_space.rb +16 -0
  416. data/vendor/rubyexts/lib/rubyexts/os.rb +89 -0
  417. data/vendor/rubyexts/lib/rubyexts/platform.rb +27 -0
  418. data/vendor/rubyexts/lib/rubyexts/random.rb +25 -0
  419. data/vendor/rubyexts/lib/rubyexts/string.rb +92 -0
  420. data/vendor/rubyexts/lib/rubyexts/time.rb +15 -0
  421. data/vendor/rubyexts/lib/rubyexts/time_dsl.rb +62 -0
  422. data/vendor/rubyexts/lib/rubyexts/try_dup.rb +43 -0
  423. data/vendor/rubyexts/lib/rubyexts/unique_array.rb +16 -0
  424. data/vendor/rubyexts/rubyexts.gemspec +36 -0
  425. data/vendor/rubyexts/script/spec +12 -0
  426. data/vendor/rubyexts/spec/rubyexts/array_spec.rb +19 -0
  427. data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +37 -0
  428. data/vendor/rubyexts/spec/rubyexts/class_spec.rb +1 -0
  429. data/vendor/rubyexts/spec/rubyexts/cli_spec.rb +0 -0
  430. data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +9 -0
  431. data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +52 -0
  432. data/vendor/rubyexts/spec/rubyexts/file_spec.rb +78 -0
  433. data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +91 -0
  434. data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +9 -0
  435. data/vendor/rubyexts/spec/rubyexts/module_spec.rb +0 -0
  436. data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +17 -0
  437. data/vendor/rubyexts/spec/rubyexts/object_spec.rb +57 -0
  438. data/vendor/rubyexts/spec/rubyexts/os_spec.rb +121 -0
  439. data/vendor/rubyexts/spec/rubyexts/platform_spec.rb +0 -0
  440. data/vendor/rubyexts/spec/rubyexts/random_spec.rb +31 -0
  441. data/vendor/rubyexts/spec/rubyexts/string_spec.rb +23 -0
  442. data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +88 -0
  443. data/vendor/rubyexts/spec/rubyexts/time_spec.rb +11 -0
  444. data/vendor/rubyexts/spec/rubyexts/unique_array_spec.rb +0 -0
  445. data/vendor/rubyexts/spec/rubyexts_spec.rb +182 -0
  446. data/vendor/rubyexts/spec/spec.opts +5 -0
  447. data/vendor/rubyexts/spec/spec_helper.rb +16 -0
  448. metadata +510 -0
@@ -0,0 +1,107 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Example
5
+ describe ExampleGroupProxy do
6
+ before(:each) do
7
+ @group = stub("example group").as_null_object
8
+ end
9
+
10
+ attr_reader :group
11
+ def proxy
12
+ @proxy ||= ExampleGroupProxy.new(@group)
13
+ end
14
+
15
+ describe "#description" do
16
+ it "provides the example group's description" do
17
+ group.stub!(:description => "the description")
18
+ proxy.description.should == "the description"
19
+ end
20
+ end
21
+
22
+ describe "#nested_descriptions" do
23
+ it "provides the example group's nested_descriptions" do
24
+ group.stub!(:nested_descriptions => ["the description"])
25
+ proxy.nested_descriptions.should == ["the description"]
26
+ end
27
+ end
28
+
29
+ describe "#filtered_description (DEPRECATED)" do
30
+ before(:each) do
31
+ Spec.stub!(:deprecate)
32
+ end
33
+
34
+ it "is deprecated" do
35
+ Spec.should_receive(:deprecate)
36
+ proxy.filtered_description(/(ignore)/)
37
+ end
38
+
39
+ it "builds the description from the group's nested_descriptions" do
40
+ group.stub!(:nested_descriptions => ["ignore","the","description"])
41
+ proxy.filtered_description(/(ignore)/).should == "the description"
42
+ end
43
+
44
+ it "filters out description parts that match the supplied regexp" do
45
+ group.stub!(:nested_descriptions => ["ignore the","description"])
46
+ proxy.filtered_description(/(ignore )/).should == "the description"
47
+ end
48
+ end
49
+
50
+ describe "#examples" do
51
+ it "provides a collection of example group proxies" do
52
+ group.stub!(:example_proxies => ["array","of","proxies"])
53
+ proxy.examples.should == ["array","of","proxies"]
54
+ end
55
+ end
56
+
57
+ describe "#backtrace (deprecated - use #location)" do
58
+ before(:each) do
59
+ Spec.stub!(:deprecate)
60
+ end
61
+
62
+ it "provides the location of the declaration of this group" do
63
+ group.stub!(:location => "path/to/location:37")
64
+ proxy.backtrace.should == "path/to/location:37"
65
+ end
66
+
67
+ it "warns deprecation" do
68
+ Spec.should_receive(:deprecate)
69
+ group.stub!(:location => "path/to/location:37")
70
+ proxy.backtrace
71
+ end
72
+ end
73
+
74
+ describe "#location" do
75
+ it "provides the location of the declaration of this group" do
76
+ group.stub!(:location => "path/to/location:37")
77
+ proxy.location.should == "path/to/location:37"
78
+ end
79
+ end
80
+
81
+ describe "#options" do
82
+ it "provides the options passed to the example group declaration" do
83
+ group.stub!(:options => {:a => 'b'})
84
+ proxy.options.should == {:a => 'b'}
85
+ end
86
+
87
+ it "excludes :location" do
88
+ group.stub!(:options => {:location => 'b'})
89
+ proxy.options.should == {}
90
+ end
91
+
92
+ it "excludes :scope" do
93
+ group.stub!(:options => {:scope => 'b'})
94
+ proxy.options.should == {}
95
+ end
96
+
97
+ it "preserves the original hash" do
98
+ hash = {:a => 'b', :location => 'here', :scope => 'tiny'}
99
+ group.stub!(:options => hash)
100
+ proxy.options.should == {:a => 'b'}
101
+ hash.should == {:a => 'b', :location => 'here', :scope => 'tiny'}
102
+ end
103
+ end
104
+
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,643 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Example
5
+ class ExampleModuleScopingSpec < ExampleGroup
6
+ describe ExampleGroup, "via a class definition"
7
+
8
+ module Foo
9
+ module Bar
10
+ def self.loaded?; true; end
11
+ end
12
+ end
13
+ include Foo
14
+
15
+ it "should understand module scoping" do
16
+ Bar.should be_loaded
17
+ end
18
+
19
+ @@class_variable = "a class variable"
20
+
21
+ it "can access class variables in examples in Ruby 1.8" do
22
+ with_ruby 1.8 do
23
+ @@class_variable.should == "a class variable"
24
+ end
25
+ end
26
+
27
+ it "can NOT access class variables in examples in Ruby 1.9" do
28
+ with_ruby 1.9 do
29
+ lambda do
30
+ @@class_variable.should == "a class variable"
31
+ end.should raise_error(NameError)
32
+ end
33
+ end
34
+
35
+
36
+ end
37
+
38
+ class ExampleClassVariablePollutionSpec < ExampleGroup
39
+ describe ExampleGroup, "via a class definition without a class variable"
40
+
41
+ it "should not retain class variables from other Example classes" do
42
+ proc do
43
+ @@class_variable
44
+ end.should raise_error
45
+ end
46
+ end
47
+
48
+ describe ExampleGroup, "#pending" do
49
+ it "should raise a Pending error when its block fails" do
50
+ block_ran = false
51
+ lambda {
52
+ pending("something") do
53
+ block_ran = true
54
+ raise "something wrong with my example"
55
+ end
56
+ }.should raise_error(Spec::Example::ExamplePendingError, "something")
57
+ block_ran.should == true
58
+ end
59
+
60
+ it "should raise Spec::Example::PendingExampleFixedError when its block does not fail" do
61
+ block_ran = false
62
+ lambda {
63
+ pending("something") do
64
+ block_ran = true
65
+ end
66
+ }.should raise_error(Spec::Example::PendingExampleFixedError, "Expected pending 'something' to fail. No Error was raised.")
67
+ block_ran.should == true
68
+ end
69
+ end
70
+
71
+ describe ExampleGroup, "#run with failure in example", :shared => true do
72
+ it "should add an example failure to the TestResult" do
73
+ example_group.run(options).should be_false
74
+ end
75
+ end
76
+
77
+ describe ExampleGroup, "#run" do
78
+ with_sandboxed_options do
79
+ attr_reader :example_group, :formatter, :reporter
80
+ before :each do
81
+ method_with_three_args = lambda { |arg1, arg2, arg3| }
82
+ @formatter = mock("formatter", :null_object => true, :example_pending => method_with_three_args)
83
+ options.formatters << formatter
84
+ options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
85
+ @reporter = FakeReporter.new(options)
86
+ options.reporter = reporter
87
+ @example_group = Class.new(ExampleGroupDouble) do
88
+ describe("example")
89
+ it "does nothing" do
90
+ end
91
+ end
92
+ class << example_group
93
+ public :include
94
+ end
95
+ end
96
+
97
+ after :each do
98
+ ExampleGroup.reset
99
+ end
100
+
101
+ it "should not run when there are no examples" do
102
+ example_group = Class.new(ExampleGroupDouble) do
103
+ describe("Foobar")
104
+ end
105
+ example_group.examples.should be_empty
106
+
107
+ reporter = mock("Reporter")
108
+ reporter.should_not_receive(:add_example_group)
109
+ example_group.run(options)
110
+ end
111
+
112
+ it "should report the start of an example run" do
113
+ reporter.should_receive(:example_started) do |example|
114
+ example.should equal(example_group.examples[0])
115
+ end
116
+ example_group.run(options)
117
+ end
118
+
119
+ it "should report the end of an example run" do
120
+ reporter.should_receive(:example_finished) do |example, execution_error|
121
+ example.should equal(example_group.examples[0])
122
+ execution_error.should be_nil
123
+ end
124
+ example_group.run(options)
125
+ end
126
+
127
+ describe "when before_each fails" do
128
+ before(:each) do
129
+ $example_ran = $after_each_ran = false
130
+ @example_group = describe("Foobar") do
131
+ before(:each) {raise}
132
+ it "should not be run" do
133
+ $example_ran = true
134
+ end
135
+ after(:each) do
136
+ $after_each_ran = true
137
+ end
138
+ end
139
+ end
140
+
141
+ it "should not run example block" do
142
+ example_group.run(options)
143
+ $example_ran.should be_false
144
+ end
145
+
146
+ it "should run after_each" do
147
+ example_group.run(options)
148
+ $after_each_ran.should be_true
149
+ end
150
+
151
+ it "should report failure location when in before_each" do
152
+ reporter.should_receive(:example_finished) do |example_group, error|
153
+ error.message.should eql("in before_each")
154
+ end
155
+ example_group.run(options)
156
+ end
157
+ end
158
+
159
+ describe ExampleGroup, "#run on dry run" do
160
+ before do
161
+ @options.dry_run = true
162
+ end
163
+
164
+ it "should not run before(:all) or after(:all)" do
165
+ before_all_ran = false
166
+ after_all_ran = false
167
+ ExampleGroup.before(:all) { before_all_ran = true }
168
+ ExampleGroup.after(:all) { after_all_ran = true }
169
+ example_group.it("should") {}
170
+ example_group.run(options)
171
+ before_all_ran.should be_false
172
+ after_all_ran.should be_false
173
+ end
174
+
175
+ it "should not run example" do
176
+ example_ran = false
177
+ example_group.it("should") {example_ran = true}
178
+ example_group.run(options)
179
+ example_ran.should be_false
180
+ end
181
+ end
182
+
183
+ describe ExampleGroup, "#run with specified examples" do
184
+ attr_reader :examples_that_were_run
185
+ before do
186
+ @examples_that_were_run = []
187
+ end
188
+
189
+ describe "when specified_examples matches entire ExampleGroup" do
190
+ before do
191
+ examples_that_were_run = @examples_that_were_run
192
+ @example_group = Class.new(ExampleGroupDouble) do
193
+ describe("the ExampleGroup")
194
+ it("should be run") do
195
+ examples_that_were_run << 'should be run'
196
+ end
197
+
198
+ it("should also be run") do
199
+ examples_that_were_run << 'should also be run'
200
+ end
201
+ end
202
+ options.parse_example "the ExampleGroup"
203
+ end
204
+
205
+ it "should not run the Examples in the ExampleGroup" do
206
+ example_group.run(options)
207
+ examples_that_were_run.should == ['should be run', 'should also be run']
208
+ end
209
+ end
210
+
211
+ describe ExampleGroup, "#run when specified_examples matches only Example description" do
212
+ before do
213
+ examples_that_were_run = @examples_that_were_run
214
+ @example_group = Class.new(ExampleGroupDouble) do
215
+ describe("example")
216
+ it("should be run") do
217
+ examples_that_were_run << 'should be run'
218
+ end
219
+ end
220
+ options.parse_example "should be run"
221
+ end
222
+
223
+ it "should not run the example" do
224
+ example_group.run(options)
225
+ examples_that_were_run.should == ['should be run']
226
+ end
227
+ end
228
+
229
+ describe ExampleGroup, "#run when specified_examples does not match an Example description" do
230
+ before do
231
+ examples_that_were_run = @examples_that_were_run
232
+ @example_group = Class.new(ExampleGroupDouble) do
233
+ describe("example")
234
+ it("should be something else") do
235
+ examples_that_were_run << 'should be something else'
236
+ end
237
+ end
238
+ options.parse_example "does not match anything"
239
+ end
240
+
241
+ it "should not run the example" do
242
+ example_group.run(options)
243
+ examples_that_were_run.should == []
244
+ end
245
+ end
246
+
247
+ describe ExampleGroup, "#run when specified_examples matches an Example description" do
248
+ before do
249
+ examples_that_were_run = @examples_that_were_run
250
+ @example_group = Class.new(ExampleGroupDouble) do
251
+ describe("example")
252
+ it("should be run") do
253
+ examples_that_were_run << 'should be run'
254
+ end
255
+ it("should not be run") do
256
+ examples_that_were_run << 'should not be run'
257
+ end
258
+ end
259
+ options.parse_example "should be run"
260
+ end
261
+
262
+ it "should run only the example" do
263
+ example_group.run(options)
264
+ examples_that_were_run.should == ["should be run"]
265
+ end
266
+ end
267
+ end
268
+
269
+ describe ExampleGroup, "#run with success" do
270
+ before do
271
+ @special_example_group = Class.new(ExampleGroupDouble)
272
+ ExampleGroupFactory.register(:special, @special_example_group)
273
+ @not_special_example_group = Class.new(ExampleGroupDouble)
274
+ ExampleGroupFactory.register(:not_special, @not_special_example_group)
275
+ end
276
+
277
+ after do
278
+ ExampleGroupFactory.reset
279
+ end
280
+
281
+ it "should send reporter example_group_started" do
282
+ reporter.should_receive(:example_group_started)
283
+ example_group.run(options)
284
+ end
285
+
286
+ it "should run example on run" do
287
+ example_ran = false
288
+ example_group.it("should") {example_ran = true}
289
+ example_group.run(options)
290
+ example_ran.should be_true
291
+ end
292
+
293
+ it "should run before(:all) block only once" do
294
+ before_all_run_count_run_count = 0
295
+ example_group.before(:all) {before_all_run_count_run_count += 1}
296
+ example_group.it("test") {true}
297
+ example_group.it("test2") {true}
298
+ example_group.run(options)
299
+ before_all_run_count_run_count.should == 1
300
+ end
301
+
302
+ it "should run after(:all) block only once" do
303
+ after_all_run_count = 0
304
+ example_group.after(:all) {after_all_run_count += 1}
305
+ example_group.it("test") {true}
306
+ example_group.it("test2") {true}
307
+ example_group.run(options)
308
+ after_all_run_count.should == 1
309
+ @reporter.rspec_verify
310
+ end
311
+
312
+ it "after(:all) should have access to all instance variables defined in before(:all)" do
313
+ context_instance_value_in = "Hello there"
314
+ context_instance_value_out = ""
315
+ example_group.before(:all) { @instance_var = context_instance_value_in }
316
+ example_group.after(:all) { context_instance_value_out = @instance_var }
317
+ example_group.it("test") {true}
318
+ example_group.run(options)
319
+ context_instance_value_in.should == context_instance_value_out
320
+ end
321
+
322
+ it "should copy instance variables from before(:all)'s execution context into spec's execution context" do
323
+ context_instance_value_in = "Hello there"
324
+ context_instance_value_out = ""
325
+ example_group.before(:all) { @instance_var = context_instance_value_in }
326
+ example_group.it("test") {context_instance_value_out = @instance_var}
327
+ example_group.run(options)
328
+ context_instance_value_in.should == context_instance_value_out
329
+ end
330
+
331
+ it "should not add global before callbacks for untargetted example_group" do
332
+ fiddle = []
333
+
334
+ ExampleGroup.before(:all) { fiddle << "Example.before(:all)" }
335
+ ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" }
336
+ @special_example_group.before(:each) { fiddle << "Example.before(:each, :type => :special)" }
337
+ @special_example_group.prepend_before(:each) { fiddle << "Example.prepend_before(:each, :type => :special)" }
338
+ @special_example_group.before(:all) { fiddle << "Example.before(:all, :type => :special)" }
339
+ @special_example_group.prepend_before(:all) { fiddle << "Example.prepend_before(:all, :type => :special)" }
340
+
341
+ example_group = Class.new(ExampleGroupDouble) do
342
+ describe("I'm not special", :type => :not_special)
343
+ it "does nothing"
344
+ end
345
+ example_group.run(options)
346
+ fiddle.should == [
347
+ 'Example.prepend_before(:all)',
348
+ 'Example.before(:all)',
349
+ ]
350
+ end
351
+
352
+ it "should add global before callbacks for targetted example_groups" do
353
+ fiddle = []
354
+
355
+ ExampleGroup.before(:all) { fiddle << "Example.before(:all)" }
356
+ ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" }
357
+ @special_example_group.before(:each) { fiddle << "special.before(:each, :type => :special)" }
358
+ @special_example_group.prepend_before(:each) { fiddle << "special.prepend_before(:each, :type => :special)" }
359
+ @special_example_group.before(:all) { fiddle << "special.before(:all, :type => :special)" }
360
+ @special_example_group.prepend_before(:all) { fiddle << "special.prepend_before(:all, :type => :special)" }
361
+ @special_example_group.append_before(:each) { fiddle << "special.append_before(:each, :type => :special)" }
362
+
363
+ example_group = Class.new(@special_example_group).describe("I'm a special example_group") {}
364
+ example_group.it("test") {true}
365
+ example_group.run(options)
366
+ fiddle.should == [
367
+ 'Example.prepend_before(:all)',
368
+ 'Example.before(:all)',
369
+ 'special.prepend_before(:all, :type => :special)',
370
+ 'special.before(:all, :type => :special)',
371
+ 'special.prepend_before(:each, :type => :special)',
372
+ 'special.before(:each, :type => :special)',
373
+ 'special.append_before(:each, :type => :special)',
374
+ ]
375
+ end
376
+
377
+ it "should order before callbacks from global to local" do
378
+ fiddle = []
379
+ ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" }
380
+ ExampleGroup.before(:all) { fiddle << "Example.before(:all)" }
381
+ example_group.prepend_before(:all) { fiddle << "prepend_before(:all)" }
382
+ example_group.before(:all) { fiddle << "before(:all)" }
383
+ example_group.prepend_before(:each) { fiddle << "prepend_before(:each)" }
384
+ example_group.before(:each) { fiddle << "before(:each)" }
385
+ example_group.run(options)
386
+ fiddle.should == [
387
+ 'Example.prepend_before(:all)',
388
+ 'Example.before(:all)',
389
+ 'prepend_before(:all)',
390
+ 'before(:all)',
391
+ 'prepend_before(:each)',
392
+ 'before(:each)'
393
+ ]
394
+ end
395
+
396
+ it "should order after callbacks from local to global" do
397
+ fiddle = []
398
+ example_group.after(:each) { fiddle << "after(:each)" }
399
+ example_group.append_after(:each) { fiddle << "append_after(:each)" }
400
+ example_group.after(:all) { fiddle << "after(:all)" }
401
+ example_group.append_after(:all) { fiddle << "append_after(:all)" }
402
+ ExampleGroup.after(:all) { fiddle << "Example.after(:all)" }
403
+ ExampleGroup.append_after(:all) { fiddle << "Example.append_after(:all)" }
404
+ example_group.run(options)
405
+ fiddle.should == [
406
+ 'after(:each)',
407
+ 'append_after(:each)',
408
+ 'after(:all)',
409
+ 'append_after(:all)',
410
+ 'Example.after(:all)',
411
+ 'Example.append_after(:all)'
412
+ ]
413
+ end
414
+
415
+ it "should have accessible instance methods from included module" do
416
+ mod1_method_called = false
417
+ mod1 = Module.new do
418
+ define_method :mod1_method do
419
+ mod1_method_called = true
420
+ end
421
+ end
422
+
423
+ mod2_method_called = false
424
+ mod2 = Module.new do
425
+ define_method :mod2_method do
426
+ mod2_method_called = true
427
+ end
428
+ end
429
+
430
+ example_group.include mod1, mod2
431
+
432
+ example_group.it("test") do
433
+ mod1_method
434
+ mod2_method
435
+ end
436
+ example_group.run(options)
437
+ mod1_method_called.should be_true
438
+ mod2_method_called.should be_true
439
+ end
440
+
441
+ it "should include targetted modules included using configuration" do
442
+ mod1 = Module.new
443
+ mod2 = Module.new
444
+ mod3 = Module.new
445
+ Spec::Runner.configuration.include(mod1, mod2)
446
+ Spec::Runner.configuration.include(mod3, :type => :not_special)
447
+
448
+ example_group = Class.new(@special_example_group).describe("I'm special", :type => :special) do
449
+ it "does nothing"
450
+ end
451
+ example_group.run(options)
452
+
453
+ example_group.included_modules.should include(mod1)
454
+ example_group.included_modules.should include(mod2)
455
+ example_group.included_modules.should_not include(mod3)
456
+ end
457
+
458
+ end
459
+
460
+ describe ExampleGroup, "#run with pending example that has a failing assertion" do
461
+ before do
462
+ example_group.it("should be pending") do
463
+ pending("Example fails") {false.should be_true}
464
+ end
465
+ end
466
+
467
+ it "should send example_pending to formatter" do
468
+ @formatter.should_receive(:example_pending).with("example", "should be pending", "Example fails")
469
+ example_group.run(options)
470
+ end
471
+ end
472
+
473
+ describe ExampleGroup, "#run with pending example that does not have a failing assertion" do
474
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
475
+
476
+ before do
477
+ example_group.it("should be pending") do
478
+ pending("Example passes") {true.should be_true}
479
+ end
480
+ end
481
+
482
+ it "should send example_pending to formatter" do
483
+ @formatter.should_receive(:example_pending).with("example", "should be pending", "Example passes")
484
+ example_group.run(options)
485
+ end
486
+ end
487
+
488
+ describe ExampleGroup, "#run when before(:all) fails" do
489
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
490
+
491
+ before do
492
+ ExampleGroup.before(:all) { raise NonStandardError, "before(:all) failure" }
493
+ end
494
+
495
+ it "should not run any example" do
496
+ spec_ran = false
497
+ example_group.it("test") {spec_ran = true}
498
+ example_group.run(options)
499
+ spec_ran.should be_false
500
+ end
501
+
502
+ it "should run ExampleGroup after(:all)" do
503
+ after_all_ran = false
504
+ ExampleGroup.after(:all) { after_all_ran = true }
505
+ example_group.run(options)
506
+ after_all_ran.should be_true
507
+ end
508
+
509
+ it "should run example_group after(:all)" do
510
+ after_all_ran = false
511
+ example_group.after(:all) { after_all_ran = true }
512
+ example_group.run(options)
513
+ after_all_ran.should be_true
514
+ end
515
+
516
+ it "should supply before(:all) as description" do
517
+ @reporter.should_receive(:example_failed) do |example, error|
518
+ example.description.should eql("before(:all)")
519
+ error.message.should eql("before(:all) failure")
520
+ end
521
+
522
+ example_group.it("test") {true}
523
+ example_group.run(options)
524
+ end
525
+ end
526
+
527
+ describe ExampleGroup, "#run when before(:each) fails" do
528
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
529
+
530
+ before do
531
+ ExampleGroup.before(:each) { raise NonStandardError }
532
+ end
533
+
534
+ it "should run after(:all)" do
535
+ after_all_ran = false
536
+ ExampleGroup.after(:all) { after_all_ran = true }
537
+ example_group.run(options)
538
+ after_all_ran.should be_true
539
+ end
540
+ end
541
+
542
+ describe ExampleGroup, "#run when any example fails" do
543
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
544
+
545
+ before do
546
+ example_group.it("should") { raise NonStandardError }
547
+ end
548
+
549
+ it "should run after(:all)" do
550
+ after_all_ran = false
551
+ ExampleGroup.after(:all) { after_all_ran = true }
552
+ example_group.run(options)
553
+ after_all_ran.should be_true
554
+ end
555
+ end
556
+
557
+ describe ExampleGroup, "#run when first after(:each) block fails" do
558
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
559
+
560
+ before do
561
+ class << example_group
562
+ attr_accessor :first_after_ran, :second_after_ran
563
+ end
564
+ example_group.first_after_ran = false
565
+ example_group.second_after_ran = false
566
+
567
+ example_group.after(:each) do
568
+ self.class.second_after_ran = true
569
+ end
570
+ example_group.after(:each) do
571
+ self.class.first_after_ran = true
572
+ raise "first"
573
+ end
574
+ end
575
+
576
+ it "should run second after(:each) block" do
577
+ reporter.should_receive(:example_finished) do |example, error|
578
+ example.should equal(example)
579
+ error.message.should eql("first")
580
+ end
581
+ example_group.run(options)
582
+ example_group.first_after_ran.should be_true
583
+ example_group.second_after_ran.should be_true
584
+ end
585
+ end
586
+
587
+ describe ExampleGroup, "#run when first before(:each) block fails" do
588
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
589
+
590
+ before do
591
+ class << example_group
592
+ attr_accessor :first_before_ran, :second_before_ran
593
+ end
594
+ example_group.first_before_ran = false
595
+ example_group.second_before_ran = false
596
+
597
+ example_group.before(:each) do
598
+ self.class.first_before_ran = true
599
+ raise "first"
600
+ end
601
+ example_group.before(:each) do
602
+ self.class.second_before_ran = true
603
+ end
604
+ end
605
+
606
+ it "should not run second before(:each)" do
607
+ reporter.should_receive(:example_finished) do |name, error|
608
+ error.message.should eql("first")
609
+ end
610
+ example_group.run(options)
611
+ example_group.first_before_ran.should be_true
612
+ example_group.second_before_ran.should be_false
613
+ end
614
+ end
615
+
616
+ describe ExampleGroup, "#run when failure in after(:all)" do
617
+ it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example"
618
+
619
+ before do
620
+ ExampleGroup.after(:all) { raise NonStandardError, "in after(:all)" }
621
+ end
622
+
623
+ it "should return false" do
624
+ example_group.run(options).should be_false
625
+ end
626
+ end
627
+ end
628
+ end
629
+
630
+ describe ExampleGroup, "subclasses" do
631
+ it "should have access to the described_type" do
632
+ example_group = Class.new(ExampleGroupDouble).describe(Array)
633
+ example_group.__send__(:described_type).should == Array
634
+ end
635
+
636
+ it "should concat descriptions when nested" do
637
+ example_group = Class.new(ExampleGroupDouble).describe(Array)
638
+ nested_group = example_group.describe("when empty") do; end
639
+ nested_group.description.to_s.should == "Array when empty"
640
+ end
641
+ end
642
+ end
643
+ end