diff --git a/spec/oga/xpath/evaluator/axes_spec.rb b/spec/oga/xpath/evaluator/axes_spec.rb new file mode 100644 index 0000000..8799462 --- /dev/null +++ b/spec/oga/xpath/evaluator/axes_spec.rb @@ -0,0 +1,50 @@ +require 'spec_helper' + +describe Oga::XPath::Evaluator do + before do + @document = parse('') + end + + context 'ancestor axis' do + before do + c_node = @document.children[0].children[0].children[0] + @evaluator = described_class.new(c_node) + end + + context 'direct ancestors' do + before do + @set = @evaluator.evaluate('ancestor::b') + end + + example 'return a NodeSet instance' do + @set.is_a?(Oga::XML::NodeSet).should == true + end + + example 'return the right amount of rows' do + @set.length.should == 1 + end + + example 'return the ancestor' do + @set[0].name.should == 'b' + end + end + + context 'higher ancestors' do + before do + @set = @evaluator.evaluate('ancestor::a') + end + + example 'return a NodeSet instance' do + @set.is_a?(Oga::XML::NodeSet).should == true + end + + example 'return the right amount of rows' do + @set.length.should == 1 + end + + example 'return the ancestor' do + @set[0].name.should == 'a' + end + end + end +end