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,305 @@
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/nested_text_formatter'
3
+
4
+ module Spec
5
+ module Runner
6
+ module Formatter
7
+ describe NestedTextFormatter do
8
+ with_sandboxed_options do
9
+ attr_reader :io, :options, :formatter, :example_group
10
+ before(:each) do
11
+ @io = StringIO.new
12
+ options.stub!(:dry_run).and_return(false)
13
+ options.stub!(:colour).and_return(false)
14
+ @formatter = NestedTextFormatter.new(options, io)
15
+ @example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("ExampleGroup")
16
+ @example_group.example("example") {}
17
+ end
18
+
19
+ describe "where ExampleGroup has no superclass with a description" do
20
+ def example_group_started
21
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
22
+ end
23
+
24
+ before do
25
+ example_group_started
26
+ end
27
+
28
+ describe "#dump_summary" do
29
+ it "should produce standard summary without pending when pending has a 0 count" do
30
+ formatter.dump_summary(3, 2, 1, 0)
31
+ io.string.should == <<-OUT
32
+ ExampleGroup
33
+
34
+ Finished in 3 seconds
35
+
36
+ 2 examples, 1 failure
37
+ OUT
38
+ end
39
+
40
+ it "should produce standard summary" do
41
+ formatter.dump_summary(3, 2, 1, 4)
42
+ io.string.should == <<-OUT
43
+ ExampleGroup
44
+
45
+ Finished in 3 seconds
46
+
47
+ 2 examples, 1 failure, 4 pending
48
+ OUT
49
+ end
50
+ end
51
+
52
+ describe "#example_group_started" do
53
+ describe "when ExampleGroup has a nested description" do
54
+
55
+ describe "when ExampleGroup has no parents with nested description" do
56
+ it "should push ExampleGroup name" do
57
+ io.string.should eql("ExampleGroup\n")
58
+ end
59
+ end
60
+
61
+ describe "when ExampleGroup has one parent with nested description" do
62
+ attr_reader :child_example_group
63
+ def example_group_started
64
+ @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
65
+ end
66
+
67
+ describe "and parent ExampleGroups have not been printed" do
68
+ before do
69
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
70
+ end
71
+
72
+ it "should push ExampleGroup name with two spaces of indentation" do
73
+ io.string.should == <<-OUT
74
+ ExampleGroup
75
+ Child ExampleGroup
76
+ OUT
77
+ end
78
+ end
79
+
80
+ describe "and parent ExampleGroups have been printed" do
81
+ before do
82
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
83
+ io.string = ""
84
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
85
+ end
86
+
87
+ it "should print only the indented ExampleGroup" do
88
+ io.string.should == <<-OUT
89
+ Child ExampleGroup
90
+ OUT
91
+ end
92
+ end
93
+ end
94
+
95
+ describe "when ExampleGroup has two parents with nested description" do
96
+ attr_reader :child_example_group, :grand_child_example_group
97
+ def example_group_started
98
+ @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
99
+ @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
100
+ end
101
+
102
+ describe "and parent ExampleGroups have not been printed" do
103
+ before do
104
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
105
+
106
+ end
107
+
108
+ it "should print the entire nested ExampleGroup heirarchy" do
109
+ io.string.should == <<-OUT
110
+ ExampleGroup
111
+ Child ExampleGroup
112
+ GrandChild ExampleGroup
113
+ OUT
114
+ end
115
+ end
116
+
117
+ describe "and parent ExampleGroups have been printed" do
118
+ before do
119
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
120
+ io.string = ""
121
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
122
+ end
123
+
124
+ it "should print only the indented ExampleGroup" do
125
+ io.string.should == <<-OUT
126
+ GrandChild ExampleGroup
127
+ OUT
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ describe "when ExampleGroup nested description is blank" do
134
+ attr_reader :child_example_group
135
+
136
+ describe "and parent ExampleGroups have not been printed" do
137
+ def example_group_started
138
+ @child_example_group = Class.new(example_group)
139
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
140
+ end
141
+
142
+ it "should render only the parent ExampleGroup" do
143
+ io.string.should == <<-OUT
144
+ ExampleGroup
145
+ OUT
146
+ end
147
+ end
148
+
149
+ describe "and parent ExampleGroups have been printed" do
150
+ def example_group_started
151
+ @child_example_group = Class.new(example_group)
152
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
153
+ io.string = ""
154
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
155
+ end
156
+
157
+ it "should not render anything" do
158
+ io.string.should == ""
159
+ end
160
+ end
161
+ end
162
+
163
+ describe "when ExampleGroup nested description is blank" do
164
+ def example_group_started
165
+ example_group.set_description
166
+ super
167
+ end
168
+
169
+ it "should not render anything" do
170
+ io.string.should == ""
171
+ end
172
+ end
173
+ end
174
+
175
+ describe "#example_failed" do
176
+ describe "where ExampleGroup has no superclasss with a description" do
177
+ describe "when having an error" do
178
+ it "should push failing spec name and failure number" do
179
+ formatter.example_failed(
180
+ example_group.it("spec"),
181
+ 98,
182
+ ::Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new)
183
+ )
184
+ io.string.should == <<-OUT
185
+ ExampleGroup
186
+ spec (FAILED - 98)
187
+ OUT
188
+ end
189
+ end
190
+
191
+ describe "when having an expectation failure" do
192
+ it "should push failing spec name and failure number" do
193
+ formatter.example_failed(
194
+ example_group.it("spec"),
195
+ 98,
196
+ ::Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new)
197
+ )
198
+ io.string.should == <<-OUT
199
+ ExampleGroup
200
+ spec (FAILED - 98)
201
+ OUT
202
+ end
203
+ end
204
+ end
205
+
206
+ describe "where ExampleGroup has two superclasses with a description" do
207
+ attr_reader :child_example_group, :grand_child_example_group
208
+
209
+ def example_group_started
210
+ @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
211
+ @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
212
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
213
+ end
214
+
215
+ describe "when having an error" do
216
+ it "should push failing spec name and failure number" do
217
+ formatter.example_failed(
218
+ grand_child_example_group.it("spec"),
219
+ 98,
220
+ ::Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new)
221
+ )
222
+ io.string.should == <<-OUT
223
+ ExampleGroup
224
+ Child ExampleGroup
225
+ GrandChild ExampleGroup
226
+ spec (FAILED - 98)
227
+ OUT
228
+ end
229
+ end
230
+
231
+ describe "when having an expectation" do
232
+ it "should push failing spec name and failure number" do
233
+ formatter.example_failed(
234
+ grand_child_example_group.it("spec"),
235
+ 98,
236
+ ::Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new)
237
+ )
238
+ io.string.should == <<-OUT
239
+ ExampleGroup
240
+ Child ExampleGroup
241
+ GrandChild ExampleGroup
242
+ spec (FAILED - 98)
243
+ OUT
244
+ end
245
+ end
246
+ end
247
+ end
248
+
249
+ describe "#start" do
250
+ it "should push nothing on start" do
251
+ formatter.start(5)
252
+ io.string.should == <<-OUT
253
+ ExampleGroup
254
+ OUT
255
+ end
256
+ end
257
+
258
+ describe "#start_dump" do
259
+ it "should push nothing on start dump" do
260
+ formatter.start_dump
261
+ io.string.should == <<-OUT
262
+ ExampleGroup
263
+ OUT
264
+ end
265
+ end
266
+
267
+ describe "#example_passed" do
268
+ it "should push passing spec name" do
269
+ formatter.example_passed(example_group.it("spec"))
270
+ io.string.should == <<-OUT
271
+ ExampleGroup
272
+ spec
273
+ OUT
274
+ end
275
+ end
276
+
277
+ describe "#example_pending" do
278
+ it "should push pending example name and message" do
279
+ formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
280
+ io.string.should == <<-OUT
281
+ ExampleGroup
282
+ example (PENDING: reason)
283
+ OUT
284
+ end
285
+
286
+ it "should dump pending" do
287
+ formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
288
+ io.rewind
289
+ formatter.dump_pending
290
+ io.string.should =~ /Pending\:\n\nExampleGroup example \(reason\)\n/
291
+ end
292
+ end
293
+
294
+ def have_single_level_example_group_output(expected_output)
295
+ expected = "ExampleGroup\n #{expected_output}"
296
+ ::Spec::Matchers::SimpleMatcher.new(expected) do |actual|
297
+ actual == expected
298
+ end
299
+ end
300
+ end
301
+ end
302
+ end
303
+ end
304
+ end
305
+ end
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/profile_formatter'
3
+
4
+ module Spec
5
+ module Runner
6
+ module Formatter
7
+ describe ProfileFormatter do
8
+
9
+ treats_method_missing_as_private
10
+
11
+ attr_reader :io, :formatter
12
+ before(:each) do
13
+ @io = StringIO.new
14
+ options = mock('options')
15
+ options.stub!(:colour).and_return(true)
16
+ options.stub!(:autospec).and_return(true)
17
+ @formatter = ProfileFormatter.new(options, io)
18
+ end
19
+
20
+ it "should print a heading" do
21
+ formatter.start(0)
22
+ io.string.should eql("Profiling enabled.\n")
23
+ end
24
+
25
+ it "should record the current time when starting a new example" do
26
+ now = Time.now
27
+ Time.stub!(:now).and_return(now)
28
+ formatter.example_started('should foo')
29
+ formatter.instance_variable_get("@time").should == now
30
+ end
31
+
32
+ it "should correctly record a passed example" do
33
+ now = Time.now
34
+ Time.stub!(:now).and_return(now)
35
+ parent_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe('Parent')
36
+ child_example_group = Class.new(parent_example_group).describe('Child')
37
+
38
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
39
+
40
+ formatter.example_started('when foo')
41
+ Time.stub!(:now).and_return(now+1)
42
+ formatter.example_passed(stub('foo', :description => 'i like ice cream'))
43
+
44
+ formatter.start_dump
45
+ io.string.should include('Parent Child')
46
+ end
47
+
48
+ it "should sort the results in descending order" do
49
+ formatter.instance_variable_set("@example_times", [['a', 'a', 0.1], ['b', 'b', 0.3], ['c', 'c', 0.2]])
50
+ formatter.start_dump
51
+ formatter.instance_variable_get("@example_times").should == [ ['b', 'b', 0.3], ['c', 'c', 0.2], ['a', 'a', 0.1]]
52
+ end
53
+
54
+ it "should print the top 10 results" do
55
+ example_group = Class.new(::Spec::Example::ExampleGroup).describe("ExampleGroup")
56
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
57
+ formatter.instance_variable_set("@time", Time.now)
58
+
59
+ 15.times do
60
+ formatter.example_passed(stub('foo', :description => 'i like ice cream'))
61
+ end
62
+
63
+ io.should_receive(:print).exactly(10)
64
+ formatter.start_dump
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,149 @@
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/progress_bar_formatter'
3
+
4
+ module Spec
5
+ module Runner
6
+ module Formatter
7
+ describe ProgressBarFormatter do
8
+
9
+ treats_method_missing_as_private
10
+
11
+ before(:each) do
12
+ @io = StringIO.new
13
+ @options = mock('options')
14
+ @options.stub!(:dry_run).and_return(false)
15
+ @options.stub!(:colour).and_return(false)
16
+ @options.stub!(:autospec).and_return(false)
17
+ @formatter = ProgressBarFormatter.new(@options, @io)
18
+ end
19
+
20
+ it "should produce line break on start dump" do
21
+ @formatter.start_dump
22
+ @io.string.should eql("\n")
23
+ end
24
+
25
+ it "should produce standard summary without pending when pending has a 0 count" do
26
+ @formatter.dump_summary(3, 2, 1, 0)
27
+ @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
28
+ end
29
+
30
+ it "should produce standard summary" do
31
+ example_group = ExampleGroup.describe("example_group") do
32
+ specify "example" do
33
+ end
34
+ end
35
+ example = example_group.examples.first
36
+ @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
37
+ @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}")
38
+ @io.rewind
39
+ @formatter.dump_summary(3, 2, 1, 1)
40
+ @io.string.should eql(%Q|
41
+ Finished in 3 seconds
42
+
43
+ 2 examples, 1 failure, 1 pending
44
+ |)
45
+ end
46
+
47
+ it "should push green dot for passing spec" do
48
+ @formatter.stub(:output_to_file?) {false}
49
+ @io.stub(:tty?) {true}
50
+ @options.stub(:colour) {true}
51
+ @formatter.example_passed("spec")
52
+ @io.string.should == "\e[32m.\e[0m"
53
+ end
54
+
55
+ it "should push red F for failure spec" do
56
+ @formatter.stub(:output_to_file?) {false}
57
+ @io.stub(:tty?) {true}
58
+ @options.stub(:colour) {true}
59
+ @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new))
60
+ @io.string.should eql("\e[31mF\e[0m")
61
+ end
62
+
63
+ it "should push red F for error spec" do
64
+ @formatter.stub(:output_to_file?) {false}
65
+ @io.stub(:tty?) {true}
66
+ @options.stub(:colour) {true}
67
+ @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new))
68
+ @io.string.should eql("\e[31mF\e[0m")
69
+ end
70
+
71
+ it "should push blue F for fixed pending spec" do
72
+ @formatter.stub(:output_to_file?) {false}
73
+ @io.stub(:tty?) {true}
74
+ @options.stub(:colour) {true}
75
+ @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Example::PendingExampleFixedError.new))
76
+ @io.string.should eql("\e[34mF\e[0m")
77
+ end
78
+
79
+ it "should push nothing on start" do
80
+ @formatter.start(4)
81
+ @io.string.should eql("")
82
+ end
83
+
84
+ it "should ensure two ':' in the first backtrace" do
85
+ backtrace = ["/tmp/x.rb:1", "/tmp/x.rb:2", "/tmp/x.rb:3"]
86
+ @formatter.format_backtrace(backtrace).should eql(<<-EOE.rstrip)
87
+ /tmp/x.rb:1:
88
+ /tmp/x.rb:2:
89
+ /tmp/x.rb:3:
90
+ EOE
91
+
92
+ backtrace = ["/tmp/x.rb:1: message", "/tmp/x.rb:2", "/tmp/x.rb:3"]
93
+ @formatter.format_backtrace(backtrace).should eql(<<-EOE.rstrip)
94
+ /tmp/x.rb:1: message
95
+ /tmp/x.rb:2:
96
+ /tmp/x.rb:3:
97
+ EOE
98
+ end
99
+
100
+ it "should dump pending with file and line number" do
101
+ example_group = ExampleGroup.describe("example_group") do
102
+ specify "example" do
103
+ end
104
+ end
105
+ example = example_group.examples.first
106
+ file = __FILE__
107
+ line = __LINE__ - 5
108
+ @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
109
+ @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}")
110
+ @formatter.dump_pending
111
+ @io.string.should =~ /Pending:\n\nexample_group example \(message\)\n#{file}:#{line}/m
112
+ end
113
+ end
114
+
115
+ describe "ProgressBarFormatter outputting to custom out" do
116
+ before(:each) do
117
+ @out = mock("out")
118
+ @options = mock('options')
119
+ @out.stub!(:puts)
120
+ @formatter = ProgressBarFormatter.new(@options, @out)
121
+ @formatter.class.__send__ :public, :output_to_tty?
122
+ end
123
+
124
+ after(:each) do
125
+ @formatter.class.__send__ :protected, :output_to_tty?
126
+ end
127
+
128
+ it "should not throw NoMethodError on output_to_tty?" do
129
+ @out.should_receive(:tty?).and_raise(NoMethodError)
130
+ @formatter.output_to_tty?.should be_false
131
+ end
132
+ end
133
+
134
+ describe ProgressBarFormatter, "dry run" do
135
+ before(:each) do
136
+ @io = StringIO.new
137
+ options = mock('options')
138
+ options.stub!(:dry_run).and_return(true)
139
+ @formatter = ProgressBarFormatter.new(options, @io)
140
+ end
141
+
142
+ it "should not produce summary on dry run" do
143
+ @formatter.dump_summary(3, 2, 1, 0)
144
+ @io.string.should eql("")
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end