opal-connect-rspec 0.5.0
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.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.gitmodules +15 -0
- data/.travis.yml +51 -0
- data/.yardopts +5 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile +19 -0
- data/README.md +325 -0
- data/Rakefile +169 -0
- data/config.ru +15 -0
- data/example/Gemfile +4 -0
- data/example/README.md +13 -0
- data/example/Rakefile +8 -0
- data/example/opal/user.rb +11 -0
- data/example/spec/user_spec.rb +15 -0
- data/gemfiles/opal_master.gemfile +18 -0
- data/lib/opal-rspec.rb +2 -0
- data/lib/opal/rspec.rb +39 -0
- data/lib/opal/rspec/cached_environment.rb +25 -0
- data/lib/opal/rspec/post_rack_locator.rb +20 -0
- data/lib/opal/rspec/pre_rack_locator.rb +32 -0
- data/lib/opal/rspec/rake_task.rb +132 -0
- data/lib/opal/rspec/sprockets_environment.rb +37 -0
- data/lib/opal/rspec/version.rb +5 -0
- data/opal-rspec.gemspec +21 -0
- data/opal/opal-rspec.rb +1 -0
- data/opal/opal/rspec.rb +23 -0
- data/opal/opal/rspec/async.rb +5 -0
- data/opal/opal/rspec/async/async_example.rb +96 -0
- data/opal/opal/rspec/async/example_group.rb +96 -0
- data/opal/opal/rspec/async/hooks.rb +10 -0
- data/opal/opal/rspec/async/legacy.rb +50 -0
- data/opal/opal/rspec/async/reporter.rb +9 -0
- data/opal/opal/rspec/fixes.rb +5 -0
- data/opal/opal/rspec/fixes/opal.rb +5 -0
- data/opal/opal/rspec/fixes/opal/class.rb +8 -0
- data/opal/opal/rspec/fixes/opal/compatibility.rb +228 -0
- data/opal/opal/rspec/fixes/opal/corelib.rb +3 -0
- data/opal/opal/rspec/fixes/opal/corelib/error.rb +61 -0
- data/opal/opal/rspec/fixes/opal/corelib/regexp.rb +92 -0
- data/opal/opal/rspec/fixes/opal/corelib/struct.rb +260 -0
- data/opal/opal/rspec/fixes/opal/kernel.rb +80 -0
- data/opal/opal/rspec/fixes/opal/stdlib.rb +2 -0
- data/opal/opal/rspec/fixes/opal/stdlib/pp.rb +23 -0
- data/opal/opal/rspec/fixes/opal/stdlib/set.rb +36 -0
- data/opal/opal/rspec/fixes/rspec.rb +7 -0
- data/opal/opal/rspec/fixes/rspec/caller_filter.rb +6 -0
- data/opal/opal/rspec/fixes/rspec/core.rb +9 -0
- data/opal/opal/rspec/fixes/rspec/core/configuration.rb +11 -0
- data/opal/opal/rspec/fixes/rspec/core/example.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/example_group.rb +9 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters.rb +6 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +11 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/loader.rb +38 -0
- data/opal/opal/rspec/fixes/rspec/core/metadata.rb +39 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications.rb +3 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +30 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +26 -0
- data/opal/opal/rspec/fixes/rspec/core/ordering.rb +1 -0
- data/opal/opal/rspec/fixes/rspec/core/ordering/random.rb +13 -0
- data/opal/opal/rspec/fixes/rspec/core/reporter.rb +14 -0
- data/opal/opal/rspec/fixes/rspec/core/warnings.rb +18 -0
- data/opal/opal/rspec/fixes/rspec/example_groups.rb +49 -0
- data/opal/opal/rspec/fixes/rspec/expectations.rb +2 -0
- data/opal/opal/rspec/fixes/rspec/expectations/fail_with.rb +21 -0
- data/opal/opal/rspec/fixes/rspec/expectations/syntax.rb +25 -0
- data/opal/opal/rspec/fixes/rspec/matchers.rb +2 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/all.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/start_and_end_with.rb +42 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +21 -0
- data/opal/opal/rspec/fixes/rspec/matchers/pretty.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/mocks.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/mocks/error_generator.rb +40 -0
- data/opal/opal/rspec/fixes/rspec/mocks/space.rb +37 -0
- data/opal/opal/rspec/fixes/rspec/mocks/test_double.rb +39 -0
- data/opal/opal/rspec/fixes/rspec/mocks/verifying_double.rb +29 -0
- data/opal/opal/rspec/fixes/rspec/support.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/support/encoded_string.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/support/fuzzy_matcher.rb +23 -0
- data/opal/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +7 -0
- data/opal/opal/rspec/fixes/rspec/support/ruby_features.rb +8 -0
- data/opal/opal/rspec/fixes/rspec/support/warnings.rb +18 -0
- data/opal/opal/rspec/formatter/browser_formatter.rb +38 -0
- data/opal/opal/rspec/formatter/document_io.rb +27 -0
- data/opal/opal/rspec/formatter/element.rb +100 -0
- data/opal/opal/rspec/formatter/html_printer.rb +121 -0
- data/opal/opal/rspec/formatter/noop_flush_string_io.rb +9 -0
- data/opal/opal/rspec/formatter/opal_closed_tty_io.rb +27 -0
- data/opal/opal/rspec/pre_require_fixes.rb +11 -0
- data/opal/opal/rspec/requires.rb +145 -0
- data/opal/opal/rspec/runner.rb +91 -0
- data/opal/opal/rspec/spec_opts.rb.erb +28 -0
- data/opal/opal/rspec/sprockets_runner.rb.erb +13 -0
- data/rspec-core/benchmarks/call_v_yield.rb +81 -0
- data/rspec-core/benchmarks/check_inclusion.rb +125 -0
- data/rspec-core/benchmarks/define_method_v_attr_reader_v_def.rb +81 -0
- data/rspec-core/benchmarks/eager_vs_lazy_metadata.rb +126 -0
- data/rspec-core/benchmarks/eager_vs_lazy_metadata/define_examples.rb +22 -0
- data/rspec-core/benchmarks/filter_object.rb +35 -0
- data/rspec-core/benchmarks/index_v_take_while.rb +47 -0
- data/rspec-core/benchmarks/map_then_flatten_vs_flat_map_benchmarks.rb +94 -0
- data/rspec-core/benchmarks/require_relative_v_require.rb +75 -0
- data/rspec-core/benchmarks/respond_to_v_defined.rb +72 -0
- data/rspec-core/benchmarks/several_regexps_v_one_big_one.rb +86 -0
- data/rspec-core/benchmarks/sort_by_v_shuffle.rb +83 -0
- data/rspec-core/benchmarks/to_proc_v_not_to_proc.rb +539 -0
- data/rspec-core/features/step_definitions/additional_cli_steps.rb +126 -0
- data/rspec-core/features/step_definitions/core_standalone_steps.rb +12 -0
- data/rspec-core/features/support/env.rb +21 -0
- data/rspec-core/features/support/require_expect_syntax_in_aruba_specs.rb +29 -0
- data/rspec-core/features/support/rubinius.rb +6 -0
- data/rspec-core/lib/rspec/autorun.rb +2 -0
- data/rspec-core/lib/rspec/core.rb +169 -0
- data/rspec-core/lib/rspec/core/backport_random.rb +336 -0
- data/rspec-core/lib/rspec/core/backtrace_formatter.rb +66 -0
- data/rspec-core/lib/rspec/core/configuration.rb +1440 -0
- data/rspec-core/lib/rspec/core/configuration_options.rb +173 -0
- data/rspec-core/lib/rspec/core/drb.rb +111 -0
- data/rspec-core/lib/rspec/core/dsl.rb +93 -0
- data/rspec-core/lib/rspec/core/example.rb +502 -0
- data/rspec-core/lib/rspec/core/example_group.rb +606 -0
- data/rspec-core/lib/rspec/core/filter_manager.rb +259 -0
- data/rspec-core/lib/rspec/core/flat_map.rb +18 -0
- data/rspec-core/lib/rspec/core/formatters.rb +240 -0
- data/rspec-core/lib/rspec/core/formatters/base_formatter.rb +67 -0
- data/rspec-core/lib/rspec/core/formatters/base_text_formatter.rb +76 -0
- data/rspec-core/lib/rspec/core/formatters/console_codes.rb +64 -0
- data/rspec-core/lib/rspec/core/formatters/deprecation_formatter.rb +222 -0
- data/rspec-core/lib/rspec/core/formatters/documentation_formatter.rb +68 -0
- data/rspec-core/lib/rspec/core/formatters/helpers.rb +87 -0
- data/rspec-core/lib/rspec/core/formatters/html_formatter.rb +149 -0
- data/rspec-core/lib/rspec/core/formatters/html_printer.rb +403 -0
- data/rspec-core/lib/rspec/core/formatters/json_formatter.rb +94 -0
- data/rspec-core/lib/rspec/core/formatters/profile_formatter.rb +65 -0
- data/rspec-core/lib/rspec/core/formatters/progress_formatter.rb +28 -0
- data/rspec-core/lib/rspec/core/formatters/protocol.rb +163 -0
- data/rspec-core/lib/rspec/core/formatters/snippet_extractor.rb +104 -0
- data/rspec-core/lib/rspec/core/hooks.rb +591 -0
- data/rspec-core/lib/rspec/core/memoized_helpers.rb +472 -0
- data/rspec-core/lib/rspec/core/metadata.rb +437 -0
- data/rspec-core/lib/rspec/core/metadata_filter.rb +95 -0
- data/rspec-core/lib/rspec/core/minitest_assertions_adapter.rb +28 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/rspec-core/lib/rspec/core/notifications.rb +542 -0
- data/rspec-core/lib/rspec/core/option_parser.rb +222 -0
- data/rspec-core/lib/rspec/core/ordering.rb +155 -0
- data/rspec-core/lib/rspec/core/pending.rb +163 -0
- data/rspec-core/lib/rspec/core/project_initializer.rb +48 -0
- data/rspec-core/lib/rspec/core/project_initializer/spec/spec_helper.rb +89 -0
- data/rspec-core/lib/rspec/core/rake_task.rb +187 -0
- data/rspec-core/lib/rspec/core/reporter.rb +149 -0
- data/rspec-core/lib/rspec/core/ruby_project.rb +45 -0
- data/rspec-core/lib/rspec/core/runner.rb +158 -0
- data/rspec-core/lib/rspec/core/shared_context.rb +55 -0
- data/rspec-core/lib/rspec/core/shared_example_group.rb +182 -0
- data/rspec-core/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/rspec-core/lib/rspec/core/version.rb +9 -0
- data/rspec-core/lib/rspec/core/warnings.rb +40 -0
- data/rspec-core/lib/rspec/core/world.rb +183 -0
- data/rspec-core/spec/command_line/order_spec.rb +213 -0
- data/rspec-core/spec/rspec/core/backtrace_formatter_spec.rb +306 -0
- data/rspec-core/spec/rspec/core/configuration_options_spec.rb +425 -0
- data/rspec-core/spec/rspec/core/configuration_spec.rb +1963 -0
- data/rspec-core/spec/rspec/core/drb_spec.rb +278 -0
- data/rspec-core/spec/rspec/core/dsl_spec.rb +85 -0
- data/rspec-core/spec/rspec/core/example_execution_result_spec.rb +142 -0
- data/rspec-core/spec/rspec/core/example_group_constants_spec.rb +16 -0
- data/rspec-core/spec/rspec/core/example_group_spec.rb +1621 -0
- data/rspec-core/spec/rspec/core/example_spec.rb +662 -0
- data/rspec-core/spec/rspec/core/failed_example_notification_spec.rb +25 -0
- data/rspec-core/spec/rspec/core/filter_manager_spec.rb +299 -0
- data/rspec-core/spec/rspec/core/formatters/base_text_formatter_spec.rb +182 -0
- data/rspec-core/spec/rspec/core/formatters/console_codes_spec.rb +65 -0
- data/rspec-core/spec/rspec/core/formatters/deprecation_formatter_spec.rb +225 -0
- data/rspec-core/spec/rspec/core/formatters/documentation_formatter_spec.rb +111 -0
- data/rspec-core/spec/rspec/core/formatters/helpers_spec.rb +104 -0
- data/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb +111 -0
- data/rspec-core/spec/rspec/core/formatters/json_formatter_spec.rb +183 -0
- data/rspec-core/spec/rspec/core/formatters/profile_formatter_spec.rb +99 -0
- data/rspec-core/spec/rspec/core/formatters/progress_formatter_spec.rb +55 -0
- data/rspec-core/spec/rspec/core/formatters/snippet_extractor_spec.rb +26 -0
- data/rspec-core/spec/rspec/core/formatters_spec.rb +160 -0
- data/rspec-core/spec/rspec/core/hooks_filtering_spec.rb +227 -0
- data/rspec-core/spec/rspec/core/hooks_spec.rb +447 -0
- data/rspec-core/spec/rspec/core/memoized_helpers_spec.rb +537 -0
- data/rspec-core/spec/rspec/core/metadata_filter_spec.rb +181 -0
- data/rspec-core/spec/rspec/core/metadata_spec.rb +642 -0
- data/rspec-core/spec/rspec/core/notifications_spec.rb +92 -0
- data/rspec-core/spec/rspec/core/option_parser_spec.rb +270 -0
- data/rspec-core/spec/rspec/core/ordering_spec.rb +102 -0
- data/rspec-core/spec/rspec/core/pending_example_spec.rb +221 -0
- data/rspec-core/spec/rspec/core/pending_spec.rb +8 -0
- data/rspec-core/spec/rspec/core/project_initializer_spec.rb +123 -0
- data/rspec-core/spec/rspec/core/rake_task_spec.rb +351 -0
- data/rspec-core/spec/rspec/core/random_spec.rb +47 -0
- data/rspec-core/spec/rspec/core/reporter_spec.rb +198 -0
- data/rspec-core/spec/rspec/core/resources/a_bar.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/a_foo.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/a_spec.rb +1 -0
- data/rspec-core/spec/rspec/core/resources/acceptance/bar.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/acceptance/foo_spec.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
- data/rspec-core/spec/rspec/core/resources/formatter_specs.rb +58 -0
- data/rspec-core/spec/rspec/core/resources/utf8_encoded.rb +9 -0
- data/rspec-core/spec/rspec/core/rspec_matchers_spec.rb +45 -0
- data/rspec-core/spec/rspec/core/ruby_project_spec.rb +26 -0
- data/rspec-core/spec/rspec/core/runner_spec.rb +309 -0
- data/rspec-core/spec/rspec/core/shared_context_spec.rb +102 -0
- data/rspec-core/spec/rspec/core/shared_example_group_spec.rb +268 -0
- data/rspec-core/spec/rspec/core/warnings_spec.rb +72 -0
- data/rspec-core/spec/rspec/core/world_spec.rb +142 -0
- data/rspec-core/spec/rspec/core_spec.rb +103 -0
- data/rspec-core/spec/spec_helper.rb +89 -0
- data/rspec-core/spec/support/config_options_helper.rb +13 -0
- data/rspec-core/spec/support/fake_minitest/minitest.rb +0 -0
- data/rspec-core/spec/support/fake_minitest/minitest/minitest_assertions.rb +4 -0
- data/rspec-core/spec/support/fake_minitest/test/unit/assertions.rb +6 -0
- data/rspec-core/spec/support/formatter_support.rb +263 -0
- data/rspec-core/spec/support/helper_methods.rb +26 -0
- data/rspec-core/spec/support/isolated_home_directory.rb +16 -0
- data/rspec-core/spec/support/matchers.rb +103 -0
- data/rspec-core/spec/support/mathn_integration_support.rb +12 -0
- data/rspec-core/spec/support/sandboxing.rb +50 -0
- data/rspec-core/spec/support/shared_example_groups.rb +43 -0
- data/rspec-core/spec/support/spec_files.rb +44 -0
- data/rspec-expectations/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +253 -0
- data/rspec-expectations/benchmarks/autoload_v_require.rb +25 -0
- data/rspec-expectations/benchmarks/cloning_matchers.rb +19 -0
- data/rspec-expectations/benchmarks/default_messages_as_methods_v_blocks.rb +27 -0
- data/rspec-expectations/benchmarks/example_spec.rb +9 -0
- data/rspec-expectations/benchmarks/include_v_superclass.rb +39 -0
- data/rspec-expectations/benchmarks/match_array/failing_with_distinct_items.rb +147 -0
- data/rspec-expectations/benchmarks/match_array/failing_with_duplicate_items.rb +122 -0
- data/rspec-expectations/benchmarks/match_array/passing_with_distinct_items.rb +154 -0
- data/rspec-expectations/benchmarks/match_array/passing_with_duplicate_items.rb +132 -0
- data/rspec-expectations/benchmarks/match_array/rubyprof/passing_with_distinct_items.rb +9 -0
- data/rspec-expectations/benchmarks/matcher_dsl_vs_classes.rb +180 -0
- data/rspec-expectations/benchmarks/method_to_proc.rb +72 -0
- data/rspec-expectations/benchmarks/set_vs_array_include.rb +68 -0
- data/rspec-expectations/features/step_definitions/additional_cli_steps.rb +22 -0
- data/rspec-expectations/features/support/disallow_certain_apis.rb +34 -0
- data/rspec-expectations/features/support/env.rb +21 -0
- data/rspec-expectations/features/support/rubinius.rb +6 -0
- data/rspec-expectations/lib/rspec/expectations.rb +68 -0
- data/rspec-expectations/lib/rspec/expectations/configuration.rb +147 -0
- data/rspec-expectations/lib/rspec/expectations/expectation_target.rb +119 -0
- data/rspec-expectations/lib/rspec/expectations/fail_with.rb +34 -0
- data/rspec-expectations/lib/rspec/expectations/handler.rb +167 -0
- data/rspec-expectations/lib/rspec/expectations/minitest_integration.rb +17 -0
- data/rspec-expectations/lib/rspec/expectations/syntax.rb +132 -0
- data/rspec-expectations/lib/rspec/expectations/version.rb +8 -0
- data/rspec-expectations/lib/rspec/matchers.rb +967 -0
- data/rspec-expectations/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/rspec-expectations/lib/rspec/matchers/built_in.rb +52 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/all.rb +85 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/base_matcher.rb +132 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be.rb +277 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/change.rb +337 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/compound.rb +258 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/contain_exactly.rb +249 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/eq.rb +75 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/exist.rb +86 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/has.rb +101 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/have_attributes.rb +84 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/include.rb +105 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/match.rb +29 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/operators.rb +119 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/output.rb +152 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/raise_error.rb +174 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/respond_to.rb +91 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/satisfy.rb +39 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/start_and_end_with.rb +82 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/yield.rb +420 -0
- data/rspec-expectations/lib/rspec/matchers/composable.rb +183 -0
- data/rspec-expectations/lib/rspec/matchers/dsl.rb +391 -0
- data/rspec-expectations/lib/rspec/matchers/generated_descriptions.rb +42 -0
- data/rspec-expectations/lib/rspec/matchers/matcher_delegator.rb +33 -0
- data/rspec-expectations/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/rspec-expectations/lib/rspec/matchers/pretty.rb +77 -0
- data/rspec-expectations/spec/rspec/expectations/configuration_spec.rb +226 -0
- data/rspec-expectations/spec/rspec/expectations/expectation_target_spec.rb +147 -0
- data/rspec-expectations/spec/rspec/expectations/extensions/kernel_spec.rb +69 -0
- data/rspec-expectations/spec/rspec/expectations/fail_with_spec.rb +73 -0
- data/rspec-expectations/spec/rspec/expectations/handler_spec.rb +200 -0
- data/rspec-expectations/spec/rspec/expectations/minitest_integration_spec.rb +25 -0
- data/rspec-expectations/spec/rspec/expectations/syntax_spec.rb +93 -0
- data/rspec-expectations/spec/rspec/expectations_spec.rb +15 -0
- data/rspec-expectations/spec/rspec/matchers/aliased_matcher_spec.rb +113 -0
- data/rspec-expectations/spec/rspec/matchers/aliases_spec.rb +455 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/all_spec.rb +212 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/base_matcher_spec.rb +140 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_between_spec.rb +157 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_instance_of_spec.rb +61 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_kind_of_spec.rb +39 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_spec.rb +685 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_within_spec.rb +139 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/change_spec.rb +829 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/compound_spec.rb +537 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/contain_exactly_spec.rb +556 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/cover_spec.rb +67 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/eq_spec.rb +176 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/eql_spec.rb +39 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/equal_spec.rb +130 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/exist_spec.rb +139 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/has_spec.rb +179 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/have_attributes_spec.rb +177 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/include_spec.rb +587 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/match_spec.rb +100 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/operators_spec.rb +250 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/output_spec.rb +168 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/raise_error_spec.rb +446 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/respond_to_spec.rb +290 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/satisfy_spec.rb +42 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/start_and_end_with_spec.rb +347 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/throw_symbol_spec.rb +133 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/yield_spec.rb +643 -0
- data/rspec-expectations/spec/rspec/matchers/composable_spec.rb +77 -0
- data/rspec-expectations/spec/rspec/matchers/define_negated_matcher_spec.rb +199 -0
- data/rspec-expectations/spec/rspec/matchers/description_generation_spec.rb +189 -0
- data/rspec-expectations/spec/rspec/matchers/dsl_spec.rb +1036 -0
- data/rspec-expectations/spec/rspec/matchers/legacy_spec.rb +104 -0
- data/rspec-expectations/spec/rspec/matchers_spec.rb +108 -0
- data/rspec-expectations/spec/spec_helper.rb +94 -0
- data/rspec-expectations/spec/support/matchers.rb +54 -0
- data/rspec-expectations/spec/support/shared_examples.rb +101 -0
- data/rspec-mocks/benchmarks/double_creation.rb +66 -0
- data/rspec-mocks/benchmarks/each_value_v_values_each.rb +58 -0
- data/rspec-mocks/benchmarks/find_original_method_early.rb +64 -0
- data/rspec-mocks/benchmarks/method_defined_at_any_visibility.rb +101 -0
- data/rspec-mocks/benchmarks/thread_safety.rb +24 -0
- data/rspec-mocks/benchmarks/transfer_nested_constants.rb +77 -0
- data/rspec-mocks/features/step_definitions/additional_cli_steps.rb +21 -0
- data/rspec-mocks/features/support/disallow_certain_apis.rb +24 -0
- data/rspec-mocks/features/support/env.rb +22 -0
- data/rspec-mocks/features/support/rubinius.rb +6 -0
- data/rspec-mocks/lib/rspec/mocks.rb +126 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance.rb +10 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/chain.rb +109 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb +85 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/recorder.rb +267 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain.rb +45 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
- data/rspec-mocks/lib/rspec/mocks/argument_list_matcher.rb +72 -0
- data/rspec-mocks/lib/rspec/mocks/argument_matchers.rb +282 -0
- data/rspec-mocks/lib/rspec/mocks/configuration.rb +157 -0
- data/rspec-mocks/lib/rspec/mocks/error_generator.rb +253 -0
- data/rspec-mocks/lib/rspec/mocks/example_methods.rb +379 -0
- data/rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb +135 -0
- data/rspec-mocks/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/have_received.rb +121 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive.rb +106 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive_message_chain.rb +66 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive_messages.rb +71 -0
- data/rspec-mocks/lib/rspec/mocks/message_chain.rb +91 -0
- data/rspec-mocks/lib/rspec/mocks/message_expectation.rb +694 -0
- data/rspec-mocks/lib/rspec/mocks/method_double.rb +260 -0
- data/rspec-mocks/lib/rspec/mocks/method_reference.rb +155 -0
- data/rspec-mocks/lib/rspec/mocks/mutate_const.rb +324 -0
- data/rspec-mocks/lib/rspec/mocks/object_reference.rb +91 -0
- data/rspec-mocks/lib/rspec/mocks/order_group.rb +81 -0
- data/rspec-mocks/lib/rspec/mocks/proxy.rb +431 -0
- data/rspec-mocks/lib/rspec/mocks/space.rb +221 -0
- data/rspec-mocks/lib/rspec/mocks/standalone.rb +3 -0
- data/rspec-mocks/lib/rspec/mocks/syntax.rb +329 -0
- data/rspec-mocks/lib/rspec/mocks/targets.rb +97 -0
- data/rspec-mocks/lib/rspec/mocks/test_double.rb +135 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_double.rb +127 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_message_expecation.rb +62 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_proxy.rb +171 -0
- data/rspec-mocks/lib/rspec/mocks/version.rb +9 -0
- data/rspec-mocks/spec/rspec/mocks/and_call_original_spec.rb +267 -0
- data/rspec-mocks/spec/rspec/mocks/and_return_spec.rb +21 -0
- data/rspec-mocks/spec/rspec/mocks/and_wrap_original_spec.rb +63 -0
- data/rspec-mocks/spec/rspec/mocks/and_yield_spec.rb +161 -0
- data/rspec-mocks/spec/rspec/mocks/any_instance/message_chains_spec.rb +39 -0
- data/rspec-mocks/spec/rspec/mocks/any_instance_spec.rb +1242 -0
- data/rspec-mocks/spec/rspec/mocks/argument_matchers_spec.rb +336 -0
- data/rspec-mocks/spec/rspec/mocks/array_including_matcher_spec.rb +39 -0
- data/rspec-mocks/spec/rspec/mocks/at_least_spec.rb +147 -0
- data/rspec-mocks/spec/rspec/mocks/at_most_spec.rb +113 -0
- data/rspec-mocks/spec/rspec/mocks/before_all_spec.rb +75 -0
- data/rspec-mocks/spec/rspec/mocks/block_return_value_spec.rb +68 -0
- data/rspec-mocks/spec/rspec/mocks/combining_implementation_instructions_spec.rb +196 -0
- data/rspec-mocks/spec/rspec/mocks/configuration_spec.rb +175 -0
- data/rspec-mocks/spec/rspec/mocks/double_spec.rb +830 -0
- data/rspec-mocks/spec/rspec/mocks/example_methods_spec.rb +11 -0
- data/rspec-mocks/spec/rspec/mocks/expiration_spec.rb +90 -0
- data/rspec-mocks/spec/rspec/mocks/hash_excluding_matcher_spec.rb +65 -0
- data/rspec-mocks/spec/rspec/mocks/hash_including_matcher_spec.rb +92 -0
- data/rspec-mocks/spec/rspec/mocks/instance_method_stasher_spec.rb +72 -0
- data/rspec-mocks/spec/rspec/mocks/marshal_extension_spec.rb +67 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/have_received_spec.rb +513 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +227 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_messages_spec.rb +148 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_spec.rb +525 -0
- data/rspec-mocks/spec/rspec/mocks/methods_spec.rb +24 -0
- data/rspec-mocks/spec/rspec/mocks/mock_expectation_error_spec.rb +20 -0
- data/rspec-mocks/spec/rspec/mocks/mock_ordering_spec.rb +112 -0
- data/rspec-mocks/spec/rspec/mocks/multiple_return_value_spec.rb +130 -0
- data/rspec-mocks/spec/rspec/mocks/mutate_const_spec.rb +561 -0
- data/rspec-mocks/spec/rspec/mocks/nil_expectation_warning_spec.rb +52 -0
- data/rspec-mocks/spec/rspec/mocks/null_object_double_spec.rb +135 -0
- data/rspec-mocks/spec/rspec/mocks/once_counts_spec.rb +50 -0
- data/rspec-mocks/spec/rspec/mocks/order_group_spec.rb +26 -0
- data/rspec-mocks/spec/rspec/mocks/partial_double_spec.rb +379 -0
- data/rspec-mocks/spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb +83 -0
- data/rspec-mocks/spec/rspec/mocks/precise_counts_spec.rb +66 -0
- data/rspec-mocks/spec/rspec/mocks/serialization_spec.rb +89 -0
- data/rspec-mocks/spec/rspec/mocks/should_syntax_spec.rb +539 -0
- data/rspec-mocks/spec/rspec/mocks/space_spec.rb +242 -0
- data/rspec-mocks/spec/rspec/mocks/spy_spec.rb +127 -0
- data/rspec-mocks/spec/rspec/mocks/stash_spec.rb +43 -0
- data/rspec-mocks/spec/rspec/mocks/stub_chain_spec.rb +166 -0
- data/rspec-mocks/spec/rspec/mocks/stub_implementation_spec.rb +98 -0
- data/rspec-mocks/spec/rspec/mocks/stub_spec.rb +520 -0
- data/rspec-mocks/spec/rspec/mocks/stubbed_message_expectations_spec.rb +56 -0
- data/rspec-mocks/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +99 -0
- data/rspec-mocks/spec/rspec/mocks/syntax_spec.rb +7 -0
- data/rspec-mocks/spec/rspec/mocks/test_double_spec.rb +53 -0
- data/rspec-mocks/spec/rspec/mocks/thrice_counts_spec.rb +72 -0
- data/rspec-mocks/spec/rspec/mocks/to_ary_spec.rb +52 -0
- data/rspec-mocks/spec/rspec/mocks/twice_counts_spec.rb +64 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb +118 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb +58 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb +54 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb +81 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb +195 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb +57 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb +129 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/object_double_spec.rb +68 -0
- data/rspec-mocks/spec/rspec/mocks_spec.rb +199 -0
- data/rspec-mocks/spec/spec_helper.rb +131 -0
- data/rspec-mocks/spec/support/before_all_shared_example_group.rb +16 -0
- data/rspec-mocks/spec/support/doubled_classes.rb +74 -0
- data/rspec-mocks/spec/support/matchers.rb +15 -0
- data/rspec-support/benchmarks/caller.rb +81 -0
- data/rspec-support/lib/rspec/support.rb +76 -0
- data/rspec-support/lib/rspec/support/caller_filter.rb +63 -0
- data/rspec-support/lib/rspec/support/differ.rb +214 -0
- data/rspec-support/lib/rspec/support/directory_maker.rb +61 -0
- data/rspec-support/lib/rspec/support/encoded_string.rb +69 -0
- data/rspec-support/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/rspec-support/lib/rspec/support/hunk_generator.rb +47 -0
- data/rspec-support/lib/rspec/support/matcher_definition.rb +31 -0
- data/rspec-support/lib/rspec/support/method_signature_verifier.rb +272 -0
- data/rspec-support/lib/rspec/support/os.rb +18 -0
- data/rspec-support/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/rspec-support/lib/rspec/support/ruby_features.rb +45 -0
- data/rspec-support/lib/rspec/support/spec.rb +72 -0
- data/rspec-support/lib/rspec/support/spec/deprecation_helpers.rb +60 -0
- data/rspec-support/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/rspec-support/lib/rspec/support/spec/in_sub_process.rb +43 -0
- data/rspec-support/lib/rspec/support/spec/prevent_load_time_warnings.rb +44 -0
- data/rspec-support/lib/rspec/support/spec/shell_out.rb +69 -0
- data/rspec-support/lib/rspec/support/spec/stderr_splitter.rb +52 -0
- data/rspec-support/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
- data/rspec-support/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/rspec-support/lib/rspec/support/version.rb +7 -0
- data/rspec-support/lib/rspec/support/version_checker.rb +53 -0
- data/rspec-support/lib/rspec/support/warnings.rb +39 -0
- data/rspec-support/spec/rspec/support/caller_filter_spec.rb +66 -0
- data/rspec-support/spec/rspec/support/differ_spec.rb +322 -0
- data/rspec-support/spec/rspec/support/directory_maker_spec.rb +58 -0
- data/rspec-support/spec/rspec/support/encoded_string_spec.rb +86 -0
- data/rspec-support/spec/rspec/support/fuzzy_matcher_spec.rb +179 -0
- data/rspec-support/spec/rspec/support/method_signature_verifier_spec.rb +357 -0
- data/rspec-support/spec/rspec/support/os_spec.rb +36 -0
- data/rspec-support/spec/rspec/support/recursive_const_methods_spec.rb +49 -0
- data/rspec-support/spec/rspec/support/spec/in_sub_process_spec.rb +36 -0
- data/rspec-support/spec/rspec/support/spec/prevent_load_time_warnings_spec.rb +10 -0
- data/rspec-support/spec/rspec/support/spec/shell_out_spec.rb +44 -0
- data/rspec-support/spec/rspec/support/spec/stderr_splitter_spec.rb +60 -0
- data/rspec-support/spec/rspec/support/spec/with_isolated_std_err_spec.rb +21 -0
- data/rspec-support/spec/rspec/support/version_checker_spec.rb +29 -0
- data/rspec-support/spec/rspec/support/warnings_spec.rb +66 -0
- data/rspec-support/spec/rspec/support_spec.rb +119 -0
- data/rspec-support/spec/spec_helper.rb +2 -0
- data/rspec/lib/rspec.rb +3 -0
- data/rspec/lib/rspec/version.rb +5 -0
- data/spec/mri/integration/browser_spec.rb +31 -0
- data/spec/mri/integration/rack/sprockets_runner_js_errors.rb.erb +20 -0
- data/spec/mri/integration/spec_opts_spec.rb +81 -0
- data/spec/mri/unit/opal/rspec/browser_formatter_spec.rb +35 -0
- data/spec/mri/unit/opal/rspec/cached_environment_spec.rb +85 -0
- data/spec/mri/unit/opal/rspec/opal/browser_formatter_spec.rb +14 -0
- data/spec/mri/unit/opal/rspec/rack/config.ru +12 -0
- data/spec/mri/unit/opal/rspec/rake_task_spec.rb +261 -0
- data/spec/mri/unit/opal/rspec/sprockets_environment_spec.rb +55 -0
- data/spec/mri/unit/opal/rspec/temp_dir_helper.rb +19 -0
- data/spec/opal/after_hooks_spec.rb +140 -0
- data/spec/opal/around_hooks_spec.rb +164 -0
- data/spec/opal/async_spec.rb +184 -0
- data/spec/opal/before_hooks_spec.rb +183 -0
- data/spec/opal/example_spec.rb +174 -0
- data/spec/opal/expected_failures.txt +40 -0
- data/spec/opal/matchers_spec.rb +205 -0
- data/spec/opal/mock_spec.rb +63 -0
- data/spec/opal/should_syntax_spec.rb +17 -0
- data/spec/opal/skip_pending_spec.rb +43 -0
- data/spec/opal/subject_spec.rb +87 -0
- data/spec/other/color_on_by_default_spec.rb +9 -0
- data/spec/other/dummy_spec.rb +5 -0
- data/spec/other/formatter_dependency.rb +3 -0
- data/spec/other/ignored_spec.opal +5 -0
- data/spec/other/test_formatter.rb +9 -0
- data/spec/rspec/core/config.rb +5 -0
- data/spec/rspec/core/config.ru +4 -0
- data/spec/rspec/core/core_spec_loader.rb +46 -0
- data/spec/rspec/core/filter/core/async/example_group.txt +13 -0
- data/spec/rspec/core/filter/core/async/hooks.rb +12 -0
- data/spec/rspec/core/filter/core/async/memoized_helpers.txt +3 -0
- data/spec/rspec/core/filter/core/async/metadata.txt +2 -0
- data/spec/rspec/core/filter/core/bugs/filter_manager.txt +4 -0
- data/spec/rspec/core/filter/core/bugs/formatters.txt +4 -0
- data/spec/rspec/core/filter/core/bugs/memoized_helpers.rb +11 -0
- data/spec/rspec/core/filter/core/bugs/metadata.txt +5 -0
- data/spec/rspec/core/filter/core/bugs/sandbox/subject_issue_test.rb +328 -0
- data/spec/rspec/core/filter/core/bugs/warnings_deprecations.txt +3 -0
- data/spec/rspec/core/filter/core/unsupported/core.txt +5 -0
- data/spec/rspec/core/filter/core/unsupported/example.txt +7 -0
- data/spec/rspec/core/filter/core/unsupported/example_group.txt +13 -0
- data/spec/rspec/core/filter/core/unsupported/filter_manager.txt +7 -0
- data/spec/rspec/core/filter/core/unsupported/formatters.txt +27 -0
- data/spec/rspec/core/filter/core/unsupported/hooks.txt +2 -0
- data/spec/rspec/core/filter/core/unsupported/memoized_helpers.txt +6 -0
- data/spec/rspec/core/filter/core/unsupported/metadata.txt +14 -0
- data/spec/rspec/core/filter/core/unsupported/metadata_filter.txt +2 -0
- data/spec/rspec/core/filter/core/unsupported/notifications.txt +8 -0
- data/spec/rspec/core/filter/core/unsupported/world.txt +3 -0
- data/spec/rspec/core/fixes/missing_constants.rb +20 -0
- data/spec/rspec/core/fixes/opal_itself.rb +38 -0
- data/spec/rspec/core/fixes/shared_examples.rb +3 -0
- data/spec/rspec/core/opal_alternates/rspec/core/example_group_spec.rb +145 -0
- data/spec/rspec/core/opal_alternates/rspec/core/failed_example_notification_spec.rb +31 -0
- data/spec/rspec/core/opal_alternates/rspec/core/hooks_spec.rb +113 -0
- data/spec/rspec/core/opal_alternates/rspec/core/memoized_helpers_spec.rb +36 -0
- data/spec/rspec/core/opal_alternates/rspec/core/metadata_spec.rb +48 -0
- data/spec/rspec/core/require_specs.rb +25 -0
- data/spec/rspec/core/sandboxing.rb +72 -0
- data/spec/rspec/core/spec_files_exclude.txt +41 -0
- data/spec/rspec/expectations/config.rb +16 -0
- data/spec/rspec/expectations/config.ru +4 -0
- data/spec/rspec/expectations/expectation_spec_loader.rb +110 -0
- data/spec/rspec/expectations/filter/bugs/aliased_matcher.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/aliases.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/base_matcher.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/be.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/be_instance_of.rb +7 -0
- data/spec/rspec/expectations/filter/bugs/be_spec.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/configuration.txt +8 -0
- data/spec/rspec/expectations/filter/bugs/contain_exactly.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/define_negated_matcher.rb +9 -0
- data/spec/rspec/expectations/filter/bugs/description_generation.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/dsl.txt +14 -0
- data/spec/rspec/expectations/filter/bugs/equal.txt +3 -0
- data/spec/rspec/expectations/filter/bugs/expectation_target.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/expectations.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/have_attributes.rb +8 -0
- data/spec/rspec/expectations/filter/bugs/include.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/operators.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/raise_error.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/respond_to.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/sandbox/undef.rb +20 -0
- data/spec/rspec/expectations/filter/unsupported/aliases.txt +5 -0
- data/spec/rspec/expectations/filter/unsupported/be.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/be_instance_of.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/change.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/configuration.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/contain_exactly.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/description_generation.txt +6 -0
- data/spec/rspec/expectations/filter/unsupported/dsl.txt +8 -0
- data/spec/rspec/expectations/filter/unsupported/eq.txt +10 -0
- data/spec/rspec/expectations/filter/unsupported/equal.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/expectation_target.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/expectations.txt +8 -0
- data/spec/rspec/expectations/filter/unsupported/has.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/include.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/match.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/matchers.txt +11 -0
- data/spec/rspec/expectations/filter/unsupported/output.txt +14 -0
- data/spec/rspec/expectations/filter/unsupported/raise_error.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/respond_to.rb +5 -0
- data/spec/rspec/expectations/filter/unsupported/syntax.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/yield.txt +2 -0
- data/spec/rspec/expectations/fixes/example_patches.rb +32 -0
- data/spec/rspec/expectations/fixes/missing_constants.rb +12 -0
- data/spec/rspec/expectations/fixes/not_compatible.rb +6 -0
- data/spec/rspec/expectations/fixes/opal_itself.rb +140 -0
- data/spec/rspec/expectations/opal_alternates/be_instance_of_spec.rb +11 -0
- data/spec/rspec/expectations/opal_alternates/dsl_spec.rb +66 -0
- data/spec/rspec/expectations/opal_alternates/expectation_target_spec.rb +21 -0
- data/spec/rspec/expectations/opal_alternates/yield_spec.rb +11 -0
- data/spec/rspec/expectations/require_specs.rb +16 -0
- data/spec/rspec/expectations/shared_examples.rb +47 -0
- data/spec/rspec/expectations/spec_files_exclude.txt +2 -0
- data/spec/rspec/expectations/spec_helper_opal.rb +13 -0
- data/spec/rspec/filter_processor.rb +77 -0
- data/spec/rspec/mocks/config.ru +4 -0
- data/spec/rspec/mocks/filter/bugs/and_call_original.txt +9 -0
- data/spec/rspec/mocks/filter/bugs/and_wrap_original.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/any_instance.rb +24 -0
- data/spec/rspec/mocks/filter/bugs/argument_matchers.rb +3 -0
- data/spec/rspec/mocks/filter/bugs/configuration.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/double.txt +3 -0
- data/spec/rspec/mocks/filter/bugs/expiration.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/instance_method_stasher.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/methods.rb +5 -0
- data/spec/rspec/mocks/filter/bugs/mocks.txt +6 -0
- data/spec/rspec/mocks/filter/bugs/mutate_const.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/partial_double.rb +8 -0
- data/spec/rspec/mocks/filter/bugs/receive.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/should_syntax.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/space.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/spy.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/stub_implementation.rb +9 -0
- data/spec/rspec/mocks/filter/unsupported/and_call_original.txt +5 -0
- data/spec/rspec/mocks/filter/unsupported/and_return.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/any_instance.rb +6 -0
- data/spec/rspec/mocks/filter/unsupported/argument_matchers.rb +10 -0
- data/spec/rspec/mocks/filter/unsupported/combining_implementation_instructions.rb +9 -0
- data/spec/rspec/mocks/filter/unsupported/double.rb +16 -0
- data/spec/rspec/mocks/filter/unsupported/expected_arg_verification.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/have_received.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/instance_double_with_class_loaded.txt +8 -0
- data/spec/rspec/mocks/filter/unsupported/mocks.rb +8 -0
- data/spec/rspec/mocks/filter/unsupported/nil_expectation_warning.rb +8 -0
- data/spec/rspec/mocks/filter/unsupported/partial_double.rb +6 -0
- data/spec/rspec/mocks/filter/unsupported/receive.txt +13 -0
- data/spec/rspec/mocks/filter/unsupported/receive_message_chain.rb +4 -0
- data/spec/rspec/mocks/filter/unsupported/receive_messages.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/should_syntax.txt +1 -0
- data/spec/rspec/mocks/filter/unsupported/space.rb +7 -0
- data/spec/rspec/mocks/filter/unsupported/stub.rb +7 -0
- data/spec/rspec/mocks/fixes/doubled_classes.rb +76 -0
- data/spec/rspec/mocks/fixes/missing_constants.rb +3 -0
- data/spec/rspec/mocks/fixes/opal_itself.rb +59 -0
- data/spec/rspec/mocks/mocks_spec_loader.rb +91 -0
- data/spec/rspec/mocks/require_specs.rb +15 -0
- data/spec/rspec/mocks/spec_files_exclude.txt +11 -0
- data/spec/rspec/mocks/spec_helper_opal.rb +129 -0
- data/spec/rspec/opal_rspec_spec_loader.rb +359 -0
- data/spec/rspec/shared/opal/fixes/deprecation_helpers.rb +31 -0
- data/spec/rspec/shared/opal/fixes/rspec_helpers.rb +6 -0
- data/spec/rspec/shared/opal/progress_json_formatter.rb +29 -0
- data/spec/rspec/support/config.rb +5 -0
- data/spec/rspec/support/config.ru +4 -0
- data/spec/rspec/support/filter/bugs/recursive_const_methods.txt +3 -0
- data/spec/rspec/support/filter/bugs/sandbox/basic_object.rb +30 -0
- data/spec/rspec/support/filter/bugs/stderr_splitter_spec.txt +2 -0
- data/spec/rspec/support/filter/bugs/support.txt +2 -0
- data/spec/rspec/support/filter/unsupported/fuzzy_matcher.txt +2 -0
- data/spec/rspec/support/filter/unsupported/support.rb +7 -0
- data/spec/rspec/support/filter/unsupported/warnings.txt +6 -0
- data/spec/rspec/support/fixes/missing_constants.rb +3 -0
- data/spec/rspec/support/fixes/opal_itself.rb +13 -0
- data/spec/rspec/support/require_specs.rb +15 -0
- data/spec/rspec/support/spec_files_exclude.txt +26 -0
- data/spec/rspec/support/spec_helper.rb +27 -0
- data/spec/rspec/support/support_spec_loader.rb +38 -0
- data/util/create_requires.rb +49 -0
- data/vendor/spec_runner.js +64 -0
- metadata +774 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
require 'rspec/core' # to fix annoying "undefined method `configuration' for RSpec:Module (NoMethodError)"
|
|
2
|
+
|
|
3
|
+
Then /^the output should contain all of these:$/ do |table|
|
|
4
|
+
table.raw.flatten.each do |string|
|
|
5
|
+
assert_partial_output(string, all_output)
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Then /^the output should not contain any of these:$/ do |table|
|
|
10
|
+
table.raw.flatten.each do |string|
|
|
11
|
+
expect(all_output).not_to match(regexp(string))
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Then /^the output should contain one of the following:$/ do |table|
|
|
16
|
+
matching_output = table.raw.flatten.select do |string|
|
|
17
|
+
all_output =~ regexp(string)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
expect(matching_output.count).to eq(1)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Then /^the example(?:s)? should(?: all)? pass$/ do
|
|
24
|
+
step %q{the output should contain "0 failures"}
|
|
25
|
+
step %q{the output should not contain "0 examples"}
|
|
26
|
+
step %q{the exit status should be 0}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
Then /^the example(?:s)? should(?: all)? fail$/ do
|
|
30
|
+
step %q{the output should not contain "0 examples"}
|
|
31
|
+
step %q{the output should not contain "0 failures"}
|
|
32
|
+
step %q{the exit status should be 1}
|
|
33
|
+
example_summary = /(\d+) examples?, (\d+) failures?/.match(all_output)
|
|
34
|
+
example_count, failure_count = example_summary.captures
|
|
35
|
+
expect(failure_count).to eq(example_count)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Then /^the process should succeed even though no examples were run$/ do
|
|
39
|
+
step %q{the output should contain "0 examples, 0 failures"}
|
|
40
|
+
step %q{the exit status should be 0}
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
addition_example_formatter_output = <<-EOS
|
|
44
|
+
Addition
|
|
45
|
+
works
|
|
46
|
+
EOS
|
|
47
|
+
|
|
48
|
+
Then /^the output from `([^`]+)` (should(?: not)?) be in documentation format$/ do |cmd, should_or_not|
|
|
49
|
+
step %Q{I run `#{cmd}`}
|
|
50
|
+
step %q{the examples should all pass}
|
|
51
|
+
step %Q{the output from "#{cmd}" #{should_or_not} contain "#{addition_example_formatter_output}"}
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
Then(/^the output from `([^`]+)` should indicate it ran only the subtraction file$/) do |cmd|
|
|
55
|
+
step %Q{I run `#{cmd}`}
|
|
56
|
+
step %q{the examples should all pass}
|
|
57
|
+
step %Q{the output from "#{cmd}" should contain "1 example, 0 failures"}
|
|
58
|
+
step %Q{the output from "#{cmd}" should contain "Subtraction"}
|
|
59
|
+
step %Q{the output from "#{cmd}" should not contain "Addition"}
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
Then /^the backtrace\-normalized output should contain:$/ do |partial_output|
|
|
63
|
+
# ruby 1.9 includes additional stuff in the backtrace,
|
|
64
|
+
# so we need to normalize it to compare it with our expected output.
|
|
65
|
+
normalized_output = all_output.split("\n").map do |line|
|
|
66
|
+
line =~ /(^\s+# [^:]+:\d+)/ ? $1 : line # http://rubular.com/r/zDD7DdWyzF
|
|
67
|
+
end.join("\n")
|
|
68
|
+
|
|
69
|
+
expect(normalized_output).to match(regexp(partial_output))
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
Then /^the output should not contain any error backtraces$/ do
|
|
73
|
+
step %q{the output should not contain "lib/rspec/core"}
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# This step can be generalized if it's ever used to test other colors
|
|
77
|
+
Then /^the failing example is printed in magenta$/ do
|
|
78
|
+
# \e[35m = enable magenta
|
|
79
|
+
# \e[0m = reset colors
|
|
80
|
+
expect(all_output).to include("\e[35m" + "F" + "\e[0m")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
Then /^the output from `([^`]+)` should contain "(.*?)"$/ do |cmd, expected_output|
|
|
84
|
+
step %Q{I run `#{cmd}`}
|
|
85
|
+
step %Q{the output from "#{cmd}" should contain "#{expected_output}"}
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
Then /^the output from `([^`]+)` should not contain "(.*?)"$/ do |cmd, expected_output|
|
|
89
|
+
step %Q{I run `#{cmd}`}
|
|
90
|
+
step %Q{the output from "#{cmd}" should not contain "#{expected_output}"}
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
Given /^I have a brand new project with no files$/ do
|
|
94
|
+
in_current_dir do
|
|
95
|
+
expect(Dir["**/*"]).to eq([])
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
Given /^I have run `([^`]*)`$/ do |cmd|
|
|
100
|
+
fail_on_error = true
|
|
101
|
+
run_simple(unescape(cmd), fail_on_error)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
Given(/^a vendored gem named "(.*?)" containing a file named "(.*?)" with:$/) do |gem_name, file_name, file_contents|
|
|
105
|
+
gem_dir = "vendor/#{gem_name}-1.2.3"
|
|
106
|
+
step %Q{a file named "#{gem_dir}/#{file_name}" with:}, file_contents
|
|
107
|
+
set_env('RUBYOPT', ENV['RUBYOPT'] + " -I#{gem_dir}/lib")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
When "I accept the recommended settings by removing `=begin` and `=end` from `spec/spec_helper.rb`" do
|
|
111
|
+
in_current_dir do
|
|
112
|
+
spec_helper = File.read("spec/spec_helper.rb")
|
|
113
|
+
expect(spec_helper).to include("=begin", "=end")
|
|
114
|
+
|
|
115
|
+
to_keep = spec_helper.lines.reject do |line|
|
|
116
|
+
line.start_with?("=begin") || line.start_with?("=end")
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
File.open("spec/spec_helper.rb", "w") { |f| f.write(to_keep.join) }
|
|
120
|
+
expect(File.read("spec/spec_helper.rb")).not_to include("=begin", "=end")
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
When /^I create "([^"]*)" with the following content:$/ do |file_name, content|
|
|
125
|
+
write_file(file_name, content)
|
|
126
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Given(/^only rspec-core is installed$/) do
|
|
2
|
+
if RUBY_VERSION.to_f >= 1.9 # --disable-gems is invalid on 1.8.7
|
|
3
|
+
# Ensure the gem versions of rspec-mocks and rspec-expectations
|
|
4
|
+
# won't be loaded if available on the developers machine.
|
|
5
|
+
set_env('RUBYOPT', ENV['RUBYOPT'] + ' --disable-gems')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# This will make `require_expect_syntax_in_aruba_specs.rb` (loaded
|
|
9
|
+
# automatically when the specs run) remove rspec-mocks and
|
|
10
|
+
# rspec-expectations from the load path.
|
|
11
|
+
set_env('REMOVE_OTHER_RSPEC_LIBS_FROM_LOAD_PATH', 'true')
|
|
12
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'aruba/cucumber'
|
|
2
|
+
|
|
3
|
+
Before do
|
|
4
|
+
if RUBY_PLATFORM =~ /java/ || defined?(Rubinius)
|
|
5
|
+
@aruba_timeout_seconds = 60
|
|
6
|
+
else
|
|
7
|
+
@aruba_timeout_seconds = 10
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Aruba.configure do |config|
|
|
12
|
+
config.before_cmd do |cmd|
|
|
13
|
+
set_env('JRUBY_OPTS', "-X-C #{ENV['JRUBY_OPTS']}") # disable JIT since these processes are so short lived
|
|
14
|
+
end
|
|
15
|
+
end if RUBY_PLATFORM == 'java'
|
|
16
|
+
|
|
17
|
+
Aruba.configure do |config|
|
|
18
|
+
config.before_cmd do |cmd|
|
|
19
|
+
set_env('RBXOPT', "-Xint=true #{ENV['RBXOPT']}") # disable JIT since these processes are so short lived
|
|
20
|
+
end
|
|
21
|
+
end if defined?(Rubinius)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
if defined?(Cucumber)
|
|
2
|
+
require 'shellwords'
|
|
3
|
+
Before('~@allow-should-syntax') do
|
|
4
|
+
set_env('SPEC_OPTS', "-r#{Shellwords.escape(__FILE__)}")
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
Before('@oneliner-should') do
|
|
8
|
+
set_env('ALLOW_ONELINER_SHOULD', 'true')
|
|
9
|
+
end
|
|
10
|
+
else
|
|
11
|
+
if ENV['REMOVE_OTHER_RSPEC_LIBS_FROM_LOAD_PATH']
|
|
12
|
+
$LOAD_PATH.reject! { |x| /rspec-mocks/ === x || /rspec-expectations/ === x }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
module DisallowOneLinerShould
|
|
16
|
+
def should(*)
|
|
17
|
+
raise "one-liner should is not allowed"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def should_not(*)
|
|
21
|
+
raise "one-liner should_not is not allowed"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
RSpec.configure do |rspec|
|
|
26
|
+
rspec.disable_monkey_patching!
|
|
27
|
+
rspec.include DisallowOneLinerShould unless ENV['ALLOW_ONELINER_SHOULD']
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# rubocop:disable Style/GlobalVars
|
|
2
|
+
$_rspec_core_load_started_at = Time.now
|
|
3
|
+
# rubocop:enable Style/GlobalVars
|
|
4
|
+
|
|
5
|
+
require 'rbconfig'
|
|
6
|
+
|
|
7
|
+
require "rspec/support"
|
|
8
|
+
RSpec::Support.require_rspec_support "caller_filter"
|
|
9
|
+
|
|
10
|
+
RSpec::Support.define_optimized_require_for_rspec(:core) { |f| require_relative f }
|
|
11
|
+
|
|
12
|
+
%w[
|
|
13
|
+
version
|
|
14
|
+
warnings
|
|
15
|
+
|
|
16
|
+
flat_map
|
|
17
|
+
filter_manager
|
|
18
|
+
dsl
|
|
19
|
+
notifications
|
|
20
|
+
reporter
|
|
21
|
+
|
|
22
|
+
hooks
|
|
23
|
+
memoized_helpers
|
|
24
|
+
metadata
|
|
25
|
+
metadata_filter
|
|
26
|
+
pending
|
|
27
|
+
formatters
|
|
28
|
+
ordering
|
|
29
|
+
|
|
30
|
+
world
|
|
31
|
+
configuration
|
|
32
|
+
option_parser
|
|
33
|
+
configuration_options
|
|
34
|
+
runner
|
|
35
|
+
example
|
|
36
|
+
shared_example_group
|
|
37
|
+
example_group
|
|
38
|
+
].each { |name| RSpec::Support.require_rspec_core name }
|
|
39
|
+
|
|
40
|
+
# Namespace for all core RSpec code.
|
|
41
|
+
module RSpec
|
|
42
|
+
autoload :SharedContext, 'rspec/core/shared_context'
|
|
43
|
+
|
|
44
|
+
extend RSpec::Core::Warnings
|
|
45
|
+
|
|
46
|
+
# Used to ensure examples get reloaded between multiple runs in
|
|
47
|
+
# the same process.
|
|
48
|
+
#
|
|
49
|
+
# Users must invoke this if they want to have the configuration reset when
|
|
50
|
+
# they use runner multiple times within the same process.
|
|
51
|
+
def self.reset
|
|
52
|
+
@world = nil
|
|
53
|
+
@configuration = nil
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Returns the global [Configuration](RSpec/Core/Configuration) object. While you
|
|
57
|
+
# _can_ use this method to access the configuration, the more common
|
|
58
|
+
# convention is to use [RSpec.configure](RSpec#configure-class_method).
|
|
59
|
+
#
|
|
60
|
+
# @example
|
|
61
|
+
# RSpec.configuration.drb_port = 1234
|
|
62
|
+
# @see RSpec.configure
|
|
63
|
+
# @see Core::Configuration
|
|
64
|
+
def self.configuration
|
|
65
|
+
@configuration ||= begin
|
|
66
|
+
config = RSpec::Core::Configuration.new
|
|
67
|
+
config.expose_dsl_globally = true
|
|
68
|
+
config
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Yields the global configuration to a block.
|
|
73
|
+
# @yield [Configuration] global configuration
|
|
74
|
+
#
|
|
75
|
+
# @example
|
|
76
|
+
# RSpec.configure do |config|
|
|
77
|
+
# config.add_formatter 'documentation'
|
|
78
|
+
# end
|
|
79
|
+
# @see Core::Configuration
|
|
80
|
+
def self.configure
|
|
81
|
+
yield configuration if block_given?
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# The example being executed.
|
|
85
|
+
#
|
|
86
|
+
# The primary audience for this method is library authors who need access
|
|
87
|
+
# to the example currently being executed and also want to support all
|
|
88
|
+
# versions of RSpec 2 and 3.
|
|
89
|
+
#
|
|
90
|
+
# @example
|
|
91
|
+
#
|
|
92
|
+
# RSpec.configure do |c|
|
|
93
|
+
# # context.example is deprecated, but RSpec.current_example is not
|
|
94
|
+
# # available until RSpec 3.0.
|
|
95
|
+
# fetch_current_example = RSpec.respond_to?(:current_example) ?
|
|
96
|
+
# proc { RSpec.current_example } : proc { |context| context.example }
|
|
97
|
+
#
|
|
98
|
+
# c.before(:example) do
|
|
99
|
+
# example = fetch_current_example.call(self)
|
|
100
|
+
#
|
|
101
|
+
# # ...
|
|
102
|
+
# end
|
|
103
|
+
# end
|
|
104
|
+
#
|
|
105
|
+
def self.current_example
|
|
106
|
+
thread_local_metadata[:current_example]
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Set the current example being executed.
|
|
110
|
+
# @api private
|
|
111
|
+
def self.current_example=(example)
|
|
112
|
+
thread_local_metadata[:current_example] = example
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# @private
|
|
116
|
+
# A single thread local variable so we don't excessively pollute that
|
|
117
|
+
# namespace.
|
|
118
|
+
def self.thread_local_metadata
|
|
119
|
+
Thread.current[:_rspec] ||= {}
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# @private
|
|
123
|
+
# Internal container for global non-configuration data
|
|
124
|
+
def self.world
|
|
125
|
+
@world ||= RSpec::Core::World.new
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Namespace for the rspec-core code.
|
|
129
|
+
module Core
|
|
130
|
+
# @private
|
|
131
|
+
# This avoids issues with reporting time caused by examples that
|
|
132
|
+
# change the value/meaning of Time.now without properly restoring
|
|
133
|
+
# it.
|
|
134
|
+
class Time
|
|
135
|
+
class << self
|
|
136
|
+
define_method(:now, &::Time.method(:now))
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# @private path to executable file
|
|
141
|
+
def self.path_to_executable
|
|
142
|
+
@path_to_executable ||= File.expand_path('../../../exe/rspec', __FILE__)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# @private
|
|
147
|
+
MODULES_TO_AUTOLOAD = {
|
|
148
|
+
:Matchers => "rspec/expectations",
|
|
149
|
+
:Expectations => "rspec/expectations",
|
|
150
|
+
:Mocks => "rspec/mocks"
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
# @private
|
|
154
|
+
def self.const_missing(name)
|
|
155
|
+
# Load rspec-expectations when RSpec::Matchers is referenced. This allows
|
|
156
|
+
# people to define custom matchers (using `RSpec::Matchers.define`) before
|
|
157
|
+
# rspec-core has loaded rspec-expectations (since it delays the loading of
|
|
158
|
+
# it to allow users to configure a different assertion/expectation
|
|
159
|
+
# framework). `autoload` can't be used since it works with ruby's built-in
|
|
160
|
+
# require (e.g. for files that are available relative to a load path dir),
|
|
161
|
+
# but not with rubygems' extended require.
|
|
162
|
+
#
|
|
163
|
+
# As of rspec 2.14.1, we no longer require `rspec/mocks` and
|
|
164
|
+
# `rspec/expectations` when `rspec` is required, so we want
|
|
165
|
+
# to make them available as an autoload.
|
|
166
|
+
require MODULES_TO_AUTOLOAD.fetch(name) { return super }
|
|
167
|
+
::RSpec.const_get(name)
|
|
168
|
+
end
|
|
169
|
+
end
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
module RSpec
|
|
2
|
+
module Core
|
|
3
|
+
# @private
|
|
4
|
+
#
|
|
5
|
+
# Methods used internally by the backports.
|
|
6
|
+
#
|
|
7
|
+
# This code was (mostly) ported from the backports gem found at
|
|
8
|
+
# https://github.com/marcandre/backports which is subject to this license:
|
|
9
|
+
#
|
|
10
|
+
# =========================================================================
|
|
11
|
+
#
|
|
12
|
+
# Copyright (c) 2009 Marc-Andre Lafortune
|
|
13
|
+
#
|
|
14
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
15
|
+
# a copy of this software and associated documentation files (the
|
|
16
|
+
# "Software"), to deal in the Software without restriction, including
|
|
17
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
18
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
19
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
20
|
+
# the following conditions:
|
|
21
|
+
#
|
|
22
|
+
# The above copyright notice and this permission notice shall be
|
|
23
|
+
# included in all copies or substantial portions of the Software.
|
|
24
|
+
#
|
|
25
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
26
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
27
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
28
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
29
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
30
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
31
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
32
|
+
#
|
|
33
|
+
# =========================================================================
|
|
34
|
+
#
|
|
35
|
+
# The goal is to provide a random number generator in Ruby versions that do
|
|
36
|
+
# not have one. This was added to support localization of random spec
|
|
37
|
+
# ordering.
|
|
38
|
+
#
|
|
39
|
+
# These were in multiple files in backports, but merged into one here.
|
|
40
|
+
module Backports
|
|
41
|
+
# Helper method to coerce a value into a specific class.
|
|
42
|
+
# Raises a TypeError if the coercion fails or the returned value
|
|
43
|
+
# is not of the right class.
|
|
44
|
+
# (from Rubinius)
|
|
45
|
+
def self.coerce_to(obj, cls, meth)
|
|
46
|
+
return obj if obj.kind_of?(cls)
|
|
47
|
+
|
|
48
|
+
begin
|
|
49
|
+
ret = obj.__send__(meth)
|
|
50
|
+
rescue Exception => e
|
|
51
|
+
raise TypeError, "Coercion error: #{obj.inspect}.#{meth} => #{cls} failed:\n" \
|
|
52
|
+
"(#{e.message})"
|
|
53
|
+
end
|
|
54
|
+
raise TypeError, "Coercion error: obj.#{meth} did NOT return a #{cls} (was #{ret.class})" unless ret.kind_of? cls
|
|
55
|
+
ret
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# @private
|
|
59
|
+
def self.coerce_to_int(obj)
|
|
60
|
+
coerce_to(obj, Integer, :to_int)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Used internally to make it easy to deal with optional arguments
|
|
64
|
+
# (from Rubinius)
|
|
65
|
+
Undefined = Object.new
|
|
66
|
+
|
|
67
|
+
# @private
|
|
68
|
+
class Random
|
|
69
|
+
# @private
|
|
70
|
+
# An implementation of Mersenne Twister MT19937 in Ruby
|
|
71
|
+
class MT19937
|
|
72
|
+
STATE_SIZE = 624
|
|
73
|
+
LAST_STATE = STATE_SIZE - 1
|
|
74
|
+
PAD_32_BITS = 0xffffffff
|
|
75
|
+
|
|
76
|
+
# See seed=
|
|
77
|
+
def initialize(seed)
|
|
78
|
+
self.seed = seed
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
LAST_31_BITS = 0x7fffffff
|
|
82
|
+
OFFSET = 397
|
|
83
|
+
|
|
84
|
+
# Generates a completely new state out of the previous one.
|
|
85
|
+
def next_state
|
|
86
|
+
STATE_SIZE.times do |i|
|
|
87
|
+
mix = @state[i] & 0x80000000 | @state[i+1 - STATE_SIZE] & 0x7fffffff
|
|
88
|
+
@state[i] = @state[i+OFFSET - STATE_SIZE] ^ (mix >> 1)
|
|
89
|
+
@state[i] ^= 0x9908b0df if mix.odd?
|
|
90
|
+
end
|
|
91
|
+
@last_read = -1
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Seed must be either an Integer (only the first 32 bits will be used)
|
|
95
|
+
# or an Array of Integers (of which only the first 32 bits will be used)
|
|
96
|
+
#
|
|
97
|
+
# No conversion or type checking is done at this level
|
|
98
|
+
def seed=(seed)
|
|
99
|
+
case seed
|
|
100
|
+
when Integer
|
|
101
|
+
@state = Array.new(STATE_SIZE)
|
|
102
|
+
@state[0] = seed & PAD_32_BITS
|
|
103
|
+
(1..LAST_STATE).each do |i|
|
|
104
|
+
@state[i] = (1812433253 * (@state[i-1] ^ @state[i-1]>>30) + i)& PAD_32_BITS
|
|
105
|
+
end
|
|
106
|
+
@last_read = LAST_STATE
|
|
107
|
+
when Array
|
|
108
|
+
self.seed = 19650218
|
|
109
|
+
i=1
|
|
110
|
+
j=0
|
|
111
|
+
[STATE_SIZE, seed.size].max.times do
|
|
112
|
+
@state[i] = (@state[i] ^ (@state[i-1] ^ @state[i-1]>>30) * 1664525) + j + seed[j] & PAD_32_BITS
|
|
113
|
+
if (i+=1) >= STATE_SIZE
|
|
114
|
+
@state[0] = @state[-1]
|
|
115
|
+
i = 1
|
|
116
|
+
end
|
|
117
|
+
j = 0 if (j+=1) >= seed.size
|
|
118
|
+
end
|
|
119
|
+
(STATE_SIZE-1).times do
|
|
120
|
+
@state[i] = (@state[i] ^ (@state[i-1] ^ @state[i-1]>>30) * 1566083941) - i & PAD_32_BITS
|
|
121
|
+
if (i+=1) >= STATE_SIZE
|
|
122
|
+
@state[0] = @state[-1]
|
|
123
|
+
i = 1
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
@state[0] = 0x80000000
|
|
127
|
+
else
|
|
128
|
+
raise ArgumentError, "Seed must be an Integer or an Array"
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Returns a random Integer from the range 0 ... (1 << 32)
|
|
133
|
+
def random_32_bits
|
|
134
|
+
next_state if @last_read >= LAST_STATE
|
|
135
|
+
@last_read += 1
|
|
136
|
+
y = @state[@last_read]
|
|
137
|
+
# Tempering
|
|
138
|
+
y ^= (y >> 11)
|
|
139
|
+
y ^= (y << 7) & 0x9d2c5680
|
|
140
|
+
y ^= (y << 15) & 0xefc60000
|
|
141
|
+
y ^= (y >> 18)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Supplement the MT19937 class with methods to do
|
|
145
|
+
# conversions the same way as MRI.
|
|
146
|
+
# No argument checking is done here either.
|
|
147
|
+
|
|
148
|
+
FLOAT_FACTOR = 1.0/9007199254740992.0
|
|
149
|
+
# generates a random number on [0,1) with 53-bit resolution
|
|
150
|
+
def random_float
|
|
151
|
+
((random_32_bits >> 5) * 67108864.0 + (random_32_bits >> 6)) * FLOAT_FACTOR;
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Returns an integer within 0...upto
|
|
155
|
+
def random_integer(upto)
|
|
156
|
+
n = upto - 1
|
|
157
|
+
nb_full_32 = 0
|
|
158
|
+
while n > PAD_32_BITS
|
|
159
|
+
n >>= 32
|
|
160
|
+
nb_full_32 += 1
|
|
161
|
+
end
|
|
162
|
+
mask = mask_32_bits(n)
|
|
163
|
+
begin
|
|
164
|
+
rand = random_32_bits & mask
|
|
165
|
+
nb_full_32.times do
|
|
166
|
+
rand <<= 32
|
|
167
|
+
rand |= random_32_bits
|
|
168
|
+
end
|
|
169
|
+
end until rand < upto
|
|
170
|
+
rand
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def random_bytes(nb)
|
|
174
|
+
nb_32_bits = (nb + 3) / 4
|
|
175
|
+
random = nb_32_bits.times.map { random_32_bits }
|
|
176
|
+
random.pack("L" * nb_32_bits)[0, nb]
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def state_as_bignum
|
|
180
|
+
b = 0
|
|
181
|
+
@state.each_with_index do |val, i|
|
|
182
|
+
b |= val << (32 * i)
|
|
183
|
+
end
|
|
184
|
+
b
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def left # It's actually the number of words left + 1, as per MRI...
|
|
188
|
+
MT19937::STATE_SIZE - @last_read
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def marshal_dump
|
|
192
|
+
[state_as_bignum, left]
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def marshal_load(ary)
|
|
196
|
+
b, left = ary
|
|
197
|
+
@last_read = MT19937::STATE_SIZE - left
|
|
198
|
+
@state = Array.new(STATE_SIZE)
|
|
199
|
+
STATE_SIZE.times do |i|
|
|
200
|
+
@state[i] = b & PAD_32_BITS
|
|
201
|
+
b >>= 32
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# Convert an Integer seed of arbitrary size to either a single 32 bit integer, or an Array of 32 bit integers
|
|
206
|
+
def self.convert_seed(seed)
|
|
207
|
+
seed = seed.abs
|
|
208
|
+
long_values = []
|
|
209
|
+
begin
|
|
210
|
+
long_values << (seed & PAD_32_BITS)
|
|
211
|
+
seed >>= 32
|
|
212
|
+
end until seed == 0
|
|
213
|
+
|
|
214
|
+
long_values.pop if long_values[-1] == 1 && long_values.size > 1 # Done to allow any kind of sequence of integers
|
|
215
|
+
|
|
216
|
+
long_values.size > 1 ? long_values : long_values.first
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def self.[](seed)
|
|
220
|
+
new(convert_seed(seed))
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
private
|
|
224
|
+
|
|
225
|
+
MASK_BY = [1,2,4,8,16]
|
|
226
|
+
def mask_32_bits(n)
|
|
227
|
+
MASK_BY.each do |shift|
|
|
228
|
+
n |= n >> shift
|
|
229
|
+
end
|
|
230
|
+
n
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# @private
|
|
235
|
+
# Implementation corresponding to the actual Random class of Ruby
|
|
236
|
+
# The actual random generator (mersenne twister) is in MT19937.
|
|
237
|
+
# Ruby specific conversions are handled in bits_and_bytes.
|
|
238
|
+
# The high level stuff (argument checking) is done here.
|
|
239
|
+
module Implementation
|
|
240
|
+
attr_reader :seed
|
|
241
|
+
|
|
242
|
+
def initialize(seed = 0)
|
|
243
|
+
super()
|
|
244
|
+
seed_rand seed
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def seed_rand(new_seed = 0)
|
|
248
|
+
new_seed = Backports.coerce_to_int(new_seed)
|
|
249
|
+
@seed = nil unless defined?(@seed)
|
|
250
|
+
old, @seed = @seed, new_seed.nonzero? || Random.new_seed
|
|
251
|
+
@mt = MT19937[ @seed ]
|
|
252
|
+
old
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def rand(limit = Backports::Undefined)
|
|
256
|
+
case limit
|
|
257
|
+
when Backports::Undefined
|
|
258
|
+
@mt.random_float
|
|
259
|
+
when Float
|
|
260
|
+
limit * @mt.random_float unless limit <= 0
|
|
261
|
+
when Range
|
|
262
|
+
_rand_range(limit)
|
|
263
|
+
else
|
|
264
|
+
limit = Backports.coerce_to_int(limit)
|
|
265
|
+
@mt.random_integer(limit) unless limit <= 0
|
|
266
|
+
end || raise(ArgumentError, "invalid argument #{limit}")
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
def bytes(nb)
|
|
270
|
+
nb = Backports.coerce_to_int(nb)
|
|
271
|
+
raise ArgumentError, "negative size" if nb < 0
|
|
272
|
+
@mt.random_bytes(nb)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def ==(other)
|
|
276
|
+
other.is_a?(Random) &&
|
|
277
|
+
seed == other.seed &&
|
|
278
|
+
left == other.send(:left) &&
|
|
279
|
+
state == other.send(:state)
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def marshal_dump
|
|
283
|
+
@mt.marshal_dump << @seed
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
def marshal_load(ary)
|
|
287
|
+
@seed = ary.pop
|
|
288
|
+
@mt = MT19937.allocate
|
|
289
|
+
@mt.marshal_load(ary)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
private
|
|
293
|
+
|
|
294
|
+
def state
|
|
295
|
+
@mt.state_as_bignum
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
def left
|
|
299
|
+
@mt.left
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def _rand_range(limit)
|
|
303
|
+
range = limit.end - limit.begin
|
|
304
|
+
if (!range.is_a?(Float)) && range.respond_to?(:to_int) && range = Backports.coerce_to_int(range)
|
|
305
|
+
range += 1 unless limit.exclude_end?
|
|
306
|
+
limit.begin + @mt.random_integer(range) unless range <= 0
|
|
307
|
+
elsif range = Backports.coerce_to(range, Float, :to_f)
|
|
308
|
+
if range < 0
|
|
309
|
+
nil
|
|
310
|
+
elsif limit.exclude_end?
|
|
311
|
+
limit.begin + @mt.random_float * range unless range <= 0
|
|
312
|
+
else
|
|
313
|
+
# cheat a bit... this will reduce the nb of random bits
|
|
314
|
+
loop do
|
|
315
|
+
r = @mt.random_float * range * 1.0001
|
|
316
|
+
break limit.begin + r unless r > range
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
def self.new_seed
|
|
324
|
+
(2 ** 62) + Kernel.rand(2 ** 62)
|
|
325
|
+
end
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
class Random
|
|
329
|
+
include Implementation
|
|
330
|
+
class << self
|
|
331
|
+
include Implementation
|
|
332
|
+
end
|
|
333
|
+
end
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
end
|