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
|
||||
before do
|
||||
@document = parse('<root><a>-</a><b>a-b-c</b></root>')
|
||||
|
||||
@a1 = @document.children[0].children[0]
|
||||
end
|
||||
|
||||
it 'returns the substring of the 1st string before the 2nd string' do
|
||||
evaluate_xpath(@document, 'substring-before("a-b-c", "-")').should == 'a'
|
||||
describe 'at the top-level' do
|
||||
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
|
||||
|
||||
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 == ''
|
||||
describe 'in a predicate' do
|
||||
it 'returns a NodeSet containing all matching nodes' do
|
||||
evaluate_xpath(@document, 'root/a[substring-before("foo-bar", "-")]')
|
||||
.should == node_set(@a1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue