aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/plugins/rspec/spec
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/plugins/rspec/spec')
-rw-r--r--vendor/plugins/rspec/spec/autotest/rspec_spec.rb42
-rw-r--r--vendor/plugins/rspec/spec/autotest_helper.rb7
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb79
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb48
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb661
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb44
-rwxr-xr-xvendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb55
-rwxr-xr-xvendor/plugins/rspec/spec/spec/dsl/description_spec.rb89
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb24
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb160
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb91
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb137
-rwxr-xr-xvendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb21
-rw-r--r--vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb252
-rw-r--r--vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb8
-rw-r--r--vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb65
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/be_spec.rb15
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/change_spec.rb87
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb68
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb53
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb43
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/have_spec.rb21
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/match_spec.rb6
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb2
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb2
-rw-r--r--vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb5
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb4
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb1
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb302
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb2
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb26
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb40
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb6
-rw-r--r--vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb218
-rw-r--r--vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb12
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb229
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb167
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb27
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb66
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/extensions/bug_report_10577_spec.rb35
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb36
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb40
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb27
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html85
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html115
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html61
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html97
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb110
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb20
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb36
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb42
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb19
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb46
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb21
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb21
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb142
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb43
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb9
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb10
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb11
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb144
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/options_spec.rb359
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb12
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb310
-rw-r--r--vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb31
-rw-r--r--vendor/plugins/rspec/spec/spec/spec_classes.rb20
-rw-r--r--vendor/plugins/rspec/spec/spec/translator_spec.rb3
-rw-r--r--vendor/plugins/rspec/spec/spec_helper.rb61
68 files changed, 1920 insertions, 3231 deletions
diff --git a/vendor/plugins/rspec/spec/autotest/rspec_spec.rb b/vendor/plugins/rspec/spec/autotest/rspec_spec.rb
index 52b5b4885..64c020de9 100644
--- a/vendor/plugins/rspec/spec/autotest/rspec_spec.rb
+++ b/vendor/plugins/rspec/spec/autotest/rspec_spec.rb
@@ -39,7 +39,10 @@ HERE
describe Rspec, "rspec_commands" do
it "should contain the various commands, ordered by preference" do
- Rspec.new.spec_commands.should == ["bin/spec", "#{Config::CONFIG['bindir']}/spec"]
+ Rspec.new.spec_commands.should == [
+ File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec"),
+ "#{Config::CONFIG['bindir']}/spec"
+ ]
end
end
@@ -48,14 +51,15 @@ HERE
before :each do
common_setup
- @rspec_autotest = Rspec.new(@kernel)
+ @rspec_autotest = Rspec.new
end
it "should try to find the spec command if it exists in ./bin and use it above everything else" do
File.stub!(:exists?).and_return true
- File.should_receive(:exists?).with("bin/spec").and_return true
- @rspec_autotest.spec_command.should == "bin/spec"
+ spec_path = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
+ File.should_receive(:exists?).with(spec_path).and_return true
+ @rspec_autotest.spec_command.should == spec_path
end
it "should otherwise select the default spec command in gem_dir/bin/spec" do
@@ -84,16 +88,19 @@ HERE
end
it "should use the ALT_SEPARATOR if it is non-nil" do
- @rspec_autotest = Rspec.new(@kernel, @posix_separator, @windows_alt_separator)
- @rspec_autotest.stub!(:spec_commands).and_return [File.join('bin', 'spec')]
- @rspec_autotest.spec_command.should == "bin\\spec"
+ pending("autotest got re-worked so this is failing for the moment")
+ @rspec_autotest = Rspec.new
+ spec_command = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
+ @rspec_autotest.stub!(:spec_commands).and_return [spec_command]
+ @rspec_autotest.spec_command.should == spec_command.gsub('/', '\\')
end
it "should not use the ALT_SEPATOR if it is nil" do
@windows_alt_separator = nil
- @rspec_autotest = Rspec.new(@kernel, @posix_separator, @windows_alt_separator)
- @rspec_autotest.stub!(:spec_commands).and_return [File.join('bin', 'spec')]
- @rspec_autotest.spec_command.should == "bin/spec"
+ @rspec_autotest = Rspec.new
+ spec_command = File.expand_path("#{File.dirname(__FILE__)}/../../bin/spec")
+ @rspec_autotest.stub!(:spec_commands).and_return [spec_command]
+ @rspec_autotest.spec_command.should == spec_command
end
end
@@ -138,22 +145,20 @@ HERE
describe Rspec, "test mappings" do
before :each do
- @proc = mock Proc
- @kernel = mock Kernel
- @kernel.stub!(:proc).and_return @proc
- @rspec_autotest = Rspec.new(@kernel)
+ @rspec_autotest = Rspec.new
+ @rspec_autotest.hook :initialize
end
it "should map all filenames in spec/ which end in .rb" do
- @rspec_autotest.test_mappings[%r%^spec/.*\.rb$%].should == @proc
+ @rspec_autotest.instance_eval{@test_mappings}.should have_key(%r%^spec/.*\.rb$%)
end
it "should map all names in lib which end in .rb to the corresponding ones in spec/" do
- @rspec_autotest.test_mappings[%r%^lib/(.*)\.rb$%].should == @proc
+ @rspec_autotest.instance_eval{@test_mappings}.should have_key(%r%^lib/(.*)\.rb$%)
end
it "should find all files in spec/shares/* and the spec helper in spec/spec_helper" do
- @rspec_autotest.test_mappings[%r%^spec/(spec_helper|shared/.*)\.rb$%].should == @proc
+ @rspec_autotest.instance_eval{@test_mappings}.should have_key(%r%^spec/(spec_helper|shared/.*)\.rb$%)
end
end
@@ -162,7 +167,7 @@ HERE
before :each do
common_setup
- @rspec_autotest = Rspec.new(@kernel, @posix_separator, @windows_alt_separator)
+ @rspec_autotest = Rspec.new
@rspec_autotest.stub!(:hook)
@results = mock String
@@ -208,6 +213,7 @@ HERE
@lib_file = "lib/something.rb"
@spec_file = "spec/something_spec.rb"
@rspec_autotest = Rspec.new
+ @rspec_autotest.hook :initialize
@rspec_autotest.instance_variable_set("@files", {@lib_file => Time.now, @spec_file => Time.now})
@rspec_autotest.stub!(:find_files_to_test).and_return true
diff --git a/vendor/plugins/rspec/spec/autotest_helper.rb b/vendor/plugins/rspec/spec/autotest_helper.rb
index 172bb3a4a..6d994eaa2 100644
--- a/vendor/plugins/rspec/spec/autotest_helper.rb
+++ b/vendor/plugins/rspec/spec/autotest_helper.rb
@@ -1,4 +1,5 @@
+require "rubygems"
require 'autotest'
-require File.dirname(__FILE__) + "/../lib/autotest/rspec"
-
-
+dir = File.dirname(__FILE__)
+require "#{dir}/spec_helper"
+require File.expand_path("#{dir}/../lib/autotest/rspec") \ No newline at end of file
diff --git a/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb
deleted file mode 100644
index c3ed4e282..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- describe BehaviourEval do
- def count
- @count ||= 0
- @count = @count + 1
- @count
- end
-
- before(:all) do
- count.should == 1
- end
-
- before(:all) do
- count.should == 2
- end
-
- before(:each) do
- count.should == 3
- end
-
- before(:each) do
- count.should == 4
- end
-
- it "should run before(:all), before(:each), example, after(:each), after(:all) in order" do
- count.should == 5
- end
-
- after(:each) do
- count.should == 7
- end
-
- after(:each) do
- count.should == 6
- end
-
- after(:all) do
- count.should == 9
- end
-
- after(:all) do
- count.should == 8
- end
- end
-
- describe BehaviourEval, "instance methods" do
- it "should support pending" do
- lambda {
- pending("something")
- }.should raise_error(Spec::DSL::ExamplePendingError, "something")
- end
-
- it "should have #pending raise a Pending error when its block fails" do
- block_ran = false
- lambda {
- pending("something") do
- block_ran = true
- raise "something wrong with my example"
- end
- }.should raise_error(Spec::DSL::ExamplePendingError, "something")
- block_ran.should == true
- end
-
- it "should have #pending raise Spec::DSL::PendingFixedError when its block does not fail" do
- block_ran = false
- lambda {
- pending("something") do
- block_ran = true
- end
- }.should raise_error(Spec::DSL::PendingFixedError, "Expected pending 'something' to fail. No Error was raised.")
- block_ran.should == true
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb
deleted file mode 100644
index 91008a660..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- describe BehaviourFactory do
- it "should create a Spec::DSL::Behaviour by default" do
- Spec::DSL::BehaviourFactory.create("behaviour") {
- }.should be_an_instance_of(Spec::DSL::Behaviour)
- end
-
- it "should create a Spec::DSL::Behaviour when :behaviour_type => :default" do
- Spec::DSL::BehaviourFactory.create("behaviour", :behaviour_type => :default) {
- }.should be_an_instance_of(Spec::DSL::Behaviour)
- end
-
- it "should create specified type when :behaviour_type => :something_other_than_default" do
- behaviour_class = Class.new do
- def initialize(*args, &block); end
- end
- Spec::DSL::BehaviourFactory.add_behaviour_class(:something_other_than_default, behaviour_class)
- Spec::DSL::BehaviourFactory.create("behaviour", :behaviour_type => :something_other_than_default) {
- }.should be_an_instance_of(behaviour_class)
- end
-
- it "should type indicated by spec_path" do
- behaviour_class = Class.new do
- def initialize(*args, &block); end
- end
- Spec::DSL::BehaviourFactory.add_behaviour_class(:something_other_than_default, behaviour_class)
- Spec::DSL::BehaviourFactory.create("behaviour", :spec_path => "./spec/something_other_than_default/some_spec.rb") {
- }.should be_an_instance_of(behaviour_class)
- end
-
- it "should type indicated by spec_path (with spec_path generated by caller on windows)" do
- behaviour_class = Class.new do
- def initialize(*args, &block); end
- end
- Spec::DSL::BehaviourFactory.add_behaviour_class(:something_other_than_default, behaviour_class)
- Spec::DSL::BehaviourFactory.create("behaviour", :spec_path => "./spec\\something_other_than_default\\some_spec.rb") {
- }.should be_an_instance_of(behaviour_class)
- end
-
- after(:each) do
- Spec::DSL::BehaviourFactory.remove_behaviour_class(:something_other_than_default)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb
deleted file mode 100644
index fa6774c65..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb
+++ /dev/null
@@ -1,661 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- class FakeReporter < Spec::Runner::Reporter
- attr_reader :added_behaviour
- def add_behaviour(description)
- @added_behaviour = description
- end
- end
-
- describe Behaviour, "class methods" do
- before :each do
- @reporter = FakeReporter.new(mock("formatter", :null_object => true), mock("backtrace_tweaker", :null_object => true))
- @behaviour = Behaviour.new("example") {}
- end
-
- after :each do
- Behaviour.clear_before_and_after!
- end
-
- it "should not run before(:all) or after(:all) on dry run" do
- before_all_ran = false
- after_all_ran = false
- Behaviour.before(:all) { before_all_ran = true }
- Behaviour.after(:all) { after_all_ran = true }
- @behaviour.it("should") {}
- @behaviour.run(@reporter, true)
- before_all_ran.should be_false
- after_all_ran.should be_false
- end
-
- it "should not run any example if before(:all) fails" do
- spec_ran = false
- Behaviour.before(:all) { raise NonStandardError }
- @behaviour.it("test") {spec_ran = true}
- @behaviour.run(@reporter)
- spec_ran.should be_false
- end
-
- it "should run after(:all) if before(:all) fails" do
- after_all_ran = false
- Behaviour.before(:all) { raise NonStandardError }
- Behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
- it "should run after(:all) if before(:each) fails" do
- after_all_ran = false
- Behaviour.before(:each) { raise NonStandardError }
- Behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
- it "should run after(:all) if any example fails" do
- after_all_ran = false
- @behaviour.it("should") { raise NonStandardError }
- Behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
-
- it "should unregister a given after(:each) block" do
- after_all_ran = false
- @behaviour.it("example") {}
- proc = Proc.new { after_all_ran = true }
- Behaviour.after(:each, &proc)
- @behaviour.run(@reporter)
- after_all_ran.should be_true
-
- after_all_ran = false
- Behaviour.remove_after(:each, &proc)
- @behaviour.run(@reporter)
- after_all_ran.should be_false
- end
-
- it "should run second after(:each) block even if the first one fails" do
- example = @behaviour.it("example") {}
- second_after_ran = false
- @behaviour.after(:each) do
- second_after_ran = true
- raise "second"
- end
- first_after_ran = false
- @behaviour.after(:each) do
- first_after_ran = true
- raise "first"
- end
-
- @reporter.should_receive(:example_finished) do |example, error, location, example_not_implemented|
- example.should equal(example)
- error.message.should eql("first")
- location.should eql("after(:each)")
- example_not_implemented.should be_false
- end
- @behaviour.run(@reporter)
- first_after_ran.should be_true
- second_after_ran.should be_true
- end
-
- it "should not run second before(:each) if the first one fails" do
- @behaviour.it("example") {}
- first_before_ran = false
- @behaviour.before(:each) do
- first_before_ran = true
- raise "first"
- end
- second_before_ran = false
- @behaviour.before(:each) do
- second_before_ran = true
- raise "second"
- end
-
- @reporter.should_receive(:example_finished) do |name, error, location, example_not_implemented|
- name.should eql("example")
- error.message.should eql("first")
- location.should eql("before(:each)")
- example_not_implemented.should be_false
- end
- @behaviour.run(@reporter)
- first_before_ran.should be_true
- second_before_ran.should be_false
- end
-
- it "should supply before(:all) as description if failure in before(:all)" do
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should eql("before(:all)")
- error.message.should == "in before(:all)"
- location.should eql("before(:all)")
- end
-
- Behaviour.before(:all) { raise NonStandardError.new("in before(:all)") }
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- end
-
- it "should provide after(:all) as description if failure in after(:all)" do
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should eql("after(:all)")
- error.message.should eql("in after(:all)")
- location.should eql("after(:all)")
- end
-
- Behaviour.after(:all) { raise NonStandardError.new("in after(:all)") }
- @behaviour.run(@reporter)
- end
- end
-
- describe Behaviour do
- before :each do
- @reporter = FakeReporter.new(mock("formatter", :null_object => true), mock("backtrace_tweaker", :null_object => true))
- @behaviour = Behaviour.new("example") {}
- end
-
- after :each do
- Behaviour.clear_before_and_after!
- end
-
- it "should send reporter add_behaviour" do
- @behaviour.run(@reporter)
- @reporter.added_behaviour.should == "example"
- end
-
- it "should run example on run" do
- example_ran = false
- @behaviour.it("should") {example_ran = true}
- @behaviour.run(@reporter)
- example_ran.should be_true
- end
-
- it "should not run example on dry run" do
- example_ran = false
- @behaviour.it("should") {example_ran = true}
- @behaviour.run(@reporter, true)
- example_ran.should be_false
- end
-
- it "should not run before(:all) or after(:all) on dry run" do
- before_all_ran = false
- after_all_ran = false
- @behaviour.before(:all) { before_all_ran = true }
- @behaviour.after(:all) { after_all_ran = true }
- @behaviour.it("should") {}
- @behaviour.run(@reporter, true)
- before_all_ran.should be_false
- after_all_ran.should be_false
- end
-
- it "should not run any example if before(:all) fails" do
- spec_ran = false
- @behaviour.before(:all) { raise "help" }
- @behaviour.it("test") {spec_ran = true}
- @behaviour.run(@reporter)
- spec_ran.should be_false
- end
-
- it "should run after(:all) if before(:all) fails" do
- after_all_ran = false
- @behaviour.before(:all) { raise }
- @behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
- it "should run after(:all) if before(:each) fails" do
- after_all_ran = false
- @behaviour.before(:each) { raise }
- @behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
- it "should run after(:all) if any example fails" do
- after_all_ran = false
- @behaviour.it("should") { raise "before all error" }
- @behaviour.after(:all) { after_all_ran = true }
- @behaviour.run(@reporter)
- after_all_ran.should be_true
- end
-
- it "should supply before(:all) as description if failure in before(:all)" do
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should eql("before(:all)")
- error.message.should eql("in before(:all)")
- location.should eql("before(:all)")
- end
-
- @behaviour.before(:all) { raise "in before(:all)" }
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- end
-
- it "should provide after(:all) as description if failure in after(:all)" do
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should eql("after(:all)")
- error.message.should eql("in after(:all)")
- location.should eql("after(:all)")
- end
-
- @behaviour.after(:all) { raise "in after(:all)" }
- @behaviour.run(@reporter)
- end
-
- it "should run before(:all) block only once" do
- before_all_run_count_run_count = 0
- @behaviour.before(:all) {before_all_run_count_run_count += 1}
- @behaviour.it("test") {true}
- @behaviour.it("test2") {true}
- @behaviour.run(@reporter)
- before_all_run_count_run_count.should == 1
- end
-
- it "calls spec_inherited class method" do
- super_class_before_ran = false
- super_class = Class.new do
- def self.spec_inherited(mod)
- mod.before {setup}
- end
-
- define_method :setup do
- super_class_before_ran = true
- end
- end
- @behaviour.inherit super_class
-
- before_ran = false
- @behaviour.before {before_ran = true}
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- super_class_before_ran.should be_true
- before_ran.should be_true
- end
-
- it "should run after(:all) block only once" do
- after_all_run_count = 0
- @behaviour.after(:all) {after_all_run_count += 1}
- @behaviour.it("test") {true}
- @behaviour.it("test2") {true}
- @behaviour.run(@reporter)
- after_all_run_count.should == 1
- @reporter.rspec_verify
- end
-
- it "after(:all) should have access to all instance variables defined in before(:all)" do
- context_instance_value_in = "Hello there"
- context_instance_value_out = ""
- @behaviour.before(:all) { @instance_var = context_instance_value_in }
- @behaviour.after(:all) { context_instance_value_out = @instance_var }
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- context_instance_value_in.should == context_instance_value_out
- end
-
- it "should copy instance variables from before(:all)'s execution context into spec's execution context" do
- context_instance_value_in = "Hello there"
- context_instance_value_out = ""
- @behaviour.before(:all) { @instance_var = context_instance_value_in }
- @behaviour.it("test") {context_instance_value_out = @instance_var}
- @behaviour.run(@reporter)
- context_instance_value_in.should == context_instance_value_out
- end
-
- it "should not add global before callbacks for untargetted behaviours" do
- fiddle = []
-
- Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
- Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
- Behaviour.before(:each, :behaviour_type => :special) { fiddle << "Behaviour.before(:each, :behaviour_type => :special)" }
- Behaviour.prepend_before(:each, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:each, :behaviour_type => :special)" }
- Behaviour.before(:all, :behaviour_type => :special) { fiddle << "Behaviour.before(:all, :behaviour_type => :special)" }
- Behaviour.prepend_before(:all, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:all, :behaviour_type => :special)" }
-
- behaviour = Behaviour.new("I'm not special", :behaviour_type => :not_special) {}
- behaviour.run(@reporter)
- fiddle.should == [
- 'Behaviour.prepend_before(:all)',
- 'Behaviour.before(:all)',
- ]
- end
-
- it "should add global before callbacks for targetted behaviours" do
- fiddle = []
-
- Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
- Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
- Behaviour.before(:each, :behaviour_type => :special) { fiddle << "Behaviour.before(:each, :behaviour_type => :special)" }
- Behaviour.prepend_before(:each, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:each, :behaviour_type => :special)" }
- Behaviour.before(:all, :behaviour_type => :special) { fiddle << "Behaviour.before(:all, :behaviour_type => :special)" }
- Behaviour.prepend_before(:all, :behaviour_type => :special) { fiddle << "Behaviour.prepend_before(:all, :behaviour_type => :special)" }
-
- Behaviour.append_before(:behaviour_type => :special) { fiddle << "Behaviour.append_before(:each, :behaviour_type => :special)" }
-
- behaviour = Behaviour.new("I'm not special", :behaviour_type => :special) {}
- behaviour.it("test") {true}
- behaviour.run(@reporter)
- fiddle.should == [
- 'Behaviour.prepend_before(:all)',
- 'Behaviour.before(:all)',
- 'Behaviour.prepend_before(:all, :behaviour_type => :special)',
- 'Behaviour.before(:all, :behaviour_type => :special)',
- 'Behaviour.prepend_before(:each, :behaviour_type => :special)',
- 'Behaviour.before(:each, :behaviour_type => :special)',
- 'Behaviour.append_before(:each, :behaviour_type => :special)',
- ]
- end
-
- it "before callbacks are ordered from global to local" do
- fiddle = []
- super_class = Class.new do
- define_method :setup do
- fiddle << "superclass setup"
- end
- end
- @behaviour.inherit super_class
-
- Behaviour.prepend_before(:all) { fiddle << "Behaviour.prepend_before(:all)" }
- Behaviour.before(:all) { fiddle << "Behaviour.before(:all)" }
- @behaviour.prepend_before(:all) { fiddle << "prepend_before(:all)" }
- @behaviour.before(:all) { fiddle << "before(:all)" }
- @behaviour.prepend_before(:each) { fiddle << "prepend_before(:each)" }
- @behaviour.before(:each) { fiddle << "before(:each)" }
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- fiddle.should == [
- 'Behaviour.prepend_before(:all)',
- 'Behaviour.before(:all)',
- 'prepend_before(:all)',
- 'before(:all)',
- 'prepend_before(:each)',
- 'before(:each)'
- ]
- end
-
- it "after callbacks are ordered from local to global" do
- @reporter.should_receive(:add_behaviour).with any_args()
- @reporter.should_receive(:example_finished).with any_args()
-
- fiddle = []
- super_class = Class.new do
- define_method :teardown do
- fiddle << "superclass teardown"
- end
- end
- @behaviour.inherit super_class
-
- @behaviour.after(:each) { fiddle << "after(:each)" }
- @behaviour.append_after(:each) { fiddle << "append_after(:each)" }
- @behaviour.after(:all) { fiddle << "after(:all)" }
- @behaviour.append_after(:all) { fiddle << "append_after(:all)" }
- Behaviour.after(:all) { fiddle << "Behaviour.after(:all)" }
- Behaviour.append_after(:all) { fiddle << "Behaviour.append_after(:all)" }
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- fiddle.should == [
- 'after(:each)',
- 'append_after(:each)',
- 'after(:all)',
- 'append_after(:all)',
- 'Behaviour.after(:all)',
- 'Behaviour.append_after(:all)'
- ]
- end
-
- it "should run superclass teardown method and after block" do
- super_class_teardown_ran = false
- super_class = Class.new do
- define_method :teardown do
- super_class_teardown_ran = true
- end
- end
- @behaviour.inherit super_class
-
- teardown_ran = false
- @behaviour.after {teardown_ran = true}
- @behaviour.it("test") {true}
- @behaviour.run(@reporter)
- super_class_teardown_ran.should be_false
- teardown_ran.should be_true
- @reporter.rspec_verify
- end
-
- it "should have accessible methods from inherited superclass" do
- helper_method_ran = false
- super_class = Class.new do
- define_method :helper_method do
- helper_method_ran = true
- end
- end
- @behaviour.inherit super_class
-
- @behaviour.it("test") {helper_method}
- @behaviour.run(@reporter)
- helper_method_ran.should be_true
- end
-
- it "should have accessible class methods from inherited superclass" do
- class_method_ran = false
- super_class = Class.new
- (class << super_class; self; end).class_eval do
- define_method :class_method do
- class_method_ran = true
- end
- end
- @behaviour.inherit super_class
- @behaviour.class_method
- class_method_ran.should be_true
-
- lambda {@behaviour.foobar}.should raise_error(NoMethodError)
- end
-
- it "should include inherited class methods" do
- class_method_ran = false
- super_class = Class.new
- class << super_class
- def super_class_class_method; end
- end
- @behaviour.inherit super_class
-
- @behaviour.methods.should include("super_class_class_method")
- end
-
- it "should have accessible instance methods from included module" do
- @reporter.should_receive(:add_behaviour).with any_args()
- @reporter.should_receive(:example_finished).with any_args()
-
- mod1_method_called = false
- mod1 = Module.new do
- define_method :mod1_method do
- mod1_method_called = true
- end
- end
-
- mod2_method_called = false
- mod2 = Module.new do
- define_method :mod2_method do
- mod2_method_called = true
- end
- end
-
- @behaviour.include mod1, mod2
-
- @behaviour.it("test") do
- mod1_method
- mod2_method
- end
- @behaviour.run(@reporter)
- mod1_method_called.should be_true
- mod2_method_called.should be_true
- end
-
- it "should have accessible class methods from included module" do
- mod1_method_called = false
- mod1 = Module.new do
- class_methods = Module.new do
- define_method :mod1_method do
- mod1_method_called = true
- end
- end
-
- metaclass.class_eval do
- define_method(:included) do |receiver|
- receiver.extend class_methods
- end
- end
- end
-
- mod2_method_called = false
- mod2 = Module.new do
- class_methods = Module.new do
- define_method :mod2_method do
- mod2_method_called = true
- end
- end
-
- metaclass.class_eval do
- define_method(:included) do |receiver|
- receiver.extend class_methods
- end
- end
- end
-
- @behaviour.include mod1, mod2
-
- @behaviour.mod1_method
- @behaviour.mod2_method
- mod1_method_called.should be_true
- mod2_method_called.should be_true
- end
-
- it "should count number of specs" do
- @behaviour.it("one") {}
- @behaviour.it("two") {}
- @behaviour.it("three") {}
- @behaviour.it("four") {}
- @behaviour.number_of_examples.should == 4
- end
-
- it "should not match anything when there are no examples" do
- @behaviour.should_not be_matches(['context'])
- end
-
- it "should match when one of the examples match" do
- example = mock('my example')
- example.should_receive(:matches?).and_return(true)
- @behaviour.stub!(:examples).and_return([example])
- @behaviour.should be_matches(['jalla'])
- end
-
- it "should include targetted modules included using configuration" do
- $included_modules = []
-
- mod1 = Module.new do
- class << self
- def included(mod)
- $included_modules << self
- end
- end
- end
-
- mod2 = Module.new do
- class << self
- def included(mod)
- $included_modules << self
- end
- end
- end
-
- mod3 = Module.new do
- class << self
- def included(mod)
- $included_modules << self
- end
- end
- end
-
- begin
- Spec::Runner.configuration.include(mod1, mod2)
- Spec::Runner.configuration.include(mod3, :behaviour_type => :cat)
-
- behaviour = Behaviour.new("I'm special", :behaviour_type => :dog) do
- end.run(@reporter)
-
- $included_modules.should include(mod1)
- $included_modules.should include(mod2)
- $included_modules.should_not include(mod3)
- ensure
- Spec::Runner.configuration.exclude(mod1, mod2, mod3)
- end
- end
-
- it "should include any predicate_matchers included using configuration" do
- $included_predicate_matcher_found = false
- Spec::Runner.configuration.predicate_matchers[:do_something] = :does_something?
- Behaviour.new('example') do
- it "should respond to do_something" do
- $included_predicate_matcher_found = respond_to?(:do_something)
- end
- end.run(@reporter)
- $included_predicate_matcher_found.should be(true)
- end
-
- it "should use a mock framework set up in config" do
- mod = Module.new do
- class << self
- def included(mod)
- $included_module = mod
- end
- end
- end
-
- begin
- $included_module = nil
- Spec::Runner.configuration.mock_with mod
-
- behaviour = Behaviour.new('example') do
- end.run(@reporter)
-
- $included_module.should_not be_nil
- ensure
- Spec::Runner.configuration.mock_with :rspec
- end
- end
-
- end
-
- class BehaviourSubclass < Behaviour
- public :described_type
- end
-
- describe Behaviour, " subclass" do
- it "should have access to the described_type" do
- BehaviourSubclass.new(Example){}.described_type.should == Example
- end
-
- it "should figure out its behaviour_type based on its name ()" do
- BehaviourSubclass.new(Object){}.behaviour_type.should == :subclass
- end
-
- # TODO - add an example about shared behaviours
- end
-
- describe Enumerable do
- def each(&block)
- ["4", "2", "1"].each(&block)
- end
-
- it "should be included in examples because it is a module" do
- map{|e| e.to_i}.should == [4,2,1]
- end
- end
-
- describe String do
- it "should not be included in examples because it is not a module" do
- lambda{self.map}.should raise_error(NoMethodError, /undefined method `map' for/)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb
deleted file mode 100644
index 487677828..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- describe CompositeProcBuilder do
- before(:each) do
- @klass = Class.new do
- attr_reader :an_attribute
-
- def an_attribute_setter
- @an_attribute = :the_value
- end
- end
-
- @parent = @klass.new
- @builder = CompositeProcBuilder.new {}
- end
-
- it "calls all of its child procs" do
- @builder << proc {:proc1}
- @builder << proc {:proc2}
- @builder.proc.call.should == [:proc1, :proc2]
- end
-
- it "evals procs in the caller's instance" do
- the_proc = proc do
- @an_attribute = :the_value
- end
- the_proc.class.should == Proc
- @builder << the_proc
- @parent.instance_eval &@builder.proc
- @parent.an_attribute.should == :the_value
- end
-
- it "binds unbound methods to the parent" do
- unbound_method = @klass.instance_method(:an_attribute_setter)
- unbound_method.class.should == UnboundMethod
- @builder << unbound_method
- @parent.instance_eval &@builder.proc
- @parent.an_attribute.should == :the_value
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb
deleted file mode 100755
index d0377d068..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- describe Configuration do
- before(:each) do
- @config = Configuration.new
- @behaviour = mock("behaviour")
- end
-
- it "should default mock framework to rspec" do
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
- end
-
- it "should let you set rspec mocking explicitly" do
- @config.mock_with(:rspec)
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
- end
-
- it "should let you set mocha" do
- @config.mock_with(:mocha)
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/mocha$/
- end
-
- it "should let you set flexmock" do
- @config.mock_with(:flexmock)
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/flexmock$/
- end
-
- it "should let you set rr" do
- @config.mock_with(:rr)
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rr$/
- end
-
- it "should let you set an arbitrary adapter module" do
- adapter = Module.new
- @config.mock_with(adapter)
- @config.mock_framework.should == adapter
- end
-
- it "should let you define modules to be included" do
- mod = Module.new
- @config.include mod
- @config.modules_for(nil).should include(mod)
- end
-
- [:prepend_before, :append_before, :prepend_after, :append_after].each do |m|
- it "should delegate ##{m} to Behaviour class" do
- Behaviour.should_receive(m).with(:whatever)
- @config.__send__(m, :whatever)
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb
deleted file mode 100755
index d9fe4100f..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb
+++ /dev/null
@@ -1,89 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- describe Description, " constructed with a single String" do
- before(:each) {@description = Description.new("abc")}
-
- it "should provide that string as its name" do
- @description.description.should == "abc"
- end
- it "should provide nil as its type" do
- @description.described_type.should be_nil
- end
- it "should respond to []" do
- @description[:key].should be_nil
- end
- it "should respond to []=" do
- @description[:key] = :value
- @description[:key].should == :value
- end
- it "should return for == when value matches description" do
- @description.should == "abc"
- end
- it "should return for == when value is other description that matches description" do
- @description.should == Description.new("abc")
- end
- end
-
- describe Description, " constructed with a Type" do
- before(:each) {@description = Description.new(Behaviour)}
-
- it "should provide a String representation of that type (fully qualified) as its name" do
- @description.description.should == "Spec::DSL::Behaviour"
- end
- it "should provide that type (fully qualified) as its type" do
- @description.described_type.should == Spec::DSL::Behaviour
- end
- end
-
- describe Description, " constructed with a Type and a String" do
- before(:each) {@description = Description.new(Behaviour, " behaving")}
-
- it "should include the type and second String in its name" do
- @description.description.should == "Spec::DSL::Behaviour behaving"
- end
- it "should provide that type (fully qualified) as its type" do
- @description.described_type.should == Spec::DSL::Behaviour
- end
- end
-
- describe Description, "constructed with a Type and a String not starting with a space" do
- before(:each) {@description = Description.new(Behaviour, "behaving")}
-
- it "should include the type and second String with a space in its name" do
- @description.description.should == "Spec::DSL::Behaviour behaving"
- end
- end
-
- describe Description, "constructed with a Type and a String starting with a ." do
- before(:each) {@description = Description.new(Behaviour, ".behaving")}
-
- it "should include the type and second String with a space in its name" do
- @description.description.should == "Spec::DSL::Behaviour.behaving"
- end
- end
-
- describe Description, "constructed with a Type and a String starting with a #" do
- before(:each) {@description = Description.new(Behaviour, "#behaving")}
-
- it "should include the type and second String with a space in its name" do
- @description.description.should == "Spec::DSL::Behaviour#behaving"
- end
- end
-
- describe Description, " constructed with options" do
- before(:each) do
- @description = Description.new(Behaviour, :a => "b", :spec_path => "blah")
- end
-
- it "should provide its options" do
- @description[:a].should == "b"
- end
-
- it "should wrap spec path using File.expand_path" do
- @description[:spec_path].should == File.expand_path("blah")
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb
deleted file mode 100644
index 474d24e44..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- describe Example, " class" do
-
- def run(example)
- example.run(@reporter, nil, nil, nil, Object.new)
- end
-
- before do
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
- @example_class = Example.dup
- end
-
- it "should report errors in example" do
- error = Exception.new
- example = @example_class.new("example") {raise(error)}
- @reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
- run(example)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb
deleted file mode 100644
index 67b19604c..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb
+++ /dev/null
@@ -1,160 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- describe Example, " instance" do
- predicate_matchers[:is_a] = [:is_a?]
-
- before(:each) do
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
- end
-
- it "should send reporter example_started" do
- example=Example.new("example") {}
- @reporter.should_receive(:example_started).with(equal(example))
- example.run(@reporter, nil, nil, false, nil)
- end
-
- it "should report its name for dry run" do
- example=Example.new("example") {}
- @reporter.should_receive(:example_finished).with(equal(example))
- example.run(@reporter, nil, nil, true, nil) #4th arg indicates dry run
- end
-
- it "should report success" do
- example=Example.new("example") {}
- @reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "should report failure due to failure" do
- example=Example.new("example") do
- (2+2).should == 5
- end
- @reporter.should_receive(:example_finished).with(equal(example), is_a(Spec::Expectations::ExpectationNotMetError), "example", false)
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "should report failure due to error" do
- error=NonStandardError.new
- example=Example.new("example") do
- raise(error)
- end
- @reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "should run example in scope of supplied object" do
- scope_class = Class.new
- example=Example.new("should pass") do
- self.instance_of?(Example).should == false
- self.instance_of?(scope_class).should == true
- end
- @reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
- example.run(@reporter, nil, nil, nil, scope_class.new)
- end
-
- it "should not run example block if before_each fails" do
- example_ran = false
- example=Example.new("should pass") {example_ran = true}
- before_each = lambda {raise NonStandardError}
- example.run(@reporter, before_each, nil, nil, Object.new)
- example_ran.should == false
- end
-
- it "should run after_each block if before_each fails" do
- after_each_ran = false
- example=Example.new("should pass") {}
- before_each = lambda {raise NonStandardError}
- after_each = lambda {after_each_ran = true}
- example.run(@reporter, before_each, after_each, nil, Object.new)
- after_each_ran.should == true
- end
-
- it "should run after_each block when example fails" do
- example=Example.new("example") do
- raise(NonStandardError.new("in body"))
- end
- after_each=lambda do
- raise("in after_each")
- end
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.should equal(example)
- location.should eql("example")
- error.message.should eql("in body")
- end
- example.run(@reporter, nil, after_each, nil, nil)
- end
-
- it "should report failure location when in before_each" do
- example=Example.new("example") {}
- before_each=lambda { raise(NonStandardError.new("in before_each")) }
- @reporter.should_receive(:example_finished) do |name, error, location|
- name.should equal(example)
- error.message.should eql("in before_each")
- location.should eql("before(:each)")
- end
- example.run(@reporter, before_each, nil, nil, nil)
- end
-
- it "should report failure location when in after_each" do
- example = Example.new("example") {}
- after_each = lambda { raise(NonStandardError.new("in after_each")) }
- @reporter.should_receive(:example_finished) do |name, error, location|
- name.should equal(example)
- error.message.should eql("in after_each")
- location.should eql("after(:each)")
- end
- example.run(@reporter, nil, after_each, nil, nil)
- end
-
- it "should accept an options hash following the example name" do
- example = Example.new("name", :key => 'value')
- end
-
- it "should report NO NAME when told to use generated description with --dry-run" do
- example = Example.new(:__generate_description) {
- 5.should == 5
- }
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should == "NO NAME (Because of --dry-run)"
- end
- example.run(@reporter, lambda{}, lambda{}, true, Object.new)
- end
-
- it "should report NO NAME when told to use generated description with no expectations" do
- example = Example.new(:__generate_description) {}
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should == "NO NAME (Because there were no expectations)"
- end
- example.run(@reporter, lambda{}, lambda{}, false, Object.new)
- end
-
- it "should report NO NAME when told to use generated description and matcher fails" do
- example = Example.new(:__generate_description) do
- 5.should "" # Has no matches? method..
- end
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should == "NO NAME (Because of Error raised in matcher)"
- end
- example.run(@reporter, nil, nil, nil, Object.new)
- end
-
- it "should report generated description when told to and it is available" do
- example = Example.new(:__generate_description) {
- 5.should == 5
- }
- @reporter.should_receive(:example_finished) do |example, error, location|
- example.description.should == "should == 5"
- end
- example.run(@reporter, nil, nil, nil, Object.new)
- end
-
- it "should unregister description_generated callback (lest a memory leak should build up)" do
- example = Example.new("something")
- Spec::Matchers.should_receive(:unregister_description_generated).with(is_a(Proc))
- example.run(@reporter, nil, nil, nil, Object.new)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb
deleted file mode 100644
index ea2f2a787..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- module ExampleMatcherSpecHelper
- class MatchDescription
- def initialize(description)
- @description = description
- end
-
- def matches?(matcher)
- matcher.matches?(@description)
- end
-
- def failure_message
- "expected matcher.matches?(#{@description.inspect}) to return true, got false"
- end
-
- def negative_failure_message
- "expected matcher.matches?(#{@description.inspect}) to return false, got true"
- end
- end
- def match_description(description)
- MatchDescription.new(description)
- end
- end
-
- describe ExampleMatcher do
- include ExampleMatcherSpecHelper
-
- it "should match correct behaviour and example" do
- matcher = ExampleMatcher.new("behaviour", "example")
- matcher.should match_description("behaviour example")
- end
-
- it "should not match wrong example" do
- matcher = ExampleMatcher.new("behaviour", "other example")
- matcher.should_not match_description("behaviour example")
- end
-
- it "should not match wrong behaviour" do
- matcher = ExampleMatcher.new("other behaviour", "example")
- matcher.should_not match_description("behaviour example")
- end
-
- it "should match example only" do
- matcher = ExampleMatcher.new("behaviour", "example")
- matcher.should match_description("example")
- end
-
- it "should match behaviour only" do
- matcher = ExampleMatcher.new("behaviour", "example")
- matcher.should match_description("behaviour")
- end
-
- it "should escape regexp chars" do
- matcher = ExampleMatcher.new("(con|text)", "[example]")
- matcher.should_not match_description("con p")
- end
-
- it "should match when behaviour is modularized" do
- matcher = ExampleMatcher.new("MyModule::MyClass", "example")
- matcher.should match_description("MyClass example")
- end
- end
-
- describe ExampleMatcher, "normal case" do
- it "matches when passed in example matches" do
- matcher = ExampleMatcher.new("Foo", "bar")
- matcher.matches?(["no match", "Foo bar"]).should == true
- end
-
- it "does not match when no passed in examples match" do
- matcher = ExampleMatcher.new("Foo", "bar")
- matcher.matches?(["no match1", "no match2"]).should == false
- end
- end
-
- describe ExampleMatcher, "where description has '::' in it" do
- it "matches when passed in example matches" do
- matcher = ExampleMatcher.new("Foo::Bar", "baz")
- matcher.matches?(["no match", "Foo::Bar baz"]).should == true
- end
-
- it "does not match when no passed in examples match" do
- matcher = ExampleMatcher.new("Foo::Bar", "baz")
- matcher.matches?(["no match1", "no match2"]).should == false
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb
deleted file mode 100644
index a6d582068..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb
+++ /dev/null
@@ -1,137 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- describe Example, " declared with {:should_raise => ...}" do
- before(:each) do
- @reporter = mock("reporter")
- @reporter.stub!(:example_started)
- end
-
- def verify_error(error, message=nil)
- error.should be_an_instance_of(Spec::Expectations::ExpectationNotMetError)
- unless message.nil?
- return error.message.should =~ message if Regexp === message
- return error.message.should == message
- end
- end
-
- it "true} should pass when there is an ExpectationNotMetError" do
- example = Spec::DSL:: Example.new("example", :should_raise => true) do
- raise Spec::Expectations::ExpectationNotMetError
- end
- @reporter.should_receive(:example_finished) do |description, error|
- error.should be_nil
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "true} should fail if nothing is raised" do
- example = Spec::DSL:: Example.new("example", :should_raise => true) {}
- @reporter.should_receive(:example_finished) do |example_name, error|
- verify_error(error, /example block expected Exception but nothing was raised/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "NameError} should pass when there is a NameError" do
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
- raise NameError
- end
- @reporter.should_receive(:example_finished) do |example_name, error|
- error.should be_nil
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "NameError} should fail when there is no error" do
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
- #do nothing
- end
- @reporter.should_receive(:example_finished) do |example_name, error|
- verify_error(error,/example block expected NameError but nothing was raised/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "NameError} should fail when there is the wrong error" do
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
- raise RuntimeError
- end
- @reporter.should_receive(:example_finished) do |example_name, error|
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError]} should pass when there is a NameError" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
- raise NameError
- end
- @reporter.should_receive(:example_finished) do |description, error|
- error.should be_nil
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError]} should fail when there is no error" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
- end
- @reporter.should_receive(:example_finished) do |description, error|
- verify_error(error, /example block expected NameError but nothing was raised/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError]} should fail when there is the wrong error" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
- raise RuntimeError
- end
- @reporter.should_receive(:example_finished) do |description, error|
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError, 'message'} should pass when there is a NameError with the right message" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
- raise NameError, 'expected'
- end
- @reporter.should_receive(:example_finished) do |description, error|
- error.should be_nil
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError, 'message'} should pass when there is a NameError with a message matching a regex" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /xpec/]) do
- raise NameError, 'expected'
- end
- @reporter.should_receive(:example_finished) do |description, error|
- error.should be_nil
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError, 'message'} should fail when there is a NameError with the wrong message" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
- raise NameError, 'wrong message'
- end
- @reporter.should_receive(:example_finished) do |description, error|
- verify_error(error, /example block expected #<NameError: expected> but raised #<NameError: wrong message>/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
-
- it "[NameError, 'message'} should fail when there is a NameError with a message not matching regexp" do
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /exp/]) do
- raise NameError, 'wrong message'
- end
- @reporter.should_receive(:example_finished) do |description, error|
- verify_error(error, /example block expected #<NameError: \(\?-mix:exp\)> but raised #<NameError: wrong message>/)
- end
- example.run(@reporter, nil, nil, nil, nil)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb
deleted file mode 100755
index 02cd89399..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- class Fish
- def can_swim?(distance_in_yards)
- distance_in_yards < 1000
- end
- end
-
- describe "predicate_matcher[method_on_object] = matcher_method" do
- predicate_matchers[:swim] = :can_swim?
- it "should match matcher_method if method_on_object returns true" do
- swim(100).matches?(Fish.new).should be_true
- end
- it "should not match matcher_method if method_on_object returns false" do
- swim(10000).matches?(Fish.new).should be_false
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb b/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb
deleted file mode 100644
index a4288360c..000000000
--- a/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb
+++ /dev/null
@@ -1,252 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-module Spec
- module DSL
- describe Behaviour, ", with :shared => true" do
-
- before(:each) do
- @formatter = Spec::Mocks::Mock.new("formatter", :null_object => true)
- @behaviour = behaviour_class.new("behaviour") {}
- end
-
- after(:each) do
- @formatter.rspec_verify
- @behaviour_class = nil
- $shared_behaviours.clear unless $shared_behaviours.nil?
- end
-
- def behaviour_class
- unless @behaviour_class
- @behaviour_class = Behaviour.dup
- # dup copies the class instance vars
- @behaviour_class.instance_variable_set(:@shared_behaviours, nil)
- end
- @behaviour_class
- end
-
- def make_shared_behaviour(name, opts=nil, &block)
- behaviour = behaviour_class.new(name, :shared => true, &block)
- behaviour_class.add_shared_behaviour(behaviour)
- behaviour
- end
-
- def non_shared_behaviour()
- @non_shared_behaviour ||= behaviour_class.new("behaviour") {}
- end
-
- it "should accept an optional options hash" do
- lambda { behaviour_class.new("context") {} }.should_not raise_error(Exception)
- lambda { behaviour_class.new("context", :shared => true) {} }.should_not raise_error(Exception)
- end
-
- it "should return all shared behaviours" do
- b1 = make_shared_behaviour("b1", :shared => true) {}
- b2 = make_shared_behaviour("b2", :shared => true) {}
-
- b1.should_not be(nil)
- b2.should_not be(nil)
-
- behaviour_class.find_shared_behaviour("b1").should equal(b1)
- behaviour_class.find_shared_behaviour("b2").should equal(b2)
- end
-
- it "should be shared when configured as shared" do
- behaviour = make_shared_behaviour("behaviour") {}
- behaviour.should be_shared
- end
-
- it "should not be shared when not configured as shared" do
- non_shared_behaviour.should_not be_shared
- end
-
- it "should raise if run when shared" do
- behaviour = make_shared_behaviour("context") {}
- $example_ran = false
- behaviour.it("test") {$example_ran = true}
- lambda { behaviour.run(@formatter) }.should raise_error
- $example_ran.should be_false
- end
-
- it "should contain examples when shared" do
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.it("shared example") {}
- shared_behaviour.number_of_examples.should == 1
- end
-
- it "should complain when adding a second shared behaviour with the same description" do
- describe "shared behaviour", :shared => true do
- end
- lambda do
- describe "shared behaviour", :shared => true do
- end
- end.should raise_error(ArgumentError)
- end
-
- it "should NOT complain when adding the same shared behaviour instance again" do
- shared_behaviour = behaviour_class.new("shared behaviour", :shared => true) {}
- behaviour_class.add_shared_behaviour(shared_behaviour)
- behaviour_class.add_shared_behaviour(shared_behaviour)
- end
-
- it "should NOT complain when adding the same shared behaviour again (i.e. file gets reloaded)" do
- lambda do
- 2.times do
- describe "shared behaviour which gets loaded twice", :shared => true do
- end
- end
- end.should_not raise_error(ArgumentError)
- end
-
- it "should NOT complain when adding the same shared behaviour in same file with different absolute path" do
- shared_behaviour_1 = behaviour_class.new("shared behaviour", :shared => true) {}
- shared_behaviour_2 = behaviour_class.new("shared behaviour", :shared => true) {}
-
- shared_behaviour_1.description[:spec_path] = "/my/spec/a/../shared.rb"
- shared_behaviour_2.description[:spec_path] = "/my/spec/b/../shared.rb"
-
- behaviour_class.add_shared_behaviour(shared_behaviour_1)
- behaviour_class.add_shared_behaviour(shared_behaviour_2)
- end
-
- it "should complain when adding a different shared behaviour with the same name in a different file with the same basename" do
- shared_behaviour_1 = behaviour_class.new("shared behaviour", :shared => true) {}
- shared_behaviour_2 = behaviour_class.new("shared behaviour", :shared => true) {}
-
- shared_behaviour_1.description[:spec_path] = "/my/spec/a/shared.rb"
- shared_behaviour_2.description[:spec_path] = "/my/spec/b/shared.rb"
-
- behaviour_class.add_shared_behaviour(shared_behaviour_1)
- lambda do
- behaviour_class.add_shared_behaviour(shared_behaviour_2)
- end.should raise_error(ArgumentError, /already exists/)
- end
-
- it "should add examples to current behaviour when calling it_should_behave_like" do
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.it("shared example") {}
- shared_behaviour.it("shared example 2") {}
-
- @behaviour.it("example") {}
- @behaviour.number_of_examples.should == 1
- @behaviour.it_should_behave_like("shared behaviour")
- @behaviour.number_of_examples.should == 3
- end
-
- it "should run shared examples" do
- shared_example_ran = false
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.it("shared example") { shared_example_ran = true }
-
- example_ran = false
-
- @behaviour.it_should_behave_like("shared behaviour")
- @behaviour.it("example") {example_ran = true}
- @behaviour.run(@formatter)
- example_ran.should be_true
- shared_example_ran.should be_true
- end
-
- it "should run setup and teardown from shared behaviour" do
- shared_setup_ran = false
- shared_teardown_ran = false
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.before { shared_setup_ran = true }
- shared_behaviour.after { shared_teardown_ran = true }
- shared_behaviour.it("shared example") { shared_example_ran = true }
-
- example_ran = false
-
- @behaviour.it_should_behave_like("shared behaviour")
- @behaviour.it("example") {example_ran = true}
- @behaviour.run(@formatter)
- example_ran.should be_true
- shared_setup_ran.should be_true
- shared_teardown_ran.should be_true
- end
-
- it "should run before(:all) and after(:all) only once from shared behaviour" do
- shared_before_all_run_count = 0
- shared_after_all_run_count = 0
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.before(:all) { shared_before_all_run_count += 1}
- shared_behaviour.after(:all) { shared_after_all_run_count += 1}
- shared_behaviour.it("shared example") { shared_example_ran = true }
-
- example_ran = false
-
- @behaviour.it_should_behave_like("shared behaviour")
- @behaviour.it("example") {example_ran = true}
- @behaviour.run(@formatter)
- example_ran.should be_true
- shared_before_all_run_count.should == 1
- shared_after_all_run_count.should == 1
- end
-
- it "should include modules, included into shared behaviour, into current behaviour" do
- @formatter.should_receive(:add_behaviour).with(any_args)
- @formatter.should_receive(:example_finished).twice.with(any_args)
-
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.it("shared example") { shared_example_ran = true }
-
- mod1_method_called = false
- mod1 = Module.new do
- define_method :mod1_method do
- mod1_method_called = true
- end
- end
-
- mod2_method_called = false
- mod2 = Module.new do
- define_method :mod2_method do
- mod2_method_called = true
- end
- end
-
- shared_behaviour.include mod2
-
- @behaviour.it_should_behave_like("shared behaviour")
- @behaviour.include mod1
-
- @behaviour.it("test") do
- mod1_method
- mod2_method
- end
- @behaviour.run(@formatter)
- mod1_method_called.should be_true
- mod2_method_called.should be_true
- end
-
- it "should make methods defined in the shared behaviour available in consuming behaviour" do
- shared_behaviour = make_shared_behaviour("shared behaviour xyz") do
- def a_shared_helper_method
- "this got defined in a shared behaviour"
- end
- end
- @behaviour.it_should_behave_like("shared behaviour xyz")
- success = false
- @behaviour.it("should access a_shared_helper_method") do
- a_shared_helper_method
- success = true
- end
- @behaviour.run(@formatter)
- success.should be_true
- end
-
- it "should error if told to inherit from a class" do
- shared_behaviour = make_shared_behaviour("shared behaviour") {}
- shared_behaviour.it("shared example") { shared_example_ran = true }
- lambda { shared_behaviour.inherit Object }.should raise_error(ArgumentError)
- end
-
- it "should raise when named shared behaviour can not be found" do
- begin
- @behaviour.it_should_behave_like("non-existent shared behaviour")
- violated
- rescue => e
- e.message.should == "Shared Behaviour 'non-existent shared behaviour' can not be found"
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb b/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb
index ae5551aaf..ea720846b 100644
--- a/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb
@@ -1,5 +1,4 @@
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-require File.dirname(__FILE__) + '/../../../../lib/spec/expectations/differs/default'
module Spec
module Fixtures
@@ -22,7 +21,8 @@ end
describe "Diff" do
before(:each) do
- @differ = Spec::Expectations::Differs::Default.new
+ @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
+ @differ = Spec::Expectations::Differs::Default.new(@options)
end
it "should output unified diff of two strings" do
@@ -79,7 +79,9 @@ end
describe "Diff in context format" do
before(:each) do
- @differ = Spec::Expectations::Differs::Default.new(:context)
+ @options = Spec::Runner::Options.new(StringIO.new, StringIO.new)
+ @options.diff_format = :context
+ @differ = Spec::Expectations::Differs::Default.new(@options)
end
it "should output unified diff message of two objects" do
diff --git a/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb b/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb
index 587053293..0d9335bdb 100644
--- a/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb
@@ -9,8 +9,7 @@ describe Object, "#should" do
end
it "should accept and interact with a matcher" do
- @matcher.should_receive(:matches?).with(@target).and_return(true)
-
+ @matcher.should_receive(:matches?).with(@target).and_return(true)
@target.should @matcher
end
@@ -21,6 +20,37 @@ describe Object, "#should" do
@target.should @matcher
}.should fail_with("the failure message")
end
+
+ it "should raise error if it receives false directly" do
+ lambda {
+ @target.should false
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives false (evaluated)" do
+ lambda {
+ @target.should eql?("foo")
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives true" do
+ lambda {
+ @target.should true
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives nil" do
+ lambda {
+ @target.should nil
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives no argument and it is not used as a left side of an operator" do
+ pending "Is it even possible to catch this?"
+ lambda {
+ @target.should
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
end
describe Object, "#should_not" do
@@ -43,4 +73,35 @@ describe Object, "#should_not" do
@target.should_not @matcher
}.should fail_with("the negative failure message")
end
+
+ it "should raise error if it receives false directly" do
+ lambda {
+ @target.should_not false
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives false (evaluated)" do
+ lambda {
+ @target.should_not eql?("foo")
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives true" do
+ lambda {
+ @target.should_not true
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives nil" do
+ lambda {
+ @target.should_not nil
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
+
+ it "should raise error if it receives no argument and it is not used as a left side of an operator" do
+ pending "Is it even possible to catch this?"
+ lambda {
+ @target.should_not
+ }.should raise_error(Spec::Expectations::InvalidMatcherError)
+ end
end
diff --git a/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb
index 84653873c..d40036c79 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb
@@ -199,6 +199,21 @@ describe "should be ===" do
end
end
+describe "should be" do
+ it "should pass if actual is true or a set value" do
+ true.should be
+ 1.should be
+ end
+
+ it "should fail if actual is false" do
+ lambda {false.should be}.should fail_with("expected if to be satisfied, got false")
+ end
+
+ it "should fail if actual is nil" do
+ lambda {nil.should be}.should fail_with("expected if to be satisfied, got nil")
+ end
+end
+
describe "should be(value)" do
it "should pass if actual.equal?(value)" do
5.should be(5)
diff --git a/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb
index 70e55328e..d95aa6da4 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb
@@ -133,6 +133,93 @@ describe "should change{ block }.by(expected)" do
end
end
+describe "should change(actual, message).by_at_least(expected)" do
+ before(:each) do
+ @instance = SomethingExpected.new
+ @instance.some_value = 5
+ end
+
+ it "should pass when attribute is changed by greater than the expected amount" do
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(1)
+ end
+
+ it "should pass when attribute is changed by the expected amount" do
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(2)
+ end
+
+ it "should fail when the attribute is changed by less than the expected amount" do
+ lambda do
+ lambda { @instance.some_value += 1 }.should change(@instance, :some_value).by_at_least(2)
+ end.should fail_with("some_value should have been changed by at least 2, but was changed by 1")
+ end
+
+end
+
+describe "should change{ block }.by_at_least(expected)" do
+ before(:each) do
+ @instance = SomethingExpected.new
+ @instance.some_value = 5
+ end
+
+ it "should pass when attribute is changed by greater than expected amount" do
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(1)
+ end
+
+ it "should pass when attribute is changed by the expected amount" do
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(2)
+ end
+
+ it "should fail when the attribute is changed by less than the unexpected amount" do
+ lambda do
+ lambda { @instance.some_value += 1 }.should change{@instance.some_value}.by_at_least(2)
+ end.should fail_with("result should have been changed by at least 2, but was changed by 1")
+ end
+end
+
+
+describe "should change(actual, message).by_at_most(expected)" do
+ before(:each) do
+ @instance = SomethingExpected.new
+ @instance.some_value = 5
+ end
+
+ it "should pass when attribute is changed by less than the expected amount" do
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(3)
+ end
+
+ it "should pass when attribute is changed by the expected amount" do
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(2)
+ end
+
+ it "should fail when the attribute is changed by greater than the expected amount" do
+ lambda do
+ lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(1)
+ end.should fail_with("some_value should have been changed by at most 1, but was changed by 2")
+ end
+
+end
+
+describe "should change{ block }.by_at_most(expected)" do
+ before(:each) do
+ @instance = SomethingExpected.new
+ @instance.some_value = 5
+ end
+
+ it "should pass when attribute is changed by less than expected amount" do
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(3)
+ end
+
+ it "should pass when attribute is changed by the expected amount" do
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(2)
+ end
+
+ it "should fail when the attribute is changed by greater than the unexpected amount" do
+ lambda do
+ lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(1)
+ end.should fail_with("result should have been changed by at most 1, but was changed by 2")
+ end
+end
+
describe "should change(actual, message).from(old)" do
before(:each) do
@instance = SomethingExpected.new
diff --git a/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb
index d1246ad04..c494e2165 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb
@@ -1,148 +1,146 @@
require File.dirname(__FILE__) + '/../../spec_helper.rb'
describe "Matchers should be able to generate their own descriptions" do
- before(:each) do
- @desc = nil
- @callback = lambda { |desc| @desc = desc }
- Spec::Matchers.description_generated(@callback)
+ after(:each) do
+ Spec::Matchers.clear_generated_description
end
-
+
it "should == expected" do
"this".should == "this"
- @desc.should == "should == \"this\""
+ Spec::Matchers.generated_description.should == "should == \"this\""
end
it "should not == expected" do
"this".should_not == "that"
- @desc.should == "should not == \"that\""
+ Spec::Matchers.generated_description.should == "should not == \"that\""
end
it "should be empty (arbitrary predicate)" do
[].should be_empty
- @desc.should == "should be empty"
+ Spec::Matchers.generated_description.should == "should be empty"
end
it "should not be empty (arbitrary predicate)" do
[1].should_not be_empty
- @desc.should == "should not be empty"
+ Spec::Matchers.generated_description.should == "should not be empty"
end
it "should be true" do
true.should be_true
- @desc.should == "should be true"
+ Spec::Matchers.generated_description.should == "should be true"
end
it "should be false" do
false.should be_false
- @desc.should == "should be false"
+ Spec::Matchers.generated_description.should == "should be false"
end
it "should be nil" do
nil.should be_nil
- @desc.should == "should be nil"
+ Spec::Matchers.generated_description.should == "should be nil"
end
it "should be > n" do
5.should be > 3
- @desc.should == "should be > 3"
+ Spec::Matchers.generated_description.should == "should be > 3"
end
it "should be predicate arg1, arg2 and arg3" do
5.0.should be_between(0,10)
- @desc.should == "should be between 0 and 10"
+ Spec::Matchers.generated_description.should == "should be between 0 and 10"
end
it "should be_few_words predicate should be transformed to 'be few words'" do
5.should be_kind_of(Fixnum)
- @desc.should == "should be kind of Fixnum"
+ Spec::Matchers.generated_description.should == "should be kind of Fixnum"
end
it "should preserve a proper prefix for be predicate" do
5.should be_a_kind_of(Fixnum)
- @desc.should == "should be a kind of Fixnum"
+ Spec::Matchers.generated_description.should == "should be a kind of Fixnum"
5.should be_an_instance_of(Fixnum)
- @desc.should == "should be an instance of Fixnum"
+ Spec::Matchers.generated_description.should == "should be an instance of Fixnum"
end
it "should equal" do
expected = "expected"
expected.should equal(expected)
- @desc.should == "should equal \"expected\""
+ Spec::Matchers.generated_description.should == "should equal \"expected\""
end
it "should_not equal" do
5.should_not equal(37)
- @desc.should == "should not equal 37"
+ Spec::Matchers.generated_description.should == "should not equal 37"
end
it "should eql" do
"string".should eql("string")
- @desc.should == "should eql \"string\""
+ Spec::Matchers.generated_description.should == "should eql \"string\""
end
it "should not eql" do
"a".should_not eql(:a)
- @desc.should == "should not eql :a"
+ Spec::Matchers.generated_description.should == "should not eql :a"
end
it "should have_key" do
{:a => "a"}.should have_key(:a)
- @desc.should == "should have key :a"
+ Spec::Matchers.generated_description.should == "should have key :a"
end
it "should have n items" do
team.should have(3).players
- @desc.should == "should have 3 players"
+ Spec::Matchers.generated_description.should == "should have 3 players"
end
it "should have at least n items" do
team.should have_at_least(2).players
- @desc.should == "should have at least 2 players"
+ Spec::Matchers.generated_description.should == "should have at least 2 players"
end
it "should have at most n items" do
team.should have_at_most(4).players
- @desc.should == "should have at most 4 players"
+ Spec::Matchers.generated_description.should == "should have at most 4 players"
end
it "should include" do
[1,2,3].should include(3)
- @desc.should == "should include 3"
+ Spec::Matchers.generated_description.should == "should include 3"
end
it "should match" do
"this string".should match(/this string/)
- @desc.should == "should match /this string/"
+ Spec::Matchers.generated_description.should == "should match /this string/"
end
it "should raise_error" do
lambda { raise }.should raise_error
- @desc.should == "should raise Exception"
+ Spec::Matchers.generated_description.should == "should raise Exception"
end
it "should raise_error with type" do
lambda { raise }.should raise_error(RuntimeError)
- @desc.should == "should raise RuntimeError"
+ Spec::Matchers.generated_description.should == "should raise RuntimeError"
end
it "should raise_error with type and message" do
lambda { raise "there was an error" }.should raise_error(RuntimeError, "there was an error")
- @desc.should == "should raise RuntimeError with \"there was an error\""
+ Spec::Matchers.generated_description.should == "should raise RuntimeError with \"there was an error\""
end
it "should respond_to" do
[].should respond_to(:insert)
- @desc.should == "should respond to #insert"
+ Spec::Matchers.generated_description.should == "should respond to #insert"
end
it "should throw symbol" do
lambda { throw :what_a_mess }.should throw_symbol
- @desc.should == "should throw a Symbol"
+ Spec::Matchers.generated_description.should == "should throw a Symbol"
end
it "should throw symbol (with named symbol)" do
lambda { throw :what_a_mess }.should throw_symbol(:what_a_mess)
- @desc.should == "should throw :what_a_mess"
+ Spec::Matchers.generated_description.should == "should throw :what_a_mess"
end
def team
@@ -152,8 +150,4 @@ describe "Matchers should be able to generate their own descriptions" do
end
end.new
end
-
- after(:each) do
- Spec::Matchers.unregister_description_generated(@callback)
- end
end
diff --git a/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb
index fcbdd9556..0a509726e 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb
@@ -1,8 +1,5 @@
require File.dirname(__FILE__) + '/../../spec_helper.rb'
-# NOTE - this was initially handled by an explicit matcher, but is now
-# handled by a default set of predicate_matchers.
-
class Substance
def initialize exists, description
@exists = exists
@@ -16,33 +13,45 @@ class Substance
end
end
-describe "should exist" do
- before(:each) do
- @real = Substance.new true, 'something real'
- @imaginary = Substance.new false, 'something imaginary'
+class SubstanceTester
+ include Spec::Matchers
+ def initialize substance
+ @substance = substance
end
-
- it "should pass if target exists" do
- @real.should exist
- end
-
- it "should fail if target does not exist" do
- lambda { @imaginary.should exist }.
- should fail
+ def should_exist
+ @substance.should exist
end
end
-describe "should_not exist" do
+describe "should exist," do
+
before(:each) do
@real = Substance.new true, 'something real'
@imaginary = Substance.new false, 'something imaginary'
end
- it "should pass if target doesn't exist" do
- @imaginary.should_not exist
+
+ describe "within an example group" do
+
+ it "should pass if target exists" do
+ @real.should exist
+ end
+
+ it "should fail if target does not exist" do
+ lambda { @imaginary.should exist }.should fail
+ end
+
+ it "should pass if target doesn't exist" do
+ lambda { @real.should_not exist }.should fail
+ end
end
- it "should fail if target does exist" do
- lambda { @real.should_not exist }.
- should fail
+
+ describe "outside of an example group" do
+
+ it "should pass if target exists" do
+ real_tester = SubstanceTester.new @real
+ real_tester.should_exist
+ end
+
end
+
end
-
diff --git a/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb
index 9f04c6bed..ad4fe6f85 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb
@@ -33,7 +33,7 @@ module ExampleExpectations
end
class PositiveOnlyMatcher < ArbitraryMatcher
- undef negative_failure_message
+ undef negative_failure_message rescue nil
end
def arbitrary_matcher(*args, &block)
@@ -55,6 +55,47 @@ module Spec
matcher.should_receive(:matches?).with(actual).and_return(true)
ExpectationMatcherHandler.handle_matcher(actual, matcher)
end
+
+ it "should explain when the matcher parameter is not a matcher" do
+ begin
+ nonmatcher = mock("nonmatcher")
+ actual = Object.new
+ ExpectationMatcherHandler.handle_matcher(actual, nonmatcher)
+ rescue Spec::Expectations::InvalidMatcherError => e
+ end
+
+ e.message.should =~ /^Expected a matcher, got /
+ end
+ end
+
+ describe NegativeExpectationMatcherHandler, ".handle_matcher" do
+ it "should explain when matcher does not support should_not" do
+ matcher = mock("matcher")
+ matcher.stub!(:matches?)
+ actual = Object.new
+ lambda {
+ NegativeExpectationMatcherHandler.handle_matcher(actual, matcher)
+ }.should fail_with(/Matcher does not support should_not.\n/)
+ end
+
+ it "should ask the matcher if it matches" do
+ matcher = mock("matcher")
+ actual = Object.new
+ matcher.stub!(:negative_failure_message)
+ matcher.should_receive(:matches?).with(actual).and_return(false)
+ NegativeExpectationMatcherHandler.handle_matcher(actual, matcher)
+ end
+
+ it "should explain when the matcher parameter is not a matcher" do
+ begin
+ nonmatcher = mock("nonmatcher")
+ actual = Object.new
+ NegativeExpectationMatcherHandler.handle_matcher(actual, nonmatcher)
+ rescue Spec::Expectations::InvalidMatcherError => e
+ end
+
+ e.message.should =~ /^Expected a matcher, got /
+ end
end
describe ExpectationMatcherHandler do
diff --git a/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb
index 84a75d98e..27083c294 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb
@@ -47,6 +47,25 @@ describe "should have(n).items" do
end
end
+describe 'should have(1).item when Inflector is defined' do
+ include HaveSpecHelper
+
+ before do
+ unless Object.const_defined?(:Inflector)
+ class Inflector
+ def self.pluralize(string)
+ string.to_s + 's'
+ end
+ end
+ end
+ end
+
+ it 'should pluralize the collection name' do
+ owner = create_collection_owner_with(1)
+ owner.should have(1).item
+ end
+end
+
describe "should have(n).items where result responds to items but returns something other than a collection" do
it "should provide a meaningful error" do
owner = Class.new do
@@ -250,7 +269,7 @@ describe "have(n).items where target IS a collection" do
[1,2,3].should have(3).items
end
- it "should reference the number of items IN the collection" do
+ it "should fail when the number of items IN the collection is not as expected" do
lambda { [1,2,3].should have(7).items }.should fail_with("expected 7 items, got 3")
end
end
diff --git a/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb
index b8aa06b07..f69f7efad 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb
@@ -5,12 +5,12 @@ describe "should match(expected)" do
"string".should match(/tri/)
end
- it "should fail when target (String) matches expected (Regexp)" do
+ it "should fail when target (String) does not match expected (Regexp)" do
lambda {
"string".should match(/rings/)
}.should fail
end
-
+
it "should provide message, expected and actual on failure" do
matcher = match(/rings/)
matcher.matches?("string")
@@ -19,7 +19,7 @@ describe "should match(expected)" do
end
describe "should_not match(expected)" do
- it "should pass when target (String) matches expected (Regexp)" do
+ it "should pass when target (String) matches does not match (Regexp)" do
"string".should_not match(/rings/)
end
diff --git a/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb
index bde48686a..1292918c7 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb
@@ -19,6 +19,6 @@ describe "The boolean() mock argument constraint matcher" do
end
describe "The an_instance_of() mock argument constraint matcher" do
- # NOTE - this is implemented as a predicate_matcher - see behaviour.rb
+ # NOTE - this is implemented as a predicate_matcher - see example_group_methods.rb
specify { an_instance_of(String).should == "string" }
end
diff --git a/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb
index eaadc8fc8..1985df0d9 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb
@@ -48,7 +48,7 @@ describe "should ===" do
Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ===)], "orange", "apple")
subject.should === "orange"
end
-
+
end
describe "should_not ===" do
diff --git a/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb b/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb
index 1548ec6f0..74595659a 100644
--- a/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb
@@ -27,7 +27,7 @@ module Spec
it "should match if correct Symbol is thrown" do
@matcher.matches?(lambda{ throw :sym }).should be_true
end
- it "should not match no Symbol is thrown" do
+ it "should not match if no Symbol is thrown" do
@matcher.matches?(lambda{ }).should be_false
end
it "should not match if correct Symbol is thrown" do
@@ -46,6 +46,9 @@ module Spec
@matcher.matches?(lambda{ throw :sym })
@matcher.negative_failure_message.should == "expected :sym not to be thrown"
end
+ it "should only match NameErrors raised by uncaught throws" do
+ @matcher.matches?(lambda{ sym }).should be_false
+ end
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb
index 785546dca..7edc3c076 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb
@@ -12,7 +12,7 @@ describe "An object where respond_to? is true and does not have method" do
# The fix was to keep track of whether :respond_to? had been proxied and, if
# so, call the munged copy of :respond_to? on the object.
- it "should not raise an exception" do
+ it "should not raise an exception for Object" do
obj = Object.new
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
obj.should_receive(:foobar).and_return(:baz)
@@ -20,7 +20,7 @@ describe "An object where respond_to? is true and does not have method" do
obj.foobar.should == :baz
end
- it "should not raise an exception" do
+ it "should not raise an exception for mock" do
obj = mock("obj")
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
obj.should_receive(:foobar).and_return(:baz)
diff --git a/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb
index f3c396283..db6dcea34 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb
@@ -81,6 +81,7 @@ module Spec
before(:each) do
@mock = mock("test mock")
@reporter = Mock.new("reporter", :null_object => true)
+ Kernel.stub!(:warn)
end
after(:each) do
diff --git a/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb
index bfe36ed57..85a71e327 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb
@@ -2,107 +2,96 @@ require File.dirname(__FILE__) + '/../../spec_helper'
module Spec
module Mocks
- describe "a Mock expectation" do
+ describe Mock do
- before do
+ before(:each) do
@mock = mock("test mock")
end
- after do
+ after(:each) do
@mock.rspec_reset
end
it "should report line number of expectation of unreceived message" do
- @mock.should_receive(:wont_happen).with("x", 3)
- #NOTE - this test is quite ticklish because it specifies that
- #the above statement appears on line 12 of this file.
-
+ expected_error_line = __LINE__; @mock.should_receive(:wont_happen).with("x", 3)
begin
@mock.rspec_verify
violated
rescue MockExpectationError => e
- e.backtrace[0].should match(/mock_spec\.rb:16/)
+ # NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line
+ e.backtrace[0].should match(/#{File.basename(__FILE__)}:#{expected_error_line}/)
end
-
end
it "should pass when not receiving message specified as not to be received" do
@mock.should_not_receive(:not_expected)
@mock.rspec_verify
end
-
+
it "should pass when receiving message specified as not to be received with different args" do
@mock.should_not_receive(:message).with("unwanted text")
@mock.should_receive(:message).with("other text")
@mock.message "other text"
@mock.rspec_verify
end
-
+
it "should fail when receiving message specified as not to be received" do
@mock.should_not_receive(:not_expected)
@mock.not_expected
- begin
+ lambda {
@mock.rspec_verify
violated
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :not_expected with (any args) 0 times, but received it once"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :not_expected with (any args) 0 times, but received it once")
end
-
+
it "should fail when receiving message specified as not to be received with args" do
@mock.should_not_receive(:not_expected).with("unexpected text")
@mock.not_expected("unexpected text")
- begin
+ lambda {
@mock.rspec_verify
violated
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :not_expected with (\"unexpected text\") 0 times, but received it once"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :not_expected with (\"unexpected text\") 0 times, but received it once")
end
-
+
it "should pass when receiving message specified as not to be received with wrong args" do
@mock.should_not_receive(:not_expected).with("unexpected text")
@mock.not_expected "really unexpected text"
@mock.rspec_verify
end
-
+
it "should allow block to calculate return values" do
@mock.should_receive(:something).with("a","b","c").and_return { |a,b,c| c+b+a }
@mock.something("a","b","c").should == "cba"
@mock.rspec_verify
end
-
+
it "should allow parameter as return value" do
@mock.should_receive(:something).with("a","b","c").and_return("booh")
@mock.something("a","b","c").should == "booh"
@mock.rspec_verify
end
-
+
it "should return nil if no return value set" do
@mock.should_receive(:something).with("a","b","c")
@mock.something("a","b","c").should be_nil
@mock.rspec_verify
end
-
+
it "should raise exception if args dont match when method called" do
@mock.should_receive(:something).with("a","b","c").and_return("booh")
- begin
+ lambda {
@mock.something("a","d","c")
violated
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :something with (\"a\", \"b\", \"c\") but received it with (\"a\", \"d\", \"c\")"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :something with (\"a\", \"b\", \"c\") but received it with (\"a\", \"d\", \"c\")")
end
-
+
it "should fail if unexpected method called" do
- begin
+ lambda {
@mock.something("a","b","c")
violated
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' received unexpected message :something with (\"a\", \"b\", \"c\")"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' received unexpected message :something with (\"a\", \"b\", \"c\")")
end
-
+
it "should use block for expectation if provided" do
@mock.should_receive(:something) do | a, b |
a.should == "a"
@@ -112,71 +101,74 @@ module Spec
@mock.something("a", "b").should == "booh"
@mock.rspec_verify
end
-
+
it "should fail if expectation block fails" do
@mock.should_receive(:something) {| bool | bool.should be_true}
- begin
+ lambda {
@mock.something false
- rescue MockExpectationError => e
- e.message.should match(/Mock 'test mock' received :something but passed block failed with: expected true, got false/)
- end
+ }.should raise_error(MockExpectationError, /Mock 'test mock' received :something but passed block failed with: expected true, got false/)
end
-
- it "should fail when method defined as never is received" do
+
+ it "should fail right away when method defined as never is received" do
+ pending "Used to pass (false positive). Which one is wrong, the spec or the actual behavior?"
+
@mock.should_receive(:not_expected).never
- begin
+ lambda {
@mock.not_expected
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :not_expected 0 times, but received it 1 times"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :not_expected 0 times, but received it 1 times")
end
+ it "should eventually fail when method defined as never is received" do
+ @mock.should_receive(:not_expected).never
+ @mock.not_expected
+
+ lambda {
+ @mock.rspec_verify
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :not_expected with (any args) 0 times, but received it once")
+ end
+
it "should raise when told to" do
@mock.should_receive(:something).and_raise(RuntimeError)
lambda do
@mock.something
end.should raise_error(RuntimeError)
end
-
+
it "should raise passed an Exception instance" do
error = RuntimeError.new("error message")
@mock.should_receive(:something).and_raise(error)
- begin
+ lambda {
@mock.something
- rescue RuntimeError => e
- e.message.should eql("error message")
- end
+ }.should raise_error(RuntimeError, "error message")
end
-
+
it "should raise RuntimeError with passed message" do
@mock.should_receive(:something).and_raise("error message")
- begin
+ lambda {
@mock.something
- rescue RuntimeError => e
- e.message.should eql("error message")
- end
+ }.should raise_error(RuntimeError, "error message")
end
-
+
it "should not raise when told to if args dont match" do
@mock.should_receive(:something).with(2).and_raise(RuntimeError)
- lambda do
+ lambda {
@mock.something 1
- end.should raise_error(MockExpectationError)
+ }.should raise_error(MockExpectationError)
end
-
+
it "should throw when told to" do
@mock.should_receive(:something).and_throw(:blech)
- lambda do
+ lambda {
@mock.something
- end.should throw_symbol(:blech)
+ }.should throw_symbol(:blech)
end
-
+
it "should raise when explicit return and block constrained" do
- lambda do
+ lambda {
@mock.should_receive(:fruit) do |colour|
:strawberry
end.and_return :apple
- end.should raise_error(AmbiguousReturnError)
+ }.should raise_error(AmbiguousReturnError)
end
it "should ignore args on any args" do
@@ -190,22 +182,18 @@ module Spec
it "should fail on no args if any args received" do
@mock.should_receive(:something).with(no_args())
- begin
+ lambda {
@mock.something 1
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :something with (no args) but received it with (1)"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :something with (no args) but received it with (1)")
end
-
+
it "should fail when args are expected but none are received" do
@mock.should_receive(:something).with(1)
- begin
+ lambda {
@mock.something
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' expected :something with (1) but received it with (no args)"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' expected :something with (1) but received it with (no args)")
end
-
+
it "should yield 0 args to blocks that take a variable number of arguments" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield
a = nil
@@ -213,7 +201,17 @@ module Spec
a.should == []
@mock.rspec_verify
end
-
+
+ it "should yield 0 args multiple times to blocks that take a variable number of arguments" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield.
+ and_yield
+ a = nil
+ b = []
+ @mock.yield_back {|*a| b << a}
+ b.should == [ [], [] ]
+ @mock.rspec_verify
+ end
+
it "should yield one arg to blocks that take a variable number of arguments" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield(99)
a = nil
@@ -221,7 +219,18 @@ module Spec
a.should == [99]
@mock.rspec_verify
end
-
+
+ it "should yield one arg 3 times consecutively to blocks that take a variable number of arguments" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99).
+ and_yield(43).
+ and_yield("something fruity")
+ a = nil
+ b = []
+ @mock.yield_back {|*a| b << a}
+ b.should == [[99], [43], ["something fruity"]]
+ @mock.rspec_verify
+ end
+
it "should yield many args to blocks that take a variable number of arguments" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield(99, 27, "go")
a = nil
@@ -230,6 +239,17 @@ module Spec
@mock.rspec_verify
end
+ it "should yield many args 3 times consecutively to blocks that take a variable number of arguments" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99, :green, "go").
+ and_yield("wait", :amber).
+ and_yield("stop", 12, :red)
+ a = nil
+ b = []
+ @mock.yield_back {|*a| b << a}
+ b.should == [[99, :green, "go"], ["wait", :amber], ["stop", 12, :red]]
+ @mock.rspec_verify
+ end
+
it "should yield single value" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield(99)
a = nil
@@ -237,7 +257,18 @@ module Spec
a.should == 99
@mock.rspec_verify
end
-
+
+ it "should yield single value 3 times consecutively" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99).
+ and_yield(43).
+ and_yield("something fruity")
+ a = nil
+ b = []
+ @mock.yield_back {|a| b << a}
+ b.should == [99, 43, "something fruity"]
+ @mock.rspec_verify
+ end
+
it "should yield two values" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup')
a, b = nil
@@ -246,23 +277,41 @@ module Spec
b.should == 'zup'
@mock.rspec_verify
end
-
+
+ it "should yield two values 3 times consecutively" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield('wha', 'zup').
+ and_yield('not', 'down').
+ and_yield(14, 65)
+ a, b = nil
+ c = []
+ @mock.yield_back {|a,b| c << [a, b]}
+ c.should == [['wha', 'zup'], ['not', 'down'], [14, 65]]
+ @mock.rspec_verify
+ end
+
it "should fail when calling yielding method with wrong arity" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup')
- begin
+ lambda {
@mock.yield_back {|a|}
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' yielded |\"wha\", \"zup\"| to block with arity of 1"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' yielded |\"wha\", \"zup\"| to block with arity of 1")
end
-
+
+ it "should fail when calling yielding method consecutively with wrong arity" do
+ @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield('wha', 'zup').
+ and_yield('down').
+ and_yield(14, 65)
+ lambda {
+ a, b = nil
+ c = []
+ @mock.yield_back {|a,b| c << [a, b]}
+ }.should raise_error(MockExpectationError, "Mock 'test mock' yielded |\"down\"| to block with arity of 2")
+ end
+
it "should fail when calling yielding method without block" do
@mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup')
- begin
+ lambda {
@mock.yield_back
- rescue MockExpectationError => e
- e.message.should == "Mock 'test mock' asked to yield |\"wha\", \"zup\"| but no block was passed"
- end
+ }.should raise_error(MockExpectationError, "Mock 'test mock' asked to yield |[\"wha\", \"zup\"]| but no block was passed")
end
it "should be able to mock send" do
@@ -274,26 +323,23 @@ module Spec
it "should be able to raise from method calling yielding mock" do
@mock.should_receive(:yield_me).and_yield 44
- lambda do
+ lambda {
@mock.yield_me do |x|
raise "Bang"
end
- end.should raise_error(StandardError)
-
+ }.should raise_error(StandardError, "Bang")
+
@mock.rspec_verify
end
- # TODO - this is failing, but not if you run the file w/ --reverse - weird!!!!!!
- # specify "should clear expectations after verify" do
- # @mock.should_receive(:foobar)
- # @mock.foobar
- # @mock.rspec_verify
- # begin
- # @mock.foobar
- # rescue MockExpectationError => e
- # e.message.should == "Mock 'test mock' received unexpected message :foobar with (no args)"
- # end
- # end
+ it "should clear expectations after verify" do
+ @mock.should_receive(:foobar)
+ @mock.foobar
+ @mock.rspec_verify
+ lambda {
+ @mock.foobar
+ }.should raise_error(MockExpectationError, "Mock 'test mock' received unexpected message :foobar with (no args)")
+ end
it "should restore objects to their original state on rspec_reset" do
mock = mock("this is a mock")
@@ -302,6 +348,58 @@ module Spec
mock.rspec_verify #should throw if reset didn't work
end
+ it "should work even after method_missing starts raising NameErrors instead of NoMethodErrors" do
+ # Object#method_missing throws either NameErrors or NoMethodErrors.
+ #
+ # On a fresh ruby program Object#method_missing:
+ # * raises a NoMethodError when called directly
+ # * raises a NameError when called indirectly
+ #
+ # Once Object#method_missing has been called at least once (on any object)
+ # it starts behaving differently:
+ # * raises a NameError when called directly
+ # * raises a NameError when called indirectly
+ #
+ # There was a bug in Mock#method_missing that relied on the fact
+ # that calling Object#method_missing directly raises a NoMethodError.
+ # This example tests that the bug doesn't exist anymore.
+
+
+ # Ensures that method_missing always raises NameErrors.
+ a_method_that_doesnt_exist rescue
+
+
+ @mock.should_receive(:foobar)
+ @mock.foobar
+ @mock.rspec_verify
+
+ lambda { @mock.foobar }.should_not raise_error(NameError)
+ lambda { @mock.foobar }.should raise_error(MockExpectationError)
+ end
+
+ it "should temporarily replace a method stub on a mock" do
+ @mock.stub!(:msg).and_return(:stub_value)
+ @mock.should_receive(:msg).with(:arg).and_return(:mock_value)
+ @mock.msg(:arg).should equal(:mock_value)
+ @mock.msg.should equal(:stub_value)
+ @mock.msg.should equal(:stub_value)
+ @mock.rspec_verify
+ end
+
+ it "should temporarily replace a method stub on a non-mock" do
+ non_mock = Object.new
+ non_mock.stub!(:msg).and_return(:stub_value)
+ non_mock.should_receive(:msg).with(:arg).and_return(:mock_value)
+ non_mock.msg(:arg).should equal(:mock_value)
+ non_mock.msg.should equal(:stub_value)
+ non_mock.msg.should equal(:stub_value)
+ non_mock.rspec_verify
+ end
+
+ it "should assign stub return values" do
+ mock = Mock.new('name', :message => :response)
+ mock.message.should == :response
+ end
end
describe "a mock message receiving a block" do
diff --git a/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb
index 6e082abba..3e26b73f4 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb
@@ -67,7 +67,7 @@ module Spec
describe "a Mock expectation with multiple return values specifying at_least less than the number of values" do
before(:each) do
@mock = Mock.new("mock")
- @mock.should_receive(:message).at_least(:twice).with(:no_args).and_return(11, 22)
+ @mock.should_receive(:message).at_least(:twice).with(no_args).and_return(11, 22)
end
it "should use last return value for subsequent calls" do
diff --git a/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb
index a1ec9ddf4..0bfab26d7 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb
@@ -3,30 +3,42 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
module Spec
module Mocks
describe "calling :should_receive with an options hash" do
+ it_should_behave_like "sandboxed rspec_options"
+ attr_reader :reporter, :example_group
+ before do
+ @reporter = ::Spec::Runner::Reporter.new(options)
+ @example_group = Class.new(::Spec::Example::ExampleGroup) do
+ plugin_mock_framework
+ describe("Some Examples")
+ end
+ reporter.add_example_group example_group
+ end
+
it "should report the file and line submitted with :expected_from" do
- spec = Spec::DSL::Example.new "spec" do
+ example_definition = example_group.it "spec" do
mock = Spec::Mocks::Mock.new("a mock")
mock.should_receive(:message, :expected_from => "/path/to/blah.ext:37")
mock.rspec_verify
end
- reporter = mock("reporter", :null_object => true)
+ example = example_group.new(example_definition)
+
reporter.should_receive(:example_finished) do |spec, error|
error.backtrace.detect {|line| line =~ /\/path\/to\/blah.ext:37/}.should_not be_nil
end
- spec.run(reporter, nil, nil, nil, Object.new)
+ example.execute(options, {})
end
it "should use the message supplied with :message" do
- spec = Spec::DSL::Example.new "spec" do
+ example_definition = @example_group.it "spec" do
mock = Spec::Mocks::Mock.new("a mock")
mock.should_receive(:message, :message => "recebi nada")
mock.rspec_verify
end
- reporter = mock("reporter", :null_object => true)
- reporter.should_receive(:example_finished) do |spec, error|
+ example = @example_group.new(example_definition)
+ @reporter.should_receive(:example_finished) do |spec, error|
error.message.should == "recebi nada"
end
- spec.run(reporter, nil, nil, nil, Object.new)
+ example.execute(@options, {})
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb
index c45b9054c..d7e5944c4 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb
@@ -6,14 +6,14 @@ module Spec
before(:each) do
@object = Object.new
end
-
+
it "should name the class in the failure message" do
@object.should_receive(:foo)
lambda do
@object.rspec_verify
end.should raise_error(Spec::Mocks::MockExpectationError, /Object/)
end
-
+
it "should not conflict with @options in the object" do
@object.instance_eval { @options = Object.new }
@object.should_receive(:blah)
@@ -27,39 +27,39 @@ module Spec
@object.rspec_verify
end.should raise_error(Spec::Mocks::MockExpectationError)
end
-
+
it "should_not_receive should return a negative message expectation" do
@object.should_not_receive(:foobar).should be_kind_of(NegativeMessageExpectation)
end
-
+
it "should_receive should mock out the method" do
@object.should_receive(:foobar).with(:test_param).and_return(1)
@object.foobar(:test_param).should equal(1)
end
-
+
it "should_receive should handle a hash" do
@object.should_receive(:foobar).with(:key => "value").and_return(1)
@object.foobar(:key => "value").should equal(1)
end
-
+
it "should_receive should handle an inner hash" do
hash = {:a => {:key => "value"}}
@object.should_receive(:foobar).with(:key => "value").and_return(1)
@object.foobar(hash[:a]).should equal(1)
end
-
+
it "should_receive should return a message expectation" do
@object.should_receive(:foobar).should be_kind_of(MessageExpectation)
@object.foobar
end
-
+
it "should_receive should verify method was called" do
@object.should_receive(:foobar).with(:test_param).and_return(1)
lambda do
@object.rspec_verify
end.should raise_error(Spec::Mocks::MockExpectationError)
end
-
+
it "should_receive should also take a String argument" do
@object.should_receive('foobar')
@object.foobar
@@ -80,5 +80,27 @@ module Spec
end.should raise_error(Spec::Mocks::MockExpectationError, /NilClass.*expected :foobar with/)
end
end
+
+ describe "Partially mocking an object that defines ==, after another mock has been defined" do
+ before(:each) do
+ stub("existing mock", :foo => :foo)
+ end
+
+ class PartiallyMockedEquals
+ attr_reader :val
+ def initialize(val)
+ @val = val
+ end
+
+ def ==(other)
+ @val == other.val
+ end
+ end
+
+ it "should not raise an error when stubbing the object" do
+ o = PartiallyMockedEquals.new :foo
+ lambda { o.stub!(:bar) }.should_not raise_error(NoMethodError)
+ end
+ end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb
index 2d631bde5..6de0a58f4 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb
@@ -5,6 +5,7 @@ module Spec
describe "mock argument constraints", :shared => true do
before(:each) do
@mock = Mock.new("test mock")
+ Kernel.stub!(:warn)
end
after(:each) do
@@ -49,6 +50,11 @@ module Spec
@mock.should_receive(:random_call).with(:any_args)
@mock.random_call("a string")
end
+
+ it "should match no args against no_args" do
+ @mock.should_receive(:random_call).with(:no_args)
+ @mock.random_call
+ end
end
describe Methods, "handling argument constraints" do
diff --git a/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb b/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb
index dc6fff89b..d6e23d71e 100644
--- a/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb
@@ -13,112 +13,74 @@ module Spec
:original_value
end
end
- @obj = @class.new
+ @instance = @class.new
end
- it "should allow for a mock expectation to temporarily replace a method stub on a mock" do
- mock = Spec::Mocks::Mock.new("a mock")
- mock.stub!(:msg).and_return(:stub_value)
- mock.should_receive(:msg).with(:arg).and_return(:mock_value)
- mock.msg(:arg).should equal(:mock_value)
- mock.msg.should equal(:stub_value)
- mock.msg.should equal(:stub_value)
- mock.rspec_verify
- end
-
- it "should allow for a mock expectation to temporarily replace a method stub on a non-mock" do
- @obj.stub!(:msg).and_return(:stub_value)
- @obj.should_receive(:msg).with(:arg).and_return(:mock_value)
- @obj.msg(:arg).should equal(:mock_value)
- @obj.msg.should equal(:stub_value)
- @obj.msg.should equal(:stub_value)
- @obj.rspec_verify
+ it "should return expected value when expected message is received" do
+ @instance.stub!(:msg).and_return(:return_value)
+ @instance.msg.should equal(:return_value)
+ @instance.rspec_verify
end
- it "should ignore when expected message is not received" do
- @obj.stub!(:msg)
+ it "should ignore when expected message is received" do
+ @instance.stub!(:msg)
+ @instance.msg
lambda do
- @obj.rspec_verify
+ @instance.rspec_verify
end.should_not raise_error
end
-
- it "should clear itself on rspec_verify" do
- @obj.stub!(:this_should_go).and_return(:blah)
- @obj.this_should_go.should == :blah
- @obj.rspec_verify
- lambda do
- @obj.this_should_go
- end.should raise_error
- end
-
- it "should ignore when expected message is received" do
- @obj.stub!(:msg)
- @obj.msg
- @obj.rspec_verify
- end
it "should ignore when message is received with args" do
- @obj.stub!(:msg)
- @obj.msg(:an_arg)
- @obj.rspec_verify
+ @instance.stub!(:msg)
+ @instance.msg(:an_arg)
+ lambda do
+ @instance.rspec_verify
+ end.should_not raise_error
end
- it "should not support with" do
+ it "should ignore when expected message is not received" do
+ @instance.stub!(:msg)
lambda do
- Spec::Mocks::Mock.new("a mock").stub!(:msg).with(:arg)
- end.should raise_error(NoMethodError)
+ @instance.rspec_verify
+ end.should_not raise_error
end
- it "should return expected value when expected message is received" do
- @obj.stub!(:msg).and_return(:return_value)
- @obj.msg.should equal(:return_value)
- @obj.rspec_verify
+ it "should clear itself when verified" do
+ @instance.stub!(:this_should_go).and_return(:blah)
+ @instance.this_should_go.should == :blah
+ @instance.rspec_verify
+ lambda do
+ @instance.this_should_go
+ end.should raise_error(NameError)
end
it "should return values in order to consecutive calls" do
return_values = ["1",2,Object.new]
- @obj.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2])
- @obj.msg.should == return_values[0]
- @obj.msg.should == return_values[1]
- @obj.msg.should == return_values[2]
+ @instance.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2])
+ @instance.msg.should == return_values[0]
+ @instance.msg.should == return_values[1]
+ @instance.msg.should == return_values[2]
end
it "should keep returning last value in consecutive calls" do
return_values = ["1",2,Object.new]
- @obj.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2])
- @obj.msg.should == return_values[0]
- @obj.msg.should == return_values[1]
- @obj.msg.should == return_values[2]
- @obj.msg.should == return_values[2]
- @obj.msg.should == return_values[2]
- end
-
- it "should revert to original instance method if existed" do
- @obj.existing_instance_method.should equal(:original_value)
- @obj.stub!(:existing_instance_method).and_return(:mock_value)
- @obj.existing_instance_method.should equal(:mock_value)
- @obj.rspec_verify
- # TODO JRUBY: This causes JRuby to fail with:
- # NativeException in 'Stub should revert to original instance method if existed'
- # java.lang.ArrayIndexOutOfBoundsException: 0
- # org.jruby.internal.runtime.methods.IterateCallable.internalCall(IterateCallable.java:63)
- # org.jruby.internal.runtime.methods.AbstractCallable.call(AbstractCallable.java:64)
- # org.jruby.runtime.ThreadContext.yieldInternal(ThreadContext.java:574)
- # org.jruby.runtime.ThreadContext.yieldSpecificBlock(ThreadContext.java:549)
- # org.jruby.runtime.Block.call(Block.java:158)
- # org.jruby.RubyProc.call(RubyProc.java:118)
- # org.jruby.internal.runtime.methods.ProcMethod.internalCall(ProcMethod.java:69)
- # org.jruby.internal.runtime.methods.AbstractMethod.call(AbstractMethod.java:58)
- # org.jruby.RubyObject.callMethod(RubyObject.java:379)
- # org.jruby.RubyObject.callMethod(RubyObject.java:331)
- # org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:472)
- # org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:462)
- # org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:390)
- # org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:133)
- @obj.existing_instance_method.should equal(:original_value)
+ @instance.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2])
+ @instance.msg.should == return_values[0]
+ @instance.msg.should == return_values[1]
+ @instance.msg.should == return_values[2]
+ @instance.msg.should == return_values[2]
+ @instance.msg.should == return_values[2]
+ end
+
+ it "should revert to original instance method if there is one" do
+ @instance.existing_instance_method.should equal(:original_value)
+ @instance.stub!(:existing_instance_method).and_return(:mock_value)
+ @instance.existing_instance_method.should equal(:mock_value)
+ @instance.rspec_verify
+ @instance.existing_instance_method.should equal(:original_value)
end
- it "should revert to original class method if existed" do
+ it "should revert to original class method if there is one" do
@class.existing_class_method.should equal(:original_value)
@class.stub!(:existing_class_method).and_return(:mock_value)
@class.existing_class_method.should equal(:mock_value)
@@ -126,34 +88,94 @@ module Spec
@class.existing_class_method.should equal(:original_value)
end
- it "should clear itself on rspec_verify" do
- @obj.stub!(:this_should_go).and_return(:blah)
- @obj.this_should_go.should == :blah
- @obj.rspec_verify
- lambda do
- @obj.this_should_go
- end.should raise_error
+ it "should yield a specified object" do
+ @instance.stub!(:method_that_yields).and_yield(:yielded_obj)
+ current_value = :value_before
+ @instance.method_that_yields {|val| current_value = val}
+ current_value.should == :yielded_obj
+ @instance.rspec_verify
+ end
+
+ it "should yield multiple times with multiple calls to and_yield" do
+ @instance.stub!(:method_that_yields_multiple_times).and_yield(:yielded_value).
+ and_yield(:another_value)
+ current_value = []
+ @instance.method_that_yields_multiple_times {|val| current_value << val}
+ current_value.should == [:yielded_value, :another_value]
+ @instance.rspec_verify
end
- it "should support yielding" do
- @obj.stub!(:method_that_yields).and_yield(:yielded_value)
- current_value = :value_before
- @obj.method_that_yields {|val| current_value = val}
- current_value.should == :yielded_value
- @obj.rspec_verify
+ it "should yield a specified object and return another specified object" do
+ yielded_obj = mock("my mock")
+ yielded_obj.should_receive(:foo).with(:bar)
+ @instance.stub!(:method_that_yields_and_returns).and_yield(yielded_obj).and_return(:baz)
+ @instance.method_that_yields_and_returns { |o| o.foo :bar }.should == :baz
end
it "should throw when told to" do
- @mock.stub!(:something).and_throw(:blech)
+ @mock.stub!(:something).and_throw(:up)
lambda do
@mock.something
- end.should throw_symbol(:blech)
+ end.should throw_symbol(:up)
end
- it "should support overriding w/ a new stub" do
+ it "should override a pre-existing stub" do
@stub.stub!(:existing_instance_method).and_return(:updated_stub_value)
@stub.existing_instance_method.should == :updated_stub_value
end
+
+ it "should limit " do
+ @stub.stub!(:foo).with("bar")
+ @stub.should_receive(:foo).with("baz")
+ @stub.foo("bar")
+ @stub.foo("baz")
+ end
+ end
+
+ describe "A method stub with args" do
+ before(:each) do
+ @stub = Object.new
+ @stub.stub!(:foo).with("bar")
+ end
+
+ it "should not complain if not called" do
+ end
+
+ it "should not complain if called with arg" do
+ @stub.foo("bar")
+ end
+
+ it "should complain if called with no arg" do
+ lambda do
+ @stub.foo
+ end.should raise_error
+ end
+
+ it "should complain if called with other arg" do
+ lambda do
+ @stub.foo("other")
+ end.should raise_error
+ end
+
+ it "should not complain if also mocked w/ different args" do
+ @stub.should_receive(:foo).with("baz")
+ @stub.foo("bar")
+ @stub.foo("baz")
+ end
+
+ it "should complain if also mocked w/ different args AND called w/ a 3rd set of args" do
+ @stub.should_receive(:foo).with("baz")
+ @stub.foo("bar")
+ @stub.foo("baz")
+ lambda do
+ @stub.foo("other")
+ end.should raise_error
+ end
+
+ it "should support options" do
+ @stub.stub!(:foo, :expected_from => "bar")
+ end
end
+
end
end
diff --git a/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb b/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb
index 6eac5e8cb..44bfd96a0 100644
--- a/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb
@@ -1,12 +1,14 @@
-require "#{File.dirname(__FILE__)}/../../spec_helper"
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/../../ruby_forker'
describe "The bin/spec script" do
+ include RubyForker
+
it "should have no warnings" do
+ pending "Hangs on JRuby" if PLATFORM =~ /java/
spec_path = "#{File.dirname(__FILE__)}/../../../bin/spec"
- output = nil
- IO.popen("ruby -w #{spec_path} --help 2>&1") do |io|
- output = io.read
- end
+
+ output = ruby "-w #{spec_path} --help 2>&1"
output.should_not =~ /warning/n
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb b/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb
deleted file mode 100644
index ff4890633..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb
+++ /dev/null
@@ -1,229 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module Runner
- describe BehaviourRunner, "#add_behaviour affecting passed in behaviour" do
- before do
- @err = StringIO.new('')
- @out = StringIO.new('')
- @options = Options.new(@err,@out)
- @runner = BehaviourRunner.new(@options)
- class << @runner
- attr_reader :behaviours
- end
-
- @behaviour = ::Spec::DSL::Behaviour.new("A Behaviour") do
- it "runs 1" do
- end
- it "runs 2" do
- end
- end
- end
-
- it "removes examples not selected from Behaviour when options.examples is set" do
- @options.examples << "A Behaviour runs 1"
-
- @behaviour.number_of_examples.should == 2
-
- @runner.add_behaviour @behaviour
- @behaviour.number_of_examples.should == 1
- @behaviour.examples.first.send(:description).should == "runs 1"
- end
-
- it "keeps all examples when options.examples is nil" do
- @options.examples = nil
- @behaviour.number_of_examples.should == 2
-
- @runner.add_behaviour @behaviour
- @behaviour.number_of_examples.should == 2
- @behaviour.examples.collect {|example| example.send(:description) }.should == ['runs 1', 'runs 2']
- end
-
- it "keeps all examples when options.examples is empty" do
- @options.examples = []
- @behaviour.number_of_examples.should == 2
-
- @runner.add_behaviour @behaviour
- @behaviour.number_of_examples.should == 2
- @behaviour.examples.collect {|example| example.send(:description) }.should == ['runs 1', 'runs 2']
- end
- end
-
- describe BehaviourRunner, "#add_behaviour affecting behaviours" do
- before do
- @err = StringIO.new('')
- @out = StringIO.new('')
- @options = Options.new(@err,@out)
- @runner = BehaviourRunner.new(@options)
- class << @runner
- attr_reader :behaviours
- end
- end
-
- it "adds behaviour when behaviour has examples and is not shared" do
- @behaviour = ::Spec::DSL::Behaviour.new("A Behaviour") do
- it "uses this behaviour" do
- end
- end
-
- @behaviour.should_not be_shared
- @behaviour.number_of_examples.should be > 0
- @runner.add_behaviour @behaviour
-
- @runner.behaviours.length.should == 1
- end
-
- it "does not add the behaviour when number_of_examples is 0" do
- @behaviour = ::Spec::DSL::Behaviour.new("A Behaviour") do
- end
- @behaviour.number_of_examples.should == 0
- @runner.add_behaviour @behaviour
-
- @runner.behaviours.should be_empty
- end
-
- it "does not add the behaviour when behaviour is shared" do
- @behaviour = ::Spec::DSL::Behaviour.new("A Behaviour", :shared => true) do
- it "does not use this behaviour" do
- end
- end
- @behaviour.should be_shared
- @runner.add_behaviour @behaviour
-
- @runner.behaviours.should be_empty
- end
- end
-
- describe BehaviourRunner do
- before do
- @err = StringIO.new('')
- @out = StringIO.new('')
- @options = Options.new(@err,@out)
- end
-
- it "should only run behaviours with at least one example" do
- desired_behaviour = mock("desired behaviour")
- desired_behaviour.should_receive(:run)
- desired_behaviour.should_receive(:retain_examples_matching!)
- desired_behaviour.should_receive(:number_of_examples).twice.and_return(1)
- desired_behaviour.should_receive(:shared?).and_return(false)
- desired_behaviour.should_receive(:set_sequence_numbers).with(0, anything)
-
- other_behaviour = mock("other behaviour")
- other_behaviour.should_receive(:run).never
- other_behaviour.should_receive(:retain_examples_matching!)
- other_behaviour.should_receive(:number_of_examples).and_return(0)
-
- reporter = mock("reporter")
- @options.reporter = reporter
- @options.examples = ["desired behaviour legal spec"]
-
- runner = Spec::Runner::BehaviourRunner.new(@options)
- runner.add_behaviour(desired_behaviour)
- runner.add_behaviour(other_behaviour)
- reporter.should_receive(:start)
- reporter.should_receive(:end)
- reporter.should_receive(:dump)
- runner.run([], false)
- end
-
- it "should dump even if Interrupt exception is occurred" do
- behaviour = Spec::DSL::Behaviour.new("behaviour") do
- it "no error" do
- end
-
- it "should interrupt" do
- raise Interrupt
- end
- end
-
- reporter = mock("reporter")
- reporter.should_receive(:start)
- reporter.should_receive(:add_behaviour)
- reporter.should_receive(:example_started).twice
- reporter.should_receive(:example_finished).twice
- reporter.should_receive(:rspec_verify)
- reporter.should_receive(:rspec_reset)
- reporter.should_receive(:end)
- reporter.should_receive(:dump)
-
- @options.reporter = reporter
- runner = Spec::Runner::BehaviourRunner.new(@options)
- runner.add_behaviour(behaviour)
- runner.run([], false)
- end
-
- it "should heckle when options have heckle_runner" do
- behaviour = mock("behaviour", :null_object => true)
- behaviour.should_receive(:number_of_examples).twice.and_return(1)
- behaviour.should_receive(:run).and_return(0)
- behaviour.should_receive(:shared?).and_return(false)
-
- reporter = mock("reporter")
- reporter.should_receive(:start).with(1)
- reporter.should_receive(:end)
- reporter.should_receive(:dump).and_return(0)
-
- heckle_runner = mock("heckle_runner")
- heckle_runner.should_receive(:heckle_with)
-
- @options.reporter = reporter
- @options.heckle_runner = heckle_runner
-
- runner = Spec::Runner::BehaviourRunner.new(@options)
- runner.add_behaviour(behaviour)
- runner.run([], false)
- end
-
- it "should run examples backwards if options.reverse is true" do
- @options.reverse = true
-
- reporter = mock("reporter")
- reporter.should_receive(:start).with(3)
- reporter.should_receive(:end)
- reporter.should_receive(:dump).and_return(0)
- @options.reporter = reporter
-
- runner = Spec::Runner::BehaviourRunner.new(@options)
- b1 = mock("b1")
- b1.should_receive(:number_of_examples).twice.and_return(1)
- b1.should_receive(:shared?).and_return(false)
- b1.should_receive(:set_sequence_numbers).with(12, true).and_return(18)
-
- b2 = mock("b2")
- b2.should_receive(:number_of_examples).twice.and_return(2)
- b2.should_receive(:shared?).and_return(false)
- b2.should_receive(:set_sequence_numbers).with(0, true).and_return(12)
- b2.should_receive(:run) do
- b1.should_receive(:run)
- end
-
- runner.add_behaviour(b1)
- runner.add_behaviour(b2)
-
- runner.run([], false)
- end
-
- it "should yield global configuration" do
- Spec::Runner.configure do |config|
- config.should equal(Spec::Runner.configuration)
- end
- end
-
- it "should pass its Description to the reporter" do
- behaviour = Spec::DSL::Behaviour.new("behaviour") do
- it "should" do
- end
- end
-
- reporter = mock("reporter", :null_object => true)
- reporter.should_receive(:add_behaviour).with(an_instance_of(Spec::DSL::Description))
-
- @options.reporter = reporter
- runner = Spec::Runner::BehaviourRunner.new(@options)
- runner.add_behaviour(behaviour)
- runner.run([], false)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb b/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb
index d78626399..8b9e912a7 100644
--- a/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb
@@ -1,33 +1,146 @@
require File.dirname(__FILE__) + '/../../spec_helper.rb'
-describe "CommandLine" do
- it "should run directory" do
- file = File.dirname(__FILE__) + '/../../../examples'
- err = StringIO.new
- out = StringIO.new
- Spec::Runner::CommandLine.run([file], err, out, false, true)
-
- out.rewind
- out.read.should =~ /78 examples, 0 failures, 3 pending/n
- end
+module Spec
+ module Runner
+ describe CommandLine, ".run" do
+ it_should_behave_like "sandboxed rspec_options"
+ attr_reader :options, :err, :out
+ before do
+ @err = options.error_stream
+ @out = options.output_stream
+ end
- it "should run file" do
- file = File.dirname(__FILE__) + '/../../../failing_examples/predicate_example.rb'
- err = StringIO.new
- out = StringIO.new
- Spec::Runner::CommandLine.run([file], err, out, false, true)
-
- out.rewind
- out.read.should =~ /2 examples, 1 failure/n
- end
+ it "should run directory" do
+ file = File.dirname(__FILE__) + '/../../../examples/pure'
+ Spec::Runner::CommandLine.run(OptionParser.parse([file], @err, @out))
+
+ @out.rewind
+ @out.read.should =~ /\d+ examples, 0 failures, 3 pending/n
+ end
+
+ it "should run file" do
+ file = File.dirname(__FILE__) + '/../../../failing_examples/predicate_example.rb'
+ Spec::Runner::CommandLine.run(OptionParser.parse([file], @err, @out))
+
+ @out.rewind
+ @out.read.should =~ /2 examples, 1 failure/n
+ end
+
+ it "should raise when file does not exist" do
+ file = File.dirname(__FILE__) + '/doesntexist'
+
+ lambda {
+ Spec::Runner::CommandLine.run(OptionParser.parse([file], @err, @out))
+ }.should raise_error
+ end
+
+ it "should return true when in --generate-options mode" do
+ Spec::Runner::CommandLine.run(
+ OptionParser.parse(['--generate-options', '/dev/null'], @err, @out)
+ ).should be_true
+ end
+
+ it "should dump even if Interrupt exception is occurred" do
+ example_group = Class.new(::Spec::Example::ExampleGroup) do
+ describe("example_group")
+ it "no error" do
+ end
+
+ it "should interrupt" do
+ raise Interrupt, "I'm interrupting"
+ end
+ end
+
+ options = ::Spec::Runner::Options.new(@err, @out)
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
+ options.reporter.should_receive(:dump)
+ options.add_example_group(example_group)
+
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
+ end
+
+ it "should heckle when options have heckle_runner" do
+ example_group = Class.new(::Spec::Example::ExampleGroup).describe("example_group") do
+ it "no error" do
+ end
+ end
+ options = ::Spec::Runner::Options.new(@err, @out)
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
+ options.add_example_group example_group
+
+ heckle_runner = mock("heckle_runner")
+ heckle_runner.should_receive(:heckle_with)
+ $rspec_mocks.__send__(:mocks).delete(heckle_runner)
+
+ options.heckle_runner = heckle_runner
+ options.add_example_group(example_group)
+
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
+ heckle_runner.rspec_verify
+ end
+
+ it "should run examples backwards if options.reverse is true" do
+ options = ::Spec::Runner::Options.new(@err, @out)
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
+ options.reverse = true
+
+ b1 = Class.new(Spec::Example::ExampleGroup)
+ b2 = Class.new(Spec::Example::ExampleGroup)
+
+ b2.should_receive(:run).ordered
+ b1.should_receive(:run).ordered
+
+ options.add_example_group(b1)
+ options.add_example_group(b2)
+
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
+ end
+
+ it "should pass its ExampleGroup to the reporter" do
+ example_group = Class.new(::Spec::Example::ExampleGroup).describe("example_group") do
+ it "should" do
+ end
+ end
+ options = ::Spec::Runner::Options.new(@err, @out)
+ options.add_example_group(example_group)
+
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
+ options.reporter.should_receive(:add_example_group).with(example_group)
+
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
+ end
+
+ it "runs only selected Examples when options.examples is set" do
+ options = ::Spec::Runner::Options.new(@err, @out)
+ ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options)
+
+ options.examples << "example_group should"
+ should_has_run = false
+ should_not_has_run = false
+ example_group = Class.new(::Spec::Example::ExampleGroup).describe("example_group") do
+ it "should" do
+ should_has_run = true
+ end
+ it "should not" do
+ should_not_has_run = true
+ end
+ end
+
+ options.reporter.should_receive(:add_example_group).with(example_group)
+
+ options.add_example_group example_group
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
- it "should raise when file does not exist" do
- file = File.dirname(__FILE__) + '/doesntexist'
- err = StringIO.new
- out = StringIO.new
+ should_has_run.should be_true
+ should_not_has_run.should be_false
+ end
- lambda {
- Spec::Runner::CommandLine.run([file], err, out, false, true)
- }.should raise_error
+ it "sets Spec.run to true" do
+ ::Spec.run = false
+ ::Spec.should_not be_run
+ Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
+ ::Spec.should be_run
+ end
+ end
end
-end
+end \ No newline at end of file
diff --git a/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb b/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb
deleted file mode 100644
index ad8017b64..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module DSL
- describe Behaviour do
-
- before(:each) do
- @formatter = Spec::Mocks::Mock.new("formatter")
- @behaviour = Behaviour.new("behaviour") {}
- end
-
- it "should retain examples that don't match" do
- @behaviour.it("example1") {}
- @behaviour.it("example2") {}
- @behaviour.retain_examples_matching!(["behaviour"])
- @behaviour.number_of_examples.should == 2
- end
-
- it "should remove examples that match" do
- @behaviour.it("example1") {}
- @behaviour.it("example2") {}
- @behaviour.retain_examples_matching!(["behaviour example1"])
- @behaviour.number_of_examples.should == 1
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb b/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb
index d2d68499d..760ec37a9 100644
--- a/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb
@@ -3,82 +3,90 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
module Spec
module Runner
describe DrbCommandLine, "without running local server" do
-
unless Config::CONFIG['ruby_install_name'] == 'jruby'
it "should print error when there is no running local server" do
err = StringIO.new
out = StringIO.new
- DrbCommandLine.run(['--version'], err, out, false)
-
+ DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
+
err.rewind
err.read.should =~ /No server is running/
end
end
end
- describe DrbCommandLine, "with local server" do
+ class DrbCommandLineSpec < ::Spec::Example::ExampleGroup
+ describe DrbCommandLine, "with local server"
- unless Config::CONFIG['ruby_install_name'] == 'jruby'
+ class CommandLineForSpec
+ def self.run(argv, stderr, stdout)
+ exit Spec::Runner::CommandLine.run(OptionParser.parse(argv, stderr, stdout))
+ end
+ end
+
+ unless Config::CONFIG['ruby_install_name'] == 'jruby'
before(:all) do
- DRb.start_service("druby://localhost:8989", Spec::Runner::CommandLine)
- $drb_example_file_counter = 0
+ DRb.start_service("druby://localhost:8989", CommandLineForSpec)
+ @@drb_example_file_counter = 0
end
-
+
before(:each) do
create_dummy_spec_file
- $drb_example_file_counter = $drb_example_file_counter + 1
+ @@drb_example_file_counter = @@drb_example_file_counter + 1
end
-
+
after(:each) do
File.delete(@dummy_spec_filename)
end
-
+
after(:all) do
- DRb.stop_service
+ DRb.stop_service
end
it "should run against local server" do
out = run_spec_via_druby(['--version'])
out.should =~ /RSpec/n
end
-
+
it "should output green colorized text when running with --colour option" do
out = run_spec_via_druby(["--colour", @dummy_spec_filename])
out.should =~ /\e\[32m/n
end
-
- it "should output red colorized text when running with -c option" do
+
+ it "should output red colorized text when running with -c option" do
out = run_spec_via_druby(["-c", @dummy_spec_filename])
out.should =~ /\e\[31m/n
end
def create_dummy_spec_file
- @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{$drb_example_file_counter}.rb"
+ @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{@@drb_example_file_counter}.rb"
File.open(@dummy_spec_filename, 'w') do |f|
f.write %{
- describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
- it "should be output with green bar" do
- true.should be_true
- end
+ describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
+ it "should be output with green bar" do
+ true.should be_true
+ end
- it "should be output with red bar" do
- violated("I want to see a red bar!")
- end
- end
- }
+ it "should be output with red bar" do
+ violated("I want to see a red bar!")
+ end
+ end
+ }
end
end
-
- def run_spec_via_druby(args)
+
+ def run_spec_via_druby(argv)
err, out = StringIO.new, StringIO.new
out.instance_eval do
def tty?; true end
end
- Spec::Runner::DrbCommandLine.run(args, err, out, false, true)
+ options = ::Spec::Runner::Options.new(err, out)
+ options.argv = argv
+ Spec::Runner::DrbCommandLine.run(options)
out.rewind; out.read
end
end
-
+
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/extensions/bug_report_10577_spec.rb b/vendor/plugins/rspec/spec/spec/runner/extensions/bug_report_10577_spec.rb
deleted file mode 100644
index c4da69f4d..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/extensions/bug_report_10577_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-require 'delegate'
-
-module Bug10577
- class OCI8
- def describe(name)
- "Hello, #{name}"
- end
-
- def something(name)
- "Something, #{name}"
- end
- end
-
- class OCI8AutoRecover < DelegateClass(OCI8)
- def initialize
- @connection = OCI8.new
- super(@connection)
- end
- end
-
- class OCI8AutoRecover
- def describe(name)
- @connection.describe(name)
- end
- end
-
- describe Kernel do
- it "should not mask a delegate class' describe method" do
- bugger = OCI8AutoRecover.new
- bugger.describe('aslak').should == "Hello, aslak"
- bugger.something('aslak').should == "Something, aslak"
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb b/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb
deleted file mode 100644
index 6b253a06a..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-describe Kernel, "when extended by rspec" do
- it "should respond to :describe" do
- Object.new.should respond_to(:describe)
- Object.new.should respond_to(:context)
- end
-end
-
-describe Kernel, " when creating behaviours with describe" do
-
- it "should fail when no block given" do
- lambda { describe "foo" }.should raise_error(ArgumentError)
- end
-
- it "should fail when no description given" do
- lambda { describe do; end }.should raise_error(ArgumentError)
- end
-end
-
-describe Kernel, "#respond_to" do
- before(:each) do
- @kernel_impersonator = Class.new do
- include Kernel
- end.new
- end
-
- it "should return a Spec::Matchers::RespondTo" do
- @kernel_impersonator.respond_to.should be_an_instance_of(Spec::Matchers::RespondTo)
- end
-
- it "should pass the submitted names to the RespondTo instance" do
- Spec::Matchers::RespondTo.should_receive(:new).with(:a,'b','c?')
- @kernel_impersonator.respond_to(:a,'b','c?')
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb
deleted file mode 100644
index de3246c54..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
- module Runner
- module Formatter
- describe "FailingBehavioursFormatter" do
- before(:each) do
- @io = StringIO.new
- @formatter = FailingBehavioursFormatter.new(@io)
- end
-
- def description(s)
- Spec::DSL::Description.new(s)
- end
-
- it "should add example name for each failure" do
- @formatter.add_behaviour(description("b 1"))
- @formatter.example_failed("e 1", nil, Reporter::Failure.new(nil, RuntimeError.new))
- @formatter.add_behaviour(description("b 2"))
- @formatter.example_failed("e 2", nil, Reporter::Failure.new(nil, RuntimeError.new))
- @formatter.example_failed("e 3", nil, Reporter::Failure.new(nil, RuntimeError.new))
- @io.string.should eql(<<-EOF
-b 1
-b 2
-EOF
-)
- end
-
- it "should remove druby url, which is used by Spec::Distributed" do
- @formatter.add_behaviour("something something (druby://99.99.99.99:99)")
- @formatter.example_failed("e 1", nil, Reporter::Failure.new(nil, RuntimeError.new))
- @io.string.should eql(<<-EOF
-something something
-EOF
-)
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb
index 396e4b16e..fda64f95f 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb
@@ -1,24 +1,29 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
+require File.dirname(__FILE__) + '/../../../spec_helper'
+require 'spec/runner/formatter/failing_examples_formatter'
module Spec
module Runner
module Formatter
- describe "FailingExamplesFormatter" do
+ describe FailingExamplesFormatter do
before(:each) do
@io = StringIO.new
- @formatter = FailingExamplesFormatter.new(@io)
+ options = mock('options')
+ @formatter = FailingExamplesFormatter.new(options, @io)
end
it "should add example name for each failure" do
- @formatter.add_behaviour("b 1")
- @formatter.example_failed(DSL::Example.new("e 1"), nil, Reporter::Failure.new(nil, RuntimeError.new))
- @formatter.add_behaviour("b 2")
- @formatter.example_failed(DSL::Example.new("e 2"), nil, Reporter::Failure.new(nil, RuntimeError.new))
- @formatter.example_failed(DSL::Example.new("e 3"), nil, Reporter::Failure.new(nil, RuntimeError.new))
+ example_group_1 = Class.new(ExampleGroup).describe("A")
+ example_group_2 = Class.new(example_group_1).describe("B")
+
+ @formatter.add_example_group(example_group_1)
+ @formatter.example_failed(example_group_1.it("a1"){}, nil, Reporter::Failure.new(nil, RuntimeError.new))
+ @formatter.add_example_group(example_group_2)
+ @formatter.example_failed(example_group_2.it("b2"){}, nil, Reporter::Failure.new(nil, RuntimeError.new))
+ @formatter.example_failed(example_group_2.it("b3"){}, nil, Reporter::Failure.new(nil, RuntimeError.new))
@io.string.should eql(<<-EOF
-b 1 e 1
-b 2 e 2
-b 2 e 3
+A a1
+A B b2
+A B b3
EOF
)
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html
index c6976ca5f..9cc458fdb 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html
@@ -1,12 +1,11 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>RSpec results</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
@@ -74,7 +73,7 @@ function makeYellow(element_id) {
font-size: 1.2em;
}
-.behaviour {
+.example_group {
margin: 0 10px 5px;
background: #fff;
}
@@ -177,21 +176,21 @@ a {
</div>
<div class="results">
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_1">Mocker</dt>
+ <dt id="example_group_1">Mocker</dt>
<script type="text/javascript">moveProgressBar('5.8');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
<script type="text/javascript">makeRed('rspec-header');</script>
- <script type="text/javascript">makeRed('behaviour_1');</script>
+ <script type="text/javascript">makeRed('example_group_1');</script>
<script type="text/javascript">moveProgressBar('11.7');</script>
<dd class="spec failed">
<span class="failed_spec_name">should fail when expected message not received</span>
<div class="failure" id="failure_1">
<div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">11</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should fail when expected message not received</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="linenum">12</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">poke me</span><span class="punct">&quot;)</span>
<span class="offending"><span class="linenum">13</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
@@ -205,8 +204,8 @@ a {
<div class="failure" id="failure_2">
<div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:22:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">20</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
<span class="linenum">21</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
<span class="offending"><span class="linenum">22</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
@@ -220,8 +219,8 @@ a {
<div class="failure" id="failure_3">
<div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:28:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">26</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should get yelled at when sending unexpected messages</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="linenum">27</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">don't talk to me</span><span class="punct">&quot;)</span>
<span class="offending"><span class="linenum">28</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span></span>
@@ -235,8 +234,8 @@ a {
<div class="failure" id="failure_4">
<div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:33:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">31</span>
<span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">has a bug we need to fix</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="offending"><span class="linenum">33</span> <span class="ident">pending</span> <span class="punct">&quot;</span><span class="string">here is the bug</span><span class="punct">&quot;</span> <span class="keyword">do</span></span>
@@ -246,10 +245,10 @@ a {
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_2">Running specs with --diff</dt>
- <script type="text/javascript">makeRed('behaviour_2');</script>
+ <dt id="example_group_2">Running specs with --diff</dt>
+ <script type="text/javascript">makeRed('example_group_2');</script>
<script type="text/javascript">moveProgressBar('35.2');</script>
<dd class="spec failed">
<span class="failed_spec_name">should print diff of different strings</span>
@@ -264,8 +263,8 @@ Diff:
framework for Ruby
</pre></div>
<div class="backtrace"><pre>./failing_examples/diffing_spec.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
<span class="linenum">12</span><span class="constant">EOF</span>
<span class="offending"><span class="linenum">13</span> <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
@@ -294,8 +293,8 @@ Diff:
&gt;
</pre></div>
<div class="backtrace"><pre>./failing_examples/diffing_spec.rb:34:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:24:
+./spec/spec/runner/formatter/html_formatter_spec.rb:20:</pre></div>
<pre class="ruby"><code><span class="linenum">32</span> <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">giraffe</span><span class="punct">&quot;</span>
<span class="linenum">33</span> <span class="ident">actual</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">tortoise</span><span class="punct">&quot;</span>
<span class="offending"><span class="linenum">34</span> <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
@@ -305,16 +304,16 @@ Diff:
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_3">A consumer of a stub</dt>
+ <dt id="example_group_3">A consumer of a stub</dt>
<script type="text/javascript">moveProgressBar('47.0');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_4">A stubbed method on a class</dt>
+ <dt id="example_group_4">A stubbed method on a class</dt>
<script type="text/javascript">moveProgressBar('52.9');</script>
<dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
<script type="text/javascript">moveProgressBar('58.8');</script>
@@ -323,9 +322,9 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_5">A mock</dt>
+ <dt id="example_group_5">A mock</dt>
<script type="text/javascript">moveProgressBar('70.5');</script>
<dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
<script type="text/javascript">moveProgressBar('76.4');</script>
@@ -334,28 +333,28 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_6">pending example (using pending method)</dt>
- <script type="text/javascript">makeYellow('behaviour_6');</script>
+ <dt id="example_group_6">pending example (using pending method)</dt>
+ <script type="text/javascript">makeYellow('example_group_6');</script>
<script type="text/javascript">moveProgressBar('88.2');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_7">pending example (with no block)</dt>
- <script type="text/javascript">makeYellow('behaviour_7');</script>
+ <dt id="example_group_7">pending example (with no block)</dt>
+ <script type="text/javascript">makeYellow('example_group_7');</script>
<script type="text/javascript">moveProgressBar('94.1');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_8">pending example (with block for pending)</dt>
- <script type="text/javascript">makeYellow('behaviour_8');</script>
+ <dt id="example_group_8">pending example (with block for pending)</dt>
+ <script type="text/javascript">makeYellow('example_group_8');</script>
<script type="text/javascript">moveProgressBar('100.0');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html
index 4f399d505..8bf1ed9cd 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html
@@ -1,12 +1,11 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>RSpec results</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
@@ -19,7 +18,6 @@
</style>
</head>
<body>
-
<div class="rspec-report">
<script type="text/javascript">
// <![CDATA[
@@ -75,7 +73,7 @@ function makeYellow(element_id) {
font-size: 1.2em;
}
-.behaviour {
+.example_group {
margin: 0 10px 5px;
background: #fff;
}
@@ -178,22 +176,23 @@ a {
</div>
<div class="results">
-
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_1">Mocker</dt>
+ <dt id="example_group_1">Mocker</dt>
<script type="text/javascript">moveProgressBar('5.8');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
<script type="text/javascript">makeRed('rspec-header');</script>
- <script type="text/javascript">makeRed('behaviour_1');</script>
+ <script type="text/javascript">makeRed('example_group_1');</script>
<script type="text/javascript">moveProgressBar('11.7');</script>
<dd class="spec failed">
<span class="failed_spec_name">should fail when expected message not received</span>
<div class="failure" id="failure_1">
<div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
- <div class="backtrace"><pre>./failing_examples/mocking_example.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:13:in `should_receive'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">11</span> it "should fail when expected message not received" do
<span class="linenum">12</span> mock = mock("poke me")
<span class="offending"><span class="linenum">13</span> mock.should_receive(:poke)</span>
@@ -207,9 +206,12 @@ a {
<span class="failed_spec_name">should fail when messages are received out of order</span>
<div class="failure" id="failure_2">
<div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
- <div class="backtrace"><pre>./failing_examples/mocking_example.rb:22:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:22:in `three'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:16:in `instance_eval'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">20</span> mock.should_receive(:three).ordered
<span class="linenum">21</span> mock.one
<span class="offending"><span class="linenum">22</span> mock.three</span>
@@ -223,9 +225,11 @@ a {
<span class="failed_spec_name">should get yelled at when sending unexpected messages</span>
<div class="failure" id="failure_3">
<div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
- <div class="backtrace"><pre>./failing_examples/mocking_example.rb:28:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:28:in `should_not_receive'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">26</span> it "should get yelled at when sending unexpected messages" do
<span class="linenum">27</span> mock = mock("don't talk to me")
<span class="offending"><span class="linenum">28</span> mock.should_not_receive(:any_message_at_all)</span>
@@ -239,9 +243,12 @@ a {
<span class="failed_spec_name">has a bug we need to fix</span>
<div class="failure" id="failure_4">
<div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
- <div class="backtrace"><pre>./failing_examples/mocking_example.rb:33:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:33:in `pending'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:33:in `instance_eval'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">31</span>
<span class="linenum">32</span> it "has a bug we need to fix" do
<span class="offending"><span class="linenum">33</span> pending "here is the bug" do</span>
@@ -252,10 +259,10 @@ a {
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_2">Running specs with --diff</dt>
- <script type="text/javascript">makeRed('behaviour_2');</script>
+ <dt id="example_group_2">Running specs with --diff</dt>
+ <script type="text/javascript">makeRed('example_group_2');</script>
<script type="text/javascript">moveProgressBar('35.2');</script>
<dd class="spec failed">
<span class="failed_spec_name">should print diff of different strings</span>
@@ -269,10 +276,11 @@ Diff:
+behaviour driven development
framework for Ruby
</pre></div>
- <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:13:in `=='
-./failing_examples/diffing_spec.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:13:in `=='
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">11</span>framework for Ruby
<span class="linenum">12</span>EOF
<span class="offending"><span class="linenum">13</span> usa.should == uk</span>
@@ -302,9 +310,12 @@ Diff:
+species=tortoise
&gt;
</pre></div>
- <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:34:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:34:in `should'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:31:in `instance_eval'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
+/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
<pre class="ruby"><code><span class="linenum">32</span> expected = Animal.new "bob", "giraffe"
<span class="linenum">33</span> actual = Animal.new "bob", "tortoise"
<span class="offending"><span class="linenum">34</span> expected.should eql(actual)</span>
@@ -315,16 +326,16 @@ Diff:
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_3">A consumer of a stub</dt>
+ <dt id="example_group_3">A consumer of a stub</dt>
<script type="text/javascript">moveProgressBar('47.0');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_4">A stubbed method on a class</dt>
+ <dt id="example_group_4">A stubbed method on a class</dt>
<script type="text/javascript">moveProgressBar('52.9');</script>
<dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
<script type="text/javascript">moveProgressBar('58.8');</script>
@@ -333,9 +344,9 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_5">A mock</dt>
+ <dt id="example_group_5">A mock</dt>
<script type="text/javascript">moveProgressBar('70.5');</script>
<dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
<script type="text/javascript">moveProgressBar('76.4');</script>
@@ -344,28 +355,28 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_6">pending example (using pending method)</dt>
- <script type="text/javascript">makeYellow('behaviour_6');</script>
+ <dt id="example_group_6">pending example (using pending method)</dt>
+ <script type="text/javascript">makeYellow('example_group_6');</script>
<script type="text/javascript">moveProgressBar('88.2');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_7">pending example (with no block)</dt>
- <script type="text/javascript">makeYellow('behaviour_7');</script>
+ <dt id="example_group_7">pending example (with no block)</dt>
+ <script type="text/javascript">makeYellow('example_group_7');</script>
<script type="text/javascript">moveProgressBar('94.1');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_8">pending example (with block for pending)</dt>
- <script type="text/javascript">makeYellow('behaviour_8');</script>
+ <dt id="example_group_8">pending example (with block for pending)</dt>
+ <script type="text/javascript">makeYellow('example_group_8');</script>
<script type="text/javascript">moveProgressBar('100.0');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html
index e7630ddde..cda7226bf 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html
@@ -1,12 +1,11 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>RSpec results</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
@@ -74,7 +73,7 @@ function makeYellow(element_id) {
font-size: 1.2em;
}
-.behaviour {
+.example_group {
margin: 0 10px 5px;
background: #fff;
}
@@ -177,13 +176,13 @@ a {
</div>
<div class="results">
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_1">Mocker</dt>
+ <dt id="example_group_1">Mocker</dt>
<script type="text/javascript">moveProgressBar('5.8');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
<script type="text/javascript">makeRed('rspec-header');</script>
- <script type="text/javascript">makeRed('behaviour_1');</script>
+ <script type="text/javascript">makeRed('example_group_1');</script>
<script type="text/javascript">moveProgressBar('11.7');</script>
<dd class="spec failed">
<span class="failed_spec_name">should fail when expected message not received</span>
@@ -250,10 +249,10 @@ a {
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_2">Running specs with --diff</dt>
- <script type="text/javascript">makeRed('behaviour_2');</script>
+ <dt id="example_group_2">Running specs with --diff</dt>
+ <script type="text/javascript">makeRed('example_group_2');</script>
<script type="text/javascript">moveProgressBar('35.2');</script>
<dd class="spec failed">
<span class="failed_spec_name">should print diff of different strings</span>
@@ -311,16 +310,16 @@ Diff:
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_3">A consumer of a stub</dt>
+ <dt id="example_group_3">A consumer of a stub</dt>
<script type="text/javascript">moveProgressBar('47.0');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_4">A stubbed method on a class</dt>
+ <dt id="example_group_4">A stubbed method on a class</dt>
<script type="text/javascript">moveProgressBar('52.9');</script>
<dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
<script type="text/javascript">moveProgressBar('58.8');</script>
@@ -329,9 +328,9 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_5">A mock</dt>
+ <dt id="example_group_5">A mock</dt>
<script type="text/javascript">moveProgressBar('70.5');</script>
<dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
<script type="text/javascript">moveProgressBar('76.4');</script>
@@ -340,28 +339,28 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_6">pending example (using pending method)</dt>
- <script type="text/javascript">makeYellow('behaviour_6');</script>
+ <dt id="example_group_6">pending example (using pending method)</dt>
+ <script type="text/javascript">makeYellow('example_group_6');</script>
<script type="text/javascript">moveProgressBar('88.2');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_7">pending example (with no block)</dt>
- <script type="text/javascript">makeYellow('behaviour_7');</script>
+ <dt id="example_group_7">pending example (with no block)</dt>
+ <script type="text/javascript">makeYellow('example_group_7');</script>
<script type="text/javascript">moveProgressBar('94.1');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_8">pending example (with block for pending)</dt>
- <script type="text/javascript">makeYellow('behaviour_8');</script>
+ <dt id="example_group_8">pending example (with block for pending)</dt>
+ <script type="text/javascript">makeYellow('example_group_8');</script>
<script type="text/javascript">moveProgressBar('100.0');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html
index e7630ddde..511495bcd 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html
@@ -1,12 +1,11 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>RSpec results</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
@@ -74,7 +73,7 @@ function makeYellow(element_id) {
font-size: 1.2em;
}
-.behaviour {
+.example_group {
margin: 0 10px 5px;
background: #fff;
}
@@ -177,22 +176,22 @@ a {
</div>
<div class="results">
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_1">Mocker</dt>
+ <dt id="example_group_1">Mocker</dt>
<script type="text/javascript">moveProgressBar('5.8');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
<script type="text/javascript">makeRed('rspec-header');</script>
- <script type="text/javascript">makeRed('behaviour_1');</script>
+ <script type="text/javascript">makeRed('example_group_1');</script>
<script type="text/javascript">moveProgressBar('11.7');</script>
<dd class="spec failed">
<span class="failed_spec_name">should fail when expected message not received</span>
<div class="failure" id="failure_1">
<div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:18:
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:in `chdir'
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:</pre></div>
<pre class="ruby"><code><span class="linenum">11</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should fail when expected message not received</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="linenum">12</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">poke me</span><span class="punct">&quot;)</span>
<span class="offending"><span class="linenum">13</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
@@ -206,9 +205,9 @@ a {
<div class="failure" id="failure_2">
<div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:22:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:18:
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:in `chdir'
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:</pre></div>
<pre class="ruby"><code><span class="linenum">20</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
<span class="linenum">21</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
<span class="offending"><span class="linenum">22</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
@@ -222,9 +221,9 @@ a {
<div class="failure" id="failure_3">
<div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
<div class="backtrace"><pre>./failing_examples/mocking_example.rb:28:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+./spec/spec/runner/formatter/html_formatter_spec.rb:18:
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:in `chdir'
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:</pre></div>
<pre class="ruby"><code><span class="linenum">26</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should get yelled at when sending unexpected messages</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="linenum">27</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">don't talk to me</span><span class="punct">&quot;)</span>
<span class="offending"><span class="linenum">28</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span></span>
@@ -237,10 +236,7 @@ a {
<span class="failed_spec_name">has a bug we need to fix</span>
<div class="failure" id="failure_4">
<div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
- <div class="backtrace"><pre>./failing_examples/mocking_example.rb:33:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+
<pre class="ruby"><code><span class="linenum">31</span>
<span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">has a bug we need to fix</span><span class="punct">&quot;</span> <span class="keyword">do</span>
<span class="offending"><span class="linenum">33</span> <span class="ident">pending</span> <span class="punct">&quot;</span><span class="string">here is the bug</span><span class="punct">&quot;</span> <span class="keyword">do</span></span>
@@ -250,10 +246,10 @@ a {
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_2">Running specs with --diff</dt>
- <script type="text/javascript">makeRed('behaviour_2');</script>
+ <dt id="example_group_2">Running specs with --diff</dt>
+ <script type="text/javascript">makeRed('example_group_2');</script>
<script type="text/javascript">moveProgressBar('35.2');</script>
<dd class="spec failed">
<span class="failed_spec_name">should print diff of different strings</span>
@@ -267,10 +263,7 @@ Diff:
+behaviour driven development
framework for Ruby
</pre></div>
- <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:13:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+
<pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
<span class="linenum">12</span><span class="constant">EOF</span>
<span class="offending"><span class="linenum">13</span> <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
@@ -298,10 +291,10 @@ Diff:
+species=tortoise
&gt;
</pre></div>
- <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:34:
-./spec/spec/runner/formatter/html_formatter_spec.rb:17:
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
-./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
+ <div class="backtrace"><pre>./failing_examples/mocking_example.rb:33:
+./spec/spec/runner/formatter/html_formatter_spec.rb:18:
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:in `chdir'
+./spec/spec/runner/formatter/html_formatter_spec.rb:14:</pre></div>
<pre class="ruby"><code><span class="linenum">32</span> <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">giraffe</span><span class="punct">&quot;</span>
<span class="linenum">33</span> <span class="ident">actual</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">tortoise</span><span class="punct">&quot;</span>
<span class="offending"><span class="linenum">34</span> <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
@@ -311,16 +304,16 @@ Diff:
</dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_3">A consumer of a stub</dt>
+ <dt id="example_group_3">A consumer of a stub</dt>
<script type="text/javascript">moveProgressBar('47.0');</script>
<dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_4">A stubbed method on a class</dt>
+ <dt id="example_group_4">A stubbed method on a class</dt>
<script type="text/javascript">moveProgressBar('52.9');</script>
<dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
<script type="text/javascript">moveProgressBar('58.8');</script>
@@ -329,9 +322,9 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_5">A mock</dt>
+ <dt id="example_group_5">A mock</dt>
<script type="text/javascript">moveProgressBar('70.5');</script>
<dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
<script type="text/javascript">moveProgressBar('76.4');</script>
@@ -340,28 +333,28 @@ Diff:
<dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_6">pending example (using pending method)</dt>
- <script type="text/javascript">makeYellow('behaviour_6');</script>
+ <dt id="example_group_6">pending example (using pending method)</dt>
+ <script type="text/javascript">makeYellow('example_group_6');</script>
<script type="text/javascript">moveProgressBar('88.2');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_7">pending example (with no block)</dt>
- <script type="text/javascript">makeYellow('behaviour_7');</script>
+ <dt id="example_group_7">pending example (with no block)</dt>
+ <script type="text/javascript">makeYellow('example_group_7');</script>
<script type="text/javascript">moveProgressBar('94.1');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
</dl>
</div>
-<div class="behaviour">
+<div class="example_group">
<dl>
- <dt id="behaviour_8">pending example (with block for pending)</dt>
- <script type="text/javascript">makeYellow('behaviour_8');</script>
+ <dt id="example_group_8">pending example (with block for pending)</dt>
+ <script type="text/javascript">makeYellow('example_group_8');</script>
<script type="text/javascript">moveProgressBar('100.0');</script>
- <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot;</span></dd>
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
</dl>
</div>
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb
index fad3aed1a..5ba39f0e9 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb
@@ -1,56 +1,66 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-describe "HtmlFormatter" do
- ['--diff', '--dry-run'].each do |opt|
- it "should produce HTML identical to the one we designed manually with #{opt}" do
- root = File.expand_path(File.dirname(__FILE__) + '/../../../..')
- suffix = PLATFORM == 'java' ? '-jruby' : ''
- expected_file = File.dirname(__FILE__) + "/html_formatted-#{VERSION}#{suffix}.html"
- raise "There is no HTML file with expected content for this platform: #{expected_file}" unless File.file?(expected_file)
- expected_html = File.read(expected_file)
- raise "There should be no absolute paths in html_formatted.html!!" if (expected_html =~ /\/Users/n || expected_html =~ /\/home/n)
-
- Dir.chdir(root) do
- args = ['failing_examples/mocking_example.rb', 'failing_examples/diffing_spec.rb', 'examples/stubbing_example.rb', 'examples/pending_example.rb', '--format', 'html', opt]
- err = StringIO.new
- out = StringIO.new
- Spec::Runner::CommandLine.run(
- args,
- err,
- out,
- false
- )
-
- seconds = /\d+\.\d+ seconds/
- html = out.string.gsub seconds, 'x seconds'
- expected_html.gsub! seconds, 'x seconds'
-
- if opt == '--diff'
- # Uncomment this line temporarily in order to overwrite the expected with actual.
- # Use with care!!!
- # File.open(expected_file, 'w') {|io| io.write(html)}
-
- doc = Hpricot(html)
- backtraces = doc.search("div.backtrace").collect {|e| e.at("/pre").inner_html}
- doc.search("div.backtrace").remove
-
- expected_doc = Hpricot(expected_html)
- expected_backtraces = expected_doc.search("div.backtrace").collect {|e| e.at("/pre").inner_html}
- expected_doc.search("div.backtrace").remove
-
- doc.inner_html.should == expected_doc.inner_html
-
- expected_backtraces.each_with_index do |expected_line, i|
- expected_path, expected_line_number, expected_suffix = expected_line.split(':')
- actual_path, actual_line_number, actual_suffix = backtraces[i].split(':')
- File.expand_path(actual_path).should == File.expand_path(expected_path)
- actual_line_number.should == expected_line_number
+require File.dirname(__FILE__) + '/../../../spec_helper'
+require 'hpricot' # Needed to compare generated with wanted HTML
+require 'spec/runner/formatter/html_formatter'
+
+module Spec
+ module Runner
+ module Formatter
+ describe HtmlFormatter do
+ ['--diff', '--dry-run'].each do |opt|
+ def jruby?
+ PLATFORM == 'java'
+ end
+
+ it "should produce HTML identical to the one we designed manually with #{opt}" do
+ root = File.expand_path(File.dirname(__FILE__) + '/../../../..')
+ suffix = jruby? ? '-jruby' : ''
+ expected_file = File.dirname(__FILE__) + "/html_formatted-#{::VERSION}#{suffix}.html"
+ raise "There is no HTML file with expected content for this platform: #{expected_file}" unless File.file?(expected_file)
+ expected_html = File.read(expected_file)
+ unless jruby?
+ raise "There should be no absolute paths in html_formatted.html!!" if (expected_html =~ /\/Users/n || expected_html =~ /\/home/n)
+ end
+
+ Dir.chdir(root) do
+ args = ['failing_examples/mocking_example.rb', 'failing_examples/diffing_spec.rb', 'examples/pure/stubbing_example.rb', 'examples/pure/pending_example.rb', '--format', 'html', opt]
+ err = StringIO.new
+ out = StringIO.new
+ CommandLine.run(
+ OptionParser.parse(args, err, out)
+ )
+
+ seconds = /\d+\.\d+ seconds/
+ html = out.string.gsub seconds, 'x seconds'
+ expected_html.gsub! seconds, 'x seconds'
+
+ if opt == '--diff'
+ # Uncomment this line temporarily in order to overwrite the expected with actual.
+ # Use with care!!!
+ # File.open(expected_file, 'w') {|io| io.write(html)}
+
+ doc = Hpricot(html)
+ backtraces = doc.search("div.backtrace").collect {|e| e.at("/pre").inner_html}
+ doc.search("div.backtrace").remove
+
+ expected_doc = Hpricot(expected_html)
+ expected_backtraces = expected_doc.search("div.backtrace").collect {|e| e.at("/pre").inner_html}
+ expected_doc.search("div.backtrace").remove
+
+ doc.inner_html.should == expected_doc.inner_html
+
+ expected_backtraces.each_with_index do |expected_line, i|
+ expected_path, expected_line_number, expected_suffix = expected_line.split(':')
+ actual_path, actual_line_number, actual_suffix = backtraces[i].split(':')
+ File.expand_path(actual_path).should == File.expand_path(expected_path)
+ actual_line_number.should == expected_line_number
+ end
+ else
+ html.should =~ /This was a dry-run/m
+ end
+ end
end
- else
- html.should =~ /This was a dry-run/m
end
end
end
end
-
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb
deleted file mode 100644
index 170fc441a..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
- module Runner
- module Formatter
- describe ProgressBarFormatter, "dry run" do
- before(:each) do
- @io = StringIO.new
- @formatter = ProgressBarFormatter.new(@io)
- @formatter.dry_run = true
- end
-
- it "should not produce summary on dry run" do
- @formatter.dump_summary(3, 2, 1, 0)
- @io.string.should eql("")
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb
deleted file mode 100644
index 04e3d9785..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
- module Runner
- module Formatter
- describe "ProgressBarFormatter failure dump with NoisyBacktraceTweaker" do
- before(:each) do
- @io = StringIO.new
- @reporter = Reporter.new([ProgressBarFormatter.new(@io)], NoisyBacktraceTweaker.new)
- @reporter.add_behaviour(Spec::DSL::Description.new("context"))
- end
-
- it "should end with line break" do
- error=Spec::Expectations::ExpectationNotMetError.new("message")
- set_backtrace(error)
- @reporter.example_finished("spec", error, "spec")
- @reporter.dump
- @io.string.should match(/\n\z/)
- end
-
- it "should include context and spec name in backtrace if error in spec" do
- error=RuntimeError.new("message")
- set_backtrace(error)
- @reporter.example_finished("spec", error, "spec")
- @reporter.dump
- @io.string.should match(/RuntimeError in 'context spec'/)
- end
-
- def set_backtrace(error)
- error.set_backtrace(["/a/b/c/d/e.rb:34:in `whatever'"])
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb
index 50fc12689..127a617c1 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb
@@ -1,4 +1,5 @@
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
+require 'spec/runner/formatter/progress_bar_formatter'
module Spec
module Runner
@@ -6,7 +7,10 @@ module Spec
describe ProgressBarFormatter do
before(:each) do
@io = StringIO.new
- @formatter = ProgressBarFormatter.new(@io)
+ @options = mock('options')
+ @options.stub!(:dry_run).and_return(false)
+ @options.stub!(:colour).and_return(false)
+ @formatter = ProgressBarFormatter.new(@options, @io)
end
it "should produce line break on start dump" do
@@ -20,44 +24,41 @@ module Spec
end
it "should produce standard summary" do
- @formatter.example_pending("behaviour", "example", "message")
+ @formatter.example_pending("example_group", ExampleGroup.new("example"), "message")
@io.rewind
@formatter.dump_summary(3, 2, 1, 1)
@io.string.should eql(%Q|
Finished in 3 seconds
2 examples, 1 failure, 1 pending
-
-Pending:
-behaviour example (message)
|)
end
it "should push green dot for passing spec" do
@io.should_receive(:tty?).and_return(true)
- @formatter.colour = true
+ @options.should_receive(:colour).and_return(true)
@formatter.example_passed("spec")
@io.string.should == "\e[32m.\e[0m"
end
it "should push red F for failure spec" do
@io.should_receive(:tty?).and_return(true)
- @formatter.colour = true
+ @options.should_receive(:colour).and_return(true)
@formatter.example_failed("spec", 98, Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new))
@io.string.should eql("\e[31mF\e[0m")
end
it "should push magenta F for error spec" do
@io.should_receive(:tty?).and_return(true)
- @formatter.colour = true
+ @options.should_receive(:colour).and_return(true)
@formatter.example_failed("spec", 98, Reporter::Failure.new("c s", RuntimeError.new))
@io.string.should eql("\e[35mF\e[0m")
end
it "should push blue F for fixed pending spec" do
@io.should_receive(:tty?).and_return(true)
- @formatter.colour = true
- @formatter.example_failed("spec", 98, Reporter::Failure.new("c s", Spec::DSL::PendingFixedError.new))
+ @options.should_receive(:colour).and_return(true)
+ @formatter.example_failed("spec", 98, Reporter::Failure.new("c s", Spec::Example::PendingExampleFixedError.new))
@io.string.should eql("\e[34mF\e[0m")
end
@@ -83,17 +84,18 @@ EOE
end
it "should dump pending" do
- @formatter.example_pending("behaviour", "example", "message")
+ @formatter.example_pending("example_group", ExampleGroup.new("example"), "message")
@formatter.dump_pending
- @io.string.should =~ /Pending\:\nbehaviour example \(message\)\n/
+ @io.string.should =~ /Pending\:\nexample_group example \(message\)\n/
end
end
describe "ProgressBarFormatter outputting to custom out" do
before(:each) do
@out = mock("out")
+ @options = mock('options')
@out.stub!(:puts)
- @formatter = ProgressBarFormatter.new(@out)
+ @formatter = ProgressBarFormatter.new(@options, @out)
@formatter.class.send :public, :output_to_tty?
end
@@ -106,6 +108,20 @@ EOE
@formatter.output_to_tty?.should be_false
end
end
+
+ describe ProgressBarFormatter, "dry run" do
+ before(:each) do
+ @io = StringIO.new
+ options = mock('options')
+ options.stub!(:dry_run).and_return(true)
+ @formatter = ProgressBarFormatter.new(options, @io)
+ end
+
+ it "should not produce summary on dry run" do
+ @formatter.dump_summary(3, 2, 1, 0)
+ @io.string.should eql("")
+ end
+ end
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb
deleted file mode 100644
index c864162ed..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
-module Runner
-module Formatter
-describe "RdocFormatterDryRun" do
- before(:each) do
- @io = StringIO.new
- @formatter = RdocFormatter.new(@io)
- @formatter.dry_run = true
- end
- it "should not produce summary on dry run" do
- @formatter.dump_summary(3, 2, 1, 0)
- @io.string.should == ""
- end
-end
-end
-end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb
deleted file mode 100644
index 728a515f1..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
- module Runner
- module Formatter
- describe "RdocFormatter" do
- before(:each) do
- @io = StringIO.new
- @formatter = RdocFormatter.new(@io)
- @formatter.dry_run = true
- end
-
- it "should produce no summary" do
- @formatter.dump_summary(nil, nil, nil, nil)
- @io.string.should be_empty
- end
-
- it "should produce nothing on start dump" do
- @formatter.start_dump
- @io.string.should be_empty
- end
-
- it "should push out context" do
- @formatter.add_behaviour(Spec::DSL::Description.new("context"))
- @io.string.should eql("# context\n")
- end
-
- it "should push out failed spec" do
- @formatter.example_failed(DSL::Example.new("spec"), 98, nil)
- @io.string.should eql("# * spec [98 - FAILED]\n")
- end
-
- it "should push out spec" do
- @formatter.example_passed(DSL::Example.new("spec"))
- @io.string.should eql("# * spec\n")
- end
-
- it "should push out not pending example" do
- @formatter.example_pending("behaviour", "example", "reason")
- @io.string.should eql("# * behaviour example [PENDING: reason]\n")
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb
index dce5c2ff2..4bb2f1585 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb
@@ -1,11 +1,18 @@
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
+require 'spec/runner/formatter/snippet_extractor'
-describe Spec::Runner::Formatter::SnippetExtractor do
- it "should fall back on a default message when it doesn't understand a line" do
- Spec::Runner::Formatter::SnippetExtractor.new.snippet_for("blech").should == ["# Couldn't get snippet for blech", 1]
- end
+module Spec
+ module Runner
+ module Formatter
+ describe SnippetExtractor do
+ it "should fall back on a default message when it doesn't understand a line" do
+ SnippetExtractor.new.snippet_for("blech").should == ["# Couldn't get snippet for blech", 1]
+ end
- it "should fall back on a default message when it doesn't find the file" do
- Spec::Runner::Formatter::SnippetExtractor.new.lines_around("blech", 8).should == "# Couldn't get snippet for blech"
+ it "should fall back on a default message when it doesn't find the file" do
+ SnippetExtractor.new.lines_around("blech", 8).should == "# Couldn't get snippet for blech"
+ end
+ end
+ end
end
-end
+end \ No newline at end of file
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb
deleted file mode 100644
index c86899cb1..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require File.dirname(__FILE__) + '/../../../spec_helper.rb'
-
-module Spec
-module Runner
-module Formatter
-describe "SpecdocFormatterDryRun" do
- before(:each) do
- @io = StringIO.new
- @formatter = SpecdocFormatter.new(@io)
- @formatter.dry_run = true
- end
- it "should not produce summary on dry run" do
- @formatter.dump_summary(3, 2, 1, 0)
- @io.string.should eql("")
-
- end
-
-end
-end
-end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb
index 14f436036..79995309d 100644
--- a/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb
@@ -1,61 +1,125 @@
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
+require 'spec/runner/formatter/specdoc_formatter'
module Spec
module Runner
module Formatter
- describe "SpecdocFormatter" do
+ describe SpecdocFormatter do
+ it_should_behave_like "sandboxed rspec_options"
+ attr_reader :io, :options, :formatter, :example_group
before(:each) do
@io = StringIO.new
- @formatter = SpecdocFormatter.new(@io)
+ options.stub!(:dry_run).and_return(false)
+ options.stub!(:colour).and_return(false)
+ @formatter = SpecdocFormatter.new(options, io)
+ @example_group = Class.new(::Spec::Example::ExampleGroup).describe("ExampleGroup")
end
- it "should produce standard summary without pending when pending has a 0 count" do
- @formatter.dump_summary(3, 2, 1, 0)
- @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
- end
+ describe "where ExampleGroup has no superclasss with a description" do
+ before do
+ formatter.add_example_group(example_group)
+ end
- it "should produce standard summary" do
- @formatter.dump_summary(3, 2, 1, 4)
- @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n")
- end
+ it "should produce standard summary without pending when pending has a 0 count" do
+ formatter.dump_summary(3, 2, 1, 0)
+ io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
+ end
- it "should push context name" do
- @formatter.add_behaviour(Spec::DSL::Description.new("context"))
- @io.string.should eql("\ncontext\n")
- end
+ it "should produce standard summary" do
+ formatter.dump_summary(3, 2, 1, 4)
+ io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n")
+ end
- it "should push failing spec name and failure number" do
- @formatter.example_failed(DSL::Example.new("spec"), 98, Reporter::Failure.new("c s", RuntimeError.new))
- @io.string.should eql("- spec (ERROR - 98)\n")
- end
+ it "should push ExampleGroup name" do
+ io.string.should eql("\nExampleGroup\n")
+ end
- it "should push nothing on start" do
- @formatter.start(5)
- @io.string.should eql("")
- end
+ it "when having an error, should push failing spec name and failure number" do
+ formatter.example_failed(
+ example_group.it("spec"),
+ 98,
+ Reporter::Failure.new("c s", RuntimeError.new)
+ )
+ io.string.should have_example_group_output("- spec (ERROR - 98)\n")
+ end
- it "should push nothing on start dump" do
- @formatter.start_dump
- @io.string.should eql("")
- end
+ it "when having an expectation failure, should push failing spec name and failure number" do
+ formatter.example_failed(
+ example_group.it("spec"),
+ 98,
+ Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
+ )
+ io.string.should have_example_group_output("- spec (FAILED - 98)\n")
+ end
- it "should push passing spec name" do
- @formatter.example_passed(DSL::Example.new("spec"))
- @io.string.should eql("- spec\n")
- end
+ it "should push nothing on start" do
+ formatter.start(5)
+ io.string.should have_example_group_output("")
+ end
- it "should push pending example name and message" do
- @formatter.example_pending('behaviour', 'example','reason')
- @io.string.should eql("- example (PENDING: reason)\n")
- end
+ it "should push nothing on start dump" do
+ formatter.start_dump
+ io.string.should have_example_group_output("")
+ end
- it "should dump pending" do
- @formatter.example_pending('behaviour', 'example','reason')
- @io.rewind
- @formatter.dump_pending
- @io.string.should =~ /Pending\:\nbehaviour example \(reason\)\n/
+ it "should push passing spec name" do
+ formatter.example_passed(example_group.it("spec"))
+ io.string.should have_example_group_output("- spec\n")
+ end
+
+ it "should push pending example name and message" do
+ formatter.example_pending('example_group', ExampleGroup.new("example"), 'reason')
+ io.string.should have_example_group_output("- example (PENDING: reason)\n")
+ end
+
+ it "should dump pending" do
+ formatter.example_pending('example_group', ExampleGroup.new("example"), 'reason')
+ io.rewind
+ formatter.dump_pending
+ io.string.should =~ /Pending\:\nexample_group example \(reason\)\n/
+ end
+
+ def have_example_group_output(expected_output)
+ expected = "\nExampleGroup\n#{expected_output}"
+ ::Spec::Matchers::SimpleMatcher.new(expected) do |actual|
+ actual == expected
+ end
+ end
end
+ describe "where ExampleGroup has two superclasses with a description" do
+ attr_reader :child_example_group, :grand_child_example_group
+ before do
+ @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
+ @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
+ formatter.add_example_group(grand_child_example_group)
+ end
+
+ specify "when having an error, should push failing spec name and failure number" do
+ formatter.example_failed(
+ example_group.it("spec"),
+ 98,
+ Reporter::Failure.new("c s", RuntimeError.new)
+ )
+ io.string.should have_nested_example_group_output("- spec (ERROR - 98)\n")
+ end
+
+ specify "when having an expectation failure, should push failing spec name and failure number" do
+ formatter.example_failed(
+ example_group.it("spec"),
+ 98,
+ Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
+ )
+ io.string.should have_nested_example_group_output("- spec (FAILED - 98)\n")
+ end
+
+ def have_nested_example_group_output(expected_output)
+ expected_full_output = "\nExampleGroup Child ExampleGroup GrandChild ExampleGroup\n#{expected_output}"
+ ::Spec::Matchers::SimpleMatcher.new(expected_full_output) do |actual|
+ actual == expected_full_output
+ end
+ end
+ end
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb b/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb
index 1f5d11759..539d908c2 100644
--- a/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb
@@ -17,47 +17,62 @@ unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
describe "HeckleRunner" do
before(:each) do
@heckle = mock("heckle", :null_object => true)
- @behaviour_runner = mock("behaviour_runner")
@heckle_class = mock("heckle_class")
end
it "should heckle all methods in all classes in a module" do
- @heckle_class.should_receive(:new).with("Foo::Bar", "one", behaviour_runner).and_return(@heckle)
- @heckle_class.should_receive(:new).with("Foo::Bar", "two", behaviour_runner).and_return(@heckle)
- @heckle_class.should_receive(:new).with("Foo::Zap", "three", behaviour_runner).and_return(@heckle)
- @heckle_class.should_receive(:new).with("Foo::Zap", "four", behaviour_runner).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "one", rspec_options).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "two", rspec_options).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Zap", "three", rspec_options).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Zap", "four", rspec_options).and_return(@heckle)
heckle_runner = Spec::Runner::HeckleRunner.new("Foo", @heckle_class)
- heckle_runner.heckle_with(behaviour_runner)
+ heckle_runner.heckle_with
end
it "should heckle all methods in a class" do
- @heckle_class.should_receive(:new).with("Foo::Bar", "one", behaviour_runner).and_return(@heckle)
- @heckle_class.should_receive(:new).with("Foo::Bar", "two", behaviour_runner).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "one", rspec_options).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "two", rspec_options).and_return(@heckle)
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar", @heckle_class)
- heckle_runner.heckle_with(behaviour_runner)
+ heckle_runner.heckle_with
end
it "should fail heckling when the class is not found" do
lambda do
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bob", @heckle_class)
- heckle_runner.heckle_with(behaviour_runner)
+ heckle_runner.heckle_with
end.should raise_error(StandardError, "Heckling failed - \"Foo::Bob\" is not a known class or module")
end
it "should heckle specific method in a class (with #)" do
- @heckle_class.should_receive(:new).with("Foo::Bar", "two", behaviour_runner).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "two", rspec_options).and_return(@heckle)
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar#two", @heckle_class)
- heckle_runner.heckle_with(behaviour_runner)
+ heckle_runner.heckle_with
end
it "should heckle specific method in a class (with .)" do
- @heckle_class.should_receive(:new).with("Foo::Bar", "two", behaviour_runner).and_return(@heckle)
+ @heckle_class.should_receive(:new).with("Foo::Bar", "two", rspec_options).and_return(@heckle)
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar.two", @heckle_class)
- heckle_runner.heckle_with(behaviour_runner)
+ heckle_runner.heckle_with
+ end
+ end
+
+ describe "Heckler" do
+ it "should say yes to tests_pass? if specs pass" do
+ options = mock("options", :null_object => true)
+ options.should_receive(:run_examples).and_return(true)
+ heckler = Spec::Runner::Heckler.new("Foo", nil, options)
+ heckler.tests_pass?.should be_true
+ end
+
+ it "should say no to tests_pass? if specs fail" do
+ options = mock("options", :null_object => true)
+ options.should_receive(:run_examples).and_return(false)
+ heckler = Spec::Runner::Heckler.new("Foo", nil, options)
+ heckler.tests_pass?.should be_false
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb b/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb
index 31d33ab5e..7cf6606ec 100644
--- a/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb
@@ -3,11 +3,10 @@ unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
require 'spec/runner/heckle_runner'
describe "Heckler" do
- it "should run behaviour_runner on tests_pass?" do
- behaviour_runner = mock("behaviour_runner")
- behaviour_runner.should_receive(:run).with([], false)
- heckler = Spec::Runner::Heckler.new('Array', 'push', behaviour_runner)
-
+ it "should run examples on tests_pass?" do
+ options = Spec::Runner::Options.new(StringIO.new, StringIO.new)
+ options.should_receive(:run_examples).with().and_return(&options.method(:run_examples))
+ heckler = Spec::Runner::Heckler.new('Array', 'push', options)
heckler.tests_pass?
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb b/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb
index 522d346d9..e097f2ec0 100644
--- a/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb
@@ -11,32 +11,32 @@ module Spec
it "should leave anything in lib spec dir" do
["expectations", "mocks", "runner", "stubs"].each do |child|
@error.set_backtrace(["/lib/spec/#{child}/anything.rb"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should_not be_empty
end
end
it "should leave anything in spec dir" do
@error.set_backtrace(["/lib/spec/expectations/anything.rb"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should_not be_empty
end
it "should leave bin spec" do
@error.set_backtrace(["bin/spec:"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should_not be_empty
end
it "should not barf on nil backtrace" do
lambda do
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
end.should_not raise_error
end
it "should clean up double slashes" do
@error.set_backtrace(["/a//b/c//d.rb"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should include("/a/b/c/d.rb")
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb b/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb
deleted file mode 100644
index 0d8348bb2..000000000
--- a/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper.rb'
-
-module Spec
- module Runner
- describe "ObjectExt" do
- it "should add copy_instance_variables_from to object" do
- Object.new.should respond_to(:copy_instance_variables_from)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb b/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb
index 95e1f75a3..8c91ad19f 100644
--- a/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb
@@ -1,18 +1,16 @@
require File.dirname(__FILE__) + '/../../spec_helper.rb'
+require 'fileutils'
describe "OptionParser" do
before(:each) do
@out = StringIO.new
@err = StringIO.new
- @parser = Spec::Runner::OptionParser.new
+ @parser = Spec::Runner::OptionParser.new(@err, @out)
end
def parse(args)
- @parser.parse(args, @err, @out, true)
- end
-
- def behaviour_runner(args)
- @parser.create_behaviour_runner(args, @err, @out, true)
+ @parser.parse(args)
+ @parser.options
end
it "should accept dry run option" do
@@ -48,6 +46,14 @@ describe "OptionParser" do
options.colour.should == false
end
+ it "should print help to stdout if no args" do
+ pending 'A regression since 1.0.8' do
+ options = parse([])
+ @out.rewind
+ @out.read.should match(/Usage: spec \(FILE\|DIRECTORY\|GLOB\)\+ \[options\]/m)
+ end
+ end
+
it "should print help to stdout" do
options = parse(["--help"])
@out.rewind
@@ -55,19 +61,17 @@ describe "OptionParser" do
end
it "should print instructions about how to require missing formatter" do
- lambda { options = parse(["--format", "Custom::MissingFormatter"]) }.should raise_error(NameError)
+ lambda do
+ options = parse(["--format", "Custom::MissingFormatter"])
+ options.formatters
+ end.should raise_error(NameError)
@err.string.should match(/Couldn't find formatter class Custom::MissingFormatter/n)
end
- it "should print usage to err if no dir specified" do
- options = parse([])
- @err.string.should match(/Usage: spec/)
- end
-
it "should print version to stdout" do
options = parse(["--version"])
@out.rewind
- @out.read.should match(/RSpec-\d+\.\d+\.\d+.*\(r\d+\) - BDD for Ruby\nhttp:\/\/rspec.rubyforge.org\/\n/n)
+ @out.read.should match(/RSpec-\d+\.\d+\.\d+.*\(build \d+\) - BDD for Ruby\nhttp:\/\/rspec.rubyforge.org\/\n/n)
end
it "should require file when require specified" do
@@ -123,14 +127,25 @@ describe "OptionParser" do
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
end
+ it "should use html story formatter when format is h" do
+ options = parse(["--format", "h"])
+ options.story_formatters[0].class.should equal(Spec::Runner::Formatter::Story::HtmlFormatter)
+ end
+
it "should use html formatter when format is html" do
options = parse(["--format", "html"])
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
end
+ it "should use html story formatter when format is html" do
+ options = parse(["--format", "html"])
+ options.story_formatters[0].class.should equal(Spec::Runner::Formatter::Story::HtmlFormatter)
+ end
+
it "should use html formatter with explicit output when format is html:test.html" do
FileUtils.rm 'test.html' if File.exist?('test.html')
options = parse(["--format", "html:test.html"])
+ options.formatters # creates the file
File.should be_exist('test.html')
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
options.formatters[0].close
@@ -157,16 +172,6 @@ describe "OptionParser" do
options.formatters[0].class.should equal(Spec::Runner::Formatter::ProgressBarFormatter)
end
- it "should use rdoc formatter when format is r" do
- options = parse(["--format", "r"])
- options.formatters[0].class.should equal(Spec::Runner::Formatter::RdocFormatter)
- end
-
- it "should use rdoc formatter when format is rdoc" do
- options = parse(["--format", "rdoc"])
- options.formatters[0].class.should equal(Spec::Runner::Formatter::RdocFormatter)
- end
-
it "should use specdoc formatter when format is s" do
options = parse(["--format", "s"])
options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter)
@@ -195,9 +200,13 @@ describe "OptionParser" do
end
it "should use custom diff format option when format is a custom format" do
- options = parse(["--diff", "Custom::Formatter"])
+ Spec::Expectations.differ.should_not be_instance_of(Custom::Differ)
+
+ options = parse(["--diff", "Custom::Differ"])
+ options.parse_diff "Custom::Differ"
options.diff_format.should == :custom
- options.differ_class.should == Custom::Formatter
+ options.differ_class.should == Custom::Differ
+ Spec::Expectations.differ.should be_instance_of(Custom::Differ)
end
it "should print instructions about how to fix missing differ" do
@@ -234,7 +243,7 @@ describe "OptionParser" do
@err.string.should match(/You must specify one file, not a directory when using the --line option/n)
end
- it "should fail with error message if file is dir along with --line" do
+ it "should fail with error message if file does not exist along with --line" do
spec_parser = mock("spec_parser")
@parser.instance_variable_set('@spec_parser', spec_parser)
@@ -277,18 +286,21 @@ describe "OptionParser" do
end
it "should read options from file when --options is specified" do
- Spec::Runner::CommandLine.should_receive(:run).with(["--diff", "--colour"], @err, @out, true, true)
options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
+ options.diff_format.should_not be_nil
+ options.colour.should be_true
end
- it "should append options from file when --options is specified" do
- Spec::Runner::CommandLine.should_receive(:run).with(["some/spec.rb", "--diff", "--colour"], @err, @out, true, true)
- options = parse(["some/spec.rb", "--options", File.dirname(__FILE__) + "/spec.opts"])
+ it "should default the formatter to ProgressBarFormatter when using options file" do
+ options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
+ options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::ProgressBarFormatter)
end
-
+
it "should read spaced and multi-line options from file when --options is specified" do
- Spec::Runner::CommandLine.should_receive(:run).with(["--diff", "--colour", "--format", "s"], @err, @out, true, true)
options = parse(["--options", File.dirname(__FILE__) + "/spec_spaced.opts"])
+ options.diff_format.should_not be_nil
+ options.colour.should be_true
+ options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::SpecdocFormatter)
end
it "should save config to file when --generate-options is specified" do
@@ -298,52 +310,68 @@ describe "OptionParser" do
FileUtils.rm 'test.spec.opts'
end
- it "should call DrbCommandLine when --drb is specified" do
- Spec::Runner::DrbCommandLine.should_receive(:run).with(["some/spec.rb", "--diff", "--colour"], @err, @out, true, true)
- options = parse(["some/spec.rb", "--diff", "--drb", "--colour"])
- end
-
- it "should not return an Options object when --drb is specified" do
- Spec::Runner::DrbCommandLine.stub!(:run)
- parse(["some/spec.rb", "--drb"]).should be_nil
+ it "should save config to file when -G is specified" do
+ FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts')
+ options = parse(["--colour", "-G", "test.spec.opts", "--diff"])
+ IO.read('test.spec.opts').should == "--colour\n--diff\n"
+ FileUtils.rm 'test.spec.opts'
end
+ it "when --drb is specified, calls DrbCommandLine all of the other ARGV arguments" do
+ options = Spec::Runner::OptionParser.parse([
+ "some/spec.rb", "--diff", "--colour"
+ ], @err, @out)
+ Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options|
+ options.argv.should == ["some/spec.rb", "--diff", "--colour"]
+ end
+ parse(["some/spec.rb", "--diff", "--drb", "--colour"])
+ end
+
it "should reverse spec order when --reverse is specified" do
options = parse(["some/spec.rb", "--reverse"])
end
it "should set an mtime comparator when --loadby mtime" do
- behaviour_runner = behaviour_runner(["--loadby", 'mtime'])
+ options = parse(["--loadby", 'mtime'])
+ runner = Spec::Runner::ExampleGroupRunner.new(options)
+ Spec::Runner::ExampleGroupRunner.should_receive(:new).
+ with(options).
+ and_return(runner)
+ runner.should_receive(:load_files).with(["most_recent_spec.rb", "command_line_spec.rb"])
+
Dir.chdir(File.dirname(__FILE__)) do
+ options.files << 'command_line_spec.rb'
+ options.files << 'most_recent_spec.rb'
FileUtils.touch "most_recent_spec.rb"
- all_files = ['command_line_spec.rb', 'most_recent_spec.rb']
- sorted_files = behaviour_runner.sort_paths(all_files)
- sorted_files.should == ["most_recent_spec.rb", "command_line_spec.rb"]
+ options.run_examples
FileUtils.rm "most_recent_spec.rb"
end
end
it "should use the standard runner by default" do
+ runner = ::Spec::Runner::ExampleGroupRunner.new(@parser.options)
+ ::Spec::Runner::ExampleGroupRunner.should_receive(:new).
+ with(@parser.options).
+ and_return(runner)
options = parse([])
- options.create_behaviour_runner.class.should equal(Spec::Runner::BehaviourRunner)
+ options.run_examples
end
it "should use a custom runner when given" do
- options = parse(["--runner", "Custom::BehaviourRunner"])
- options.create_behaviour_runner.class.should equal(Custom::BehaviourRunner)
+ runner = Custom::ExampleGroupRunner.new(@parser.options, nil)
+ Custom::ExampleGroupRunner.should_receive(:new).
+ with(@parser.options, nil).
+ and_return(runner)
+ options = parse(["--runner", "Custom::ExampleGroupRunner"])
+ options.run_examples
end
it "should use a custom runner with extra options" do
- options = parse(["--runner", "Custom::BehaviourRunner:something"])
- options.create_behaviour_runner.class.should equal(Custom::BehaviourRunner)
+ runner = Custom::ExampleGroupRunner.new(@parser.options, 'something')
+ Custom::ExampleGroupRunner.should_receive(:new).
+ with(@parser.options, 'something').
+ and_return(runner)
+ options = parse(["--runner", "Custom::ExampleGroupRunner:something"])
+ options.run_examples
end
-
- it "should return the correct default behaviour runner" do
- @parser.create_behaviour_runner([], @err, @out, true).should be_instance_of(Spec::Runner::BehaviourRunner)
- end
-
- it "should return the correct default behaviour runner" do
- @parser.create_behaviour_runner(["--runner", "Custom::BehaviourRunner"], @err, @out, true).should be_instance_of(Custom::BehaviourRunner)
- end
-
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/options_spec.rb b/vendor/plugins/rspec/spec/spec/runner/options_spec.rb
index 609d8d95c..e4d01b05c 100644
--- a/vendor/plugins/rspec/spec/spec/runner/options_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/options_spec.rb
@@ -3,172 +3,291 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
module Spec
module Runner
describe Options do
- before do
+ before(:each) do
@err = StringIO.new('')
@out = StringIO.new('')
@options = Options.new(@err, @out)
end
- it "instantiates empty arrays" do
- @options.examples.should == []
- @options.formatters.should == []
+ after(:each) do
+ Spec::Expectations.differ = nil
end
- it "defaults to QuietBacktraceTweaker" do
- @options.backtrace_tweaker.class.should == QuietBacktraceTweaker
+ describe "#examples" do
+ it "should default to empty array" do
+ @options.examples.should == []
+ end
end
- it "defaults to no dry_run" do
- @options.dry_run.should == false
+ describe "#backtrace_tweaker" do
+ it "should default to QuietBacktraceTweaker" do
+ @options.backtrace_tweaker.class.should == QuietBacktraceTweaker
+ end
end
- it "parse_diff sets context_lines" do
- @options.parse_diff nil
- @options.context_lines.should == 3
+ describe "#dry_run" do
+ it "should default to false" do
+ @options.dry_run.should == false
+ end
end
- it "defaults diff to unified" do
- @options.parse_diff nil
- @options.diff_format.should == :unified
+ describe "#context_lines" do
+ it "should default to 3" do
+ @options.context_lines.should == 3
+ end
end
- it "should use unified diff format option when format is unified" do
- @options.parse_diff 'unified'
- @options.diff_format.should == :unified
- @options.differ_class.should equal(Spec::Expectations::Differs::Default)
- end
+ describe "#parse_diff with nil" do
+ before(:each) do
+ @options.parse_diff nil
+ end
- it "should use context diff format option when format is context" do
- @options.parse_diff 'context'
- @options.diff_format.should == :context
- @options.differ_class.should == Spec::Expectations::Differs::Default
- end
+ it "should make diff_format unified" do
+ @options.diff_format.should == :unified
+ end
- it "should use custom diff format option when format is a custom format" do
- @options.parse_diff "Custom::Formatter"
- @options.diff_format.should == :custom
- @options.differ_class.should == Custom::Formatter
+ it "should set Spec::Expectations.differ to be a default differ" do
+ Spec::Expectations.differ.class.should ==
+ ::Spec::Expectations::Differs::Default
+ end
end
- it "should print instructions about how to fix missing differ" do
- lambda { @options.parse_diff "Custom::MissingDiffer" }.should raise_error(NameError)
- @err.string.should match(/Couldn't find differ class Custom::MissingDiffer/n)
- end
+ describe "#parse_diff with 'unified'" do
+ before(:each) do
+ @options.parse_diff 'unified'
+ end
- it "should print instructions about how to fix bad formatter" do
- lambda do
- @options.parse_format "Custom::BadFormatter"
- end.should raise_error(NameError, /undefined local variable or method `bad_method'/)
- end
+ it "should make diff_format unified and uses default differ_class" do
+ @options.diff_format.should == :unified
+ @options.differ_class.should equal(Spec::Expectations::Differs::Default)
+ end
- it "parse_example sets single example when argument not a file" do
- example = "something or other"
- File.file?(example).should == false
- @options.parse_example example
- @options.examples.should eql(["something or other"])
+ it "should set Spec::Expectations.differ to be a default differ" do
+ Spec::Expectations.differ.class.should ==
+ ::Spec::Expectations::Differs::Default
+ end
end
- it "parse_example sets examples to contents of file" do
- example = "#{File.dirname(__FILE__)}/examples.txt"
- File.should_receive(:file?).with(example).and_return(true)
- file = StringIO.new("Sir, if you were my husband, I would poison your drink.\nMadam, if you were my wife, I would drink it.")
- File.should_receive(:open).with(example).and_return(file)
-
- @options.parse_example example
- @options.examples.should eql([
- "Sir, if you were my husband, I would poison your drink.",
- "Madam, if you were my wife, I would drink it."
- ])
- end
- end
+ describe "#parse_diff with 'context'" do
+ before(:each) do
+ @options.parse_diff 'context'
+ end
- describe Options, "splitting class names and args" do
- before do
- @err = StringIO.new('')
- @out = StringIO.new('')
- @options = Options.new(@err, @out)
- end
-
- it "should split class names with args" do
- @options.split_at_colon('Foo').should == ['Foo', nil]
- @options.split_at_colon('Foo:arg').should == ['Foo', 'arg']
- @options.split_at_colon('Foo::Bar::Zap:arg').should == ['Foo::Bar::Zap', 'arg']
- @options.split_at_colon('Foo:arg1,arg2').should == ['Foo', 'arg1,arg2']
- @options.split_at_colon('Foo::Bar::Zap:arg1,arg2').should == ['Foo::Bar::Zap', 'arg1,arg2']
- @options.split_at_colon('Foo::Bar::Zap:drb://foo,drb://bar').should == ['Foo::Bar::Zap', 'drb://foo,drb://bar']
- end
+ it "should make diff_format context and uses default differ_class" do
+ @options.diff_format.should == :context
+ @options.differ_class.should == Spec::Expectations::Differs::Default
+ end
- it "should raise error when splitting something starting with a number" do
- lambda { @options.split_at_colon('') }.should raise_error("Couldn't parse \"\"")
+ it "should set Spec::Expectations.differ to be a default differ" do
+ Spec::Expectations.differ.class.should ==
+ ::Spec::Expectations::Differs::Default
+ end
end
- it "should raise error when not class name" do
- lambda do
- @options.load_class('foo', 'fruit', '--food')
- end.should raise_error('"foo" is not a valid class name')
+ describe "#parse_diff with Custom::Differ" do
+ before(:each) do
+ @options.parse_diff 'Custom::Differ'
+ end
+
+ it "should use custom differ_class" do
+ @options.diff_format.should == :custom
+ @options.differ_class.should == Custom::Differ
+ Spec::Expectations.differ.should be_instance_of(Custom::Differ)
+ end
+
+ it "should set Spec::Expectations.differ to be a default differ" do
+ Spec::Expectations.differ.class.should ==
+ ::Custom::Differ
+ end
end
- end
- describe Options, "receiving create_behaviour_runner" do
- before do
- @err = StringIO.new
- @out = StringIO.new
- @options = Options.new(@err, @out)
+ describe "#parse_diff with missing class name" do
+ it "should raise error" do
+ lambda { @options.parse_diff "Custom::MissingDiffer" }.should raise_error(NameError)
+ @err.string.should match(/Couldn't find differ class Custom::MissingDiffer/n)
+ end
end
- it "should fail when custom runner not found" do
- @options.runner_arg = "Whatever"
- lambda { @options.create_behaviour_runner }.should raise_error(NameError)
- @err.string.should match(/Couldn't find behaviour runner class/)
+ describe "#parse_example" do
+ it "with argument thats not a file path, sets argument as the example" do
+ example = "something or other"
+ File.file?(example).should == false
+ @options.parse_example example
+ @options.examples.should eql(["something or other"])
+ end
+
+ it "with argument that is a file path, sets examples to contents of the file" do
+ example = "#{File.dirname(__FILE__)}/examples.txt"
+ File.should_receive(:file?).with(example).and_return(true)
+ file = StringIO.new("Sir, if you were my husband, I would poison your drink.\nMadam, if you were my wife, I would drink it.")
+ File.should_receive(:open).with(example).and_return(file)
+
+ @options.parse_example example
+ @options.examples.should eql([
+ "Sir, if you were my husband, I would poison your drink.",
+ "Madam, if you were my wife, I would drink it."
+ ])
+ end
end
- it "should fail when custom runner not valid class name" do
- @options.runner_arg = "whatever"
- lambda { @options.create_behaviour_runner }.should raise_error('"whatever" is not a valid class name')
- @err.string.should match(/"whatever" is not a valid class name/)
+ describe "#examples_should_not_be_run" do
+ it "should cause #run_examples to return true and do nothing" do
+ @options.examples_should_not_be_run
+ ExampleGroupRunner.should_not_receive(:new)
+
+ @options.run_examples.should be_true
+ end
end
- it "returns nil when generate is true" do
- @options.generate = true
- @options.create_behaviour_runner.should == nil
+ describe "#load_class" do
+ it "should raise error when not class name" do
+ lambda do
+ @options.send(:load_class, 'foo', 'fruit', '--food')
+ end.should raise_error('"foo" is not a valid class name')
+ end
end
- it "returns a BehaviourRunner by default" do
- runner = @options.create_behaviour_runner
- runner.class.should == BehaviourRunner
+ describe "#reporter" do
+ it "returns a Reporter" do
+ @options.reporter.should be_instance_of(Reporter)
+ @options.reporter.options.should === @options
+ end
end
- it "does not set Expectations differ when differ_class is not set" do
- @options.differ_class = nil
- Spec::Expectations.should_not_receive(:differ=)
- @options.create_behaviour_runner
+ describe "#add_example_group affecting passed in example_group" do
+ it "runs all examples when options.examples is nil" do
+ example_1_has_run = false
+ example_2_has_run = false
+ @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do
+ it "runs 1" do
+ example_1_has_run = true
+ end
+ it "runs 2" do
+ example_2_has_run = true
+ end
+ end
+
+ @options.examples = nil
+
+ @options.add_example_group @example_group
+ @options.run_examples
+ example_1_has_run.should be_true
+ example_2_has_run.should be_true
+ end
+
+ it "keeps all example_definitions when options.examples is empty" do
+ example_1_has_run = false
+ example_2_has_run = false
+ @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do
+ it "runs 1" do
+ example_1_has_run = true
+ end
+ it "runs 2" do
+ example_2_has_run = true
+ end
+ end
+
+ @options.examples = []
+
+ @options.add_example_group @example_group
+ @options.run_examples
+ example_1_has_run.should be_true
+ example_2_has_run.should be_true
+ end
end
- it "sets Expectations differ when differ_class is set" do
- @options.differ_class = Spec::Expectations::Differs::Default
- Spec::Expectations.should_receive(:differ=).with(anything()).and_return do |arg|
- arg.class.should == Spec::Expectations::Differs::Default
+ describe "#add_example_group affecting example_group" do
+ it "adds example_group when example_group has example_definitions and is not shared" do
+ @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do
+ it "uses this example_group" do
+ end
+ end
+
+ @options.number_of_examples.should == 0
+ @options.add_example_group @example_group
+ @options.number_of_examples.should == 1
+ @options.example_groups.length.should == 1
end
- @options.configure
end
- it "creates a Reporter" do
- formatter = ::Spec::Runner::Formatter::BaseFormatter.new(:somewhere)
- @options.formatters << formatter
- reporter = Reporter.new(@formatters, @backtrace_tweaker)
- Reporter.should_receive(:new).with(@options.formatters, @options.backtrace_tweaker).and_return(reporter)
- @options.configure
- @options.reporter.should === reporter
+ describe "#remove_example_group" do
+ it "should remove the ExampleGroup from the list of ExampleGroups" do
+ @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do
+ end
+ @options.add_example_group @example_group
+ @options.example_groups.should include(@example_group)
+
+ @options.remove_example_group @example_group
+ @options.example_groups.should_not include(@example_group)
+ end
end
- it "sets colour and dry_run on the formatters" do
- @options.colour = true
- @options.dry_run = true
- formatter = ::Spec::Runner::Formatter::BaseTextFormatter.new(:somewhere)
- formatter.should_receive(:colour=).with(true)
- formatter.should_receive(:dry_run=).with(true)
- @options.formatters << formatter
- @options.configure
+ describe "#run_examples" do
+ it "should use the standard runner by default" do
+ runner = ::Spec::Runner::ExampleGroupRunner.new(@options)
+ ::Spec::Runner::ExampleGroupRunner.should_receive(:new).
+ with(@options).
+ and_return(runner)
+ @options.user_input_for_runner = nil
+
+ @options.run_examples
+ end
+
+ it "should use a custom runner when given" do
+ runner = Custom::ExampleGroupRunner.new(@options, nil)
+ Custom::ExampleGroupRunner.should_receive(:new).
+ with(@options, nil).
+ and_return(runner)
+ @options.user_input_for_runner = "Custom::ExampleGroupRunner"
+
+ @options.run_examples
+ end
+
+ it "should use a custom runner with extra options" do
+ runner = Custom::ExampleGroupRunner.new(@options, 'something')
+ Custom::ExampleGroupRunner.should_receive(:new).
+ with(@options, 'something').
+ and_return(runner)
+ @options.user_input_for_runner = "Custom::ExampleGroupRunner:something"
+
+ @options.run_examples
+ end
+
+ describe "#run_examples when there are example_group" do
+ before(:each) do
+ @options.add_example_group Class.new(::Spec::Example::ExampleGroup)
+ @options.formatters << Formatter::BaseTextFormatter.new(@options, @out)
+ end
+
+ it "runs the Examples and outputs the result" do
+ @options.run_examples
+ @out.string.should include("0 examples, 0 failures")
+ end
+
+ it "sets #examples_run? to true" do
+ @options.examples_run?.should be_false
+ @options.run_examples
+ @options.examples_run?.should be_true
+ end
+ end
+
+ describe "#run_examples when there are no example_group" do
+ before(:each) do
+ @options.formatters << Formatter::BaseTextFormatter.new(@options, @out)
+ end
+
+ it "does not run Examples and does not output a result" do
+ @options.run_examples
+ @out.string.should_not include("examples")
+ @out.string.should_not include("failures")
+ end
+
+ it "sets #examples_run? to false" do
+ @options.examples_run?.should be_false
+ @options.run_examples
+ @options.examples_run?.should be_false
+ end
+ end
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb b/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb
index 2578dbe6d..e47b6c735 100644
--- a/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb
@@ -10,13 +10,13 @@ module Spec
it "should not barf on nil backtrace" do
lambda do
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
end.should_not raise_error
end
it "should remove anything from textmate ruby bundle" do
@error.set_backtrace(["/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby.tmbundle/Support/tmruby.rb:147"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should be_empty
end
@@ -24,7 +24,7 @@ module Spec
["expectations", "mocks", "runner"].each do |child|
element="/lib/spec/#{child}/anything.rb"
@error.set_backtrace([element])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
unless (@error.backtrace.empty?)
raise("Should have tweaked away '#{element}'")
end
@@ -34,7 +34,7 @@ module Spec
it "should remove mock_frameworks/rspec" do
element = "mock_frameworks/rspec"
@error.set_backtrace([element])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
unless (@error.backtrace.empty?)
raise("Should have tweaked away '#{element}'")
end
@@ -42,13 +42,13 @@ module Spec
it "should remove bin spec" do
@error.set_backtrace(["bin/spec:"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should be_empty
end
it "should clean up double slashes" do
@error.set_backtrace(["/a//b/c//d.rb"])
- @tweaker.tweak_backtrace(@error, "spec name")
+ @tweaker.tweak_backtrace(@error)
@error.backtrace.should include("/a/b/c/d.rb")
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb b/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb
index 574625ce8..52377e7f3 100644
--- a/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb
@@ -2,203 +2,187 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
module Spec
module Runner
-
- module ReporterSpecHelper
- def setup
- @io = StringIO.new
+ describe Reporter do
+ attr_reader :formatter_output, :options, :backtrace_tweaker, :formatter, :reporter, :example_group
+ before(:each) do
+ @formatter_output = StringIO.new
+ @options = Options.new(StringIO.new, StringIO.new)
@backtrace_tweaker = stub("backtrace tweaker", :tweak_backtrace => nil)
- @formatter = mock("formatter")
- @reporter = Reporter.new([@formatter], @backtrace_tweaker)
+ options.backtrace_tweaker = backtrace_tweaker
+ @formatter = ::Spec::Runner::Formatter::BaseTextFormatter.new(options, formatter_output)
+ options.formatters << formatter
+ @reporter = Reporter.new(options)
+ @example_group = create_example_group("example_group")
+ reporter.add_example_group example_group
end
def failure
Mocks::DuckTypeArgConstraint.new(:header, :exception)
end
-
- def description(s)
- Spec::DSL::Description.new(s)
+
+ def create_example_group(description_text)
+ example_group = Class.new(Spec::Example::ExampleGroup)
+ example_group.describe description_text
+ example_group
end
- end
-
- describe Reporter do
- include ReporterSpecHelper
- before(:each) {setup}
-
- it "should tell formatter when behaviour is added" do
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @reporter.add_behaviour(description("behaviour"))
+
+ it "should assign itself as the reporter to options" do
+ options.reporter.should equal(@reporter)
+ end
+
+ it "should tell formatter when example_group is added" do
+ formatter.should_receive(:add_example_group).with(example_group)
+ reporter.add_example_group(example_group)
end
- it "should handle multiple behaviours with same name" do
- @formatter.should_receive(:add_behaviour).exactly(3).times
- @formatter.should_receive(:example_started).exactly(3).times
- @formatter.should_receive(:example_passed).exactly(3).times
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:close).with(no_args)
- @formatter.should_receive(:dump_summary).with(anything(), 3, 0, 0)
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_started("spec 1")
- @reporter.example_finished("spec 1")
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_started("spec 2")
- @reporter.example_finished("spec 2")
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_started("spec 3")
- @reporter.example_finished("spec 3")
- @reporter.dump
+ it "should handle multiple example_groups with same name" do
+ formatter.should_receive(:add_example_group).exactly(3).times
+ formatter.should_receive(:example_started).exactly(3).times
+ formatter.should_receive(:example_passed).exactly(3).times
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:close).with(no_args)
+ formatter.should_receive(:dump_summary).with(anything(), 3, 0, 0)
+ reporter.add_example_group(create_example_group("example_group"))
+ reporter.example_started("spec 1")
+ reporter.example_finished("spec 1")
+ reporter.add_example_group(create_example_group("example_group"))
+ reporter.example_started("spec 2")
+ reporter.example_finished("spec 2")
+ reporter.add_example_group(create_example_group("example_group"))
+ reporter.example_started("spec 3")
+ reporter.example_finished("spec 3")
+ reporter.dump
end
it "should handle multiple examples with the same name" do
error=RuntimeError.new
- @formatter.should_receive(:add_behaviour).exactly(2).times
- @formatter.should_receive(:example_passed).with("example").exactly(2).times
- @formatter.should_receive(:example_failed).with("example", 1, failure)
- @formatter.should_receive(:example_failed).with("example", 2, failure)
- @formatter.should_receive(:dump_failure).exactly(2).times
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:close).with(no_args)
- @formatter.should_receive(:dump_summary).with(anything(), 4, 2, 0)
- @backtrace_tweaker.should_receive(:tweak_backtrace).twice
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_finished("example")
- @reporter.example_finished("example", error)
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_finished("example")
- @reporter.example_finished("example", error)
- @reporter.dump
+ passing = ExampleGroup.new("example")
+ failing = ExampleGroup.new("example")
+
+ formatter.should_receive(:add_example_group).exactly(2).times
+ formatter.should_receive(:example_passed).with(passing).exactly(2).times
+ formatter.should_receive(:example_failed).with(failing, 1, failure)
+ formatter.should_receive(:example_failed).with(failing, 2, failure)
+ formatter.should_receive(:dump_failure).exactly(2).times
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:close).with(no_args)
+ formatter.should_receive(:dump_summary).with(anything(), 4, 2, 0)
+ backtrace_tweaker.should_receive(:tweak_backtrace).twice
+
+ reporter.add_example_group(create_example_group("example_group"))
+ reporter.example_finished(passing)
+ reporter.example_finished(failing, error)
+
+ reporter.add_example_group(create_example_group("example_group"))
+ reporter.example_finished(passing)
+ reporter.example_finished(failing, error)
+ reporter.dump
end
it "should push stats to formatter even with no data" do
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:dump_summary).with(anything(), 0, 0, 0)
- @formatter.should_receive(:close).with(no_args)
- @reporter.dump
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:dump_summary).with(anything(), 0, 0, 0)
+ formatter.should_receive(:close).with(no_args)
+ reporter.dump
end
-
+
it "should push time to formatter" do
- @formatter.should_receive(:start).with(5)
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:close).with(no_args)
- @formatter.should_receive(:dump_summary) do |time, a, b|
+ formatter.should_receive(:start).with(5)
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:close).with(no_args)
+ formatter.should_receive(:dump_summary) do |time, a, b|
time.to_s.should match(/[0-9].[0-9|e|-]+/)
end
- @reporter.start(5)
- @reporter.end
- @reporter.dump
- end
- end
-
- describe Reporter, "reporting one passing example" do
- include ReporterSpecHelper
- before(:each) {setup}
-
- it "should tell formatter example passed" do
- @formatter.should_receive(:example_passed)
- @reporter.example_finished("example")
- end
-
- it "should not delegate to backtrace tweaker" do
- @formatter.should_receive(:example_passed)
- @backtrace_tweaker.should_not_receive(:tweak_backtrace)
- @reporter.example_finished("example")
+ reporter.start(5)
+ reporter.end
+ reporter.dump
end
- it "should account for passing example in stats" do
- @formatter.should_receive(:example_passed)
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:dump_summary).with(anything(), 1, 0, 0)
- @formatter.should_receive(:close).with(no_args)
- @reporter.example_finished("example")
- @reporter.dump
- end
- end
+ describe Reporter, "reporting one passing example" do
+ it "should tell formatter example passed" do
+ formatter.should_receive(:example_passed)
+ reporter.example_finished("example")
+ end
- describe Reporter, "reporting one failing example" do
- include ReporterSpecHelper
- before(:each) {setup}
+ it "should not delegate to backtrace tweaker" do
+ formatter.should_receive(:example_passed)
+ backtrace_tweaker.should_not_receive(:tweak_backtrace)
+ reporter.example_finished("example")
+ end
- it "should tell formatter that example failed" do
- @formatter.should_receive(:example_failed)
- @reporter.example_finished("example", RuntimeError.new)
- end
-
- it "should delegate to backtrace tweaker" do
- @formatter.should_receive(:example_failed)
- @backtrace_tweaker.should_receive(:tweak_backtrace)
- @reporter.example_finished("spec", RuntimeError.new)
+ it "should account for passing example in stats" do
+ formatter.should_receive(:example_passed)
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:dump_summary).with(anything(), 1, 0, 0)
+ formatter.should_receive(:close).with(no_args)
+ reporter.example_finished("example")
+ reporter.dump
+ end
end
- it "should account for failing example in stats" do
- @formatter.should_receive(:add_behaviour)
- @formatter.should_receive(:example_failed).with("example", 1, failure)
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:dump_failure).with(1, anything())
- @formatter.should_receive(:dump_summary).with(anything(), 1, 1, 0)
- @formatter.should_receive(:close).with(no_args)
- @reporter.add_behaviour(description("behaviour"))
- @reporter.example_finished("example", RuntimeError.new)
- @reporter.dump
- end
-
- end
-
- describe Reporter, "reporting one pending example (Not Yet Implemented)" do
- include ReporterSpecHelper
- before(:each) {setup}
-
- it "should tell formatter example is pending" do
- @formatter.should_receive(:example_pending).with(description("behaviour"), "example", "Not Yet Implemented")
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @reporter.add_behaviour(description('behaviour'))
- @reporter.example_finished("example", nil, nil, true)
- end
+ describe Reporter, "reporting one failing example" do
+ it "should tell formatter that example failed" do
+ formatter.should_receive(:example_failed)
+ reporter.example_finished(example_group, RuntimeError.new)
+ end
- it "should account for pending example in stats" do
- @formatter.should_receive(:example_pending).with(description("behaviour"), "example", "Not Yet Implemented")
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1)
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @formatter.should_receive(:close).with(no_args)
- @reporter.add_behaviour(description('behaviour'))
- @reporter.example_finished("example", nil, nil, true)
- @reporter.dump
- end
- end
+ it "should delegate to backtrace tweaker" do
+ formatter.should_receive(:example_failed)
+ backtrace_tweaker.should_receive(:tweak_backtrace)
+ reporter.example_finished(ExampleGroup.new("example"), RuntimeError.new)
+ end
- describe Reporter, "reporting one pending example (ExamplePendingError)" do
- include ReporterSpecHelper
- before(:each) {setup}
+ it "should account for failing example in stats" do
+ example = ExampleGroup.new("example")
+ formatter.should_receive(:example_failed).with(example, 1, failure)
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:dump_failure).with(1, anything())
+ formatter.should_receive(:dump_summary).with(anything(), 1, 1, 0)
+ formatter.should_receive(:close).with(no_args)
+ reporter.example_finished(example, RuntimeError.new)
+ reporter.dump
+ end
- it "should tell formatter example is pending" do
- @formatter.should_receive(:example_pending).with(description("behaviour"), "example", "reason")
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @reporter.add_behaviour(description('behaviour'))
- @reporter.example_finished("example", Spec::DSL::ExamplePendingError.new("reason"), nil, false)
end
- it "should account for pending example in stats" do
- @formatter.should_receive(:example_pending).with(description("behaviour"), "example", "reason")
- @formatter.should_receive(:start_dump)
- @formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1)
- @formatter.should_receive(:close).with(no_args)
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @reporter.add_behaviour(description('behaviour'))
- @reporter.example_finished("example", Spec::DSL::ExamplePendingError.new("reason"), nil, false)
- @reporter.dump
- end
- end
+ describe Reporter, "reporting one pending example (ExamplePendingError)" do
+ it "should tell formatter example is pending" do
+ example = ExampleGroup.new("example")
+ formatter.should_receive(:example_pending).with(example_group.description, example, "reason")
+ formatter.should_receive(:add_example_group).with(example_group)
+ reporter.add_example_group(example_group)
+ reporter.example_finished(example, Spec::Example::ExamplePendingError.new("reason"))
+ end
- describe Reporter, "reporting one pending example (PendingFixedError)" do
- include ReporterSpecHelper
- before(:each) {setup}
+ it "should account for pending example in stats" do
+ example = ExampleGroup.new("example")
+ formatter.should_receive(:example_pending).with(example_group.description, example, "reason")
+ formatter.should_receive(:start_dump)
+ formatter.should_receive(:dump_pending)
+ formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1)
+ formatter.should_receive(:close).with(no_args)
+ formatter.should_receive(:add_example_group).with(example_group)
+ reporter.add_example_group(example_group)
+ reporter.example_finished(example, Spec::Example::ExamplePendingError.new("reason"))
+ reporter.dump
+ end
+ end
- it "should tell formatter pending example is fixed" do
- @formatter.should_receive(:example_failed) do |name, counter, failure|
- failure.header.should == "'behaviour example' FIXED"
+ describe Reporter, "reporting one pending example (PendingExampleFixedError)" do
+ it "should tell formatter pending example is fixed" do
+ formatter.should_receive(:example_failed) do |name, counter, failure|
+ failure.header.should == "'example_group example' FIXED"
+ end
+ formatter.should_receive(:add_example_group).with(example_group)
+ reporter.add_example_group(example_group)
+ reporter.example_finished(ExampleGroup.new("example"), Spec::Example::PendingExampleFixedError.new("reason"))
end
- @formatter.should_receive(:add_behaviour).with(description("behaviour"))
- @reporter.add_behaviour(description('behaviour'))
- @reporter.example_finished("example", Spec::DSL::PendingFixedError.new("reason"), nil, false)
end
end
end
diff --git a/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb b/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb
index 6fb83dc35..301155d04 100644
--- a/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb
@@ -37,6 +37,21 @@ describe SpecParserSubject, "described" do
end
+describe SpecParserSubject, "described", :something => :something_else do
+
+ it "7" do
+ end
+
+end
+
+describe "described", :something => :something_else do
+
+ it "8" do
+ end
+
+end
+
+
describe "SpecParser" do
before(:each) do
@p = Spec::Runner::SpecParser.new
@@ -89,5 +104,21 @@ describe "SpecParser" do
it "should find context and description and example for type" do
@p.spec_name_for(File.open(__FILE__), 36).should == "SpecParserSubject described 6"
end
+
+ it "should find context and description for type with modifications" do
+ @p.spec_name_for(File.open(__FILE__), 40).should == "SpecParserSubject described"
+ end
+
+ it "should find context and described and example for type with modifications" do
+ @p.spec_name_for(File.open(__FILE__), 43).should == "SpecParserSubject described 7"
+ end
+
+ it "should find example group" do
+ @p.spec_name_for(File.open(__FILE__), 47).should == "described"
+ end
+
+ it "should find example" do
+ @p.spec_name_for(File.open(__FILE__), 50).should == "described 8"
+ end
end
diff --git a/vendor/plugins/rspec/spec/spec/spec_classes.rb b/vendor/plugins/rspec/spec/spec/spec_classes.rb
index 89eee72c4..73b0e33e8 100644
--- a/vendor/plugins/rspec/spec/spec/spec_classes.rb
+++ b/vendor/plugins/rspec/spec/spec/spec_classes.rb
@@ -51,6 +51,9 @@ module Spec
[1]
end
+ def items
+ @items_in_collection_with_size_method
+ end
end
class HandCodedMock
@@ -96,10 +99,12 @@ module Spec
end
module Custom
+ require 'spec/runner/formatter/base_text_formatter'
class Formatter < Spec::Runner::Formatter::BaseTextFormatter
- attr_reader :where
+ attr_reader :options, :where
- def initialize(where)
+ def initialize(options, where)
+ @options = options
@where = where
end
end
@@ -107,13 +112,18 @@ module Custom
class BadFormatter < Spec::Runner::Formatter::BaseTextFormatter
attr_reader :where
- def initialize(where)
+ def initialize(options, where)
bad_method
end
end
- class BehaviourRunner
- def initialize(options, arg=nil); end
+ class Differ
+ attr_reader :options
+ def initialize(options)
+ @options = options
+ end
end
end
+class FakeReporter < Spec::Runner::Reporter
+end
diff --git a/vendor/plugins/rspec/spec/spec/translator_spec.rb b/vendor/plugins/rspec/spec/spec/translator_spec.rb
index e11983a42..01293d9ee 100644
--- a/vendor/plugins/rspec/spec/spec/translator_spec.rb
+++ b/vendor/plugins/rspec/spec/spec/translator_spec.rb
@@ -1,4 +1,5 @@
require File.dirname(__FILE__) + '/../spec_helper.rb'
+require 'spec/translator'
describe "Translator" do
before do
@@ -7,7 +8,7 @@ describe "Translator" do
it "should translate files" do
from = File.dirname(__FILE__) + '/..'
- to = File.dirname(__FILE__) + '/../../translated_specs'
+ to = "#{Dir.tmpdir}/translated_specs"
@t.translate_dir(from, to)
end
diff --git a/vendor/plugins/rspec/spec/spec_helper.rb b/vendor/plugins/rspec/spec/spec_helper.rb
index a7a4a82db..1318176d5 100644
--- a/vendor/plugins/rspec/spec/spec_helper.rb
+++ b/vendor/plugins/rspec/spec/spec_helper.rb
@@ -1,5 +1,4 @@
require 'stringio'
-require 'rbconfig'
dir = File.dirname(__FILE__)
lib_path = File.expand_path("#{dir}/../lib")
@@ -8,9 +7,10 @@ $_spec_spec = true # Prevents Kernel.exit in various places
require 'spec'
require 'spec/mocks'
-require 'hpricot' # Needed to compare generated with wanted HTML
+require 'spec/story'
spec_classes_path = File.expand_path("#{dir}/../spec/spec/spec_classes")
require spec_classes_path unless $LOAD_PATH.include?(spec_classes_path)
+require File.dirname(__FILE__) + '/../lib/spec/expectations/differs/default'
module Spec
module Matchers
@@ -40,7 +40,64 @@ module Spec
def pass
Pass.new
end
+
+ class CorrectlyOrderedMockExpectation
+ def initialize(&event)
+ @event = event
+ end
+
+ def expect(&expectations)
+ expectations.call
+ @event.call
+ end
+ end
+
+ def during(&block)
+ CorrectlyOrderedMockExpectation.new(&block)
+ end
end
end
class NonStandardError < Exception; end
+
+module Custom
+ class ExampleGroupRunner
+ attr_reader :options, :arg
+ def initialize(options, arg)
+ @options, @arg = options, arg
+ end
+
+ def load_files(files)
+ end
+
+ def run
+ end
+ end
+end
+
+def exception_from(&block)
+ exception = nil
+ begin
+ yield
+ rescue StandardError => e
+ exception = e
+ end
+ exception
+end
+
+describe "sandboxed rspec_options", :shared => true do
+ attr_reader :options
+
+ before(:all) do
+ @original_rspec_options = $rspec_options
+ end
+
+ before(:each) do
+ @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
+ $rspec_options = options
+ end
+
+ after do
+ $rspec_options = @original_rspec_options
+ end
+end \ No newline at end of file