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