Added substring-before() spec for a predicate
This commit is contained in:
parent
32dba554d7
commit
b60ed03bb4
|
@ -4,27 +4,38 @@ describe Oga::XPath::Compiler do
|
||||||
describe 'substring-before() function' do
|
describe 'substring-before() function' do
|
||||||
before do
|
before do
|
||||||
@document = parse('<root><a>-</a><b>a-b-c</b></root>')
|
@document = parse('<root><a>-</a><b>a-b-c</b></root>')
|
||||||
|
|
||||||
|
@a1 = @document.children[0].children[0]
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns the substring of the 1st string before the 2nd string' do
|
describe 'at the top-level' do
|
||||||
evaluate_xpath(@document, 'substring-before("a-b-c", "-")').should == 'a'
|
it 'returns the substring of the 1st string before the 2nd string' do
|
||||||
|
evaluate_xpath(@document, 'substring-before("a-b-c", "-")').should == 'a'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns an empty string if the 2nd string is not present' do
|
||||||
|
evaluate_xpath(@document, 'substring-before("a-b-c", "x")').should == ''
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns the substring of the 1st node set before the 2nd string' do
|
||||||
|
evaluate_xpath(@document, 'substring-before(root/b, "-")').should == 'a'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns the substring of the 1st node set before the 2nd node set' do
|
||||||
|
evaluate_xpath(@document, 'substring-before(root/b, root/a)')
|
||||||
|
.should == 'a'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns an empty string when using two empty strings' do
|
||||||
|
evaluate_xpath(@document, 'substring-before("", "")').should == ''
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns an empty string if the 2nd string is not present' do
|
describe 'in a predicate' do
|
||||||
evaluate_xpath(@document, 'substring-before("a-b-c", "x")').should == ''
|
it 'returns a NodeSet containing all matching nodes' do
|
||||||
end
|
evaluate_xpath(@document, 'root/a[substring-before("foo-bar", "-")]')
|
||||||
|
.should == node_set(@a1)
|
||||||
it 'returns the substring of the 1st node set before the 2nd string' do
|
end
|
||||||
evaluate_xpath(@document, 'substring-before(root/b, "-")').should == 'a'
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns the substring of the 1st node set before the 2nd node set' do
|
|
||||||
evaluate_xpath(@document, 'substring-before(root/b, root/a)')
|
|
||||||
.should == 'a'
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns an empty string when using two empty strings' do
|
|
||||||
evaluate_xpath(@document, 'substring-before("", "")').should == ''
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue