From 7fdf8d74606400226f7363b1a0d2748ae36932dd Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Tue, 14 Jul 2015 00:06:55 +0200 Subject: [PATCH] Rewrote XPath compiler predicate specs --- spec/oga/xpath/compiler/predicates_spec.rb | 35 +++++++++++++--------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/spec/oga/xpath/compiler/predicates_spec.rb b/spec/oga/xpath/compiler/predicates_spec.rb index 0f35f12..b5ca410 100644 --- a/spec/oga/xpath/compiler/predicates_spec.rb +++ b/spec/oga/xpath/compiler/predicates_spec.rb @@ -3,23 +3,30 @@ require 'spec_helper' describe Oga::XPath::Compiler do describe 'predicates' do before do - @document = parse(<<-EOF) - - 10 - - 20 - 30 - - - EOF + @document = parse('1020') - @a1 = @document.at_xpath('root/a[1]') - @a2 = @document.at_xpath('root/b/a[1]') + root = @document.children[0] + + @a1 = root.children[0] + @a2 = root.children[1] end - it 'returns a node set containing all first nodes' do - evaluate_xpath(@document, 'descendant-or-self::node()/a[1]') - .should == node_set(@a1, @a2) + describe 'using an integer as an index' do + it 'returns a NodeSet containing the first node' do + evaluate_xpath(@document, 'root/a[1]').should == node_set(@a1) + end + end + + describe 'using a float as an index' do + it 'returns a NodeSet containing the first node' do + evaluate_xpath(@document, 'root/a[1.5]').should == node_set(@a1) + end + end + + describe 'using a node test' do + it 'returns a NodeSet containing all nodes with child nodes' do + evaluate_xpath(@document, 'root/a[b]').should == node_set(@a2) + end end end end