You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
437 lines
14 KiB
437 lines
14 KiB
From 4683f35469dbb69fa291ea35be4e7a74090a8b24 Mon Sep 17 00:00:00 2001
|
|
From: Balasankar C <balasankarc@autistici.org>
|
|
Date: Sat, 28 Nov 2015 17:55:09 +0530
|
|
Subject: [PATCH] Port tests to RSpec 3
|
|
|
|
---
|
|
Rakefile | 2 +-
|
|
gemspec.yml | 2 +-
|
|
spec/diff_spec.rb | 226 ++++++++++++++++++++++----------------------
|
|
spec/spec_helper.rb | 2 +-
|
|
4 files changed, 116 insertions(+), 116 deletions(-)
|
|
|
|
diff --git a/Rakefile b/Rakefile
|
|
index 1b8a92d..7fb967c 100644
|
|
--- a/Rakefile
|
|
+++ b/Rakefile
|
|
@@ -12,7 +12,7 @@ rescue LoadError => e
|
|
end
|
|
|
|
begin
|
|
- gem 'rspec', '~> 2.4'
|
|
+ gem 'rspec', '~> 3.0'
|
|
require 'rspec/core/rake_task'
|
|
|
|
RSpec::Core::RakeTask.new
|
|
diff --git a/gemspec.yml b/gemspec.yml
|
|
index 5ae611d..d775248 100644
|
|
--- a/gemspec.yml
|
|
+++ b/gemspec.yml
|
|
@@ -18,5 +18,5 @@ dependencies:
|
|
|
|
development_dependencies:
|
|
rubygems-tasks: ~> 0.1
|
|
- rspec: ~> 2.4
|
|
+ rspec: ~> 3.0
|
|
yard: ~> 0.7
|
|
diff --git a/spec/diff_spec.rb b/spec/diff_spec.rb
|
|
index 6450c49..adfaaa8 100644
|
|
--- a/spec/diff_spec.rb
|
|
+++ b/spec/diff_spec.rb
|
|
@@ -21,197 +21,197 @@
|
|
let(:removed_attr) { Nokogiri::XML('<div><p>one</p></div>') }
|
|
|
|
it "should add #diff to Nokogiri::XML::Docuemnt" do
|
|
- doc.should respond_to(:diff)
|
|
+ expect(doc).to respond_to(:diff)
|
|
end
|
|
|
|
it "should add #diff to Nokogiri::XML::Element" do
|
|
- added_element.at('div').should respond_to(:diff)
|
|
+ expect(added_element.at('div')).to respond_to(:diff)
|
|
end
|
|
|
|
it "should add #diff to Nokogiri::XML::Text" do
|
|
- added_text.at('p/text()').should respond_to(:diff)
|
|
+ expect(added_text.at('p/text()')).to respond_to(:diff)
|
|
end
|
|
|
|
it "should add #diff to Nokogiri::XML::Attr" do
|
|
- added_attr.at('p/@id').should respond_to(:diff)
|
|
+ expect(added_attr.at('p/@id')).to respond_to(:diff)
|
|
end
|
|
|
|
it "should not compare the Document objects" do
|
|
change = doc.diff(doc).first
|
|
|
|
- change[0].should == ' '
|
|
- change[1].should == doc.root
|
|
+ expect(change[0]).to eq(' ')
|
|
+ expect(change[1]).to eq(doc.root)
|
|
end
|
|
|
|
it "should determine when two different documents are identical" do
|
|
- doc.diff(Nokogiri::XML(contents)).all? { |change,node|
|
|
+ expect(doc.diff(Nokogiri::XML(contents)).all? { |change,node|
|
|
change == ' '
|
|
- }.should == true
|
|
+ }).to eq(true)
|
|
end
|
|
|
|
it "should search down within Nokogiri::XML::Document objects" do
|
|
- doc.diff(changed_text).any? { |change,node|
|
|
+ expect(doc.diff(changed_text).any? { |change,node|
|
|
change != ' '
|
|
- }.should == true
|
|
+ }).to eq(true)
|
|
end
|
|
|
|
it "should determine when text nodes are added" do
|
|
changes = doc.at('div').diff(added_text.at('div')).to_a
|
|
|
|
- changes.length.should == 4
|
|
+ expect(changes.length).to eq(4)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == doc.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(doc.at('div'))
|
|
|
|
- changes[1][0].should == ' '
|
|
- changes[1][1].should == doc.at('//p')
|
|
+ expect(changes[1][0]).to eq(' ')
|
|
+ expect(changes[1][1]).to eq(doc.at('//p'))
|
|
|
|
- changes[2][0].should == '+'
|
|
- changes[2][1].should == added_text.at('//div/text()')
|
|
+ expect(changes[2][0]).to eq('+')
|
|
+ expect(changes[2][1]).to eq(added_text.at('//div/text()'))
|
|
|
|
- changes[3][0].should == ' '
|
|
- changes[3][1].should == doc.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq(' ')
|
|
+ expect(changes[3][1]).to eq(doc.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when elements are added" do
|
|
changes = doc.at('div').diff(added_element.at('div')).to_a
|
|
|
|
- changes.length.should == 5
|
|
+ expect(changes.length).to eq(5)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == doc.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(doc.at('div'))
|
|
|
|
- changes[1][0].should == '+'
|
|
- changes[1][1].should == added_element.at('//p[1]')
|
|
+ expect(changes[1][0]).to eq('+')
|
|
+ expect(changes[1][1]).to eq(added_element.at('//p[1]'))
|
|
|
|
- changes[2][0].should == ' '
|
|
- changes[2][1].should == doc.at('//p')
|
|
+ expect(changes[2][0]).to eq(' ')
|
|
+ expect(changes[2][1]).to eq(doc.at('//p'))
|
|
|
|
- changes[3][0].should == '-'
|
|
- changes[3][1].should == doc.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq('-')
|
|
+ expect(changes[3][1]).to eq(doc.at('//p/text()'))
|
|
|
|
- changes[4][0].should == '+'
|
|
- changes[4][1].should == added_element.at('//p[2]/text()')
|
|
+ expect(changes[4][0]).to eq('+')
|
|
+ expect(changes[4][1]).to eq(added_element.at('//p[2]/text()'))
|
|
end
|
|
|
|
it "should ignore when attribute order changes" do
|
|
changes = added_attrs.at('p').diff(changed_attr_order.at('p')).to_a
|
|
|
|
- changes.all? { |change| change[0] == ' ' }.should be_true
|
|
+ expect(changes.all? { |change| change[0] == ' ' }).to be_truthy
|
|
end
|
|
|
|
it "should determine when attributes are added" do
|
|
changes = doc.at('p').diff(added_attr.at('p')).to_a
|
|
|
|
- changes.length.should == 3
|
|
+ expect(changes.length).to eq(3)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == doc.at('p')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(doc.at('p'))
|
|
|
|
- changes[1][0].should == '+'
|
|
- changes[1][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[1][0]).to eq('+')
|
|
+ expect(changes[1][1]).to eq(added_attr.at('//p/@id'))
|
|
|
|
- changes[2][0].should == ' '
|
|
- changes[2][1].should == doc.at('//p/text()')
|
|
+ expect(changes[2][0]).to eq(' ')
|
|
+ expect(changes[2][1]).to eq(doc.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when text nodes differ" do
|
|
changes = doc.at('p').diff(changed_text.at('p')).to_a
|
|
|
|
- changes.length.should == 3
|
|
+ expect(changes.length).to eq(3)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == doc.at('p')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(doc.at('p'))
|
|
|
|
- changes[1][0].should == '-'
|
|
- changes[1][1].should == doc.at('//p/text()')
|
|
+ expect(changes[1][0]).to eq('-')
|
|
+ expect(changes[1][1]).to eq(doc.at('//p/text()'))
|
|
|
|
- changes[2][0].should == '+'
|
|
- changes[2][1].should == changed_text.at('//p/text()')
|
|
+ expect(changes[2][0]).to eq('+')
|
|
+ expect(changes[2][1]).to eq(changed_text.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when element names differ" do
|
|
changes = doc.at('div').diff(changed_element.at('div')).to_a
|
|
|
|
- changes.length.should == 3
|
|
+ expect(changes.length).to eq(3)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == doc.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(doc.at('div'))
|
|
|
|
- changes[1][0].should == '-'
|
|
- changes[1][1].should == doc.at('p')
|
|
+ expect(changes[1][0]).to eq('-')
|
|
+ expect(changes[1][1]).to eq(doc.at('p'))
|
|
|
|
- changes[2][0].should == '+'
|
|
- changes[2][1].should == changed_element.at('span')
|
|
+ expect(changes[2][0]).to eq('+')
|
|
+ expect(changes[2][1]).to eq(changed_element.at('span'))
|
|
end
|
|
|
|
it "should determine when attribute names differ" do
|
|
changes = added_attr.at('p').diff(changed_attr_name.at('p')).to_a
|
|
|
|
- changes.length.should == 4
|
|
+ expect(changes.length).to eq(4)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == added_attr.at('p')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(added_attr.at('p'))
|
|
|
|
- changes[1][0].should == '-'
|
|
- changes[1][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[1][0]).to eq('-')
|
|
+ expect(changes[1][1]).to eq(added_attr.at('//p/@id'))
|
|
|
|
- changes[2][0].should == '+'
|
|
- changes[2][1].should == changed_attr_name.at('//p/@i')
|
|
+ expect(changes[2][0]).to eq('+')
|
|
+ expect(changes[2][1]).to eq(changed_attr_name.at('//p/@i'))
|
|
|
|
- changes[3][0].should == ' '
|
|
- changes[3][1].should == added_attr.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq(' ')
|
|
+ expect(changes[3][1]).to eq(added_attr.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when attribute values differ" do
|
|
changes = added_attr.at('p').diff(changed_attr_value.at('p')).to_a
|
|
|
|
- changes.length.should == 4
|
|
+ expect(changes.length).to eq(4)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == added_attr.at('p')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(added_attr.at('p'))
|
|
|
|
- changes[1][0].should == '-'
|
|
- changes[1][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[1][0]).to eq('-')
|
|
+ expect(changes[1][1]).to eq(added_attr.at('//p/@id'))
|
|
|
|
- changes[2][0].should == '+'
|
|
- changes[2][1].should == changed_attr_value.at('//p/@id')
|
|
+ expect(changes[2][0]).to eq('+')
|
|
+ expect(changes[2][1]).to eq(changed_attr_value.at('//p/@id'))
|
|
|
|
- changes[3][0].should == ' '
|
|
- changes[3][1].should == added_attr.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq(' ')
|
|
+ expect(changes[3][1]).to eq(added_attr.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when text nodes are removed" do
|
|
changes = added_text.at('div').diff(removed_text.at('div')).to_a
|
|
|
|
- changes.length.should == 4
|
|
+ expect(changes.length).to eq(4)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == added_text.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(added_text.at('div'))
|
|
|
|
- changes[1][0].should == ' '
|
|
- changes[1][1].should == added_text.at('p')
|
|
+ expect(changes[1][0]).to eq(' ')
|
|
+ expect(changes[1][1]).to eq(added_text.at('p'))
|
|
|
|
- changes[2][0].should == ' '
|
|
- changes[2][1].should == added_text.at('//div/text()')
|
|
+ expect(changes[2][0]).to eq(' ')
|
|
+ expect(changes[2][1]).to eq(added_text.at('//div/text()'))
|
|
|
|
- changes[3][0].should == '-'
|
|
- changes[3][1].should == added_text.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq('-')
|
|
+ expect(changes[3][1]).to eq(added_text.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine when elements are removed" do
|
|
changes = added_element.at('div').diff(removed_element.at('div')).to_a
|
|
|
|
- changes.length.should == 3
|
|
+ expect(changes.length).to eq(3)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == added_element.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(added_element.at('div'))
|
|
|
|
- changes[1][0].should == '-'
|
|
- changes[1][1].should == added_element.at('//p[1]')
|
|
+ expect(changes[1][0]).to eq('-')
|
|
+ expect(changes[1][1]).to eq(added_element.at('//p[1]'))
|
|
|
|
- changes[2][0].should == '-'
|
|
- changes[2][1].should == added_element.at('//p[2]')
|
|
+ expect(changes[2][0]).to eq('-')
|
|
+ expect(changes[2][1]).to eq(added_element.at('//p[2]'))
|
|
end
|
|
|
|
it "should ignore when attributes change order" do
|
|
@@ -220,47 +220,47 @@
|
|
it "should determine when attributes are removed" do
|
|
changes = added_attr.at('div').diff(removed_attr.at('div')).to_a
|
|
|
|
- changes.length.should == 4
|
|
+ expect(changes.length).to eq(4)
|
|
|
|
- changes[0][0].should == ' '
|
|
- changes[0][1].should == added_attr.at('div')
|
|
+ expect(changes[0][0]).to eq(' ')
|
|
+ expect(changes[0][1]).to eq(added_attr.at('div'))
|
|
|
|
- changes[1][0].should == ' '
|
|
- changes[1][1].should == added_attr.at('p')
|
|
+ expect(changes[1][0]).to eq(' ')
|
|
+ expect(changes[1][1]).to eq(added_attr.at('p'))
|
|
|
|
- changes[2][0].should == '-'
|
|
- changes[2][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[2][0]).to eq('-')
|
|
+ expect(changes[2][1]).to eq(added_attr.at('//p/@id'))
|
|
|
|
- changes[3][0].should == ' '
|
|
- changes[3][1].should == added_attr.at('//p/text()')
|
|
+ expect(changes[3][0]).to eq(' ')
|
|
+ expect(changes[3][1]).to eq(added_attr.at('//p/text()'))
|
|
end
|
|
|
|
context ":added" do
|
|
it "should determine only when text nodes are added" do
|
|
changes = doc.at('div').diff(added_text.at('div'), :added => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '+'
|
|
- changes[0][1].should == added_text.at('//div/text()')
|
|
+ expect(changes[0][0]).to eq('+')
|
|
+ expect(changes[0][1]).to eq(added_text.at('//div/text()'))
|
|
end
|
|
|
|
it "should determine only when elements are added" do
|
|
changes = doc.at('div').diff(added_element.at('div'), :added => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '+'
|
|
- changes[0][1].should == added_element.at('//div/p[2]')
|
|
+ expect(changes[0][0]).to eq('+')
|
|
+ expect(changes[0][1]).to eq(added_element.at('//div/p[2]'))
|
|
end
|
|
|
|
it "should determine only when attributes are added" do
|
|
changes = doc.at('div').diff(added_attr.at('div'), :added => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '+'
|
|
- changes[0][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[0][0]).to eq('+')
|
|
+ expect(changes[0][1]).to eq(added_attr.at('//p/@id'))
|
|
end
|
|
end
|
|
|
|
@@ -268,28 +268,28 @@
|
|
it "should determine only when text nodes are removed" do
|
|
changes = doc.at('div').diff(removed_text.at('div'), :removed => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '-'
|
|
- changes[0][1].should == doc.at('//p/text()')
|
|
+ expect(changes[0][0]).to eq('-')
|
|
+ expect(changes[0][1]).to eq(doc.at('//p/text()'))
|
|
end
|
|
|
|
it "should determine only when elements are removed" do
|
|
changes = doc.at('div').diff(removed_element.at('div'), :removed => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '-'
|
|
- changes[0][1].should == doc.at('//div/p')
|
|
+ expect(changes[0][0]).to eq('-')
|
|
+ expect(changes[0][1]).to eq(doc.at('//div/p'))
|
|
end
|
|
|
|
it "should determine only when attributes are removed" do
|
|
changes = added_attr.at('div').diff(removed_attr.at('div'), :removed => true).to_a
|
|
|
|
- changes.length.should == 1
|
|
+ expect(changes.length).to eq(1)
|
|
|
|
- changes[0][0].should == '-'
|
|
- changes[0][1].should == added_attr.at('//p/@id')
|
|
+ expect(changes[0][0]).to eq('-')
|
|
+ expect(changes[0][1]).to eq(added_attr.at('//p/@id'))
|
|
end
|
|
end
|
|
end
|
|
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
|
|
index 4b9ecea..5f26cbb 100644
|
|
--- a/spec/spec_helper.rb
|
|
+++ b/spec/spec_helper.rb
|
|
@@ -1,2 +1,2 @@
|
|
-gem 'rspec', '~> 2.4'
|
|
+gem 'rspec', '~> 3.0'
|
|
require 'rspec'
|