gem_repackager 0.1.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.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +56 -0
- data/Rakefile +9 -0
- data/bin/gem_repackager +57 -0
- data/gem_repackager.gemspec +22 -0
- data/lib/gem_repackager.rb +131 -0
- data/lib/gem_repackager/version.rb +5 -0
- data/spec/packager_spec.rb +131 -0
- data/spec/spec_helper.rb +1 -0
- data/support/bin/rspec +19 -0
- data/support/gems/rspec-2.11.0/License.txt +24 -0
- data/support/gems/rspec-2.11.0/README.md +47 -0
- data/support/gems/rspec-2.11.0/lib/rspec.rb +4 -0
- data/support/gems/rspec-2.11.0/lib/rspec/version.rb +5 -0
- data/support/gems/rspec-core-2.11.1/.document +5 -0
- data/support/gems/rspec-core-2.11.1/.yardopts +6 -0
- data/support/gems/rspec-core-2.11.1/Changelog.md +570 -0
- data/support/gems/rspec-core-2.11.1/License.txt +24 -0
- data/support/gems/rspec-core-2.11.1/README.md +235 -0
- data/support/gems/rspec-core-2.11.1/exe/autospec +13 -0
- data/support/gems/rspec-core-2.11.1/exe/rspec +25 -0
- data/support/gems/rspec-core-2.11.1/features/Autotest.md +38 -0
- data/support/gems/rspec-core-2.11.1/features/README.md +17 -0
- data/support/gems/rspec-core-2.11.1/features/Upgrade.md +364 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/README.md +28 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/example_name_option.feature +101 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/exit_status.feature +83 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/format_option.feature +81 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/init.feature +18 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/line_number_appended_to_path.feature +140 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/line_number_option.feature +58 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/order.feature +29 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/pattern_option.feature +31 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/rake_task.feature +68 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/ruby.feature +22 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/tag.feature +91 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/alias_example_to.feature +48 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/custom_settings.feature +84 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/default_path.feature +38 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/fail_fast.feature +77 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/read_options_from_file.feature +87 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/basic_structure.feature +55 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/shared_context.feature +74 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/shared_examples.feature +204 -0
- data/support/gems/rspec-core-2.11.1/features/expectation_framework_integration/configure_expectation_framework.feature +102 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/exclusion_filters.feature +139 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/if_and_unless.feature +168 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/inclusion_filters.feature +105 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/run_all_when_everything_filtered.feature +46 -0
- data/support/gems/rspec-core-2.11.1/features/formatters/custom_formatter.feature +36 -0
- data/support/gems/rspec-core-2.11.1/features/formatters/text_formatter.feature +46 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/arbitrary_methods.feature +40 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/let.feature +50 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/modules.feature +149 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/around_hooks.feature +343 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/before_and_after_hooks.feature +423 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/filtering.feature +234 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/current_example.feature +17 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/described_class.feature +17 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/user_defined.feature +113 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_any_framework.feature +106 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_flexmock.feature +96 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_mocha.feature +97 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rr.feature +98 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rspec.feature +97 -0
- data/support/gems/rspec-core-2.11.1/features/pending/pending_examples.feature +229 -0
- data/support/gems/rspec-core-2.11.1/features/spec_files/arbitrary_file_suffix.feature +13 -0
- data/support/gems/rspec-core-2.11.1/features/step_definitions/additional_cli_steps.rb +30 -0
- data/support/gems/rspec-core-2.11.1/features/subject/attribute_of_subject.feature +124 -0
- data/support/gems/rspec-core-2.11.1/features/subject/explicit_subject.feature +82 -0
- data/support/gems/rspec-core-2.11.1/features/subject/implicit_receiver.feature +29 -0
- data/support/gems/rspec-core-2.11.1/features/subject/implicit_subject.feature +63 -0
- data/support/gems/rspec-core-2.11.1/features/support/env.rb +12 -0
- data/support/gems/rspec-core-2.11.1/lib/autotest/discover.rb +1 -0
- data/support/gems/rspec-core-2.11.1/lib/autotest/rspec2.rb +73 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/autorun.rb +2 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core.rb +126 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/backward_compatibility.rb +65 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb +36 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb +944 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb +129 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/deprecation.rb +36 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_command_line.rb +26 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_options.rb +87 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/dsl.rb +26 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/example.rb +330 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb +466 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions.rb +4 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/instance_eval_with_args.rb +44 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/kernel.rb +9 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/module_eval_with_args.rb +38 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/ordered.rb +21 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/filter_manager.rb +203 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_formatter.rb +168 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_text_formatter.rb +203 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/documentation_formatter.rb +67 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/helpers.rb +39 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/html_formatter.rb +464 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/progress_formatter.rb +32 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/snippet_extractor.rb +58 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/text_mate_formatter.rb +34 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/hooks.rb +495 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/let.rb +110 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/load_path.rb +3 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata.rb +276 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata_hash_builder.rb +97 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_absolutely_nothing.rb +11 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_flexmock.rb +27 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_mocha.rb +29 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rr.rb +27 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rspec.rb +23 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/option_parser.rb +181 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/pending.rb +101 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/project_initializer.rb +87 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/rake_task.rb +179 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb +102 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/ruby_project.rb +44 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb +76 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_context.rb +49 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_example_group.rb +96 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/subject.rb +219 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/version.rb +7 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/world.rb +128 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/discover_spec.rb +19 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/failed_results_re_spec.rb +45 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/rspec_spec.rb +123 -0
- data/support/gems/rspec-core-2.11.1/spec/command_line/order_spec.rb +137 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec.rb +108 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec_output.txt +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_options_spec.rb +377 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_spec.rb +1196 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/deprecations_spec.rb +66 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_command_line_spec.rb +108 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_options_spec.rb +180 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/dsl_spec.rb +17 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_group_spec.rb +1098 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_spec.rb +370 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/filter_manager_spec.rb +256 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_formatter_spec.rb +80 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_text_formatter_spec.rb +363 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/documentation_formatter_spec.rb +88 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/helpers_spec.rb +66 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +410 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7.html +409 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.2.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.3.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatter_spec.rb +82 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/progress_formatter_spec.rb +30 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/snippet_extractor_spec.rb +18 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +410 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +409 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatter_spec.rb +83 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_filtering_spec.rb +227 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_spec.rb +250 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/kernel_extensions_spec.rb +9 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/let_spec.rb +55 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/metadata_spec.rb +447 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/option_parser_spec.rb +166 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/pending_example_spec.rb +220 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/project_initializer_spec.rb +130 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/rake_task_spec.rb +138 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/reporter_spec.rb +103 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_bar.rb +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_foo.rb +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_spec.rb +1 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/formatter_specs.rb +60 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/utf8_encoded.rb +8 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/rspec_matchers_spec.rb +45 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/ruby_project_spec.rb +24 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/runner_spec.rb +81 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_context_spec.rb +67 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_example_group_spec.rb +84 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/subject_spec.rb +244 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/world_spec.rb +144 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core_spec.rb +35 -0
- data/support/gems/rspec-core-2.11.1/spec/spec_helper.rb +98 -0
- data/support/gems/rspec-core-2.11.1/spec/support/config_options_helper.rb +24 -0
- data/support/gems/rspec-core-2.11.1/spec/support/helper_methods.rb +5 -0
- data/support/gems/rspec-core-2.11.1/spec/support/matchers.rb +65 -0
- data/support/gems/rspec-core-2.11.1/spec/support/shared_example_groups.rb +41 -0
- data/support/gems/rspec-core-2.11.1/spec/support/spec_files.rb +44 -0
- data/support/gems/rspec-expectations-2.11.2/.document +5 -0
- data/support/gems/rspec-expectations-2.11.2/.yardopts +6 -0
- data/support/gems/rspec-expectations-2.11.2/Changelog.md +246 -0
- data/support/gems/rspec-expectations-2.11.2/License.txt +23 -0
- data/support/gems/rspec-expectations-2.11.2/README.md +224 -0
- data/support/gems/rspec-expectations-2.11.2/features/README.md +49 -0
- data/support/gems/rspec-expectations-2.11.2/features/Upgrade.md +53 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/README.md +90 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be.feature +173 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be_within.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/cover.feature +45 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/end_with.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/equality.feature +145 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/exist.feature +43 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_change.feature +59 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_error.feature +138 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/have.feature +103 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/include.feature +121 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/match.feature +50 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/operators.feature +221 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/predicates.feature +128 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/respond_to.feature +78 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/satisfy.feature +31 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/start_with.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/throw_symbol.feature +85 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/types.feature +114 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/yield.feature +146 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/access_running_example.feature +53 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_diffable_matcher.feature +27 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher.feature +340 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_outside_rspec.feature +38 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_with_fluent_interface.feature +24 -0
- data/support/gems/rspec-expectations-2.11.2/features/customized_message.feature +22 -0
- data/support/gems/rspec-expectations-2.11.2/features/diffing.feature +85 -0
- data/support/gems/rspec-expectations-2.11.2/features/implicit_docstrings.feature +52 -0
- data/support/gems/rspec-expectations-2.11.2/features/step_definitions/additional_cli_steps.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/features/support/env.rb +5 -0
- data/support/gems/rspec-expectations-2.11.2/features/syntax_configuration.feature +68 -0
- data/support/gems/rspec-expectations-2.11.2/features/test_frameworks/test_unit.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec-expectations.rb +1 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations.rb +47 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/deprecation.rb +38 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/differ.rb +81 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/errors.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/expectation_target.rb +58 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions.rb +2 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/array.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/object.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/fail_with.rb +55 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/handler.rb +48 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/syntax.rb +110 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/version.rb +8 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers.rb +689 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/be_close.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/base_matcher.rb +68 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be.rb +185 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_instance_of.rb +11 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_kind_of.rb +11 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_within.rb +45 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/change.rb +132 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/cover.rb +21 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eq.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eql.rb +23 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/equal.rb +44 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/exist.rb +26 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/has.rb +47 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/have.rb +107 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/include.rb +51 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match.rb +12 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match_array.rb +45 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/raise_error.rb +96 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/respond_to.rb +73 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/satisfy.rb +29 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/start_and_end_with.rb +48 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/throw_symbol.rb +93 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/yield.rb +219 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/compatibility.rb +14 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/configuration.rb +66 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/dsl.rb +24 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/extensions/instance_eval_with_args.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/generated_descriptions.rb +36 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/matcher.rb +299 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/method_missing.rb +12 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/operator_matcher.rb +84 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/pretty.rb +60 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/differ_spec.rb +153 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/expectation_target_spec.rb +65 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/extensions/kernel_spec.rb +67 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/fail_with_spec.rb +70 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/handler_spec.rb +206 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/base_matcher_spec.rb +60 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_close_spec.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_instance_of_spec.rb +36 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_kind_of_spec.rb +33 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_spec.rb +452 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_within_spec.rb +76 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/change_spec.rb +522 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/configuration_spec.rb +160 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/cover_spec.rb +65 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/description_generation_spec.rb +176 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/dsl_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eq_spec.rb +50 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eql_spec.rb +37 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/equal_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/exist_spec.rb +104 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/has_spec.rb +113 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/have_spec.rb +458 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/include_spec.rb +363 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_array_spec.rb +120 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matcher_spec.rb +434 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matchers_spec.rb +31 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/method_missing_spec.rb +24 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/operator_matcher_spec.rb +221 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/raise_error_spec.rb +339 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/respond_to_spec.rb +292 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/satisfy_spec.rb +40 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/start_with_end_with_spec.rb +174 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/throw_symbol_spec.rb +111 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/yield_spec.rb +374 -0
- data/support/gems/rspec-expectations-2.11.2/spec/spec_helper.rb +27 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/classes.rb +56 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/in_sub_process.rb +31 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/matchers.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/ruby_version.rb +10 -0
- data/support/gems/rspec-mocks-2.11.1/.document +5 -0
- data/support/gems/rspec-mocks-2.11.1/.yardopts +6 -0
- data/support/gems/rspec-mocks-2.11.1/Changelog.md +199 -0
- data/support/gems/rspec-mocks-2.11.1/License.txt +23 -0
- data/support/gems/rspec-mocks-2.11.1/README.md +276 -0
- data/support/gems/rspec-mocks-2.11.1/features/README.md +67 -0
- data/support/gems/rspec-mocks-2.11.1/features/Scope.md +17 -0
- data/support/gems/rspec-mocks-2.11.1/features/Upgrade.md +22 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/README.md +27 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/explicit.feature +60 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/general_matchers.feature +85 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/type_matchers.feature +25 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/README.md +58 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/any_instance.feature +21 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/block_local_expectations.feature.pending +55 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/expect_message.feature +94 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/receive_counts.feature +209 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/warn_when_expectation_is_set_on_nil.feature +50 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/README.md +43 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/any_instance.feature +133 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/as_null_object.feature +35 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/simple_return_value.feature +64 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_chain.feature +51 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_implementation.feature +26 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/to_ary.feature +47 -0
- data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/configuration.feature +82 -0
- data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/standalone.feature +32 -0
- data/support/gems/rspec-mocks-2.11.1/features/step_definitions/additional_cli_steps.rb +4 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/README.md +62 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_defined_constant.feature +79 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_undefined_constant.feature +50 -0
- data/support/gems/rspec-mocks-2.11.1/features/support/env.rb +6 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks.rb +39 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb +81 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/chain.rb +77 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/expectation_chain.rb +57 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/message_chains.rb +60 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/recorder.rb +197 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain.rb +37 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +25 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_list_matcher.rb +93 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_matchers.rb +238 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/error_generator.rb +114 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/errors.rb +12 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/example_methods.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/instance_exec.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/marshal.rb +23 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/psych.rb +23 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/framework.rb +20 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/message_expectation.rb +488 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/method_double.rb +196 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/methods.rb +155 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/mock.rb +7 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/order_group.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/proxy.rb +190 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/serialization.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/standalone.rb +3 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/stub_const.rb +280 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/test_double.rb +103 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/version.rb +7 -0
- data/support/gems/rspec-mocks-2.11.1/lib/spec/mocks.rb +2 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/and_yield_spec.rb +114 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance/message_chains_spec.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance_spec.rb +825 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_number_of_times_spec.rb +30 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/argument_expectation_spec.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_least_spec.rb +142 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_most_spec.rb +90 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/block_return_value_spec.rb +53 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10260_spec.rb +8 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10263_spec.rb +25 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_11545_spec.rb +32 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_496_spec.rb +17 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_600_spec.rb +22 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_7611_spec.rb +16 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_8165_spec.rb +31 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_830_spec.rb +21 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_957_spec.rb +22 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/double_spec.rb +12 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_excluding_matcher_spec.rb +67 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_including_matcher_spec.rb +90 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_ordering_spec.rb +103 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_space_spec.rb +58 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_spec.rb +730 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/multiple_return_value_spec.rb +119 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/nil_expectation_warning_spec.rb +62 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/null_object_mock_spec.rb +106 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/once_counts_spec.rb +52 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/options_hash_spec.rb +35 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_spec.rb +156 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/passing_argument_matchers_spec.rb +142 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/precise_counts_spec.rb +68 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/record_messages_spec.rb +26 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/serialization_spec.rb +111 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stash_spec.rb +27 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_chain_spec.rb +149 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_const_spec.rb +309 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_implementation_spec.rb +68 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_spec.rb +238 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stubbed_message_expectations_spec.rb +47 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/test_double_spec.rb +57 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/to_ary_spec.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/twice_counts_spec.rb +66 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks_spec.rb +51 -0
- data/support/gems/rspec-mocks-2.11.1/spec/spec_helper.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/.document +5 -0
- data/support/gems/rspec-rails-2.11.0/.yardopts +8 -0
- data/support/gems/rspec-rails-2.11.0/Changelog.md +293 -0
- data/support/gems/rspec-rails-2.11.0/License.txt +22 -0
- data/support/gems/rspec-rails-2.11.0/README.md +494 -0
- data/support/gems/rspec-rails-2.11.0/features/Autotest.md +24 -0
- data/support/gems/rspec-rails-2.11.0/features/Generators.md +8 -0
- data/support/gems/rspec-rails-2.11.0/features/GettingStarted.md +84 -0
- data/support/gems/rspec-rails-2.11.0/features/README.md +56 -0
- data/support/gems/rspec-rails-2.11.0/features/RailsVersions.md +4 -0
- data/support/gems/rspec-rails-2.11.0/features/Transactions.md +84 -0
- data/support/gems/rspec-rails-2.11.0/features/Upgrade.md +117 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/Cookies.md +57 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/README.md +45 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/anonymous_controller.feature +330 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/bypass_rescue.feature +75 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/controller_spec.feature +35 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/isolation_from_views.feature +87 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/render_views.feature +114 -0
- data/support/gems/rspec-rails-2.11.0/features/helper_specs/helper_spec.feature +96 -0
- data/support/gems/rspec-rails-2.11.0/features/mailer_specs/url_helpers.feature +38 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/README.md +18 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/new_record_matcher.feature +28 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/redirect_to_matcher.feature +40 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/relation_match_array.feature +20 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/render_template_matcher.feature +28 -0
- data/support/gems/rspec-rails-2.11.0/features/mocks/mock_model.feature +147 -0
- data/support/gems/rspec-rails-2.11.0/features/mocks/stub_model.feature +58 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/README.md +21 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/errors_on.feature +33 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/transactional_examples.feature +109 -0
- data/support/gems/rspec-rails-2.11.0/features/request_specs/request_spec.feature +49 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/README.md +17 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/be_routable_matcher.feature +80 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/named_routes.feature +18 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/route_to_matcher.feature +90 -0
- data/support/gems/rspec-rails-2.11.0/features/step_definitions/additional_cli_steps.rb +4 -0
- data/support/gems/rspec-rails-2.11.0/features/step_definitions/model_steps.rb +3 -0
- data/support/gems/rspec-rails-2.11.0/features/support/env.rb +53 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/inferred_controller_path.feature +44 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/stub_template.feature +51 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/view_spec.feature +174 -0
- data/support/gems/rspec-rails-2.11.0/lib/autotest/rails_rspec2.rb +84 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec.rb +25 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/controller_generator.rb +33 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/controller_spec.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/view_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/helper_generator.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/templates/helper_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/install_generator.rb +24 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/.rspec +1 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/spec/spec_helper.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/integration_generator.rb +27 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/templates/request_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/mailer_generator.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/fixture +3 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/mailer_spec.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/model_generator.rb +22 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/fixtures.yml +19 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/model_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/observer_generator.rb +12 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/templates/observer_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/scaffold_generator.rb +158 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/controller_spec.rb +166 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/edit_spec.rb +31 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/index_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/new_spec.rb +30 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/routing_spec.rb +37 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/show_spec.rb +28 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/templates/view_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/view_generator.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec-rails.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/adapters.rb +79 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/controller_example_group.rb +128 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/helper_example_group.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/mailer_example_group.rb +22 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/model_example_group.rb +10 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/rails_example_group.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/request_example_group.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/routing_example_group.rb +27 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/view_example_group.rb +155 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions.rb +1 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions/active_record/base.rb +45 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/fixture_support.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers.rb +26 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_a_new.rb +76 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_new_record.rb +19 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_extension.rb +35 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_rendered.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/redirect_to.rb +37 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/relation_match_array.rb +3 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/routing_matchers.rb +107 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/mocks.rb +243 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/module_inclusion.rb +29 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/tasks/rspec.rake +56 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/capybara.rb +29 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/webrat.rb +33 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/version.rb +7 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_assigns.rb +45 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_rendering.rb +121 -0
- data/support/gems/rspec-rails-2.11.0/spec/autotest/rails_rspec2_spec.rb +36 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/controller/controller_generator_spec.rb +86 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/helper/helper_generator_spec.rb +30 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/install/install_generator_spec.rb +18 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/integration/integration_generator_spec.rb +44 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/mailer/mailer_generator_spec.rb +48 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/model/model_generator_spec.rb +52 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/observer/observer_generator_spec.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +107 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/view/view_generator_spec.rb +41 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/assertion_adapter_spec.rb +28 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/configuration_spec.rb +26 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/deprecations_spec.rb +18 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/controller_example_group_spec.rb +100 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/helper_example_group_spec.rb +64 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/mailer_example_group_spec.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/model_example_group_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/request_example_group_spec.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/routing_example_group_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/view_example_group_spec.rb +214 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_record/records_spec.rb +9 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/fixture_support_spec.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_a_new_spec.rb +142 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_new_record_spec.rb +19 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_routable_spec.rb +41 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/errors_on_spec.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/have_rendered_spec.rb +93 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/redirect_to_spec.rb +80 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/relation_match_array_spec.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/route_to_spec.rb +152 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/mock_model_spec.rb +379 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/stub_model_spec.rb +154 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/view_rendering_spec.rb +111 -0
- data/support/gems/rspec-rails-2.11.0/spec/spec_helper.rb +31 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/ar_classes.rb +42 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/helpers.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/matchers.rb +9 -0
- data/support/specifications/rspec-2.11.0.gemspec +39 -0
- data/support/specifications/rspec-core-2.11.1.gemspec +61 -0
- data/support/specifications/rspec-expectations-2.11.2.gemspec +40 -0
- data/support/specifications/rspec-mocks-2.11.1.gemspec +37 -0
- data/support/specifications/rspec-rails-2.11.0.gemspec +55 -0
- metadata +653 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "deprecations" do
|
4
|
+
describe "Spec" do
|
5
|
+
it "is deprecated" do
|
6
|
+
RSpec.should_receive(:warn_deprecation).with(/Spec .* RSpec/i)
|
7
|
+
Spec
|
8
|
+
end
|
9
|
+
|
10
|
+
it "returns RSpec" do
|
11
|
+
RSpec.stub(:warn_deprecation)
|
12
|
+
Spec.should eq(RSpec)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "doesn't include backward compatibility in const_missing backtrace" do
|
16
|
+
RSpec.stub(:warn_deprecation)
|
17
|
+
exception = nil
|
18
|
+
begin
|
19
|
+
ConstantThatDoesNotExist
|
20
|
+
rescue Exception => exception
|
21
|
+
end
|
22
|
+
exception.backtrace.find { |l| l =~ /lib\/rspec\/core\/backward_compatibility/ }.should be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe RSpec::Core::ExampleGroup do
|
27
|
+
describe 'running_example' do
|
28
|
+
it 'is deprecated' do
|
29
|
+
RSpec.should_receive(:warn_deprecation)
|
30
|
+
self.running_example
|
31
|
+
end
|
32
|
+
|
33
|
+
it "delegates to example" do
|
34
|
+
RSpec.stub(:warn_deprecation)
|
35
|
+
running_example.should eq(example)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "Spec::Runner.configure" do
|
41
|
+
it "is deprecated" do
|
42
|
+
RSpec.stub(:warn_deprecation)
|
43
|
+
RSpec.should_receive(:deprecate)
|
44
|
+
Spec::Runner.configure
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "Spec::Rake::SpecTask" do
|
49
|
+
it "is deprecated" do
|
50
|
+
RSpec.stub(:warn_deprecation)
|
51
|
+
RSpec.should_receive(:deprecate)
|
52
|
+
Spec::Rake::SpecTask
|
53
|
+
end
|
54
|
+
|
55
|
+
it "doesn't include backward compatibility in const_missing backtrace" do
|
56
|
+
RSpec.stub(:warn_deprecation)
|
57
|
+
exception = nil
|
58
|
+
begin
|
59
|
+
Spec::Rake::ConstantThatDoesNotExist
|
60
|
+
rescue Exception => exception
|
61
|
+
end
|
62
|
+
exception.backtrace.find { |l| l =~ /lib\/rspec\/core\/backward_compatibility/ }.should be_nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'rspec/core/drb_command_line'
|
3
|
+
|
4
|
+
describe "::DRbCommandLine", :type => :drb, :unless => RUBY_PLATFORM == 'java' do
|
5
|
+
let(:config) { RSpec::Core::Configuration.new }
|
6
|
+
let(:out) { StringIO.new }
|
7
|
+
let(:err) { StringIO.new }
|
8
|
+
|
9
|
+
include_context "spec files"
|
10
|
+
|
11
|
+
def command_line(*args)
|
12
|
+
RSpec::Core::DRbCommandLine.new(config_options(*args))
|
13
|
+
end
|
14
|
+
|
15
|
+
def config_options(*args)
|
16
|
+
options = RSpec::Core::ConfigurationOptions.new(args)
|
17
|
+
options.parse_options
|
18
|
+
options
|
19
|
+
end
|
20
|
+
|
21
|
+
context "without server running" do
|
22
|
+
it "raises an error" do
|
23
|
+
lambda { command_line.run(err, out) }.should raise_error(DRb::DRbConnError)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "--drb-port" do
|
28
|
+
def with_RSPEC_DRB_set_to(val)
|
29
|
+
original = ENV['RSPEC_DRB']
|
30
|
+
ENV['RSPEC_DRB'] = val
|
31
|
+
begin
|
32
|
+
yield
|
33
|
+
ensure
|
34
|
+
ENV['RSPEC_DRB'] = original
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "without RSPEC_DRB environment variable set" do
|
39
|
+
it "defaults to 8989" do
|
40
|
+
with_RSPEC_DRB_set_to(nil) do
|
41
|
+
command_line.drb_port.should eq(8989)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "sets the DRb port" do
|
46
|
+
with_RSPEC_DRB_set_to(nil) do
|
47
|
+
command_line("--drb-port", "1234").drb_port.should eq(1234)
|
48
|
+
command_line("--drb-port", "5678").drb_port.should eq(5678)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "with RSPEC_DRB environment variable set" do
|
54
|
+
context "without config variable set" do
|
55
|
+
it "uses RSPEC_DRB value" do
|
56
|
+
with_RSPEC_DRB_set_to('9000') do
|
57
|
+
command_line.drb_port.should eq("9000")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "and config variable set" do
|
63
|
+
it "uses configured value" do
|
64
|
+
with_RSPEC_DRB_set_to('9000') do
|
65
|
+
command_line(*%w[--drb-port 5678]).drb_port.should eq(5678)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "with server running" do
|
73
|
+
class SimpleDRbSpecServer
|
74
|
+
def self.run(argv, err, out)
|
75
|
+
options = RSpec::Core::ConfigurationOptions.new(argv)
|
76
|
+
options.parse_options
|
77
|
+
RSpec::Core::CommandLine.new(options, RSpec::Core::Configuration.new).run(err, out)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
before(:all) do
|
82
|
+
@drb_port = '8990'
|
83
|
+
@drb_example_file_counter = 0
|
84
|
+
DRb::start_service("druby://127.0.0.1:#{@drb_port}", SimpleDRbSpecServer)
|
85
|
+
end
|
86
|
+
|
87
|
+
after(:all) do
|
88
|
+
DRb::stop_service
|
89
|
+
end
|
90
|
+
|
91
|
+
it "returns 0 if spec passes" do
|
92
|
+
result = command_line("--drb-port", @drb_port, passing_spec_filename).run(err, out)
|
93
|
+
result.should be(0)
|
94
|
+
end
|
95
|
+
|
96
|
+
it "returns 1 if spec fails" do
|
97
|
+
result = command_line("--drb-port", @drb_port, failing_spec_filename).run(err, out)
|
98
|
+
result.should be(1)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "outputs colorized text when running with --colour option" do
|
102
|
+
pending "figure out a way to tell the output to say it's tty"
|
103
|
+
command_line(failing_spec_filename, "--color", "--drb-port", @drb_port).run(err, out)
|
104
|
+
out.rewind
|
105
|
+
out.read.should =~ /\e\[31m/m
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,180 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'rspec/core/drb_options'
|
3
|
+
|
4
|
+
describe RSpec::Core::DrbOptions, :fakefs do
|
5
|
+
include ConfigOptionsHelper
|
6
|
+
|
7
|
+
describe "#drb_argv" do
|
8
|
+
it "preserves extra arguments" do
|
9
|
+
File.stub(:exist?) { false }
|
10
|
+
config_options_object(*%w[ a --drb b --color c ]).drb_argv.should =~ %w[ --color a b c ]
|
11
|
+
end
|
12
|
+
|
13
|
+
%w(--color --fail-fast --profile --backtrace --tty).each do |option|
|
14
|
+
it "includes #{option}" do
|
15
|
+
config_options_object("#{option}").drb_argv.should include("#{option}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "includes --failure-exit-code" do
|
20
|
+
config_options_object(*%w[--failure-exit-code 2]).drb_argv.should include("--failure-exit-code", "2")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "includes --options" do
|
24
|
+
config_options_object(*%w[--options custom.opts]).drb_argv.should include("--options", "custom.opts")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "includes --order" do
|
28
|
+
config_options_object(*%w[--order random]).drb_argv.should include('--order', 'random')
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with --example" do
|
32
|
+
it "includes --example" do
|
33
|
+
config_options_object(*%w[--example foo]).drb_argv.should include("--example", "foo")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "unescapes characters which were escaped upon storing --example originally" do
|
37
|
+
config_options_object("--example", "foo\\ bar").drb_argv.should include("--example", "foo bar")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "with tags" do
|
42
|
+
it "includes the inclusion tags" do
|
43
|
+
coo = config_options_object("--tag", "tag")
|
44
|
+
coo.drb_argv.should eq(["--tag", "tag"])
|
45
|
+
end
|
46
|
+
|
47
|
+
it "includes the inclusion tags with values" do
|
48
|
+
coo = config_options_object("--tag", "tag:foo")
|
49
|
+
coo.drb_argv.should eq(["--tag", "tag:foo"])
|
50
|
+
end
|
51
|
+
|
52
|
+
it "leaves inclusion tags intact" do
|
53
|
+
coo = config_options_object("--tag", "tag")
|
54
|
+
coo.drb_argv
|
55
|
+
coo.filter_manager.inclusions.should eq( {:tag=>true} )
|
56
|
+
end
|
57
|
+
|
58
|
+
it "leaves inclusion tags with values intact" do
|
59
|
+
coo = config_options_object("--tag", "tag:foo")
|
60
|
+
coo.drb_argv
|
61
|
+
coo.filter_manager.inclusions.should eq( {:tag=>'foo'} )
|
62
|
+
end
|
63
|
+
|
64
|
+
it "includes the exclusion tags" do
|
65
|
+
coo = config_options_object("--tag", "~tag")
|
66
|
+
coo.drb_argv.should eq(["--tag", "~tag"])
|
67
|
+
end
|
68
|
+
|
69
|
+
it "includes the exclusion tags with values" do
|
70
|
+
coo = config_options_object("--tag", "~tag:foo")
|
71
|
+
coo.drb_argv.should eq(["--tag", "~tag:foo"])
|
72
|
+
end
|
73
|
+
|
74
|
+
it "leaves exclusion tags intact" do
|
75
|
+
coo = config_options_object("--tag", "~tag")
|
76
|
+
coo.drb_argv
|
77
|
+
coo.filter_manager.exclusions.should include(:tag=>true)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "leaves exclusion tags with values intact" do
|
81
|
+
coo = config_options_object("--tag", "~tag:foo")
|
82
|
+
coo.drb_argv
|
83
|
+
coo.filter_manager.exclusions.should include(:tag=>'foo')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "with formatters" do
|
88
|
+
it "includes the formatters" do
|
89
|
+
coo = config_options_object("--format", "d")
|
90
|
+
coo.drb_argv.should eq(["--format", "d"])
|
91
|
+
end
|
92
|
+
|
93
|
+
it "leaves formatters intact" do
|
94
|
+
coo = config_options_object("--format", "d")
|
95
|
+
coo.drb_argv
|
96
|
+
coo.options[:formatters].should eq([["d"]])
|
97
|
+
end
|
98
|
+
|
99
|
+
it "leaves output intact" do
|
100
|
+
coo = config_options_object("--format", "p", "--out", "foo.txt", "--format", "d")
|
101
|
+
coo.drb_argv
|
102
|
+
coo.options[:formatters].should eq([["p","foo.txt"],["d"]])
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "with --out" do
|
107
|
+
it "combines with formatters" do
|
108
|
+
coo = config_options_object(*%w[--format h --out report.html])
|
109
|
+
coo.drb_argv.should eq(%w[--format h --out report.html])
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "with --line_number" do
|
114
|
+
it "includes --line_number" do
|
115
|
+
config_options_object(*%w[--line_number 35]).drb_argv.should eq(%w[--line_number 35])
|
116
|
+
end
|
117
|
+
|
118
|
+
it "includes multiple lines" do
|
119
|
+
config_options_object(*%w[-l 90 -l 4 -l 55]).drb_argv.should eq(
|
120
|
+
%w[--line_number 90 --line_number 4 --line_number 55]
|
121
|
+
)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
context "with -I libs" do
|
126
|
+
it "includes -I" do
|
127
|
+
config_options_object(*%w[-I a_dir]).drb_argv.should eq(%w[-I a_dir])
|
128
|
+
end
|
129
|
+
|
130
|
+
it "includes multiple paths" do
|
131
|
+
config_options_object(*%w[-I dir_1 -I dir_2 -I dir_3]).drb_argv.should eq(
|
132
|
+
%w[-I dir_1 -I dir_2 -I dir_3]
|
133
|
+
)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context "with --require" do
|
138
|
+
it "includes --require" do
|
139
|
+
config_options_object(*%w[--require a_path]).drb_argv.should eq(%w[--require a_path])
|
140
|
+
end
|
141
|
+
|
142
|
+
it "includes multiple paths" do
|
143
|
+
config_options_object(*%w[--require dir/ --require file.rb]).drb_argv.should eq(
|
144
|
+
%w[--require dir/ --require file.rb]
|
145
|
+
)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
context "--drb specified in ARGV" do
|
150
|
+
it "renders all the original arguments except --drb" do
|
151
|
+
config_options_object(*%w[ --drb --color --format s --example pattern --line_number 1 --profile --backtrace -I path/a -I path/b --require path/c --require path/d]).
|
152
|
+
drb_argv.should eq(%w[ --color --profile --backtrace --example pattern --line_number 1 --format s -I path/a -I path/b --require path/c --require path/d])
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
context "--drb specified in the options file" do
|
157
|
+
it "renders all the original arguments except --drb" do
|
158
|
+
File.open("./.rspec", "w") {|f| f << "--drb --color"}
|
159
|
+
config_options_object(*%w[ --tty --format s --example pattern --line_number 1 --profile --backtrace ]).
|
160
|
+
drb_argv.should eq(%w[ --color --profile --backtrace --tty --example pattern --line_number 1 --format s])
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
context "--drb specified in ARGV and the options file" do
|
165
|
+
it "renders all the original arguments except --drb" do
|
166
|
+
File.open("./.rspec", "w") {|f| f << "--drb --color"}
|
167
|
+
config_options_object(*%w[ --drb --format s --example pattern --line_number 1 --profile --backtrace]).
|
168
|
+
drb_argv.should eq(%w[ --color --profile --backtrace --example pattern --line_number 1 --format s])
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
context "--drb specified in ARGV and in as ARGV-specified --options file" do
|
173
|
+
it "renders all the original arguments except --drb and --options" do
|
174
|
+
File.open("./.rspec", "w") {|f| f << "--drb --color"}
|
175
|
+
config_options_object(*%w[ --drb --format s --example pattern --line_number 1 --profile --backtrace]).
|
176
|
+
drb_argv.should eq(%w[ --color --profile --backtrace --example pattern --line_number 1 --format s ])
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
main = self
|
4
|
+
describe "The describe method" do
|
5
|
+
it 'is available on the main object' do
|
6
|
+
main.should respond_to(:describe)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'is available on modules (so example groups can be nested inside them)' do
|
10
|
+
Module.new.should respond_to(:describe)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'is not available on other types of objects' do
|
14
|
+
Object.new.should_not respond_to(:describe)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,1098 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class SelfObserver
|
4
|
+
def self.cache
|
5
|
+
@cache ||= []
|
6
|
+
end
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
self.class.cache << self
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module RSpec::Core
|
14
|
+
describe ExampleGroup do
|
15
|
+
it_behaves_like "metadata hash builder" do
|
16
|
+
def metadata_hash(*args)
|
17
|
+
group = ExampleGroup.describe('example description', *args)
|
18
|
+
group.metadata
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when RSpec.configuration.treat_symbols_as_metadata_keys_with_true_values is set to false' do
|
23
|
+
before(:each) do
|
24
|
+
RSpec.configure { |c| c.treat_symbols_as_metadata_keys_with_true_values = false }
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'processes string args as part of the description' do
|
28
|
+
group = ExampleGroup.describe("some", "separate", "strings")
|
29
|
+
group.description.should eq("some separate strings")
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'processes symbol args as part of the description' do
|
33
|
+
Kernel.stub(:warn) # to silence Symbols as args warning
|
34
|
+
group = ExampleGroup.describe(:some, :separate, :symbols)
|
35
|
+
group.description.should eq("some separate symbols")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when RSpec.configuration.treat_symbols_as_metadata_keys_with_true_values is set to true' do
|
40
|
+
let(:group) { ExampleGroup.describe(:symbol) }
|
41
|
+
|
42
|
+
before(:each) do
|
43
|
+
RSpec.configure { |c| c.treat_symbols_as_metadata_keys_with_true_values = true }
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'does not treat the first argument as a metadata key even if it is a symbol' do
|
47
|
+
group.metadata.should_not include(:symbol)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'treats the first argument as part of the description when it is a symbol' do
|
51
|
+
group.description.should eq("symbol")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "top level group" do
|
56
|
+
it "runs its children" do
|
57
|
+
examples_run = []
|
58
|
+
group = ExampleGroup.describe("parent") do
|
59
|
+
describe("child") do
|
60
|
+
it "does something" do
|
61
|
+
examples_run << example
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
group.run
|
67
|
+
examples_run.should have(1).example
|
68
|
+
end
|
69
|
+
|
70
|
+
context "with a failure in the top level group" do
|
71
|
+
it "runs its children " do
|
72
|
+
examples_run = []
|
73
|
+
group = ExampleGroup.describe("parent") do
|
74
|
+
it "fails" do
|
75
|
+
examples_run << example
|
76
|
+
raise "fail"
|
77
|
+
end
|
78
|
+
describe("child") do
|
79
|
+
it "does something" do
|
80
|
+
examples_run << example
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
group.run
|
86
|
+
examples_run.should have(2).examples
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "descendants" do
|
91
|
+
it "returns self + all descendants" do
|
92
|
+
group = ExampleGroup.describe("parent") do
|
93
|
+
describe("child") do
|
94
|
+
describe("grandchild 1") {}
|
95
|
+
describe("grandchild 2") {}
|
96
|
+
end
|
97
|
+
end
|
98
|
+
group.descendants.size.should eq(4)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "child" do
|
104
|
+
it "is known by parent" do
|
105
|
+
parent = ExampleGroup.describe
|
106
|
+
child = parent.describe
|
107
|
+
parent.children.should eq([child])
|
108
|
+
end
|
109
|
+
|
110
|
+
it "is not registered in world" do
|
111
|
+
world = RSpec::Core::World.new
|
112
|
+
parent = ExampleGroup.describe
|
113
|
+
world.register(parent)
|
114
|
+
parent.describe
|
115
|
+
world.example_groups.should eq([parent])
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "filtering" do
|
120
|
+
let(:world) { World.new }
|
121
|
+
|
122
|
+
shared_examples "matching filters" do
|
123
|
+
context "inclusion" do
|
124
|
+
before do
|
125
|
+
filter_manager = FilterManager.new
|
126
|
+
filter_manager.include filter_metadata
|
127
|
+
world.stub(:filter_manager => filter_manager)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "includes examples in groups matching filter" do
|
131
|
+
group = ExampleGroup.describe("does something", spec_metadata)
|
132
|
+
group.stub(:world) { world }
|
133
|
+
all_examples = [ group.example("first"), group.example("second") ]
|
134
|
+
|
135
|
+
group.filtered_examples.should eq(all_examples)
|
136
|
+
end
|
137
|
+
|
138
|
+
it "includes examples directly matching filter" do
|
139
|
+
group = ExampleGroup.describe("does something")
|
140
|
+
group.stub(:world) { world }
|
141
|
+
filtered_examples = [
|
142
|
+
group.example("first", spec_metadata),
|
143
|
+
group.example("second", spec_metadata)
|
144
|
+
]
|
145
|
+
group.example("third (not-filtered)")
|
146
|
+
|
147
|
+
group.filtered_examples.should eq(filtered_examples)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context "exclusion" do
|
152
|
+
before do
|
153
|
+
filter_manager = FilterManager.new
|
154
|
+
filter_manager.exclude filter_metadata
|
155
|
+
world.stub(:filter_manager => filter_manager)
|
156
|
+
end
|
157
|
+
|
158
|
+
it "excludes examples in groups matching filter" do
|
159
|
+
group = ExampleGroup.describe("does something", spec_metadata)
|
160
|
+
group.stub(:world) { world }
|
161
|
+
[ group.example("first"), group.example("second") ]
|
162
|
+
|
163
|
+
group.filtered_examples.should be_empty
|
164
|
+
end
|
165
|
+
|
166
|
+
it "excludes examples directly matching filter" do
|
167
|
+
group = ExampleGroup.describe("does something")
|
168
|
+
group.stub(:world) { world }
|
169
|
+
[
|
170
|
+
group.example("first", spec_metadata),
|
171
|
+
group.example("second", spec_metadata)
|
172
|
+
]
|
173
|
+
unfiltered_example = group.example("third (not-filtered)")
|
174
|
+
|
175
|
+
group.filtered_examples.should eq([unfiltered_example])
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context "matching false" do
|
181
|
+
let(:spec_metadata) { { :awesome => false }}
|
182
|
+
|
183
|
+
context "against false" do
|
184
|
+
let(:filter_metadata) { { :awesome => false }}
|
185
|
+
include_examples "matching filters"
|
186
|
+
end
|
187
|
+
|
188
|
+
context "against 'false'" do
|
189
|
+
let(:filter_metadata) { { :awesome => 'false' }}
|
190
|
+
include_examples "matching filters"
|
191
|
+
end
|
192
|
+
|
193
|
+
context "against :false" do
|
194
|
+
let(:filter_metadata) { { :awesome => :false }}
|
195
|
+
include_examples "matching filters"
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
context "matching true" do
|
200
|
+
let(:spec_metadata) { { :awesome => true }}
|
201
|
+
|
202
|
+
context "against true" do
|
203
|
+
let(:filter_metadata) { { :awesome => true }}
|
204
|
+
include_examples "matching filters"
|
205
|
+
end
|
206
|
+
|
207
|
+
context "against 'true'" do
|
208
|
+
let(:filter_metadata) { { :awesome => 'true' }}
|
209
|
+
include_examples "matching filters"
|
210
|
+
end
|
211
|
+
|
212
|
+
context "against :true" do
|
213
|
+
let(:filter_metadata) { { :awesome => :true }}
|
214
|
+
include_examples "matching filters"
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
context "matching a string" do
|
219
|
+
let(:spec_metadata) { { :type => 'special' }}
|
220
|
+
|
221
|
+
context "against a string" do
|
222
|
+
let(:filter_metadata) { { :type => 'special' }}
|
223
|
+
include_examples "matching filters"
|
224
|
+
end
|
225
|
+
|
226
|
+
context "against a symbol" do
|
227
|
+
let(:filter_metadata) { { :type => :special }}
|
228
|
+
include_examples "matching filters"
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
context "matching a symbol" do
|
233
|
+
let(:spec_metadata) { { :type => :special }}
|
234
|
+
|
235
|
+
context "against a string" do
|
236
|
+
let(:filter_metadata) { { :type => 'special' }}
|
237
|
+
include_examples "matching filters"
|
238
|
+
end
|
239
|
+
|
240
|
+
context "against a symbol" do
|
241
|
+
let(:filter_metadata) { { :type => :special }}
|
242
|
+
include_examples "matching filters"
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
context "with no filters" do
|
247
|
+
it "returns all" do
|
248
|
+
group = ExampleGroup.describe
|
249
|
+
group.stub(:world) { world }
|
250
|
+
example = group.example("does something")
|
251
|
+
group.filtered_examples.should eq([example])
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context "with no examples or groups that match filters" do
|
256
|
+
it "returns none" do
|
257
|
+
filter_manager = FilterManager.new
|
258
|
+
filter_manager.include :awesome => false
|
259
|
+
world.stub(:filter_manager => filter_manager)
|
260
|
+
group = ExampleGroup.describe
|
261
|
+
group.stub(:world) { world }
|
262
|
+
group.example("does something")
|
263
|
+
group.filtered_examples.should eq([])
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
describe '#described_class' do
|
269
|
+
|
270
|
+
context "with a constant as the first parameter" do
|
271
|
+
it "is that constant" do
|
272
|
+
ExampleGroup.describe(Object) { }.described_class.should eq(Object)
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
context "with a string as the first parameter" do
|
277
|
+
it "is nil" do
|
278
|
+
ExampleGroup.describe("i'm a computer") { }.described_class.should be_nil
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
context "with a constant in an outer group" do
|
283
|
+
context "and a string in an inner group" do
|
284
|
+
it "is the top level constant" do
|
285
|
+
group = ExampleGroup.describe(String) do
|
286
|
+
describe :symbol do
|
287
|
+
example "described_class is String" do
|
288
|
+
described_class.should eq(String)
|
289
|
+
end
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
group.run.should be_true
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
context "and metadata redefinition after `described_class` call" do
|
298
|
+
it "is the redefined level constant" do
|
299
|
+
group = ExampleGroup.describe(String) do
|
300
|
+
described_class
|
301
|
+
metadata[:example_group][:described_class] = Object
|
302
|
+
describe :symbol do
|
303
|
+
example "described_class is Object" do
|
304
|
+
described_class.should eq(Object)
|
305
|
+
end
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
group.run.should be_true
|
310
|
+
end
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
context "in a nested group" do
|
315
|
+
it "inherits the described class/module from the outer group" do
|
316
|
+
group = ExampleGroup.describe(String) do
|
317
|
+
describe Array do
|
318
|
+
example "desribes is String" do
|
319
|
+
described_class.should eq(String)
|
320
|
+
end
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
324
|
+
group.run.should be_true, "expected examples in group to pass"
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
describe '#described_class' do
|
330
|
+
it "is the same as described_class" do
|
331
|
+
self.class.described_class.should eq(self.class.described_class)
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
describe '#description' do
|
336
|
+
it "grabs the description from the metadata" do
|
337
|
+
group = ExampleGroup.describe(Object, "my desc") { }
|
338
|
+
group.description.should eq(group.metadata[:example_group][:description])
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
describe '#metadata' do
|
343
|
+
it "adds the third parameter to the metadata" do
|
344
|
+
ExampleGroup.describe(Object, nil, 'foo' => 'bar') { }.metadata.should include({ "foo" => 'bar' })
|
345
|
+
end
|
346
|
+
|
347
|
+
it "adds the the file_path to metadata" do
|
348
|
+
ExampleGroup.describe(Object) { }.metadata[:example_group][:file_path].should eq(relative_path(__FILE__))
|
349
|
+
end
|
350
|
+
|
351
|
+
it "has a reader for file_path" do
|
352
|
+
ExampleGroup.describe(Object) { }.file_path.should eq(relative_path(__FILE__))
|
353
|
+
end
|
354
|
+
|
355
|
+
it "adds the line_number to metadata" do
|
356
|
+
ExampleGroup.describe(Object) { }.metadata[:example_group][:line_number].should eq(__LINE__)
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
360
|
+
[:focus, :focused].each do |example_alias|
|
361
|
+
describe "##{example_alias}" do
|
362
|
+
let(:focused_example) { ExampleGroup.describe.send example_alias, "a focused example" }
|
363
|
+
|
364
|
+
it 'defines an example that can be filtered with :focused => true' do
|
365
|
+
focused_example.metadata[:focused].should be_true
|
366
|
+
end
|
367
|
+
|
368
|
+
it 'defines an example that can be filtered with :focus => true' do
|
369
|
+
focused_example.metadata[:focus].should be_true
|
370
|
+
end
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
describe "#before, after, and around hooks" do
|
375
|
+
it "runs the before alls in order" do
|
376
|
+
group = ExampleGroup.describe
|
377
|
+
order = []
|
378
|
+
group.before(:all) { order << 1 }
|
379
|
+
group.before(:all) { order << 2 }
|
380
|
+
group.before(:all) { order << 3 }
|
381
|
+
group.example("example") {}
|
382
|
+
|
383
|
+
group.run
|
384
|
+
|
385
|
+
order.should eq([1,2,3])
|
386
|
+
end
|
387
|
+
|
388
|
+
it "runs the before eachs in order" do
|
389
|
+
group = ExampleGroup.describe
|
390
|
+
order = []
|
391
|
+
group.before(:each) { order << 1 }
|
392
|
+
group.before(:each) { order << 2 }
|
393
|
+
group.before(:each) { order << 3 }
|
394
|
+
group.example("example") {}
|
395
|
+
|
396
|
+
group.run
|
397
|
+
|
398
|
+
order.should eq([1,2,3])
|
399
|
+
end
|
400
|
+
|
401
|
+
it "runs the after eachs in reverse order" do
|
402
|
+
group = ExampleGroup.describe
|
403
|
+
order = []
|
404
|
+
group.after(:each) { order << 1 }
|
405
|
+
group.after(:each) { order << 2 }
|
406
|
+
group.after(:each) { order << 3 }
|
407
|
+
group.example("example") {}
|
408
|
+
|
409
|
+
group.run
|
410
|
+
|
411
|
+
order.should eq([3,2,1])
|
412
|
+
end
|
413
|
+
|
414
|
+
it "runs the after alls in reverse order" do
|
415
|
+
group = ExampleGroup.describe
|
416
|
+
order = []
|
417
|
+
group.after(:all) { order << 1 }
|
418
|
+
group.after(:all) { order << 2 }
|
419
|
+
group.after(:all) { order << 3 }
|
420
|
+
group.example("example") {}
|
421
|
+
|
422
|
+
group.run
|
423
|
+
|
424
|
+
order.should eq([3,2,1])
|
425
|
+
end
|
426
|
+
|
427
|
+
it "only runs before/after(:all) hooks from example groups that have specs that run" do
|
428
|
+
hooks_run = []
|
429
|
+
|
430
|
+
RSpec.configure do |c|
|
431
|
+
c.filter_run :focus => true
|
432
|
+
end
|
433
|
+
|
434
|
+
unfiltered_group = ExampleGroup.describe "unfiltered" do
|
435
|
+
before(:all) { hooks_run << :unfiltered_before_all }
|
436
|
+
after(:all) { hooks_run << :unfiltered_after_all }
|
437
|
+
|
438
|
+
context "a subcontext" do
|
439
|
+
it("has an example") { }
|
440
|
+
end
|
441
|
+
end
|
442
|
+
|
443
|
+
filtered_group = ExampleGroup.describe "filtered", :focus => true do
|
444
|
+
before(:all) { hooks_run << :filtered_before_all }
|
445
|
+
after(:all) { hooks_run << :filtered_after_all }
|
446
|
+
|
447
|
+
context "a subcontext" do
|
448
|
+
it("has an example") { }
|
449
|
+
end
|
450
|
+
end
|
451
|
+
|
452
|
+
unfiltered_group.run
|
453
|
+
filtered_group.run
|
454
|
+
|
455
|
+
hooks_run.should eq([:filtered_before_all, :filtered_after_all])
|
456
|
+
end
|
457
|
+
|
458
|
+
it "runs before_all_defined_in_config, before all, before each, example, after each, after all, after_all_defined_in_config in that order" do
|
459
|
+
order = []
|
460
|
+
|
461
|
+
RSpec.configure do |c|
|
462
|
+
c.before(:all) { order << :before_all_defined_in_config }
|
463
|
+
c.after(:all) { order << :after_all_defined_in_config }
|
464
|
+
end
|
465
|
+
|
466
|
+
group = ExampleGroup.describe
|
467
|
+
group.before(:all) { order << :top_level_before_all }
|
468
|
+
group.before(:each) { order << :before_each }
|
469
|
+
group.after(:each) { order << :after_each }
|
470
|
+
group.after(:all) { order << :top_level_after_all }
|
471
|
+
group.example("top level example") { order << :top_level_example }
|
472
|
+
|
473
|
+
context1 = group.describe("context 1")
|
474
|
+
context1.before(:all) { order << :nested_before_all }
|
475
|
+
context1.example("nested example 1") { order << :nested_example_1 }
|
476
|
+
|
477
|
+
context2 = group.describe("context 2")
|
478
|
+
context2.after(:all) { order << :nested_after_all }
|
479
|
+
context2.example("nested example 2") { order << :nested_example_2 }
|
480
|
+
|
481
|
+
group.run
|
482
|
+
|
483
|
+
order.should eq([
|
484
|
+
:before_all_defined_in_config,
|
485
|
+
:top_level_before_all,
|
486
|
+
:before_each,
|
487
|
+
:top_level_example,
|
488
|
+
:after_each,
|
489
|
+
:nested_before_all,
|
490
|
+
:before_each,
|
491
|
+
:nested_example_1,
|
492
|
+
:after_each,
|
493
|
+
:before_each,
|
494
|
+
:nested_example_2,
|
495
|
+
:after_each,
|
496
|
+
:nested_after_all,
|
497
|
+
:top_level_after_all,
|
498
|
+
:after_all_defined_in_config
|
499
|
+
])
|
500
|
+
end
|
501
|
+
|
502
|
+
context "after(:all)" do
|
503
|
+
let(:outer) { ExampleGroup.describe }
|
504
|
+
let(:inner) { outer.describe }
|
505
|
+
|
506
|
+
it "has access to state defined before(:all)" do
|
507
|
+
outer.before(:all) { @outer = "outer" }
|
508
|
+
inner.before(:all) { @inner = "inner" }
|
509
|
+
|
510
|
+
outer.after(:all) do
|
511
|
+
@outer.should eq("outer")
|
512
|
+
@inner.should eq("inner")
|
513
|
+
end
|
514
|
+
inner.after(:all) do
|
515
|
+
@inner.should eq("inner")
|
516
|
+
@outer.should eq("outer")
|
517
|
+
end
|
518
|
+
|
519
|
+
outer.run
|
520
|
+
end
|
521
|
+
|
522
|
+
it "cleans up ivars in after(:all)" do
|
523
|
+
outer.before(:all) { @outer = "outer" }
|
524
|
+
inner.before(:all) { @inner = "inner" }
|
525
|
+
|
526
|
+
outer.run
|
527
|
+
|
528
|
+
inner.before_all_ivars[:@inner].should be_nil
|
529
|
+
inner.before_all_ivars[:@outer].should be_nil
|
530
|
+
outer.before_all_ivars[:@inner].should be_nil
|
531
|
+
outer.before_all_ivars[:@outer].should be_nil
|
532
|
+
end
|
533
|
+
end
|
534
|
+
|
535
|
+
it "treats an error in before(:each) as a failure" do
|
536
|
+
group = ExampleGroup.describe
|
537
|
+
group.before(:each) { raise "error in before each" }
|
538
|
+
example = group.example("equality") { 1.should eq(2) }
|
539
|
+
group.run.should be(false)
|
540
|
+
|
541
|
+
example.metadata[:execution_result][:exception].message.should eq("error in before each")
|
542
|
+
end
|
543
|
+
|
544
|
+
it "treats an error in before(:all) as a failure" do
|
545
|
+
group = ExampleGroup.describe
|
546
|
+
group.before(:all) { raise "error in before all" }
|
547
|
+
example = group.example("equality") { 1.should eq(2) }
|
548
|
+
group.run.should be_false
|
549
|
+
|
550
|
+
example.metadata.should_not be_nil
|
551
|
+
example.metadata[:execution_result].should_not be_nil
|
552
|
+
example.metadata[:execution_result][:exception].should_not be_nil
|
553
|
+
example.metadata[:execution_result][:exception].message.should eq("error in before all")
|
554
|
+
end
|
555
|
+
|
556
|
+
it "treats an error in before(:all) as a failure for a spec in a nested group" do
|
557
|
+
example = nil
|
558
|
+
group = ExampleGroup.describe do
|
559
|
+
before(:all) { raise "error in before all" }
|
560
|
+
|
561
|
+
describe "nested" do
|
562
|
+
example = it("equality") { 1.should eq(2) }
|
563
|
+
end
|
564
|
+
end
|
565
|
+
group.run
|
566
|
+
|
567
|
+
example.metadata.should_not be_nil
|
568
|
+
example.metadata[:execution_result].should_not be_nil
|
569
|
+
example.metadata[:execution_result][:exception].should_not be_nil
|
570
|
+
example.metadata[:execution_result][:exception].message.should eq("error in before all")
|
571
|
+
end
|
572
|
+
|
573
|
+
context "when an error occurs in an after(:all) hook" do
|
574
|
+
before(:each) do
|
575
|
+
RSpec.configuration.reporter.stub(:message)
|
576
|
+
end
|
577
|
+
|
578
|
+
let(:group) do
|
579
|
+
ExampleGroup.describe do
|
580
|
+
after(:all) { raise "error in after all" }
|
581
|
+
it("equality") { 1.should eq(1) }
|
582
|
+
end
|
583
|
+
end
|
584
|
+
|
585
|
+
it "allows the example to pass" do
|
586
|
+
group.run
|
587
|
+
example = group.examples.first
|
588
|
+
example.metadata.should_not be_nil
|
589
|
+
example.metadata[:execution_result].should_not be_nil
|
590
|
+
example.metadata[:execution_result][:status].should eq("passed")
|
591
|
+
end
|
592
|
+
|
593
|
+
it "rescues the error and prints it out" do
|
594
|
+
RSpec.configuration.reporter.should_receive(:message).with(/error in after all/)
|
595
|
+
group.run
|
596
|
+
end
|
597
|
+
end
|
598
|
+
|
599
|
+
it "has no 'running example' within before(:all)" do
|
600
|
+
group = ExampleGroup.describe
|
601
|
+
running_example = :none
|
602
|
+
group.before(:all) { running_example = example }
|
603
|
+
group.example("no-op") { }
|
604
|
+
group.run
|
605
|
+
running_example.should be(nil)
|
606
|
+
end
|
607
|
+
|
608
|
+
it "has access to example options within before(:each)" do
|
609
|
+
group = ExampleGroup.describe
|
610
|
+
option = nil
|
611
|
+
group.before(:each) { option = example.options[:data] }
|
612
|
+
group.example("no-op", :data => :sample) { }
|
613
|
+
group.run
|
614
|
+
option.should eq(:sample)
|
615
|
+
end
|
616
|
+
|
617
|
+
it "has access to example options within after(:each)" do
|
618
|
+
group = ExampleGroup.describe
|
619
|
+
option = nil
|
620
|
+
group.after(:each) { option = example.options[:data] }
|
621
|
+
group.example("no-op", :data => :sample) { }
|
622
|
+
group.run
|
623
|
+
option.should eq(:sample)
|
624
|
+
end
|
625
|
+
|
626
|
+
it "has no 'running example' within after(:all)" do
|
627
|
+
group = ExampleGroup.describe
|
628
|
+
running_example = :none
|
629
|
+
group.after(:all) { running_example = example }
|
630
|
+
group.example("no-op") { }
|
631
|
+
group.run
|
632
|
+
running_example.should be(nil)
|
633
|
+
end
|
634
|
+
end
|
635
|
+
|
636
|
+
%w[pending xit xspecify xexample].each do |method_name|
|
637
|
+
describe "::#{method_name}" do
|
638
|
+
before do
|
639
|
+
@group = ExampleGroup.describe
|
640
|
+
@group.send(method_name, "is pending") { }
|
641
|
+
end
|
642
|
+
|
643
|
+
it "generates a pending example" do
|
644
|
+
@group.run
|
645
|
+
@group.examples.first.should be_pending
|
646
|
+
end
|
647
|
+
|
648
|
+
it "sets the pending message", :if => method_name == 'pending' do
|
649
|
+
@group.run
|
650
|
+
@group.examples.first.metadata[:execution_result][:pending_message].should eq(RSpec::Core::Pending::NO_REASON_GIVEN)
|
651
|
+
end
|
652
|
+
|
653
|
+
it "sets the pending message", :unless => method_name == 'pending' do
|
654
|
+
@group.run
|
655
|
+
@group.examples.first.metadata[:execution_result][:pending_message].should eq("Temporarily disabled with #{method_name}")
|
656
|
+
end
|
657
|
+
end
|
658
|
+
end
|
659
|
+
|
660
|
+
describe "adding examples" do
|
661
|
+
|
662
|
+
it "allows adding an example using 'it'" do
|
663
|
+
group = ExampleGroup.describe
|
664
|
+
group.it("should do something") { }
|
665
|
+
group.examples.size.should eq(1)
|
666
|
+
end
|
667
|
+
|
668
|
+
it "exposes all examples at examples" do
|
669
|
+
group = ExampleGroup.describe
|
670
|
+
group.it("should do something 1") { }
|
671
|
+
group.it("should do something 2") { }
|
672
|
+
group.it("should do something 3") { }
|
673
|
+
group.should have(3).examples
|
674
|
+
end
|
675
|
+
|
676
|
+
it "maintains the example order" do
|
677
|
+
group = ExampleGroup.describe
|
678
|
+
group.it("should 1") { }
|
679
|
+
group.it("should 2") { }
|
680
|
+
group.it("should 3") { }
|
681
|
+
group.examples[0].description.should eq('should 1')
|
682
|
+
group.examples[1].description.should eq('should 2')
|
683
|
+
group.examples[2].description.should eq('should 3')
|
684
|
+
end
|
685
|
+
|
686
|
+
end
|
687
|
+
|
688
|
+
describe Object, "describing nested example_groups", :little_less_nested => 'yep' do
|
689
|
+
|
690
|
+
describe "A sample nested group", :nested_describe => "yep" do
|
691
|
+
it "sets the described class to the described class of the outer most group" do
|
692
|
+
example.example_group.described_class.should eq(ExampleGroup)
|
693
|
+
end
|
694
|
+
|
695
|
+
it "sets the description to 'A sample nested describe'" do
|
696
|
+
example.example_group.description.should eq('A sample nested group')
|
697
|
+
end
|
698
|
+
|
699
|
+
it "has top level metadata from the example_group and its ancestors" do
|
700
|
+
example.example_group.metadata.should include(:little_less_nested => 'yep', :nested_describe => 'yep')
|
701
|
+
end
|
702
|
+
|
703
|
+
it "exposes the parent metadata to the contained examples" do
|
704
|
+
example.metadata.should include(:little_less_nested => 'yep', :nested_describe => 'yep')
|
705
|
+
end
|
706
|
+
end
|
707
|
+
|
708
|
+
end
|
709
|
+
|
710
|
+
describe "#run_examples" do
|
711
|
+
|
712
|
+
let(:reporter) { double("reporter").as_null_object }
|
713
|
+
|
714
|
+
it "returns true if all examples pass" do
|
715
|
+
group = ExampleGroup.describe('group') do
|
716
|
+
example('ex 1') { 1.should eq(1) }
|
717
|
+
example('ex 2') { 1.should eq(1) }
|
718
|
+
end
|
719
|
+
group.stub(:filtered_examples) { group.examples.extend(Extensions::Ordered) }
|
720
|
+
group.run(reporter).should be_true
|
721
|
+
end
|
722
|
+
|
723
|
+
it "returns false if any of the examples fail" do
|
724
|
+
group = ExampleGroup.describe('group') do
|
725
|
+
example('ex 1') { 1.should eq(1) }
|
726
|
+
example('ex 2') { 1.should eq(2) }
|
727
|
+
end
|
728
|
+
group.stub(:filtered_examples) { group.examples.extend(Extensions::Ordered) }
|
729
|
+
group.run(reporter).should be_false
|
730
|
+
end
|
731
|
+
|
732
|
+
it "runs all examples, regardless of any of them failing" do
|
733
|
+
group = ExampleGroup.describe('group') do
|
734
|
+
example('ex 1') { 1.should eq(2) }
|
735
|
+
example('ex 2') { 1.should eq(1) }
|
736
|
+
end
|
737
|
+
group.stub(:filtered_examples) { group.examples.extend(Extensions::Ordered) }
|
738
|
+
group.filtered_examples.each do |example|
|
739
|
+
example.should_receive(:run)
|
740
|
+
end
|
741
|
+
group.run(reporter).should be_false
|
742
|
+
end
|
743
|
+
end
|
744
|
+
|
745
|
+
describe "how instance variables are inherited" do
|
746
|
+
before(:all) do
|
747
|
+
@before_all_top_level = 'before_all_top_level'
|
748
|
+
end
|
749
|
+
|
750
|
+
before(:each) do
|
751
|
+
@before_each_top_level = 'before_each_top_level'
|
752
|
+
end
|
753
|
+
|
754
|
+
it "can access a before each ivar at the same level" do
|
755
|
+
@before_each_top_level.should eq('before_each_top_level')
|
756
|
+
end
|
757
|
+
|
758
|
+
it "can access a before all ivar at the same level" do
|
759
|
+
@before_all_top_level.should eq('before_all_top_level')
|
760
|
+
end
|
761
|
+
|
762
|
+
it "can access the before all ivars in the before_all_ivars hash", :ruby => 1.8 do
|
763
|
+
example.example_group.before_all_ivars.should include('@before_all_top_level' => 'before_all_top_level')
|
764
|
+
end
|
765
|
+
|
766
|
+
it "can access the before all ivars in the before_all_ivars hash", :ruby => 1.9 do
|
767
|
+
example.example_group.before_all_ivars.should include(:@before_all_top_level => 'before_all_top_level')
|
768
|
+
end
|
769
|
+
|
770
|
+
describe "but now I am nested" do
|
771
|
+
it "can access a parent example groups before each ivar at a nested level" do
|
772
|
+
@before_each_top_level.should eq('before_each_top_level')
|
773
|
+
end
|
774
|
+
|
775
|
+
it "can access a parent example groups before all ivar at a nested level" do
|
776
|
+
@before_all_top_level.should eq("before_all_top_level")
|
777
|
+
end
|
778
|
+
|
779
|
+
it "changes to before all ivars from within an example do not persist outside the current describe" do
|
780
|
+
@before_all_top_level = "ive been changed"
|
781
|
+
end
|
782
|
+
|
783
|
+
describe "accessing a before_all ivar that was changed in a parent example_group" do
|
784
|
+
it "does not have access to the modified version" do
|
785
|
+
@before_all_top_level.should eq('before_all_top_level')
|
786
|
+
end
|
787
|
+
end
|
788
|
+
end
|
789
|
+
|
790
|
+
end
|
791
|
+
|
792
|
+
describe "ivars are not shared across examples" do
|
793
|
+
it "(first example)" do
|
794
|
+
@a = 1
|
795
|
+
defined?(@b).should be_false
|
796
|
+
end
|
797
|
+
|
798
|
+
it "(second example)" do
|
799
|
+
@b = 2
|
800
|
+
defined?(@a).should be_false
|
801
|
+
end
|
802
|
+
end
|
803
|
+
|
804
|
+
|
805
|
+
describe "#top_level_description" do
|
806
|
+
it "returns the description from the outermost example group" do
|
807
|
+
group = nil
|
808
|
+
ExampleGroup.describe("top") do
|
809
|
+
context "middle" do
|
810
|
+
group = describe "bottom" do
|
811
|
+
end
|
812
|
+
end
|
813
|
+
end
|
814
|
+
|
815
|
+
group.top_level_description.should eq("top")
|
816
|
+
end
|
817
|
+
end
|
818
|
+
|
819
|
+
describe "#run" do
|
820
|
+
let(:reporter) { double("reporter").as_null_object }
|
821
|
+
|
822
|
+
context "with fail_fast? => true" do
|
823
|
+
it "does not run examples after the failed example" do
|
824
|
+
group = RSpec::Core::ExampleGroup.describe
|
825
|
+
group.stub(:fail_fast?) { true }
|
826
|
+
examples_run = []
|
827
|
+
group.example('example 1') { examples_run << self }
|
828
|
+
group.example('example 2') { examples_run << self; fail; }
|
829
|
+
group.example('example 3') { examples_run << self }
|
830
|
+
|
831
|
+
group.run
|
832
|
+
|
833
|
+
examples_run.length.should eq(2)
|
834
|
+
end
|
835
|
+
end
|
836
|
+
|
837
|
+
context "with RSpec.wants_to_quit=true" do
|
838
|
+
let(:group) { RSpec::Core::ExampleGroup.describe }
|
839
|
+
|
840
|
+
before do
|
841
|
+
RSpec.stub(:wants_to_quit) { true }
|
842
|
+
RSpec.stub(:clear_remaining_example_groups)
|
843
|
+
end
|
844
|
+
|
845
|
+
it "returns without starting the group" do
|
846
|
+
reporter.should_not_receive(:example_group_started)
|
847
|
+
group.run(reporter)
|
848
|
+
end
|
849
|
+
|
850
|
+
context "at top level" do
|
851
|
+
it "purges remaining groups" do
|
852
|
+
RSpec.should_receive(:clear_remaining_example_groups)
|
853
|
+
group.run(reporter)
|
854
|
+
end
|
855
|
+
end
|
856
|
+
|
857
|
+
context "in a nested group" do
|
858
|
+
it "does not purge remaining groups" do
|
859
|
+
nested_group = group.describe
|
860
|
+
RSpec.should_not_receive(:clear_remaining_example_groups)
|
861
|
+
nested_group.run(reporter)
|
862
|
+
end
|
863
|
+
end
|
864
|
+
end
|
865
|
+
|
866
|
+
context "with all examples passing" do
|
867
|
+
it "returns true" do
|
868
|
+
group = RSpec::Core::ExampleGroup.describe("something") do
|
869
|
+
it "does something" do
|
870
|
+
# pass
|
871
|
+
end
|
872
|
+
describe "nested" do
|
873
|
+
it "does something else" do
|
874
|
+
# pass
|
875
|
+
end
|
876
|
+
end
|
877
|
+
end
|
878
|
+
|
879
|
+
group.run(reporter).should be_true
|
880
|
+
end
|
881
|
+
end
|
882
|
+
|
883
|
+
context "with top level example failing" do
|
884
|
+
it "returns false" do
|
885
|
+
group = RSpec::Core::ExampleGroup.describe("something") do
|
886
|
+
it "does something (wrong - fail)" do
|
887
|
+
raise "fail"
|
888
|
+
end
|
889
|
+
describe "nested" do
|
890
|
+
it "does something else" do
|
891
|
+
# pass
|
892
|
+
end
|
893
|
+
end
|
894
|
+
end
|
895
|
+
|
896
|
+
group.run(reporter).should be_false
|
897
|
+
end
|
898
|
+
end
|
899
|
+
|
900
|
+
context "with nested example failing" do
|
901
|
+
it "returns true" do
|
902
|
+
group = RSpec::Core::ExampleGroup.describe("something") do
|
903
|
+
it "does something" do
|
904
|
+
# pass
|
905
|
+
end
|
906
|
+
describe "nested" do
|
907
|
+
it "does something else (wrong -fail)" do
|
908
|
+
raise "fail"
|
909
|
+
end
|
910
|
+
end
|
911
|
+
end
|
912
|
+
|
913
|
+
group.run(reporter).should be_false
|
914
|
+
end
|
915
|
+
end
|
916
|
+
end
|
917
|
+
|
918
|
+
%w[include_examples include_context].each do |name|
|
919
|
+
describe "##{name}" do
|
920
|
+
before do
|
921
|
+
shared_examples "named this" do
|
922
|
+
example("does something") {}
|
923
|
+
end
|
924
|
+
end
|
925
|
+
|
926
|
+
it "includes the named examples" do
|
927
|
+
group = ExampleGroup.describe
|
928
|
+
group.send(name, "named this")
|
929
|
+
group.examples.first.description.should eq("does something")
|
930
|
+
end
|
931
|
+
|
932
|
+
it "raises a helpful error message when shared content is not found" do
|
933
|
+
group = ExampleGroup.describe
|
934
|
+
expect do
|
935
|
+
group.send(name, "shared stuff")
|
936
|
+
end.to raise_error(ArgumentError, /Could not find .* "shared stuff"/)
|
937
|
+
end
|
938
|
+
|
939
|
+
it "passes parameters to the shared content" do
|
940
|
+
passed_params = {}
|
941
|
+
|
942
|
+
shared_examples "named this with params" do |param1, param2|
|
943
|
+
it("has access to the given parameters") do
|
944
|
+
passed_params[:param1] = param1
|
945
|
+
passed_params[:param2] = param2
|
946
|
+
end
|
947
|
+
end
|
948
|
+
|
949
|
+
group = ExampleGroup.describe
|
950
|
+
group.send(name, "named this with params", :value1, :value2)
|
951
|
+
group.run
|
952
|
+
|
953
|
+
passed_params.should eq({ :param1 => :value1, :param2 => :value2 })
|
954
|
+
end
|
955
|
+
|
956
|
+
it "adds shared instance methods to the group" do
|
957
|
+
shared_examples "named this with params" do |param1|
|
958
|
+
def foo; end
|
959
|
+
end
|
960
|
+
group = ExampleGroup.describe('fake group')
|
961
|
+
group.send(name, "named this with params", :a)
|
962
|
+
group.public_instance_methods.map{|m| m.to_s}.should include("foo")
|
963
|
+
end
|
964
|
+
|
965
|
+
it "evals the shared example group only once" do
|
966
|
+
eval_count = 0
|
967
|
+
shared_examples("named this with params") { |p| eval_count += 1 }
|
968
|
+
group = ExampleGroup.describe('fake group')
|
969
|
+
group.send(name, "named this with params", :a)
|
970
|
+
eval_count.should eq(1)
|
971
|
+
end
|
972
|
+
|
973
|
+
it "evals the block when given" do
|
974
|
+
key = "#{__FILE__}:#{__LINE__}"
|
975
|
+
shared_examples(key) do
|
976
|
+
it("does something") do
|
977
|
+
foo.should eq("bar")
|
978
|
+
end
|
979
|
+
end
|
980
|
+
group = ExampleGroup.describe do
|
981
|
+
send name, key do
|
982
|
+
def foo; "bar"; end
|
983
|
+
end
|
984
|
+
end
|
985
|
+
group.run.should be_true
|
986
|
+
end
|
987
|
+
end
|
988
|
+
end
|
989
|
+
|
990
|
+
describe "#it_should_behave_like" do
|
991
|
+
it "creates a nested group" do
|
992
|
+
shared_examples_for("thing") {}
|
993
|
+
group = ExampleGroup.describe('fake group')
|
994
|
+
group.it_should_behave_like("thing")
|
995
|
+
group.should have(1).children
|
996
|
+
end
|
997
|
+
|
998
|
+
it "creates a nested group for a class" do
|
999
|
+
klass = Class.new
|
1000
|
+
shared_examples_for(klass) {}
|
1001
|
+
group = ExampleGroup.describe('fake group')
|
1002
|
+
group.it_should_behave_like(klass)
|
1003
|
+
group.should have(1).children
|
1004
|
+
end
|
1005
|
+
|
1006
|
+
it "adds shared examples to nested group" do
|
1007
|
+
shared_examples_for("thing") do
|
1008
|
+
it("does something")
|
1009
|
+
end
|
1010
|
+
group = ExampleGroup.describe('fake group')
|
1011
|
+
shared_group = group.it_should_behave_like("thing")
|
1012
|
+
shared_group.should have(1).examples
|
1013
|
+
end
|
1014
|
+
|
1015
|
+
it "adds shared instance methods to nested group" do
|
1016
|
+
shared_examples_for("thing") do
|
1017
|
+
def foo; end
|
1018
|
+
end
|
1019
|
+
group = ExampleGroup.describe('fake group')
|
1020
|
+
shared_group = group.it_should_behave_like("thing")
|
1021
|
+
shared_group.public_instance_methods.map{|m| m.to_s}.should include("foo")
|
1022
|
+
end
|
1023
|
+
|
1024
|
+
it "adds shared class methods to nested group" do
|
1025
|
+
shared_examples_for("thing") do
|
1026
|
+
def self.foo; end
|
1027
|
+
end
|
1028
|
+
group = ExampleGroup.describe('fake group')
|
1029
|
+
shared_group = group.it_should_behave_like("thing")
|
1030
|
+
shared_group.methods.map{|m| m.to_s}.should include("foo")
|
1031
|
+
end
|
1032
|
+
|
1033
|
+
it "passes parameters to the shared example group" do
|
1034
|
+
passed_params = {}
|
1035
|
+
|
1036
|
+
shared_examples_for("thing") do |param1, param2|
|
1037
|
+
it("has access to the given parameters") do
|
1038
|
+
passed_params[:param1] = param1
|
1039
|
+
passed_params[:param2] = param2
|
1040
|
+
end
|
1041
|
+
end
|
1042
|
+
|
1043
|
+
group = ExampleGroup.describe("group") do
|
1044
|
+
it_should_behave_like "thing", :value1, :value2
|
1045
|
+
end
|
1046
|
+
group.run
|
1047
|
+
|
1048
|
+
passed_params.should eq({ :param1 => :value1, :param2 => :value2 })
|
1049
|
+
end
|
1050
|
+
|
1051
|
+
it "adds shared instance methods to nested group" do
|
1052
|
+
shared_examples_for("thing") do |param1|
|
1053
|
+
def foo; end
|
1054
|
+
end
|
1055
|
+
group = ExampleGroup.describe('fake group')
|
1056
|
+
shared_group = group.it_should_behave_like("thing", :a)
|
1057
|
+
shared_group.public_instance_methods.map{|m| m.to_s}.should include("foo")
|
1058
|
+
end
|
1059
|
+
|
1060
|
+
it "evals the shared example group only once" do
|
1061
|
+
eval_count = 0
|
1062
|
+
shared_examples_for("thing") { |p| eval_count += 1 }
|
1063
|
+
group = ExampleGroup.describe('fake group')
|
1064
|
+
group.it_should_behave_like("thing", :a)
|
1065
|
+
eval_count.should eq(1)
|
1066
|
+
end
|
1067
|
+
|
1068
|
+
context "given a block" do
|
1069
|
+
it "evaluates the block in nested group" do
|
1070
|
+
scopes = []
|
1071
|
+
shared_examples_for("thing") do
|
1072
|
+
it("gets run in the nested group") do
|
1073
|
+
scopes << self.class
|
1074
|
+
end
|
1075
|
+
end
|
1076
|
+
group = ExampleGroup.describe("group") do
|
1077
|
+
it_should_behave_like "thing" do
|
1078
|
+
it("gets run in the same nested group") do
|
1079
|
+
scopes << self.class
|
1080
|
+
end
|
1081
|
+
end
|
1082
|
+
end
|
1083
|
+
group.run
|
1084
|
+
|
1085
|
+
scopes[0].should be(scopes[1])
|
1086
|
+
end
|
1087
|
+
end
|
1088
|
+
|
1089
|
+
it "raises a helpful error message when shared context is not found" do
|
1090
|
+
expect do
|
1091
|
+
ExampleGroup.describe do
|
1092
|
+
it_should_behave_like "shared stuff"
|
1093
|
+
end
|
1094
|
+
end.to raise_error(ArgumentError,%q|Could not find shared examples "shared stuff"|)
|
1095
|
+
end
|
1096
|
+
end
|
1097
|
+
end
|
1098
|
+
end
|