diff --git a/spec/oga/css/evaluator/pseudo_classes/nth_last_of_type_spec.rb b/spec/oga/css/evaluator/pseudo_classes/nth_last_of_type_spec.rb
index 6477d16..411ec2d 100644
--- a/spec/oga/css/evaluator/pseudo_classes/nth_last_of_type_spec.rb
+++ b/spec/oga/css/evaluator/pseudo_classes/nth_last_of_type_spec.rb
@@ -3,48 +3,57 @@ require 'spec_helper'
describe 'CSS selector evaluation' do
context ':nth-last-of-type pseudo class' do
before do
- @document = parse('')
+ @document = parse(<<-EOF.strip)
+
+
+
+
+
+
+
+
+ EOF
@root = @document.children[0]
- @a1 = @root.children[0]
- @a2 = @root.children[1]
- @a3 = @root.children[2]
- @a4 = @root.children[3]
+ @a1 = @root.at_xpath('a[1]')
+ @a2 = @root.at_xpath('a[2]')
+ @a3 = @root.at_xpath('a[3]')
+ @a4 = @root.at_xpath('b/a')
end
- example 'return a node set containing the last node' do
- evaluate_css(@document, 'root :nth-last-of-type(1)')
- .should == node_set(@a4)
- end
-
- example 'return a node set containing even nodes' do
- evaluate_css(@document, 'root :nth-last-of-type(even)')
- .should == node_set(@a1, @a3)
- end
-
- example 'return a node set containing odd nodes' do
- evaluate_css(@document, 'root :nth-last-of-type(odd)')
- .should == node_set(@a2, @a4)
- end
-
- example 'return a node set containing every 2 nodes starting at node 3' do
- evaluate_css(@document, 'root :nth-last-of-type(2n+2)')
- .should == node_set(@a1, @a3)
- end
-
- example 'return a node set containing all nodes' do
- evaluate_css(@document, 'root :nth-last-of-type(n)')
- .should == @root.children
- end
-
- example 'return a node set containing the first two nodes' do
- evaluate_css(@document, 'root :nth-last-of-type(-n+2)')
+ example 'return a node set containing the first child node' do
+ evaluate_css(@document, 'root a:nth-last-of-type(1)')
.should == node_set(@a3, @a4)
end
+ example 'return a node set containing even nodes' do
+ evaluate_css(@document, 'root a:nth-last-of-type(even)')
+ .should == node_set(@a2)
+ end
+
+ example 'return a node set containing odd nodes' do
+ evaluate_css(@document, 'root a:nth-last-of-type(odd)')
+ .should == node_set(@a1, @a3, @a4)
+ end
+
+ example 'return a node set containing every 2 nodes starting at node 2' do
+ evaluate_css(@document, 'root a:nth-last-of-type(2n+2)')
+ .should == node_set(@a2)
+ end
+
+ example 'return a node set containing all nodes' do
+ evaluate_css(@document, 'root a:nth-last-of-type(n)')
+ .should == node_set(@a1, @a2, @a3, @a4)
+ end
+
+ example 'return a node set containing the first two nodes' do
+ evaluate_css(@document, 'root a:nth-last-of-type(-n+2)')
+ .should == node_set(@a2, @a3, @a4)
+ end
+
example 'return a node set containing all nodes starting at node 2' do
- evaluate_css(@document, 'root :nth-last-of-type(n+2)')
- .should == node_set(@a1, @a2, @a3)
+ evaluate_css(@document, 'root a:nth-last-of-type(n+2)')
+ .should == node_set(@a1, @a2)
end
end
end
diff --git a/spec/oga/css/evaluator/pseudo_classes/nth_of_type_spec.rb b/spec/oga/css/evaluator/pseudo_classes/nth_of_type_spec.rb
index 1b15dfd..aec5266 100644
--- a/spec/oga/css/evaluator/pseudo_classes/nth_of_type_spec.rb
+++ b/spec/oga/css/evaluator/pseudo_classes/nth_of_type_spec.rb
@@ -3,46 +3,57 @@ require 'spec_helper'
describe 'CSS selector evaluation' do
context ':nth-of-type pseudo class' do
before do
- @document = parse('')
+ @document = parse(<<-EOF.strip)
+
+
+
+
+
+
+
+
+ EOF
@root = @document.children[0]
- @a1 = @root.children[0]
- @a2 = @root.children[1]
- @a3 = @root.children[2]
- @a4 = @root.children[3]
+ @a1 = @root.at_xpath('a[1]')
+ @a2 = @root.at_xpath('a[2]')
+ @a3 = @root.at_xpath('a[3]')
+ @a4 = @root.at_xpath('b/a')
end
example 'return a node set containing the first child node' do
- evaluate_css(@document, 'root :nth-of-type(1)').should == node_set(@a1)
+ evaluate_css(@document, 'root a:nth-of-type(1)')
+ .should == node_set(@a1, @a4)
end
example 'return a node set containing even nodes' do
- evaluate_css(@document, 'root :nth-of-type(even)')
- .should == node_set(@a2, @a4)
+ evaluate_css(@document, 'root a:nth-of-type(even)')
+ .should == node_set(@a2)
end
example 'return a node set containing odd nodes' do
- evaluate_css(@document, 'root :nth-of-type(odd)')
- .should == node_set(@a1, @a3)
+ evaluate_css(@document, 'root a:nth-of-type(odd)')
+ .should == node_set(@a1, @a3, @a4)
end
example 'return a node set containing every 2 nodes starting at node 2' do
- evaluate_css(@document, 'root :nth-of-type(2n+2)')
- .should == node_set(@a2, @a4)
+ evaluate_css(@document, 'root a:nth-of-type(2n+2)')
+ .should == node_set(@a2)
end
example 'return a node set containing all nodes' do
- evaluate_css(@document, 'root :nth-of-type(n)').should == @root.children
+ evaluate_css(@document, 'root a:nth-of-type(n)')
+ .should == node_set(@a1, @a2, @a3, @a4)
end
example 'return a node set containing the first two nodes' do
- evaluate_css(@document, 'root :nth-of-type(-n+2)')
- .should == node_set(@a1, @a2)
+ evaluate_css(@document, 'root a:nth-of-type(-n+2)')
+ .should == node_set(@a1, @a2, @a4)
end
example 'return a node set containing all nodes starting at node 2' do
- evaluate_css(@document, 'root :nth-of-type(n+2)')
- .should == node_set(@a2, @a3, @a4)
+ evaluate_css(@document, 'root a:nth-of-type(n+2)')
+ .should == node_set(@a2, @a3)
end
end
end