From 8f341b40d61c3717aa564bfdcf8f833b1f2cc8a9 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Thu, 27 Aug 2015 09:30:53 +0200 Subject: [PATCH] Revamp child axis compiler specs --- spec/oga/xpath/compiler/axes/child_spec.rb | 42 ++++++++++++++++------ 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/spec/oga/xpath/compiler/axes/child_spec.rb b/spec/oga/xpath/compiler/axes/child_spec.rb index d4526ac..4173178 100644 --- a/spec/oga/xpath/compiler/axes/child_spec.rb +++ b/spec/oga/xpath/compiler/axes/child_spec.rb @@ -1,24 +1,44 @@ require 'spec_helper' describe Oga::XPath::Compiler do - describe 'child axis' do - before do - @document = parse('') + before do + @document = parse('') - @a1 = @document.children[0] - @b1 = @a1.children[0] + @a1 = @document.children[0] + @b1 = @a1.children[0] + end + + describe 'relative to a document' do + describe 'child::a' do + it 'returns a NodeSet' do + evaluate_xpath(@document).should == node_set(@a1) + end end - it 'returns a node set containing a direct child node' do - evaluate_xpath(@document, 'child::a').should == node_set(@a1) + describe 'child::a/child::b' do + it 'returns a NodeSet' do + evaluate_xpath(@document).should == node_set(@b1) + end + end + end + + describe 'relative to an element' do + describe 'child::a' do + it 'returns an empty NodeSet' do + evaluate_xpath(@a1).should == node_set + end end - it 'returns a node set containing a nested child node' do - evaluate_xpath(@document, 'child::a/child::b').should == node_set(@b1) + describe 'child::b' do + it 'returns a NodeSet' do + evaluate_xpath(@a1).should == node_set(@b1) + end end - it 'returns an empty node set for non existing child nodes' do - evaluate_xpath(@document, 'child::x').should == node_set + describe 'child::x' do + it 'returns an empty NodeSet' do + evaluate_xpath(@a1).should == node_set + end end end end