rspec 1.3.2 → 2.0.0.a2

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 (398) hide show
  1. data/.document +4 -6
  2. data/.gitignore +4 -14
  3. data/License.txt +1 -1
  4. data/README.markdown +46 -0
  5. data/Rakefile +26 -100
  6. data/lib/rspec.rb +4 -0
  7. data/lib/rspec/version.rb +14 -0
  8. data/rspec.gemspec +46 -19
  9. metadata +72 -673
  10. data/.autotest +0 -5
  11. data/Gemfile +0 -20
  12. data/History.rdoc +0 -1560
  13. data/README.rdoc +0 -44
  14. data/Ruby1.9.rdoc +0 -31
  15. data/TODO.txt +0 -17
  16. data/Upgrade.rdoc +0 -260
  17. data/bin/autospec +0 -4
  18. data/bin/spec +0 -5
  19. data/cucumber.yml +0 -5
  20. data/example_spec.rb +0 -4
  21. data/examples/failing/README.txt +0 -11
  22. data/examples/failing/diffing_spec.rb +0 -36
  23. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  24. data/examples/failing/failure_in_after.rb +0 -10
  25. data/examples/failing/failure_in_before.rb +0 -10
  26. data/examples/failing/mocking_example.rb +0 -38
  27. data/examples/failing/mocking_with_flexmock.rb +0 -26
  28. data/examples/failing/mocking_with_mocha.rb +0 -25
  29. data/examples/failing/mocking_with_rr.rb +0 -27
  30. data/examples/failing/partial_mock_example.rb +0 -18
  31. data/examples/failing/pending_example.rb +0 -7
  32. data/examples/failing/predicate_example.rb +0 -32
  33. data/examples/failing/raising_example.rb +0 -47
  34. data/examples/failing/syntax_error_example.rb +0 -7
  35. data/examples/failing/team_spec.rb +0 -41
  36. data/examples/failing/timeout_behaviour.rb +0 -5
  37. data/examples/passing/custom_formatter.rb +0 -11
  38. data/examples/passing/custom_matchers.rb +0 -54
  39. data/examples/passing/dynamic_spec.rb +0 -7
  40. data/examples/passing/file_accessor.rb +0 -18
  41. data/examples/passing/file_accessor_spec.rb +0 -37
  42. data/examples/passing/filtered_formatter.rb +0 -17
  43. data/examples/passing/filtered_formatter_example.rb +0 -31
  44. data/examples/passing/greeter_spec.rb +0 -30
  45. data/examples/passing/helper_method_example.rb +0 -12
  46. data/examples/passing/implicit_docstrings_example.rb +0 -16
  47. data/examples/passing/io_processor.rb +0 -8
  48. data/examples/passing/io_processor_spec.rb +0 -20
  49. data/examples/passing/mocking_example.rb +0 -25
  50. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  51. data/examples/passing/nested_classes_example.rb +0 -35
  52. data/examples/passing/options_example.rb +0 -29
  53. data/examples/passing/options_formatter.rb +0 -20
  54. data/examples/passing/partial_mock_example.rb +0 -27
  55. data/examples/passing/pending_example.rb +0 -18
  56. data/examples/passing/predicate_example.rb +0 -25
  57. data/examples/passing/shared_example_group_example.rb +0 -43
  58. data/examples/passing/shared_stack_examples.rb +0 -36
  59. data/examples/passing/simple_matcher_example.rb +0 -29
  60. data/examples/passing/stack.rb +0 -36
  61. data/examples/passing/stack_spec.rb +0 -63
  62. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  63. data/examples/passing/stubbing_example.rb +0 -67
  64. data/examples/passing/yielding_example.rb +0 -31
  65. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  66. data/features-pending/cli/conditional_exclusion.feature +0 -39
  67. data/features-pending/heckle/heckle.feature +0 -56
  68. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  69. data/features/command_line/line_number_option.feature +0 -56
  70. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  71. data/features/example_groups/define_example_attribute.feature +0 -41
  72. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  73. data/features/example_groups/implicit_docstrings.feature +0 -59
  74. data/features/example_groups/nested_groups.feature +0 -32
  75. data/features/expectations/customized_message.feature +0 -54
  76. data/features/expectations/expect_change.feature +0 -65
  77. data/features/expectations/expect_error.feature +0 -44
  78. data/features/extensions/custom_example_group.feature +0 -19
  79. data/features/formatters/custom_formatter.feature +0 -30
  80. data/features/formatters/nested_formatter.feature +0 -32
  81. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  82. data/features/interop/examples_and_tests_together.feature +0 -84
  83. data/features/interop/rspec_output.feature +0 -25
  84. data/features/interop/test_but_not_test_unit.feature +0 -26
  85. data/features/interop/test_case_with_should_methods.feature +0 -46
  86. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  87. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  88. data/features/matchers/define_diffable_matcher.feature +0 -26
  89. data/features/matchers/define_matcher.feature +0 -179
  90. data/features/matchers/define_matcher_outside_rspec.feature +0 -37
  91. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  92. data/features/matchers/define_wrapped_matcher.feature +0 -56
  93. data/features/matchers/match_unless_raises.feature +0 -60
  94. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  95. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  96. data/features/mock_framework_integration/use_mocha.feature +0 -27
  97. data/features/mock_framework_integration/use_rr.feature +0 -27
  98. data/features/mocks/block_local_expectations.feature +0 -62
  99. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  100. data/features/mocks/stub_implementation.feature +0 -26
  101. data/features/pending/pending_examples.feature +0 -81
  102. data/features/runner/specify_line_number.feature +0 -32
  103. data/features/spec_helper/spec_helper.feature +0 -25
  104. data/features/step_definitions/running_rspec_steps.rb +0 -52
  105. data/features/step_definitions/stubbing_steps.rb +0 -16
  106. data/features/subject/explicit_subject.feature +0 -31
  107. data/features/subject/implicit_subject.feature +0 -43
  108. data/features/support/env.rb +0 -83
  109. data/features/support/matchers/smart_match.rb +0 -31
  110. data/init.rb +0 -9
  111. data/lib/autotest/discover.rb +0 -3
  112. data/lib/autotest/rspec.rb +0 -54
  113. data/lib/spec.rb +0 -8
  114. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  115. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  116. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  117. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  118. data/lib/spec/autorun.rb +0 -3
  119. data/lib/spec/deprecation.rb +0 -41
  120. data/lib/spec/dsl.rb +0 -1
  121. data/lib/spec/dsl/main.rb +0 -93
  122. data/lib/spec/example.rb +0 -164
  123. data/lib/spec/example/args_and_options.rb +0 -27
  124. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  125. data/lib/spec/example/errors.rb +0 -25
  126. data/lib/spec/example/example_group.rb +0 -10
  127. data/lib/spec/example/example_group_factory.rb +0 -82
  128. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  129. data/lib/spec/example/example_group_methods.rb +0 -287
  130. data/lib/spec/example/example_group_proxy.rb +0 -61
  131. data/lib/spec/example/example_matcher.rb +0 -43
  132. data/lib/spec/example/example_methods.rb +0 -152
  133. data/lib/spec/example/example_proxy.rb +0 -41
  134. data/lib/spec/example/module_reopening_fix.rb +0 -43
  135. data/lib/spec/example/pending.rb +0 -18
  136. data/lib/spec/example/predicate_matchers.rb +0 -46
  137. data/lib/spec/example/shared_example_group.rb +0 -59
  138. data/lib/spec/example/subject.rb +0 -114
  139. data/lib/spec/expectations.rb +0 -35
  140. data/lib/spec/expectations/errors.rb +0 -12
  141. data/lib/spec/expectations/extensions.rb +0 -1
  142. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  143. data/lib/spec/expectations/fail_with.rb +0 -45
  144. data/lib/spec/expectations/handler.rb +0 -50
  145. data/lib/spec/extensions/instance_exec.rb +0 -31
  146. data/lib/spec/interop/test.rb +0 -44
  147. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  148. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  149. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  150. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
  151. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  152. data/lib/spec/matchers.rb +0 -214
  153. data/lib/spec/matchers/be.rb +0 -249
  154. data/lib/spec/matchers/be_close.rb +0 -32
  155. data/lib/spec/matchers/be_instance_of.rb +0 -26
  156. data/lib/spec/matchers/be_kind_of.rb +0 -26
  157. data/lib/spec/matchers/change.rb +0 -151
  158. data/lib/spec/matchers/compatibility.rb +0 -14
  159. data/lib/spec/matchers/dsl.rb +0 -20
  160. data/lib/spec/matchers/eql.rb +0 -42
  161. data/lib/spec/matchers/equal.rb +0 -53
  162. data/lib/spec/matchers/errors.rb +0 -5
  163. data/lib/spec/matchers/exist.rb +0 -16
  164. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  165. data/lib/spec/matchers/has.rb +0 -35
  166. data/lib/spec/matchers/have.rb +0 -152
  167. data/lib/spec/matchers/include.rb +0 -44
  168. data/lib/spec/matchers/match.rb +0 -21
  169. data/lib/spec/matchers/match_array.rb +0 -71
  170. data/lib/spec/matchers/matcher.rb +0 -132
  171. data/lib/spec/matchers/method_missing.rb +0 -9
  172. data/lib/spec/matchers/operator_matcher.rb +0 -83
  173. data/lib/spec/matchers/pretty.rb +0 -37
  174. data/lib/spec/matchers/raise_exception.rb +0 -131
  175. data/lib/spec/matchers/respond_to.rb +0 -71
  176. data/lib/spec/matchers/satisfy.rb +0 -47
  177. data/lib/spec/matchers/simple_matcher.rb +0 -134
  178. data/lib/spec/matchers/throw_symbol.rb +0 -100
  179. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  180. data/lib/spec/mocks.rb +0 -200
  181. data/lib/spec/mocks/argument_expectation.rb +0 -51
  182. data/lib/spec/mocks/argument_matchers.rb +0 -237
  183. data/lib/spec/mocks/error_generator.rb +0 -92
  184. data/lib/spec/mocks/errors.rb +0 -10
  185. data/lib/spec/mocks/example_methods.rb +0 -69
  186. data/lib/spec/mocks/extensions.rb +0 -1
  187. data/lib/spec/mocks/extensions/object.rb +0 -3
  188. data/lib/spec/mocks/framework.rb +0 -15
  189. data/lib/spec/mocks/message_expectation.rb +0 -344
  190. data/lib/spec/mocks/methods.rb +0 -94
  191. data/lib/spec/mocks/mock.rb +0 -71
  192. data/lib/spec/mocks/order_group.rb +0 -29
  193. data/lib/spec/mocks/proxy.rb +0 -254
  194. data/lib/spec/mocks/space.rb +0 -28
  195. data/lib/spec/rake/spectask.rb +0 -230
  196. data/lib/spec/rake/verify_rcov.rb +0 -52
  197. data/lib/spec/ruby.rb +0 -9
  198. data/lib/spec/runner.rb +0 -66
  199. data/lib/spec/runner/backtrace_tweaker.rb +0 -78
  200. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  201. data/lib/spec/runner/command_line.rb +0 -15
  202. data/lib/spec/runner/configuration.rb +0 -202
  203. data/lib/spec/runner/differs/default.rb +0 -93
  204. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  205. data/lib/spec/runner/drb_command_line.rb +0 -32
  206. data/lib/spec/runner/example_group_runner.rb +0 -58
  207. data/lib/spec/runner/extensions/kernel.rb +0 -9
  208. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  209. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  210. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  211. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  212. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  213. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  214. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  215. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  216. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  217. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  218. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  219. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  220. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  221. data/lib/spec/runner/heckle_runner.rb +0 -77
  222. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  223. data/lib/spec/runner/line_number_query.rb +0 -78
  224. data/lib/spec/runner/option_parser.rb +0 -225
  225. data/lib/spec/runner/options.rb +0 -406
  226. data/lib/spec/runner/reporter.rb +0 -171
  227. data/lib/spec/stubs/cucumber.rb +0 -5
  228. data/lib/spec/test/unit.rb +0 -10
  229. data/lib/spec/version.rb +0 -14
  230. data/resources/helpers/cmdline.rb +0 -8
  231. data/resources/rake/examples.rake +0 -7
  232. data/resources/rake/examples_with_rcov.rake +0 -9
  233. data/resources/rake/failing_examples_with_html.rake +0 -9
  234. data/resources/rake/verify_rcov.rake +0 -7
  235. data/spec/README.jruby +0 -15
  236. data/spec/autotest/autotest_helper.rb +0 -8
  237. data/spec/autotest/autotest_matchers.rb +0 -38
  238. data/spec/autotest/discover_spec.rb +0 -8
  239. data/spec/autotest/failed_results_re_spec.rb +0 -31
  240. data/spec/autotest/rspec_spec.rb +0 -126
  241. data/spec/ruby_forker.rb +0 -13
  242. data/spec/spec.opts +0 -6
  243. data/spec/spec/dsl/main_spec.rb +0 -103
  244. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  245. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  246. data/spec/spec/example/example_group_methods_spec.rb +0 -778
  247. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  248. data/spec/spec/example/example_group_spec.rb +0 -632
  249. data/spec/spec/example/example_matcher_spec.rb +0 -85
  250. data/spec/spec/example/example_methods_spec.rb +0 -162
  251. data/spec/spec/example/example_proxy_spec.rb +0 -57
  252. data/spec/spec/example/helper_method_spec.rb +0 -24
  253. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  254. data/spec/spec/example/pending_module_spec.rb +0 -58
  255. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  256. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  257. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  258. data/spec/spec/example/subject_spec.rb +0 -110
  259. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  260. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  261. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  262. data/spec/spec/expectations/handler_spec.rb +0 -206
  263. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
  264. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  265. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  268. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  269. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  270. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  271. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  272. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  273. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  274. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  275. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  276. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  277. data/spec/spec/matchers/be_close_spec.rb +0 -50
  278. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  279. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  280. data/spec/spec/matchers/be_spec.rb +0 -460
  281. data/spec/spec/matchers/change_spec.rb +0 -349
  282. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  283. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  284. data/spec/spec/matchers/dsl_spec.rb +0 -34
  285. data/spec/spec/matchers/eql_spec.rb +0 -33
  286. data/spec/spec/matchers/equal_spec.rb +0 -57
  287. data/spec/spec/matchers/exist_spec.rb +0 -65
  288. data/spec/spec/matchers/has_spec.rb +0 -190
  289. data/spec/spec/matchers/have_spec.rb +0 -381
  290. data/spec/spec/matchers/include_spec.rb +0 -88
  291. data/spec/spec/matchers/match_array_spec.rb +0 -115
  292. data/spec/spec/matchers/match_spec.rb +0 -57
  293. data/spec/spec/matchers/matcher_spec.rb +0 -289
  294. data/spec/spec/matchers/matchers_spec.rb +0 -2
  295. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  296. data/spec/spec/matchers/pretty_spec.rb +0 -22
  297. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  298. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  299. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  300. data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
  301. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  302. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  303. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  304. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  305. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  306. data/spec/spec/mocks/at_least_spec.rb +0 -97
  307. data/spec/spec/mocks/at_most_spec.rb +0 -93
  308. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  309. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  310. data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
  311. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  312. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  313. data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
  314. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  315. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  316. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  317. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  318. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  319. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  320. data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
  321. data/spec/spec/mocks/double_spec.rb +0 -12
  322. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  323. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  324. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  325. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  326. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  327. data/spec/spec/mocks/mock_spec.rb +0 -601
  328. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  329. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  330. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  331. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  332. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  333. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  334. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  335. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  336. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  337. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  338. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  339. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  340. data/spec/spec/mocks/stub_spec.rb +0 -203
  341. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  342. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  343. data/spec/spec/mocks/unstub_spec.rb +0 -127
  344. data/spec/spec/package/bin_spec_spec.rb +0 -16
  345. data/spec/spec/rake/spectask_spec.rb +0 -150
  346. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  347. data/spec/spec/runner/command_line_spec.rb +0 -162
  348. data/spec/spec/runner/configuration_spec.rb +0 -320
  349. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  350. data/spec/spec/runner/empty_file.txt +0 -0
  351. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  352. data/spec/spec/runner/examples.txt +0 -2
  353. data/spec/spec/runner/failed.txt +0 -3
  354. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  355. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  356. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  357. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  358. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  359. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  360. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  361. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  362. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
  363. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  364. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  365. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  366. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  367. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  368. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  370. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  371. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  372. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  373. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
  374. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  375. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  376. data/spec/spec/runner/heckler_spec.rb +0 -20
  377. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  378. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  379. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  380. data/spec/spec/runner/option_parser_spec.rb +0 -551
  381. data/spec/spec/runner/options_spec.rb +0 -554
  382. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  383. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  384. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  385. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  386. data/spec/spec/runner/reporter_spec.rb +0 -244
  387. data/spec/spec/runner/resources/a_bar.rb +0 -0
  388. data/spec/spec/runner/resources/a_foo.rb +0 -0
  389. data/spec/spec/runner/resources/a_spec.rb +0 -1
  390. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  391. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  392. data/spec/spec/runner/spec.opts +0 -2
  393. data/spec/spec/runner/spec_drb.opts +0 -2
  394. data/spec/spec/runner/spec_spaced.opts +0 -2
  395. data/spec/spec/runner_spec.rb +0 -13
  396. data/spec/spec_helper.rb +0 -113
  397. data/spec/support/macros.rb +0 -29
  398. data/spec/support/spec_classes.rb +0 -133
@@ -1,551 +0,0 @@
1
- require 'spec_helper'
2
- require 'spec/runner/resources/custom_example_group_runner'
3
- require 'fakefs/spec_helpers'
4
-
5
- describe "OptionParser" do
6
- before(:each) do
7
- @out = StringIO.new
8
- @err = StringIO.new
9
- @parser = Spec::Runner::OptionParser.new(@err, @out)
10
- end
11
-
12
- def parse(args)
13
- @parser.parse(args)
14
- @parser.options
15
- end
16
-
17
- describe "with fakefs" do
18
- include FakeFS::SpecHelpers
19
-
20
- it "should not use colour by default" do
21
- options = parse([])
22
- options.colour.should == false
23
- end
24
-
25
- it "should use progress bar formatter by default" do
26
- options = parse([])
27
- options.formatters[0].class.should equal(Spec::Runner::Formatter::ProgressBarFormatter)
28
- end
29
- end
30
-
31
- it "should leave the submitted argv alone" do
32
- args = ["--pattern", "foo"]
33
- @parser.order!(args)
34
- args.should == ["--pattern", "foo"]
35
- end
36
-
37
- it "should accept files to include" do
38
- options = parse(["--pattern", "foo"])
39
- options.filename_pattern.should == "foo"
40
- end
41
-
42
- it "should accept debugger option" do
43
- options = parse(["--debugger"])
44
- options.debug.should be_true
45
- end
46
-
47
- it "should accept -u form of debugger option" do
48
- options = parse(["-u"])
49
- options.debug.should be_true
50
- end
51
-
52
- it "should turn off the debugger option if drb is specified later" do
53
- @parser.stub!(:parse_drb).with(no_args).and_return(true)
54
- options = parse(["-u", "--drb"])
55
- options.debug.should be_false
56
- end
57
-
58
- it "should turn off the debugger option if drb is specified first" do
59
- @parser.stub!(:parse_drb).with(no_args).and_return(true)
60
- options = parse(["--drb", "-u"])
61
- options.debug.should be_false
62
- end
63
-
64
- it "should accept port option" do
65
- options = parse(["--port", "9000"])
66
- options.drb_port.should == 9000
67
- end
68
-
69
- it 'should require argument to port option' do
70
- lambda { parse(["--port"]) }.should raise_error(OptionParser::MissingArgument)
71
- end
72
-
73
- it "should accept dry run option" do
74
- options = parse(["--dry-run"])
75
- options.dry_run.should be_true
76
- end
77
-
78
- it "should eval and use custom formatter when none of the builtins" do
79
- options = parse(["--format", "Custom::Formatter"])
80
- options.formatters[0].class.should be(Custom::Formatter)
81
- end
82
-
83
- it "should support formatters with relative and absolute paths, even on windows" do
84
- options = parse([
85
- "--format", "Custom::Formatter:C:\\foo\\bar",
86
- "--format", "Custom::Formatter:foo/bar",
87
- "--format", "Custom::Formatter:foo\\bar",
88
- "--format", "Custom::Formatter:/foo/bar"
89
- ])
90
- options.formatters[0].where.should eql("C:\\foo\\bar")
91
- options.formatters[1].where.should eql("foo/bar")
92
- options.formatters[2].where.should eql("foo\\bar")
93
- options.formatters[3].where.should eql("/foo/bar")
94
- end
95
-
96
- it "should not be verbose by default" do
97
- options = parse([])
98
- options.verbose.should be_nil
99
- end
100
-
101
- it "should print help to stdout if no args and spec_comand?" do
102
- Spec::Runner::OptionParser.stub!(:spec_command?).and_return(true)
103
- options = parse([])
104
- @out.rewind
105
- @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m)
106
- end
107
-
108
- it "should not print help to stdout if no args and NOT spec_command?" do
109
- Spec::Runner::OptionParser.stub!(:spec_command?).and_return(false)
110
- options = parse([])
111
- @out.rewind
112
- @out.read.should == ""
113
- end
114
-
115
- it "should print help to stdout" do
116
- options = parse(["--help"])
117
- @out.rewind
118
- @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m)
119
- end
120
-
121
- it "should print instructions about how to require missing formatter" do
122
- lambda do
123
- options = parse(["--format", "Custom::MissingFormatter"])
124
- options.formatters
125
- end.should raise_error(NameError)
126
- @err.string.should match(/Couldn't find formatter class Custom::MissingFormatter/n)
127
- end
128
-
129
- it "should print version to stdout" do
130
- options = parse(["--version"])
131
- @out.rewind
132
- @out.read.should match(/rspec \d+\.\d+\.\d+/n)
133
- end
134
-
135
- it "should require file when require specified" do
136
- lambda do
137
- parse(["--require", "whatever"])
138
- end.should raise_error(LoadError)
139
- end
140
-
141
- it "should support c option" do
142
- options = parse(["-c"])
143
- options.colour.should be_true
144
- end
145
-
146
- it "should support queens colour option" do
147
- options = parse(["--colour"])
148
- options.colour.should be_true
149
- end
150
-
151
- it "should support us color option" do
152
- options = parse(["--color"])
153
- options.colour.should be_true
154
- end
155
-
156
- it "should support single example with -e option" do
157
- options = parse(["-e", "something or other"])
158
- options.examples.should eql(["something or other"])
159
- end
160
-
161
- it "should support single example with -s option (will be removed when autotest supports -e)" do
162
- options = parse(["-s", "something or other"])
163
- options.examples.should eql(["something or other"])
164
- end
165
-
166
- it "should support single example with --example option" do
167
- options = parse(["--example", "something or other"])
168
- options.examples.should eql(["something or other"])
169
- end
170
-
171
- it "should read several example names from file if --example is given an existing file name" do
172
- options = parse(["--example", File.dirname(__FILE__) + '/examples.txt'])
173
- options.examples.should eql([
174
- "Sir, if you were my husband, I would poison your drink.",
175
- "Madam, if you were my wife, I would drink it."])
176
- end
177
-
178
- it "should read no examples if given an empty file" do
179
- options = parse(["--example", File.dirname(__FILE__) + '/empty_file.txt'])
180
- options.examples.should eql([])
181
- end
182
-
183
- it "should use html formatter when format is h" do
184
- options = parse(["--format", "h"])
185
- options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
186
- end
187
-
188
- it "should use html formatter when format is html" do
189
- options = parse(["--format", "html"])
190
- options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
191
- end
192
-
193
- it "should use silent formatter when format is s" do
194
- options = parse(["--format", "l"])
195
- options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter)
196
- end
197
-
198
- it "should use silent formatter when format is silent" do
199
- options = parse(["--format", "silent"])
200
- options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter)
201
- end
202
-
203
- it "should use html formatter with explicit output when format is html:test.html" do
204
- FileUtils.rm 'test.html' if File.exist?('test.html')
205
- options = parse(["--format", "html:test.html"])
206
- options.formatters # creates the file
207
- File.should exist('test.html')
208
- options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
209
- options.formatters[0].close
210
- FileUtils.rm 'test.html'
211
- end
212
-
213
- it "should use noisy backtrace tweaker with b option" do
214
- options = parse(["-b"])
215
- options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker)
216
- end
217
-
218
- it "should use noisy backtrace tweaker with backtrace option" do
219
- options = parse(["--backtrace"])
220
- options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker)
221
- end
222
-
223
- it "should use quiet backtrace tweaker by default" do
224
- options = parse([])
225
- options.backtrace_tweaker.should be_instance_of(Spec::Runner::QuietBacktraceTweaker)
226
- end
227
-
228
- it "should use specdoc formatter when format is s" do
229
- options = parse(["--format", "s"])
230
- options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter)
231
- end
232
-
233
- it "should use specdoc formatter when format is specdoc" do
234
- options = parse(["--format", "specdoc"])
235
- options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter)
236
- end
237
-
238
- it "should use nested text formatter when format is s" do
239
- options = parse(["--format", "n"])
240
- options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter)
241
- end
242
-
243
- it "should use nested text formatter when format is nested" do
244
- options = parse(["--format", "nested"])
245
- options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter)
246
- end
247
-
248
- it "should support diff option when format is not specified" do
249
- options = parse(["--diff"])
250
- options.diff_format.should == :unified
251
- end
252
-
253
- it "should use unified diff format option when format is unified" do
254
- options = parse(["--diff", "unified"])
255
- options.diff_format.should == :unified
256
- options.differ_class.should equal(Spec::Expectations::Differs::Default)
257
- end
258
-
259
- it "should use context diff format option when format is context" do
260
- options = parse(["--diff", "context"])
261
- options.diff_format.should == :context
262
- options.differ_class.should == Spec::Expectations::Differs::Default
263
- end
264
-
265
- it "should use custom diff format option when format is a custom format" do
266
- Spec::Expectations.differ.should_not be_instance_of(Custom::Differ)
267
-
268
- options = parse(["--diff", "Custom::Differ"])
269
- options.parse_diff "Custom::Differ"
270
- options.diff_format.should == :custom
271
- options.differ_class.should == Custom::Differ
272
- Spec::Expectations.differ.should be_instance_of(Custom::Differ)
273
- end
274
-
275
- it "should print instructions about how to fix missing differ" do
276
- lambda { parse(["--diff", "Custom::MissingFormatter"]) }.should raise_error(NameError)
277
- @err.string.should match(/Couldn't find differ class Custom::MissingFormatter/n)
278
- end
279
-
280
- describe "when attempting a focussed spec" do
281
- attr_reader :file, :dir
282
- before(:each) do
283
- @original_rspec_options = Spec::Runner.options
284
- @file = "#{File.dirname(__FILE__)}/line_number_query/line_number_query_fixture.rb"
285
- @dir = File.dirname(file)
286
- end
287
-
288
- after(:each) do
289
- Spec::Runner.use @original_rspec_options
290
- end
291
-
292
- def parse(args)
293
- options = super
294
- Spec::Runner.use options
295
- options.filename_pattern = "*_fixture.rb"
296
- options
297
- end
298
-
299
- describe 'with the --line flag' do
300
- it "should correctly identify the spec" do
301
- options = parse([file, "--line", "13"])
302
- options.line_number.should == 13
303
- options.examples.should be_empty
304
- options.run_examples
305
- options.examples.should eql(["d"])
306
- end
307
-
308
- it "should fail with error message if specified file is a dir" do
309
- options = parse([dir, "--line", "169"])
310
- options.line_number.should == 169
311
- options.run_examples
312
- @err.string.should match(/You must specify one file, not a directory when providing a line number/n)
313
- end
314
-
315
-
316
- it "should fail with error message if file does not exist" do
317
- options = parse(["some file", "--line", "169"])
318
- proc do
319
- options.run_examples
320
- end.should raise_error
321
- end
322
-
323
- it "should fail with error message if more than one files are specified" do
324
- options = parse([file, file, "--line", "169"])
325
- options.run_examples
326
- @err.string.should match(/Only one file can be specified when providing a line number/n)
327
- end
328
-
329
- it "should fail with error message if using simultaneously with --example" do
330
- options = parse([file, "--example", "some example", "--line", "169"])
331
- options.run_examples
332
- @err.string.should match(/You cannot use --example and specify a line number/n)
333
- end
334
- end
335
-
336
- describe 'with the colon syntax (filename:LINE_NUMBER)' do
337
-
338
- it "should strip the line number from the file name" do
339
- options = parse(["#{file}:13"])
340
- options.files.should include(file)
341
- end
342
-
343
- it "should correctly identify the spec" do
344
- options = parse(["#{file}:13"])
345
- options.line_number.should == 13
346
- options.examples.should be_empty
347
- options.run_examples
348
- options.examples.should eql(["d"])
349
- end
350
-
351
- it "should fail with error message if specified file is a dir" do
352
- options = parse(["#{dir}:169"])
353
- options.line_number.should == 169
354
- options.run_examples
355
- @err.string.should match(/You must specify one file, not a directory when providing a line number/n)
356
- end
357
-
358
-
359
- it "should fail with error message if file does not exist" do
360
- options = parse(["some file:169"])
361
- proc do
362
- options.run_examples
363
- end.should raise_error
364
- end
365
-
366
- it "should fail with error message if more than one files are specified" do
367
- options = parse([file, "#{file}:169"])
368
- options.run_examples
369
- @err.string.should match(/Only one file can be specified when providing a line number/n)
370
- end
371
-
372
- it "should fail with error message if using simultaneously with --example" do
373
- options = parse(["#{file}:169", "--example", "some example"])
374
- options.run_examples
375
- @err.string.should match(/You cannot use --example and specify a line number/n)
376
- end
377
- end
378
-
379
- end
380
-
381
- if [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
382
- it "should barf when --heckle is specified (and platform is windows)" do
383
- lambda do
384
- options = parse(["--heckle", "Spec"])
385
- end.should raise_error(StandardError, /Heckle is not supported/)
386
- end
387
- elsif Spec::Ruby.version.to_f == 1.9
388
- it "should barf when --heckle is specified (and platform is Ruby 1.9)" do
389
- lambda do
390
- options = parse(["--heckle", "Spec"])
391
- end.should raise_error(StandardError, /Heckle is not supported/)
392
- end
393
- else
394
- it "should heckle when --heckle is specified (and platform is not windows)" do
395
- options = parse(["--heckle", "Spec"])
396
- options.heckle_runner.should be_instance_of(Spec::Runner::HeckleRunner)
397
- end
398
- end
399
-
400
- it "should read options from file when --options is specified" do
401
- options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
402
- options.diff_format.should_not be_nil
403
- options.colour.should be_true
404
- end
405
-
406
- it "should default the formatter to ProgressBarFormatter when using options file" do
407
- options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
408
- options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::ProgressBarFormatter)
409
- end
410
-
411
- it "should run parse drb after parsing options" do
412
- @parser.should_receive(:parse_drb).with(no_args).and_return(true)
413
- options = parse(["--options", File.dirname(__FILE__) + "/spec_drb.opts"])
414
- end
415
-
416
- it "should send all the arguments other than --drb back to the parser after parsing options" do
417
- Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options|
418
- options.argv.should == ["example_file.rb", "--colour"]
419
- end
420
- options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])
421
- end
422
-
423
- it "runs specs locally if no drb is running when --drb is specified" do
424
- Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false)
425
- options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])
426
- options.__send__(:examples_should_be_run?).should be_true
427
- end
428
-
429
- it "says its running specs locally if no drb is running when --drb is specified" do
430
- Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false)
431
- options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])
432
- options.error_stream.rewind
433
- options.error_stream.string.should =~ /Running specs locally/
434
- end
435
-
436
- it "does not run specs locally if drb is running when --drb is specified" do
437
- Spec::Runner::DrbCommandLine.should_receive(:run).and_return(true)
438
- options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])
439
- options.__send__(:examples_should_be_run?).should be_false
440
- end
441
-
442
- it "should read spaced and multi-line options from file when --options is specified" do
443
- options = parse(["--options", File.dirname(__FILE__) + "/spec_spaced.opts"])
444
- options.diff_format.should_not be_nil
445
- options.colour.should be_true
446
- options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::SpecdocFormatter)
447
- end
448
-
449
- it "should save config to file when --generate-options is specified" do
450
- FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts')
451
- options = parse(["--colour", "--generate-options", "test.spec.opts", "--diff"])
452
- IO.read('test.spec.opts').should == "--colour\n--diff\n"
453
- FileUtils.rm 'test.spec.opts'
454
- end
455
-
456
- it "should save config to file when -G is specified" do
457
- FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts')
458
- options = parse(["--colour", "-G", "test.spec.opts", "--diff"])
459
- IO.read('test.spec.opts').should == "--colour\n--diff\n"
460
- FileUtils.rm 'test.spec.opts'
461
- end
462
-
463
- it "when --drb is specified, calls DrbCommandLine all of the other ARGV arguments" do
464
- options = Spec::Runner::OptionParser.parse([
465
- "some/spec.rb", "--diff", "--colour"
466
- ], @err, @out)
467
- Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options|
468
- options.argv.should == ["some/spec.rb", "--diff", "--colour"]
469
- end
470
- parse(["some/spec.rb", "--diff", "--drb", "--colour"])
471
- end
472
-
473
- it "should reverse spec order when --reverse is specified" do
474
- options = parse(["some/spec.rb", "--reverse"])
475
- end
476
-
477
- it "should set an mtime comparator when --loadby mtime" do
478
- options = parse(["--loadby", 'mtime'])
479
- runner = Spec::Runner::ExampleGroupRunner.new(options)
480
- Spec::Runner::ExampleGroupRunner.should_receive(:new).
481
- with(options).
482
- and_return(runner)
483
- runner.should_receive(:load_files).with(["most_recent_spec.rb", "command_line_spec.rb"])
484
-
485
- Dir.chdir(File.dirname(__FILE__)) do
486
- options.files << 'command_line_spec.rb'
487
- options.files << 'most_recent_spec.rb'
488
- FileUtils.touch "most_recent_spec.rb"
489
- options.run_examples
490
- FileUtils.rm "most_recent_spec.rb"
491
- end
492
- end
493
-
494
- it "should use the standard runner by default" do
495
- runner = ::Spec::Runner::ExampleGroupRunner.new(@parser.options)
496
- ::Spec::Runner::ExampleGroupRunner.should_receive(:new).
497
- with(@parser.options).
498
- and_return(runner)
499
- options = parse([])
500
- options.run_examples
501
- end
502
-
503
- it "should use a custom runner when given" do
504
- runner = Custom::ExampleGroupRunner.new(@parser.options, nil)
505
- Custom::ExampleGroupRunner.should_receive(:new).
506
- with(@parser.options, nil).
507
- and_return(runner)
508
- options = parse(["--runner", "Custom::ExampleGroupRunner"])
509
- options.run_examples
510
- end
511
-
512
- it "should use a custom runner with extra options" do
513
- runner = Custom::ExampleGroupRunner.new(@parser.options, 'something')
514
- Custom::ExampleGroupRunner.should_receive(:new).
515
- with(@parser.options, 'something').
516
- and_return(runner)
517
- options = parse(["--runner", "Custom::ExampleGroupRunner:something"])
518
- options.run_examples
519
- end
520
-
521
- it "sets options.autospec to true with --autospec" do
522
- options = parse(["--autospec"])
523
- options.autospec.should be(true)
524
- end
525
-
526
- describe "implicitly loading spec/spec.opts" do
527
- include FakeFS::SpecHelpers
528
-
529
- it "uses spec/spec.opts if present" do
530
- File.open('spec/spec.opts', 'w') { |f| f.write "--colour" }
531
- options = parse(['ignore.rb'])
532
- options.colour.should be(true)
533
- end
534
-
535
- it "does not try to load spec/spec.opts if not present" do
536
- FileUtils.rm 'spec/spec.opts'
537
- options = parse(['ignore.rb'])
538
- options.colour.should be(false)
539
- end
540
-
541
- it "uses specified opts if supplied" do
542
- options = nil
543
- File.open("spec/spec.opts",'w') { |f| f.write "" }
544
- File.open("spec/alternate.opts",'w') { |f| f.write "--colour" }
545
- options = parse(['-O','spec/alternate.opts'])
546
- options.colour.should be(true)
547
- end
548
- end
549
-
550
-
551
- end