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