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
- 303>
-
-
- 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