rspec 1.1.11 → 1.1.12
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/.autotest +4 -0
- data/History.txt +55 -0
- data/Manifest.txt +102 -122
- data/README.txt +30 -12
- data/Rakefile +10 -10
- data/TODO.txt +10 -2
- data/{failing_examples → examples/failing}/README.txt +0 -0
- data/{failing_examples → examples/failing}/diffing_spec.rb +0 -0
- data/{failing_examples → examples/failing}/failing_autogenerated_docstrings_example.rb +0 -0
- data/{failing_examples/failure_in_teardown.rb → examples/failing/failure_in_after.rb} +1 -1
- data/{failing_examples/failure_in_setup.rb → examples/failing/failure_in_before.rb} +1 -1
- data/{failing_examples → examples/failing}/mocking_example.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_flexmock.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_mocha.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_rr.rb +0 -0
- data/{failing_examples → examples/failing}/partial_mock_example.rb +0 -0
- data/{failing_examples → examples/failing}/predicate_example.rb +5 -0
- data/{failing_examples → examples/failing}/raising_example.rb +0 -0
- data/{failing_examples → examples/failing}/spec_helper.rb +1 -1
- data/{failing_examples → examples/failing}/syntax_error_example.rb +0 -0
- data/{failing_examples → examples/failing}/team_spec.rb +0 -0
- data/{failing_examples → examples/failing}/timeout_behaviour.rb +0 -0
- data/examples/{pure → passing}/autogenerated_docstrings_example.rb +6 -0
- data/examples/{pure → passing}/before_and_after_example.rb +0 -0
- data/examples/{pure → passing}/behave_as_example.rb +0 -0
- data/examples/{pure → passing}/custom_expectation_matchers.rb +0 -0
- data/examples/{pure → passing}/custom_formatter.rb +1 -1
- data/examples/{pure → passing}/dynamic_spec.rb +2 -2
- data/examples/{pure → passing}/file_accessor.rb +0 -0
- data/examples/{pure → passing}/file_accessor_spec.rb +0 -0
- data/examples/{pure → passing}/greeter_spec.rb +0 -0
- data/examples/{pure → passing}/helper_method_example.rb +0 -0
- data/examples/{pure → passing}/io_processor.rb +0 -0
- data/examples/{pure → passing}/io_processor_spec.rb +0 -0
- data/examples/{pure → passing}/legacy_spec.rb +0 -0
- data/examples/{pure → passing}/mocking_example.rb +0 -0
- data/examples/{pure/multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +1 -3
- data/examples/{pure → passing}/nested_classes_example.rb +0 -0
- data/examples/{pure → passing}/partial_mock_example.rb +0 -0
- data/examples/{pure → passing}/pending_example.rb +0 -0
- data/examples/{pure → passing}/predicate_example.rb +0 -0
- data/examples/{pure → passing}/priority.txt +0 -0
- data/examples/{pure → passing}/shared_example_group_example.rb +0 -0
- data/examples/{pure → passing}/shared_stack_examples.rb +1 -3
- data/examples/passing/simple_matcher_example.rb +31 -0
- data/examples/{pure → passing}/spec_helper.rb +0 -0
- data/examples/{pure → passing}/stack.rb +0 -0
- data/examples/{pure → passing}/stack_spec.rb +3 -2
- data/examples/{pure → passing}/stack_spec_with_nested_example_groups.rb +0 -0
- data/examples/{pure → passing}/stubbing_example.rb +0 -0
- data/examples/{pure → passing}/yielding_example.rb +0 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +86 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +168 -0
- data/{stories/example_groups/autogenerated_docstrings → features/example_groups/autogenerated_docstrings.feature} +5 -5
- data/{stories/example_groups/example_group_with_should_methods → features/example_groups/example_group_with_should_methods.feature} +3 -3
- data/{stories/example_groups/nested_groups → features/example_groups/nested_groups.feature} +4 -4
- data/{stories/example_groups/output → features/example_groups/output.feature} +3 -8
- data/{stories/interop/examples_and_tests_together → features/interop/examples_and_tests_together.feature} +5 -4
- data/features/interop/test_but_not_test_unit.feature +14 -0
- data/{stories/interop/test_case_with_should_methods → features/interop/test_case_with_should_methods.feature} +2 -2
- data/{stories/mock_framework_integration/use_flexmock.story → features/mock_framework_integration/use_flexmock.feature} +1 -1
- data/features/step_definitions/running_rspec.rb +54 -0
- data/features/support/env.rb +26 -0
- data/{stories/resources → features/support}/helpers/cmdline.rb +0 -0
- data/{stories/resources → features/support}/helpers/story_helper.rb +1 -1
- data/{stories/resources → features/support}/matchers/smart_match.rb +0 -0
- data/{plugins → lib/adapters}/mock_frameworks/flexmock.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/mocha.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/rr.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/rspec.rb +2 -2
- data/lib/autotest/rspec.rb +4 -3
- data/lib/spec.rb +2 -27
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/{extensions → dsl}/main.rb +10 -10
- data/lib/spec/example.rb +175 -1
- data/lib/spec/example/before_and_after_hooks.rb +30 -24
- data/lib/spec/example/example_group.rb +1 -0
- data/lib/spec/example/example_group_factory.rb +26 -9
- data/lib/spec/example/example_group_methods.rb +138 -113
- data/lib/spec/example/example_methods.rb +88 -25
- data/lib/spec/example/shared_example_group.rb +28 -21
- data/lib/spec/expectations.rb +22 -18
- data/lib/spec/expectations/handler.rb +16 -36
- data/lib/spec/interop/test/unit/testcase.rb +19 -17
- data/lib/spec/interop/test/unit/testresult.rb +1 -1
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +1 -1
- data/lib/spec/matchers.rb +7 -28
- data/lib/spec/matchers/be.rb +103 -116
- data/lib/spec/matchers/be_close.rb +6 -22
- data/lib/spec/matchers/eql.rb +7 -25
- data/lib/spec/matchers/equal.rb +7 -25
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +8 -14
- data/lib/spec/matchers/generated_descriptions.rb +48 -0
- data/lib/spec/matchers/has.rb +12 -28
- data/lib/spec/matchers/include.rb +12 -9
- data/lib/spec/matchers/match.rb +8 -27
- data/lib/spec/matchers/match_array.rb +79 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +39 -48
- data/lib/spec/matchers/raise_error.rb +4 -8
- data/lib/spec/matchers/respond_to.rb +33 -8
- data/lib/spec/matchers/throw_symbol.rb +49 -17
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/mocks/argument_constraints.rb +77 -5
- data/lib/spec/mocks/message_expectation.rb +7 -7
- data/lib/spec/mocks/proxy.rb +14 -12
- data/lib/spec/rake/spectask.rb +4 -6
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner.rb +37 -162
- data/lib/spec/runner/backtrace_tweaker.rb +5 -3
- data/lib/spec/runner/class_and_arguments_parser.rb +7 -9
- data/lib/spec/runner/command_line.rb +6 -8
- data/lib/spec/{example → runner}/configuration.rb +46 -47
- data/lib/spec/runner/example_group_runner.rb +15 -4
- data/lib/spec/runner/formatter/base_text_formatter.rb +4 -3
- data/lib/spec/runner/formatter/html_formatter.rb +14 -11
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/heckle_runner.rb +58 -56
- data/lib/spec/runner/option_parser.rb +8 -4
- data/lib/spec/runner/options.rb +29 -14
- data/lib/spec/runner/reporter.rb +1 -1
- data/lib/spec/runner/spec_parser.rb +11 -9
- data/lib/spec/story/runner.rb +40 -42
- data/lib/spec/story/runner/story_runner.rb +10 -6
- data/lib/spec/story/world.rb +66 -70
- data/lib/spec/version.rb +4 -2
- data/{rake_tasks → resources/rake}/examples.rake +0 -0
- data/{rake_tasks → resources/rake}/examples_with_rcov.rake +0 -0
- data/{rake_tasks → resources/rake}/failing_examples_with_html.rake +0 -0
- data/{rake_tasks → resources/rake}/verify_rcov.rake +0 -0
- data/{stories/resources → resources}/spec/example_group_with_should_methods.rb +1 -1
- data/{stories/resources → resources}/spec/simple_spec.rb +1 -1
- data/resources/spec/spec_with_flexmock.rb +19 -0
- data/{stories/resources → resources}/test/spec_and_test_together.rb +1 -1
- data/resources/test/spec_including_test_but_not_unit.rb +11 -0
- data/{stories/resources → resources}/test/test_case_with_should_methods.rb +2 -2
- data/rspec.gemspec +16 -6
- data/spec/autotest/autotest_helper.rb +2 -2
- data/spec/autotest/discover_spec.rb +4 -15
- data/spec/autotest/failed_results_re_spec.rb +24 -0
- data/spec/autotest/rspec_spec.rb +2 -38
- data/spec/spec/dsl/main_spec.rb +88 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +6 -2
- data/spec/spec/example/example_group_factory_spec.rb +50 -10
- data/spec/spec/example/example_group_methods_spec.rb +210 -160
- data/spec/spec/example/example_group_spec.rb +44 -52
- data/spec/spec/example/example_matcher_spec.rb +6 -23
- data/spec/spec/example/example_methods_spec.rb +176 -54
- data/spec/spec/example/helper_method_spec.rb +24 -0
- data/spec/spec/example/pending_module_spec.rb +2 -8
- data/spec/spec/example/shared_example_group_spec.rb +56 -80
- data/spec/spec/expectations/extensions/object_spec.rb +0 -50
- data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +1 -5
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +4 -0
- data/spec/spec/matchers/be_close_spec.rb +12 -10
- data/spec/spec/matchers/be_spec.rb +62 -7
- data/spec/spec/matchers/description_generation_spec.rb +19 -0
- data/spec/spec/matchers/eql_spec.rb +7 -6
- data/spec/spec/matchers/equal_spec.rb +7 -6
- data/spec/spec/matchers/handler_spec.rb +4 -43
- data/spec/spec/matchers/has_spec.rb +1 -1
- data/spec/spec/matchers/have_spec.rb +23 -18
- data/spec/spec/matchers/include_spec.rb +24 -0
- data/spec/spec/matchers/match_array_spec.rb +83 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +1 -13
- data/spec/spec/matchers/raise_error_spec.rb +18 -0
- data/spec/spec/matchers/respond_to_spec.rb +71 -9
- data/spec/spec/matchers/throw_symbol_spec.rb +85 -43
- data/spec/spec/mocks/bug_report_11545_spec.rb +4 -5
- data/spec/spec/mocks/bug_report_496.rb +11 -9
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +39 -2
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/spec/spec/mocks/mock_spec.rb +5 -6
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +2 -2
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +18 -3
- data/spec/spec/mocks/stub_spec.rb +6 -0
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +14 -0
- data/spec/spec/runner/command_line_spec.rb +4 -4
- data/spec/spec/runner/configuration_spec.rb +301 -0
- data/spec/spec/runner/drb_command_line_spec.rb +4 -4
- data/spec/spec/runner/example_group_runner_spec.rb +33 -0
- data/spec/spec/runner/formatter/base_formatter_spec.rb +13 -102
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +23 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +3 -3
- data/spec/spec/runner/formatter/html_formatted-1.8.4.html +6 -6
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +9 -9
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +6 -6
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +10 -10
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +39 -30
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +379 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +379 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +14 -13
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +7 -17
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +18 -17
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +33 -30
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +373 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +373 -0
- data/spec/spec/runner/heckler_spec.rb +16 -9
- data/spec/spec/runner/option_parser_spec.rb +3 -18
- data/spec/spec/runner/options_spec.rb +27 -8
- data/spec/spec/runner/reporter_spec.rb +5 -5
- data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
- data/spec/spec/runner/resources/utf8_encoded.rb +7 -0
- data/spec/spec/runner/spec_parser_spec.rb +85 -79
- data/spec/spec/spec_spec.rb +21 -0
- data/spec/spec_helper.rb +9 -1
- data/story_server/prototype/javascripts/prototype.js +1 -1
- metadata +119 -131
- data/examples/stories/adder.rb +0 -13
- data/examples/stories/addition +0 -34
- data/examples/stories/addition.rb +0 -9
- data/examples/stories/calculator.rb +0 -65
- data/examples/stories/game-of-life/.loadpath +0 -5
- data/examples/stories/game-of-life/README.txt +0 -21
- data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
- data/examples/stories/game-of-life/life.rb +0 -3
- data/examples/stories/game-of-life/life/game.rb +0 -23
- data/examples/stories/game-of-life/life/grid.rb +0 -43
- data/examples/stories/helper.rb +0 -9
- data/examples/stories/steps/addition_steps.rb +0 -18
- data/lib/spec/adapters.rb +0 -1
- data/lib/spec/adapters/ruby_engine.rb +0 -26
- data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
- data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
- data/lib/spec/extensions.rb +0 -4
- data/lib/spec/extensions/class.rb +0 -24
- data/lib/spec/extensions/metaclass.rb +0 -7
- data/lib/spec/extensions/object.rb +0 -6
- data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
- data/spec/spec/example/configuration_spec.rb +0 -296
- data/spec/spec/example/example_runner_spec.rb +0 -194
- data/spec/spec/extensions/main_spec.rb +0 -71
- data/stories/all.rb +0 -5
- data/stories/configuration/before_blocks.story +0 -21
- data/stories/configuration/stories.rb +0 -7
- data/stories/example_groups/stories.rb +0 -7
- data/stories/helper.rb +0 -6
- data/stories/interop/stories.rb +0 -7
- data/stories/mock_framework_integration/stories.rb +0 -7
- data/stories/pending_stories/README +0 -3
- data/stories/resources/spec/before_blocks_example.rb +0 -32
- data/stories/resources/spec/spec_with_flexmock.rb +0 -18
- data/stories/resources/steps/running_rspec.rb +0 -50
- data/stories/resources/stories/failing_story.rb +0 -15
- data/stories/stories/multiline_steps.story +0 -23
- data/stories/stories/steps/multiline_steps.rb +0 -13
- data/stories/stories/stories.rb +0 -6
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + '/../../spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # This was added to prove that http://rspec.lighthouseapp.com/projects/5645/tickets/211
         | 
| 4 | 
            +
            # was fixed in ruby 1.9.1
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module HelperMethodExample
         | 
| 7 | 
            +
              describe "a helper method" do
         | 
| 8 | 
            +
                def helper_method
         | 
| 9 | 
            +
                  "received call"
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
              
         | 
| 12 | 
            +
                it "is available to examples in the same group" do
         | 
| 13 | 
            +
                  helper_method.should == "received call"
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
                
         | 
| 16 | 
            +
                describe "from a nested group" do
         | 
| 17 | 
            +
                  it "is available to examples in a nested group" do
         | 
| 18 | 
            +
                    helper_method.should == "received call"
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
                
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| 24 | 
            +
             | 
| @@ -4,14 +4,12 @@ module Spec | |
| 4 4 |  | 
| 5 5 | 
             
                  it 'should raise an ExamplePendingError if no block is supplied' do
         | 
| 6 6 | 
             
                    lambda {
         | 
| 7 | 
            -
                      include Pending
         | 
| 8 7 | 
             
                      pending "TODO"
         | 
| 9 8 | 
             
                    }.should raise_error(ExamplePendingError, /TODO/)
         | 
| 10 9 | 
             
                  end
         | 
| 11 10 |  | 
| 12 11 | 
             
                  it 'should raise an ExamplePendingError if a supplied block fails as expected' do
         | 
| 13 12 | 
             
                    lambda {
         | 
| 14 | 
            -
                      include Pending
         | 
| 15 13 | 
             
                      pending "TODO" do
         | 
| 16 14 | 
             
                        raise "oops"
         | 
| 17 15 | 
             
                      end
         | 
| @@ -20,7 +18,6 @@ module Spec | |
| 20 18 |  | 
| 21 19 | 
             
                  it 'should raise an ExamplePendingError if a supplied block fails as expected with a mock' do
         | 
| 22 20 | 
             
                    lambda {
         | 
| 23 | 
            -
                      include Pending
         | 
| 24 21 | 
             
                      pending "TODO" do
         | 
| 25 22 | 
             
                        m = mock('thing')
         | 
| 26 23 | 
             
                        m.should_receive(:foo)
         | 
| @@ -31,7 +28,6 @@ module Spec | |
| 31 28 |  | 
| 32 29 | 
             
                  it 'should raise a PendingExampleFixedError if a supplied block starts working' do
         | 
| 33 30 | 
             
                    lambda {
         | 
| 34 | 
            -
                      include Pending
         | 
| 35 31 | 
             
                      pending "TODO" do
         | 
| 36 32 | 
             
                        # success!
         | 
| 37 33 | 
             
                      end
         | 
| @@ -40,9 +36,8 @@ module Spec | |
| 40 36 |  | 
| 41 37 | 
             
                  it "should have the correct file and line number for pending given with a block which fails" do
         | 
| 42 38 | 
             
                    file = __FILE__
         | 
| 43 | 
            -
                    line_number = __LINE__ +  | 
| 39 | 
            +
                    line_number = __LINE__ + 2
         | 
| 44 40 | 
             
                    begin
         | 
| 45 | 
            -
                      include Pending
         | 
| 46 41 | 
             
                      pending do
         | 
| 47 42 | 
             
                        raise
         | 
| 48 43 | 
             
                      end
         | 
| @@ -53,9 +48,8 @@ module Spec | |
| 53 48 |  | 
| 54 49 | 
             
                  it "should have the correct file and line number for pending given with no block" do
         | 
| 55 50 | 
             
                    file = __FILE__
         | 
| 56 | 
            -
                    line_number = __LINE__ +  | 
| 51 | 
            +
                    line_number = __LINE__ + 2
         | 
| 57 52 | 
             
                    begin
         | 
| 58 | 
            -
                      include Pending
         | 
| 59 53 | 
             
                      pending("TODO")
         | 
| 60 54 | 
             
                    rescue => error
         | 
| 61 55 | 
             
                      error.pending_caller.should == "#{file}:#{line_number}"
         | 
| @@ -17,46 +17,25 @@ module Spec | |
| 17 17 | 
             
                    after(:each) do
         | 
| 18 18 | 
             
                      @formatter.rspec_verify
         | 
| 19 19 | 
             
                      @example_group = nil
         | 
| 20 | 
            -
                      Spec::Example::SharedExampleGroup. | 
| 21 | 
            -
                    end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                    def make_shared_example_group(name, opts=nil, &block)
         | 
| 24 | 
            -
                      example_group = SharedExampleGroup.new(name, :shared => true, &block)
         | 
| 25 | 
            -
                      SharedExampleGroup.add_shared_example_group(example_group)
         | 
| 26 | 
            -
                      example_group
         | 
| 27 | 
            -
                    end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                    def non_shared_example_group()
         | 
| 30 | 
            -
                      @non_shared_example_group ||= Class.new(ExampleGroup).describe("example_group")
         | 
| 31 | 
            -
                    end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                    it "should accept an optional options hash" do
         | 
| 34 | 
            -
                      lambda { Class.new(ExampleGroup).describe("context") }.should_not raise_error(Exception)
         | 
| 35 | 
            -
                      lambda { Class.new(ExampleGroup).describe("context", :shared => true) }.should_not raise_error(Exception)
         | 
| 36 | 
            -
                    end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                    it "should return all shared example_groups" do
         | 
| 39 | 
            -
                      b1 = make_shared_example_group("b1", :shared => true) {}
         | 
| 40 | 
            -
                      b2 = make_shared_example_group("b2", :shared => true) {}
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                      b1.should_not be(nil)
         | 
| 43 | 
            -
                      b2.should_not be(nil)
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                      SharedExampleGroup.find_shared_example_group("b1").should equal(b1)
         | 
| 46 | 
            -
                      SharedExampleGroup.find_shared_example_group("b2").should equal(b2)
         | 
| 47 | 
            -
                    end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                    it "should register as shared example_group" do
         | 
| 50 | 
            -
                      example_group = make_shared_example_group("example_group") {}
         | 
| 51 | 
            -
                      SharedExampleGroup.shared_example_groups.should include(example_group)
         | 
| 20 | 
            +
                      Spec::Example::SharedExampleGroup.clear
         | 
| 52 21 | 
             
                    end
         | 
| 22 | 
            +
                    
         | 
| 23 | 
            +
                    describe "#register" do
         | 
| 24 | 
            +
                      it "creates a new shared example group with the submitted args" do
         | 
| 25 | 
            +
                        block = lambda {}
         | 
| 26 | 
            +
                        group = SharedExampleGroup.new("shared group") do end
         | 
| 27 | 
            +
                        Spec::Example::SharedExampleGroup.should_receive(:new).with("share me", &block).and_return(group)
         | 
| 28 | 
            +
                        Spec::Example::SharedExampleGroup.register("share me", &block)
         | 
| 29 | 
            +
                      end
         | 
| 53 30 |  | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 31 | 
            +
                      it "registers the shared example group" do
         | 
| 32 | 
            +
                        lambda do
         | 
| 33 | 
            +
                          Spec::Example::SharedExampleGroup.register "share me" do end
         | 
| 34 | 
            +
                        end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
         | 
| 35 | 
            +
                      end
         | 
| 57 36 | 
             
                    end
         | 
| 58 37 |  | 
| 59 | 
            -
                    it " | 
| 38 | 
            +
                    it "complains when adding a second shared example_group with the same description" do
         | 
| 60 39 | 
             
                      describe "shared example_group", :shared => true do
         | 
| 61 40 | 
             
                      end
         | 
| 62 41 | 
             
                      lambda do
         | 
| @@ -64,14 +43,17 @@ module Spec | |
| 64 43 | 
             
                        end
         | 
| 65 44 | 
             
                      end.should raise_error(ArgumentError)
         | 
| 66 45 | 
             
                    end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                    it " | 
| 69 | 
            -
                       | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 46 | 
            +
                    
         | 
| 47 | 
            +
                    it "does NOT add the same group twice" do
         | 
| 48 | 
            +
                      lambda do
         | 
| 49 | 
            +
                        2.times do
         | 
| 50 | 
            +
                          describe "shared example_group which gets loaded twice", :shared => true do
         | 
| 51 | 
            +
                          end
         | 
| 52 | 
            +
                        end
         | 
| 53 | 
            +
                      end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
         | 
| 72 54 | 
             
                    end
         | 
| 73 55 |  | 
| 74 | 
            -
                    it " | 
| 56 | 
            +
                    it "does NOT complain when adding the same shared example_group again (i.e. file gets reloaded)" do
         | 
| 75 57 | 
             
                      lambda do
         | 
| 76 58 | 
             
                        2.times do
         | 
| 77 59 | 
             
                          describe "shared example_group which gets loaded twice", :shared => true do
         | 
| @@ -80,42 +62,36 @@ module Spec | |
| 80 62 | 
             
                      end.should_not raise_error(ArgumentError)
         | 
| 81 63 | 
             
                    end
         | 
| 82 64 |  | 
| 83 | 
            -
                    it " | 
| 84 | 
            -
                       | 
| 65 | 
            +
                    it "does NOT complain when adding the same shared example_group in same file with different absolute path" do
         | 
| 66 | 
            +
                      SharedExampleGroup.register(
         | 
| 85 67 | 
             
                        "shared example_group",
         | 
| 86 68 | 
             
                        :shared => true,
         | 
| 87 69 | 
             
                        :spec_path => "/my/spec/a/../shared.rb"
         | 
| 88 70 | 
             
                      )
         | 
| 89 | 
            -
                       | 
| 71 | 
            +
                      SharedExampleGroup.register(
         | 
| 90 72 | 
             
                        "shared example_group",
         | 
| 91 73 | 
             
                        :shared => true,
         | 
| 92 74 | 
             
                        :spec_path => "/my/spec/b/../shared.rb"
         | 
| 93 75 | 
             
                      )
         | 
| 94 | 
            -
             | 
| 95 | 
            -
                      SharedExampleGroup.add_shared_example_group(shared_example_group_1)
         | 
| 96 | 
            -
                      SharedExampleGroup.add_shared_example_group(shared_example_group_2)
         | 
| 97 76 | 
             
                    end
         | 
| 98 77 |  | 
| 99 | 
            -
                    it " | 
| 100 | 
            -
                       | 
| 78 | 
            +
                    it "complains when adding a different shared example_group with the same name in a different file with the same basename" do
         | 
| 79 | 
            +
                      SharedExampleGroup.register(
         | 
| 101 80 | 
             
                        "shared example_group",
         | 
| 102 81 | 
             
                        :shared => true,
         | 
| 103 82 | 
             
                        :spec_path => "/my/spec/a/shared.rb"
         | 
| 104 83 | 
             
                      )
         | 
| 105 | 
            -
                      shared_example_group_2 = Class.new(ExampleGroup).describe(
         | 
| 106 | 
            -
                        "shared example_group",
         | 
| 107 | 
            -
                        :shared => true,
         | 
| 108 | 
            -
                        :spec_path => "/my/spec/b/shared.rb"
         | 
| 109 | 
            -
                      )
         | 
| 110 | 
            -
             | 
| 111 | 
            -
                      SharedExampleGroup.add_shared_example_group(shared_example_group_1)
         | 
| 112 84 | 
             
                      lambda do
         | 
| 113 | 
            -
                        SharedExampleGroup. | 
| 85 | 
            +
                        SharedExampleGroup.register(
         | 
| 86 | 
            +
                          "shared example_group",
         | 
| 87 | 
            +
                          :shared => true,
         | 
| 88 | 
            +
                          :spec_path => "/my/spec/b/shared.rb"
         | 
| 89 | 
            +
                        )
         | 
| 114 90 | 
             
                      end.should raise_error(ArgumentError, /already exists/)
         | 
| 115 91 | 
             
                    end
         | 
| 116 92 |  | 
| 117 | 
            -
                    it " | 
| 118 | 
            -
                      shared_example_group =  | 
| 93 | 
            +
                    it "adds examples to current example_group using it_should_behave_like" do
         | 
| 94 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group") do
         | 
| 119 95 | 
             
                        it("shared example") {}
         | 
| 120 96 | 
             
                        it("shared example 2") {}
         | 
| 121 97 | 
             
                      end
         | 
| @@ -126,12 +102,12 @@ module Spec | |
| 126 102 | 
             
                      example_group.number_of_examples.should == 3
         | 
| 127 103 | 
             
                    end
         | 
| 128 104 |  | 
| 129 | 
            -
                    it " | 
| 130 | 
            -
                      shared_example_group_1 =  | 
| 105 | 
            +
                    it "adds examples to from two shared groups" do
         | 
| 106 | 
            +
                      shared_example_group_1 = SharedExampleGroup.register("shared example_group 1") do
         | 
| 131 107 | 
             
                        it("shared example 1") {}
         | 
| 132 108 | 
             
                      end
         | 
| 133 109 |  | 
| 134 | 
            -
                      shared_example_group_1 =  | 
| 110 | 
            +
                      shared_example_group_1 = SharedExampleGroup.register("shared example_group 2") do
         | 
| 135 111 | 
             
                        it("shared example 2") {}
         | 
| 136 112 | 
             
                      end
         | 
| 137 113 |  | 
| @@ -141,7 +117,7 @@ module Spec | |
| 141 117 | 
             
                      example_group.number_of_examples.should == 3
         | 
| 142 118 | 
             
                    end
         | 
| 143 119 |  | 
| 144 | 
            -
                    it " | 
| 120 | 
            +
                    it "adds examples to current example_group using include" do
         | 
| 145 121 | 
             
                      shared_example_group = describe "all things", :shared => true do
         | 
| 146 122 | 
             
                        it "should do stuff" do end
         | 
| 147 123 | 
             
                      end
         | 
| @@ -153,7 +129,7 @@ module Spec | |
| 153 129 | 
             
                      example_group.number_of_examples.should == 1
         | 
| 154 130 | 
             
                    end
         | 
| 155 131 |  | 
| 156 | 
            -
                    it " | 
| 132 | 
            +
                    it "adds examples to current example_group using it_should_behave_like with a module" do
         | 
| 157 133 | 
             
                      AllThings = describe "all things", :shared => true do
         | 
| 158 134 | 
             
                        it "should do stuff" do end
         | 
| 159 135 | 
             
                      end
         | 
| @@ -165,9 +141,9 @@ module Spec | |
| 165 141 | 
             
                      example_group.number_of_examples.should == 1
         | 
| 166 142 | 
             
                    end
         | 
| 167 143 |  | 
| 168 | 
            -
                    it " | 
| 144 | 
            +
                    it "runs shared examples" do
         | 
| 169 145 | 
             
                      shared_example_ran = false
         | 
| 170 | 
            -
                      shared_example_group =  | 
| 146 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group") do
         | 
| 171 147 | 
             
                        it("shared example") { shared_example_ran = true }
         | 
| 172 148 | 
             
                      end
         | 
| 173 149 |  | 
| @@ -175,17 +151,17 @@ module Spec | |
| 175 151 |  | 
| 176 152 | 
             
                      example_group.it_should_behave_like("shared example_group")
         | 
| 177 153 | 
             
                      example_group.it("example") {example_ran = true}
         | 
| 178 | 
            -
                      example_group.run
         | 
| 154 | 
            +
                      example_group.run(options)
         | 
| 179 155 | 
             
                      example_ran.should be_true
         | 
| 180 156 | 
             
                      shared_example_ran.should be_true
         | 
| 181 157 | 
             
                    end
         | 
| 182 158 |  | 
| 183 | 
            -
                    it " | 
| 159 | 
            +
                    it "runs before(:each) and after(:each) from shared example_group" do
         | 
| 184 160 | 
             
                      shared_setup_ran = false
         | 
| 185 161 | 
             
                      shared_teardown_ran = false
         | 
| 186 | 
            -
                      shared_example_group =  | 
| 187 | 
            -
                        before { shared_setup_ran = true }
         | 
| 188 | 
            -
                        after | 
| 162 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group") do
         | 
| 163 | 
            +
                        before(:each) { shared_setup_ran = true }
         | 
| 164 | 
            +
                        after(:each)  { shared_teardown_ran = true }
         | 
| 189 165 | 
             
                        it("shared example") { shared_example_ran = true }
         | 
| 190 166 | 
             
                      end
         | 
| 191 167 |  | 
| @@ -193,7 +169,7 @@ module Spec | |
| 193 169 |  | 
| 194 170 | 
             
                      example_group.it_should_behave_like("shared example_group")
         | 
| 195 171 | 
             
                      example_group.it("example") {example_ran = true}
         | 
| 196 | 
            -
                      example_group.run
         | 
| 172 | 
            +
                      example_group.run(options)
         | 
| 197 173 | 
             
                      example_ran.should be_true
         | 
| 198 174 | 
             
                      shared_setup_ran.should be_true
         | 
| 199 175 | 
             
                      shared_teardown_ran.should be_true
         | 
| @@ -202,9 +178,9 @@ module Spec | |
| 202 178 | 
             
                    it "should run before(:all) and after(:all) only once from shared example_group" do
         | 
| 203 179 | 
             
                      shared_before_all_run_count = 0
         | 
| 204 180 | 
             
                      shared_after_all_run_count = 0
         | 
| 205 | 
            -
                      shared_example_group =  | 
| 181 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group") do
         | 
| 206 182 | 
             
                        before(:all) { shared_before_all_run_count += 1}
         | 
| 207 | 
            -
                        after(:all) | 
| 183 | 
            +
                        after(:all)  { shared_after_all_run_count += 1}
         | 
| 208 184 | 
             
                        it("shared example") { shared_example_ran = true }
         | 
| 209 185 | 
             
                      end
         | 
| 210 186 |  | 
| @@ -212,7 +188,7 @@ module Spec | |
| 212 188 |  | 
| 213 189 | 
             
                      example_group.it_should_behave_like("shared example_group")
         | 
| 214 190 | 
             
                      example_group.it("example") {example_ran = true}
         | 
| 215 | 
            -
                      example_group.run
         | 
| 191 | 
            +
                      example_group.run(options)
         | 
| 216 192 | 
             
                      example_ran.should be_true
         | 
| 217 193 | 
             
                      shared_before_all_run_count.should == 1
         | 
| 218 194 | 
             
                      shared_after_all_run_count.should == 1
         | 
| @@ -221,7 +197,7 @@ module Spec | |
| 221 197 | 
             
                    it "should include modules, included into shared example_group, into current example_group" do
         | 
| 222 198 | 
             
                      @formatter.should_receive(:add_example_group).with(any_args)
         | 
| 223 199 |  | 
| 224 | 
            -
                      shared_example_group =  | 
| 200 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group") do
         | 
| 225 201 | 
             
                        it("shared example") { shared_example_ran = true }
         | 
| 226 202 | 
             
                      end
         | 
| 227 203 |  | 
| @@ -248,13 +224,13 @@ module Spec | |
| 248 224 | 
             
                        mod1_method
         | 
| 249 225 | 
             
                        mod2_method
         | 
| 250 226 | 
             
                      end
         | 
| 251 | 
            -
                      example_group.run
         | 
| 227 | 
            +
                      example_group.run(options)
         | 
| 252 228 | 
             
                      mod1_method_called.should be_true
         | 
| 253 229 | 
             
                      mod2_method_called.should be_true
         | 
| 254 230 | 
             
                    end
         | 
| 255 231 |  | 
| 256 232 | 
             
                    it "should make methods defined in the shared example_group available in consuming example_group" do
         | 
| 257 | 
            -
                      shared_example_group =  | 
| 233 | 
            +
                      shared_example_group = SharedExampleGroup.register("shared example_group xyz") do
         | 
| 258 234 | 
             
                        def a_shared_helper_method
         | 
| 259 235 | 
             
                          "this got defined in a shared example_group"
         | 
| 260 236 | 
             
                        end
         | 
| @@ -265,7 +241,7 @@ module Spec | |
| 265 241 | 
             
                        a_shared_helper_method
         | 
| 266 242 | 
             
                        success = true
         | 
| 267 243 | 
             
                      end
         | 
| 268 | 
            -
                      example_group.run
         | 
| 244 | 
            +
                      example_group.run(options)
         | 
| 269 245 | 
             
                      success.should be_true
         | 
| 270 246 | 
             
                    end
         | 
| 271 247 |  | 
| @@ -20,31 +20,6 @@ describe Object, "#should" do | |
| 20 20 | 
             
                  @target.should @matcher
         | 
| 21 21 | 
             
                }.should fail_with("the failure message")
         | 
| 22 22 | 
             
              end
         | 
| 23 | 
            -
              
         | 
| 24 | 
            -
              it "should raise error if it receives false directly" do
         | 
| 25 | 
            -
                lambda {
         | 
| 26 | 
            -
                  @target.should false
         | 
| 27 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 28 | 
            -
              end
         | 
| 29 | 
            -
              
         | 
| 30 | 
            -
              it "should raise error if it receives false (evaluated)" do
         | 
| 31 | 
            -
                lambda {
         | 
| 32 | 
            -
                  @target.should eql?("foo")
         | 
| 33 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
              
         | 
| 36 | 
            -
              it "should raise error if it receives true" do
         | 
| 37 | 
            -
                lambda {
         | 
| 38 | 
            -
                  @target.should true
         | 
| 39 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
              
         | 
| 42 | 
            -
              it "should raise error if it receives no argument and it is not used as a left side of an operator" do
         | 
| 43 | 
            -
                pending "Is it even possible to catch this?"
         | 
| 44 | 
            -
                lambda {
         | 
| 45 | 
            -
                  @target.should
         | 
| 46 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 47 | 
            -
              end
         | 
| 48 23 | 
             
            end
         | 
| 49 24 |  | 
| 50 25 | 
             
            describe Object, "#should_not" do
         | 
| @@ -67,29 +42,4 @@ describe Object, "#should_not" do | |
| 67 42 | 
             
                  @target.should_not @matcher
         | 
| 68 43 | 
             
                }.should fail_with("the negative failure message")
         | 
| 69 44 | 
             
              end
         | 
| 70 | 
            -
             | 
| 71 | 
            -
              it "should raise error if it receives false directly" do
         | 
| 72 | 
            -
                lambda {
         | 
| 73 | 
            -
                  @target.should_not false
         | 
| 74 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 75 | 
            -
              end
         | 
| 76 | 
            -
              
         | 
| 77 | 
            -
              it "should raise error if it receives false (evaluated)" do
         | 
| 78 | 
            -
                lambda {
         | 
| 79 | 
            -
                  @target.should_not eql?("foo")
         | 
| 80 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 81 | 
            -
              end
         | 
| 82 | 
            -
              
         | 
| 83 | 
            -
              it "should raise error if it receives true" do
         | 
| 84 | 
            -
                lambda {
         | 
| 85 | 
            -
                  @target.should_not true
         | 
| 86 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 87 | 
            -
              end
         | 
| 88 | 
            -
             | 
| 89 | 
            -
              it "should raise error if it receives no argument and it is not used as a left side of an operator" do
         | 
| 90 | 
            -
                pending "Is it even possible to catch this?"
         | 
| 91 | 
            -
                lambda {
         | 
| 92 | 
            -
                  @target.should_not
         | 
| 93 | 
            -
                }.should raise_error(Spec::Expectations::InvalidMatcherError)
         | 
| 94 | 
            -
              end
         | 
| 95 45 | 
             
            end
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + '/../../spec_helper.rb'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Spec
         | 
| 4 | 
            +
              module Matchers
         | 
| 5 | 
            +
                describe "wrap_expectation" do
         | 
| 6 | 
            +
                  
         | 
| 7 | 
            +
                  def stub_matcher
         | 
| 8 | 
            +
                    @_stub_matcher ||= simple_matcher do
         | 
| 9 | 
            +
                    end
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                  
         | 
| 12 | 
            +
                  def failing_matcher
         | 
| 13 | 
            +
                    @_failing_matcher ||= simple_matcher do
         | 
| 14 | 
            +
                      1.should == 2
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                  
         | 
| 18 | 
            +
                  it "should return true if there is no error" do
         | 
| 19 | 
            +
                    wrap_expectation stub_matcher do
         | 
| 20 | 
            +
                    end.should be_true
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                  
         | 
| 23 | 
            +
                  it "should return false if there is an error" do
         | 
| 24 | 
            +
                    wrap_expectation failing_matcher do
         | 
| 25 | 
            +
                      raise "error"
         | 
| 26 | 
            +
                    end.should be_false
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
| @@ -2,11 +2,7 @@ require File.dirname(__FILE__) + '/test_unit_spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe "ExampleGroup with test/unit/interop" do
         | 
| 4 4 | 
             
              include TestUnitSpecHelper
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              def resources
         | 
| 7 | 
            -
                File.dirname(__FILE__) + "/resources"
         | 
| 8 | 
            -
              end
         | 
| 9 | 
            -
              
         | 
| 5 | 
            +
                
         | 
| 10 6 | 
             
              describe "with passing examples" do
         | 
| 11 7 | 
             
                it "should output 0 failures" do
         | 
| 12 8 | 
             
                  output = ruby("#{resources}/spec_that_passes.rb")
         |