has_finder 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +431 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +70 -0
- data/config/requirements.rb +17 -0
- data/lib/has_finder.rb +1 -0
- data/lib/has_finder/has_finder.rb +84 -0
- data/lib/has_finder/metaid.rb +15 -0
- data/lib/has_finder/version.rb +9 -0
- data/log/debug.log +0 -0
- data/nbproject/private/private.xml +4 -0
- data/nbproject/private/rake-t.txt +1 -0
- data/nbproject/project.properties +4 -0
- data/nbproject/project.xml +15 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/setup.rb +1585 -0
- data/spec/rails/README +182 -0
- data/spec/rails/Rakefile +10 -0
- data/spec/rails/app/controllers/application.rb +7 -0
- data/spec/rails/app/helpers/application_helper.rb +3 -0
- data/spec/rails/app/models/being.rb +3 -0
- data/spec/rails/config/boot.rb +45 -0
- data/spec/rails/config/database.yml +36 -0
- data/spec/rails/config/environment.rb +62 -0
- data/spec/rails/config/environments/development.rb +21 -0
- data/spec/rails/config/environments/production.rb +18 -0
- data/spec/rails/config/environments/test.rb +19 -0
- data/spec/rails/config/routes.rb +23 -0
- data/spec/rails/db/migrate/001_create_beings.rb +12 -0
- data/spec/rails/db/schema.rb +17 -0
- data/spec/rails/doc/README_FOR_APP +2 -0
- data/spec/rails/log/development.log +432 -0
- data/spec/rails/log/production.log +0 -0
- data/spec/rails/log/server.log +0 -0
- data/spec/rails/log/test.log +5820 -0
- data/spec/rails/nbproject/private/config.properties +0 -0
- data/spec/rails/nbproject/private/private.properties +1 -0
- data/spec/rails/nbproject/private/rake-t.txt +54 -0
- data/spec/rails/nbproject/project.properties +4 -0
- data/spec/rails/nbproject/project.xml +9 -0
- data/spec/rails/previous_failures.txt +0 -0
- data/spec/rails/public/404.html +30 -0
- data/spec/rails/public/500.html +30 -0
- data/spec/rails/public/dispatch.cgi +10 -0
- data/spec/rails/public/dispatch.fcgi +24 -0
- data/spec/rails/public/dispatch.rb +10 -0
- data/spec/rails/public/favicon.ico +0 -0
- data/spec/rails/public/images/rails.png +0 -0
- data/spec/rails/public/index.html +277 -0
- data/spec/rails/public/javascripts/application.js +2 -0
- data/spec/rails/public/javascripts/controls.js +833 -0
- data/spec/rails/public/javascripts/dragdrop.js +942 -0
- data/spec/rails/public/javascripts/effects.js +1088 -0
- data/spec/rails/public/javascripts/prototype.js +2515 -0
- data/spec/rails/public/robots.txt +1 -0
- data/spec/rails/script/about +3 -0
- data/spec/rails/script/breakpointer +3 -0
- data/spec/rails/script/console +3 -0
- data/spec/rails/script/destroy +3 -0
- data/spec/rails/script/generate +3 -0
- data/spec/rails/script/performance/benchmarker +3 -0
- data/spec/rails/script/performance/profiler +3 -0
- data/spec/rails/script/plugin +3 -0
- data/spec/rails/script/process/inspector +3 -0
- data/spec/rails/script/process/reaper +3 -0
- data/spec/rails/script/process/spawner +3 -0
- data/spec/rails/script/runner +3 -0
- data/spec/rails/script/server +3 -0
- data/spec/rails/script/spec +4 -0
- data/spec/rails/script/spec_server +45 -0
- data/spec/rails/spec/fixtures/beings.yml +12 -0
- data/spec/rails/spec/models/being_spec.rb +98 -0
- data/spec/rails/spec/spec.opts +6 -0
- data/spec/rails/spec/spec_helper.rb +15 -0
- data/spec/rails/test/test_helper.rb +28 -0
- data/spec/rails/tmp/sessions/ruby_sess.5edc9bf3b65456d0 +0 -0
- data/spec/rails/vendor/plugins/rspec/CHANGES +797 -0
- data/spec/rails/vendor/plugins/rspec/MIT-LICENSE +20 -0
- data/spec/rails/vendor/plugins/rspec/README +70 -0
- data/spec/rails/vendor/plugins/rspec/Rakefile +304 -0
- data/spec/rails/vendor/plugins/rspec/UPGRADE +31 -0
- data/spec/rails/vendor/plugins/rspec/bin/spec +3 -0
- data/spec/rails/vendor/plugins/rspec/bin/spec_translator +8 -0
- data/spec/rails/vendor/plugins/rspec/examples/auto_spec_description_example.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/examples/before_and_after_example.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/examples/behave_as_example.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/examples/custom_expectation_matchers.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/examples/custom_formatter.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/examples/dynamic_spec.rb +9 -0
- data/spec/rails/vendor/plugins/rspec/examples/file_accessor.rb +18 -0
- data/spec/rails/vendor/plugins/rspec/examples/file_accessor_spec.rb +38 -0
- data/spec/rails/vendor/plugins/rspec/examples/greeter_spec.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/examples/helper_method_example.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/examples/io_processor.rb +8 -0
- data/spec/rails/vendor/plugins/rspec/examples/io_processor_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/examples/legacy_spec.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/examples/mocking_example.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/examples/multi_threaded_behaviour_runner.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/examples/not_yet_implemented_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec/examples/partial_mock_example.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/examples/predicate_example.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/examples/priority.txt +1 -0
- data/spec/rails/vendor/plugins/rspec/examples/shared_behaviours_example.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/examples/spec_helper.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/examples/stack.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/examples/stack_spec.rb +97 -0
- data/spec/rails/vendor/plugins/rspec/examples/stubbing_example.rb +69 -0
- data/spec/rails/vendor/plugins/rspec/examples/test_case_adapter_example.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/examples/test_case_spec.rb +65 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/diffing_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_example.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_flexmock.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_mocha.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/partial_mock_example.rb +20 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/predicate_example.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/raising_example.rb +47 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/spec_helper.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/syntax_error_example.rb +7 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/team_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/timeout_behaviour.rb +7 -0
- data/spec/rails/vendor/plugins/rspec/init.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/autotest/rspec.rb +67 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec.rb +13 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb +210 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_callbacks.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_eval.rb +220 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_factory.rb +42 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/configuration.rb +119 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/description.rb +69 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example.rb +127 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_matcher.rb +40 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_should_raise_handler.rb +74 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +61 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/errors.rb +6 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +2 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +66 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/handler.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/extensions.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/extensions/object.rb +6 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers.rb +166 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be.rb +206 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/change.rb +120 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/eql.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/equal.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/has.rb +44 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/have.rb +145 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/include.rb +70 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/match.rb +41 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +100 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks.rb +208 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +183 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +84 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +231 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/methods.rb +35 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/mock.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +163 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/rake/spectask.rb +175 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner.rb +165 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb +102 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/command_line.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/kernel.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/object.rb +32 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter.rb +9 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +68 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +102 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +316 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/rdoc_formatter.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +226 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/options.rb +158 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/reporter.rb +114 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/test_case_adapter.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/translator.rb +106 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/version.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +18 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples.rake +7 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_specdoc.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_with_rcov.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +7 -0
- data/spec/rails/vendor/plugins/rspec/spec.opts +13 -0
- data/spec/rails/vendor/plugins/rspec/spec/README.jruby +14 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb +624 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb +162 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb +137 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb +228 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +107 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +209 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +232 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +159 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +48 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +88 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +272 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +158 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +147 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +51 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +114 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +84 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +377 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +40 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +148 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +159 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb +206 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/example_matcher_spec.rb +127 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +31 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +333 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +344 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +338 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +338 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +63 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +14 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +348 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +142 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +153 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +93 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/spec_classes.rb +111 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/translator_spec.rb +216 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec_helper.rb +43 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/README +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/Rakefile +9 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +31 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +45 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +23 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +161 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +303 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +4 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/init.rb +9 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl.rb +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl/configuration.rb +23 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers.rb +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers/have.rb +12 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +57 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl.rb +40 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour.rb +8 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/base.rb +82 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/controller.rb +246 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/functional.rb +90 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/helper.rb +100 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/model.rb +21 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb +185 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/ivar_proxy.rb +62 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +7 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +10 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +29 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +131 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +106 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +63 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/assigns_hash_proxy_spec.rb +55 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/behaviour_factory_spec.rb +53 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_isolation_spec.rb +43 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_spec_spec.rb +124 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/helper_spec_spec.rb +62 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/ivar_proxy_spec.rb +64 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/model_spec_spec.rb +14 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/shared_behaviour_spec.rb +16 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/test_unit_assertion_accessibility_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/view_spec_spec.rb +165 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +17 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +718 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +183 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +112 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +40 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +36 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +18 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_a_partial.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial_collection_with_spacer_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_collection_including_template.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_including_template.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_with_array.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/show.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/tasks/rspec.rake +90 -0
- data/tasks/deployment.rake +27 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +9 -0
- data/test/test_has_finder.rb +11 -0
- data/test/test_helper.rb +2 -0
- metadata +490 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
module Rails
|
|
3
|
+
module DSL
|
|
4
|
+
module ControllerBehaviourHelpers
|
|
5
|
+
class << self
|
|
6
|
+
def included(mod)
|
|
7
|
+
mod.send :include, ExampleMethods
|
|
8
|
+
mod.send :extend, BehaviourMethods
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module BehaviourMethods
|
|
13
|
+
attr_accessor :controller_class_name # :nodoc:
|
|
14
|
+
|
|
15
|
+
# Use this to instruct RSpec to render views in your controller examples (Integration Mode).
|
|
16
|
+
#
|
|
17
|
+
# describe ThingController do
|
|
18
|
+
# integrate_views
|
|
19
|
+
# ...
|
|
20
|
+
#
|
|
21
|
+
# See Spec::Rails::DSL::ControllerBehaviour for more information about
|
|
22
|
+
# Integration and Isolation modes.
|
|
23
|
+
def integrate_views
|
|
24
|
+
@integrate_views = true
|
|
25
|
+
end
|
|
26
|
+
def integrate_views? # :nodoc:
|
|
27
|
+
@integrate_views
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
module ExampleMethods
|
|
32
|
+
# Uses ActionController::Routing::Routes to generate
|
|
33
|
+
# the correct route for a given set of options.
|
|
34
|
+
# == Examples
|
|
35
|
+
# route_for(:controller => 'registrations', :action => 'edit', :id => 1)
|
|
36
|
+
# => '/registrations/1;edit'
|
|
37
|
+
def route_for(options)
|
|
38
|
+
ensure_that_routes_are_loaded
|
|
39
|
+
ActionController::Routing::Routes.generate(options)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# TODO - TEST ME
|
|
43
|
+
# Also - this is somewhat experimental at the moment and may be changed
|
|
44
|
+
# or removed without explanation or apology!
|
|
45
|
+
def raise_controller_errors
|
|
46
|
+
unless @controller_class_name.blank?
|
|
47
|
+
@controller_class_name.constantize.class_eval do
|
|
48
|
+
define_method :rescue_action do |e|
|
|
49
|
+
raise e
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
module ControllerInstanceMethods #:nodoc:
|
|
58
|
+
|
|
59
|
+
# === render(options = nil, deprecated_status = nil, &block)
|
|
60
|
+
#
|
|
61
|
+
# This gets added to the controller's singleton meta class,
|
|
62
|
+
# allowing Controller Specs to run in two modes, freely switching
|
|
63
|
+
# from context to context.
|
|
64
|
+
def render(options=nil, deprecated_status=nil, &block)
|
|
65
|
+
unless block_given?
|
|
66
|
+
unless integrate_views?
|
|
67
|
+
@template.metaclass.class_eval do
|
|
68
|
+
define_method :file_exists? do true end
|
|
69
|
+
define_method :find_template_extension_for do "erb" end
|
|
70
|
+
define_method :read_template_file do "this is fake content generated by rspec" end
|
|
71
|
+
define_method :render_file do |*args|
|
|
72
|
+
@first_render ||= args[0]
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
response.controller_path = controller_path
|
|
78
|
+
|
|
79
|
+
super unless performed?
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def response(&block)
|
|
83
|
+
# NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
|
|
84
|
+
@update = block
|
|
85
|
+
@_response || @response
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def integrate_views!
|
|
89
|
+
@integrate_views = true
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
|
|
94
|
+
def integrate_views?
|
|
95
|
+
@integrate_views
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# The methods provided by Spec::Rails::DSL::ControllerEvalContext
|
|
100
|
+
# are available to you in Controller Specs.
|
|
101
|
+
#
|
|
102
|
+
# The Public Class Methods are to be used within the +context+ block:
|
|
103
|
+
#
|
|
104
|
+
# describe ThingController do
|
|
105
|
+
# # public class methods go here
|
|
106
|
+
#
|
|
107
|
+
# The Public Instance Methods are to be used within the +specify+ block:
|
|
108
|
+
#
|
|
109
|
+
# describe ThingController do
|
|
110
|
+
# it "should do stuff" do
|
|
111
|
+
# # public instance methods go here
|
|
112
|
+
#
|
|
113
|
+
# See Spec::Rails::DSL::ControllerBehaviour for more general information
|
|
114
|
+
# on Controller Specs
|
|
115
|
+
class ControllerEvalContext < Spec::Rails::DSL::FunctionalEvalContext
|
|
116
|
+
include Spec::Rails::DSL::ControllerBehaviourHelpers
|
|
117
|
+
attr_reader :response, :request, :controller
|
|
118
|
+
|
|
119
|
+
def setup #:nodoc:
|
|
120
|
+
super
|
|
121
|
+
|
|
122
|
+
# Some Rails apps explicitly disable ActionMailer in environment.rb
|
|
123
|
+
if defined?(ActionMailer)
|
|
124
|
+
@deliveries = []
|
|
125
|
+
ActionMailer::Base.deliveries = @deliveries
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
unless @controller.class.ancestors.include?(ActionController::Base)
|
|
129
|
+
Spec::Expectations.fail_with <<-EOE
|
|
130
|
+
You have to declare the controller name in controller specs. For example:
|
|
131
|
+
describe "The ExampleController" do
|
|
132
|
+
controller_name "example" #invokes the ExampleController
|
|
133
|
+
end
|
|
134
|
+
EOE
|
|
135
|
+
end
|
|
136
|
+
@controller.metaclass.class_eval do
|
|
137
|
+
def controller_path #:nodoc:
|
|
138
|
+
self.class.name.underscore.gsub('_controller','')
|
|
139
|
+
end
|
|
140
|
+
include ControllerInstanceMethods
|
|
141
|
+
end
|
|
142
|
+
@controller.integrate_views! if @integrate_views
|
|
143
|
+
@controller.session = session
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
protected
|
|
147
|
+
def _controller_ivar_proxy
|
|
148
|
+
@controller_ivar_proxy ||= AssignsHashProxy.new @controller
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
private
|
|
152
|
+
def ensure_that_routes_are_loaded
|
|
153
|
+
ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Controller Specs live in $RAILS_ROOT/spec/controllers/.
|
|
158
|
+
#
|
|
159
|
+
# Controller Specs use Spec::Rails::DSL::ControllerBehaviour, which supports running specs for
|
|
160
|
+
# Controllers in two modes, which represent the tension between the more granular
|
|
161
|
+
# testing common in TDD and the more high level testing built into
|
|
162
|
+
# rails. BDD sits somewhere in between: we want to a balance between
|
|
163
|
+
# specs that are close enough to the code to enable quick fault
|
|
164
|
+
# isolation and far enough away from the code to enable refactoring
|
|
165
|
+
# with minimal changes to the existing specs.
|
|
166
|
+
#
|
|
167
|
+
# == Isolation mode (default)
|
|
168
|
+
#
|
|
169
|
+
# No dependencies on views because none are ever rendered. The
|
|
170
|
+
# benefit of this mode is that can spec the controller completely
|
|
171
|
+
# independent of the view, allowing that responsibility to be
|
|
172
|
+
# handled later, or by somebody else. Combined w/ separate view
|
|
173
|
+
# specs, this also provides better fault isolation.
|
|
174
|
+
#
|
|
175
|
+
# == Integration mode
|
|
176
|
+
#
|
|
177
|
+
# To run in this mode, include the +integrate_views+ declaration
|
|
178
|
+
# in your controller context:
|
|
179
|
+
#
|
|
180
|
+
# describe ThingController do
|
|
181
|
+
# integrate_views
|
|
182
|
+
# ...
|
|
183
|
+
#
|
|
184
|
+
# In this mode, controller specs are run in the same way that
|
|
185
|
+
# rails functional tests run - one set of tests for both the
|
|
186
|
+
# controllers and the views. The benefit of this approach is that
|
|
187
|
+
# you get wider coverage from each spec. Experienced rails
|
|
188
|
+
# developers may find this an easier approach to begin with, however
|
|
189
|
+
# we encourage you to explore using the isolation mode and revel
|
|
190
|
+
# in its benefits.
|
|
191
|
+
#
|
|
192
|
+
# == Expecting Errors
|
|
193
|
+
#
|
|
194
|
+
# By default, Rails will swallow errors that are raised in controller
|
|
195
|
+
# actions and return an error code in the header. If you want to
|
|
196
|
+
# specify that an action should raise an error, you can either
|
|
197
|
+
# override rescue_action in your controller ...
|
|
198
|
+
#
|
|
199
|
+
# before(:each) do
|
|
200
|
+
# controller.class.send(:define_method, :rescue_action) { |e| raise e }
|
|
201
|
+
# end
|
|
202
|
+
#
|
|
203
|
+
# ... or you can expect error codes in headers ...
|
|
204
|
+
#
|
|
205
|
+
# it "should return an error in the header" do
|
|
206
|
+
# response.should be_error
|
|
207
|
+
# end
|
|
208
|
+
#
|
|
209
|
+
# it "should return a 501" do
|
|
210
|
+
# response.response_code.should == 501
|
|
211
|
+
# end
|
|
212
|
+
#
|
|
213
|
+
# it "should return a 501" do
|
|
214
|
+
# response.code.should == "501"
|
|
215
|
+
# end
|
|
216
|
+
#
|
|
217
|
+
# See Spec::Rails::DSL::ControllerEvalContext for information
|
|
218
|
+
# about methods you can use in your Controller Specs
|
|
219
|
+
class ControllerBehaviour < Spec::DSL::Behaviour
|
|
220
|
+
def execution_context(example=nil) # :nodoc:
|
|
221
|
+
instance = execution_context_class.new(example)
|
|
222
|
+
if controller_class_name.nil? && !described_type.nil?
|
|
223
|
+
controller_klass_name = described_type.to_s
|
|
224
|
+
else
|
|
225
|
+
controller_klass_name = controller_class_name.to_s
|
|
226
|
+
end
|
|
227
|
+
integrate_views = integrate_views?
|
|
228
|
+
instance.instance_eval {
|
|
229
|
+
@controller_class_name = controller_klass_name
|
|
230
|
+
@integrate_views = integrate_views
|
|
231
|
+
}
|
|
232
|
+
instance
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def before_eval # :nodoc:
|
|
236
|
+
inherit Spec::Rails::DSL::ControllerEvalContext
|
|
237
|
+
prepend_before {setup}
|
|
238
|
+
append_after {teardown}
|
|
239
|
+
configure
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
Spec::DSL::BehaviourFactory.add_behaviour_class(:controller, self)
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
end
|
|
246
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
module Rails
|
|
3
|
+
module DSL
|
|
4
|
+
module FunctionalBehaviourHelpers
|
|
5
|
+
class << self
|
|
6
|
+
def included(mod)
|
|
7
|
+
mod.send :include, ExampleMethods
|
|
8
|
+
mod.send :extend, BehaviourMethods
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module BehaviourMethods
|
|
13
|
+
# You MUST provide a controller_name within the context of
|
|
14
|
+
# your controller specs:
|
|
15
|
+
#
|
|
16
|
+
# describe "ThingController" do
|
|
17
|
+
# controller_name :thing
|
|
18
|
+
# ...
|
|
19
|
+
def controller_name(name=nil)
|
|
20
|
+
@controller_class_name = "#{name}_controller".camelize
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
module ExampleMethods
|
|
25
|
+
# :call-seq:
|
|
26
|
+
# assigns()
|
|
27
|
+
#
|
|
28
|
+
# Hash of instance variables to values that are made available to views.
|
|
29
|
+
# == Examples
|
|
30
|
+
#
|
|
31
|
+
# #in thing_controller.rb
|
|
32
|
+
# def new
|
|
33
|
+
# @thing = Thing.new
|
|
34
|
+
# end
|
|
35
|
+
#
|
|
36
|
+
# #in thing_controller_spec
|
|
37
|
+
# get 'new'
|
|
38
|
+
# assigns[:registration].should == Thing.new
|
|
39
|
+
#--
|
|
40
|
+
# NOTE - Even though docs say only use assigns[:key] format, but allowing assigns(:key)
|
|
41
|
+
# in order to avoid breaking old specs.
|
|
42
|
+
#++
|
|
43
|
+
def assigns(key = nil)
|
|
44
|
+
if key.nil?
|
|
45
|
+
@controller.assigns
|
|
46
|
+
_controller_ivar_proxy
|
|
47
|
+
else
|
|
48
|
+
@controller.assigns[key]
|
|
49
|
+
_controller_ivar_proxy[key]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
protected
|
|
54
|
+
def _controller_ivar_proxy
|
|
55
|
+
@controller_ivar_proxy ||= IvarProxy.new @controller
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class FunctionalEvalContext < Spec::Rails::DSL::EvalContext
|
|
61
|
+
include Spec::Rails::DSL::FunctionalBehaviourHelpers
|
|
62
|
+
attr_reader :request, :response
|
|
63
|
+
|
|
64
|
+
def setup #:nodoc:
|
|
65
|
+
|
|
66
|
+
@controller_class = Object.path2class @controller_class_name
|
|
67
|
+
raise "Can't determine controller class for #{@controller_class_name}" if @controller_class.nil?
|
|
68
|
+
|
|
69
|
+
@controller = @controller_class.new
|
|
70
|
+
|
|
71
|
+
@request = ActionController::TestRequest.new
|
|
72
|
+
@response = ActionController::TestResponse.new
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def params
|
|
76
|
+
request.parameters
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def flash
|
|
80
|
+
response.flash
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def session
|
|
84
|
+
request.session
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
module Rails
|
|
3
|
+
module DSL
|
|
4
|
+
module HelperBehaviourHelpers
|
|
5
|
+
class << self
|
|
6
|
+
def included(mod)
|
|
7
|
+
mod.send :include, ExampleMethods
|
|
8
|
+
mod.send :extend, BehaviourMethods
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module BehaviourMethods
|
|
13
|
+
# The helper name....
|
|
14
|
+
def helper_name(name=nil)
|
|
15
|
+
send :include, "#{name}_helper".camelize.constantize
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
module ExampleMethods
|
|
20
|
+
include ActionView::Helpers::ActiveRecordHelper
|
|
21
|
+
include ActionView::Helpers::TagHelper
|
|
22
|
+
include ActionView::Helpers::TextHelper
|
|
23
|
+
include ActionView::Helpers::FormTagHelper
|
|
24
|
+
include ActionView::Helpers::FormOptionsHelper
|
|
25
|
+
include ActionView::Helpers::FormHelper
|
|
26
|
+
include ActionView::Helpers::UrlHelper
|
|
27
|
+
include ActionView::Helpers::AssetTagHelper
|
|
28
|
+
|
|
29
|
+
def eval_erb(text)
|
|
30
|
+
ERB.new(text).result(binding)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class HelperEvalContextController < ApplicationController #:nodoc:
|
|
37
|
+
attr_accessor :request, :url
|
|
38
|
+
|
|
39
|
+
# Re-raise errors
|
|
40
|
+
def rescue_action(e); raise e; end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class HelperEvalContext < Spec::Rails::DSL::FunctionalEvalContext
|
|
44
|
+
include Spec::Rails::DSL::HelperBehaviourHelpers
|
|
45
|
+
|
|
46
|
+
def setup #:nodoc:
|
|
47
|
+
@controller_class_name = 'Spec::Rails::DSL::HelperEvalContextController'
|
|
48
|
+
super
|
|
49
|
+
@controller.request = @request
|
|
50
|
+
@controller.url = ActionController::UrlRewriter.new @request, {} # url_for
|
|
51
|
+
|
|
52
|
+
@flash = ActionController::Flash::FlashHash.new
|
|
53
|
+
session['flash'] = @flash
|
|
54
|
+
|
|
55
|
+
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def flash
|
|
59
|
+
@flash
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Helper Specs live in $RAILS_ROOT/spec/helpers/.
|
|
65
|
+
#
|
|
66
|
+
# Helper Specs use Spec::Rails::DSL::HelperBehaviour, which allows you to
|
|
67
|
+
# include your Helper directly in the context and write specs directly
|
|
68
|
+
# against its methods.
|
|
69
|
+
#
|
|
70
|
+
# HelperBehaviour also includes the standard lot of ActionView::Helpers in case your
|
|
71
|
+
# helpers rely on any of those.
|
|
72
|
+
#
|
|
73
|
+
# == Example
|
|
74
|
+
#
|
|
75
|
+
# class ThingHelper
|
|
76
|
+
# def number_of_things
|
|
77
|
+
# Thing.count
|
|
78
|
+
# end
|
|
79
|
+
# end
|
|
80
|
+
#
|
|
81
|
+
# describe "ThingHelper behaviour" do
|
|
82
|
+
# include ThingHelper
|
|
83
|
+
# it "should tell you the number of things" do
|
|
84
|
+
# Thing.should_receive(:count).and_return(37)
|
|
85
|
+
# number_of_things.should == 37
|
|
86
|
+
# end
|
|
87
|
+
# end
|
|
88
|
+
class HelperBehaviour < Spec::DSL::Behaviour
|
|
89
|
+
def before_eval #:nodoc:
|
|
90
|
+
inherit Spec::Rails::DSL::HelperEvalContext
|
|
91
|
+
prepend_before {setup}
|
|
92
|
+
append_after {teardown}
|
|
93
|
+
configure
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
Spec::DSL::BehaviourFactory.add_behaviour_class(:helper, self)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Spec
|
|
2
|
+
module Rails
|
|
3
|
+
module DSL
|
|
4
|
+
# Model examples live in $RAILS_ROOT/spec/models/.
|
|
5
|
+
#
|
|
6
|
+
# Model examples use Spec::Rails::DSL::ModelBehaviour, which
|
|
7
|
+
# provides support for fixtures and some custom expectations via extensions
|
|
8
|
+
# to ActiveRecord::Base.
|
|
9
|
+
class ModelBehaviour < Spec::DSL::Behaviour
|
|
10
|
+
def before_eval # :nodoc:
|
|
11
|
+
inherit Spec::Rails::DSL::EvalContext
|
|
12
|
+
prepend_before {setup}
|
|
13
|
+
append_after {teardown}
|
|
14
|
+
configure
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Spec::DSL::BehaviourFactory.add_behaviour_class(:model, self)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|