Surround class values with spaces.
When using a CSS class selector the resulting XPath string passed to contains() should be surrounded by spaces.
This commit is contained in:
parent
15ebdb7de4
commit
21c27bf48e
|
@ -103,7 +103,7 @@ rule
|
|||
:call,
|
||||
'contains',
|
||||
s(:call, 'concat', s(:string, ' '), axis, s(:string, ' ')),
|
||||
s(:string, val[1])
|
||||
s(:string, " #{val[1]} ")
|
||||
)
|
||||
}
|
||||
;
|
||||
|
|
|
@ -4,27 +4,27 @@ describe Oga::CSS::Parser do
|
|||
context 'classes' do
|
||||
example 'parse a class selector' do
|
||||
parse_css('.foo').should == parse_xpath(
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), "foo")]'
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), " foo ")]'
|
||||
)
|
||||
end
|
||||
|
||||
example 'parse a selector for an element with a class' do
|
||||
parse_css('foo.bar').should == parse_xpath(
|
||||
'descendant-or-self::foo[contains(concat(" ", @class, " "), "bar")]'
|
||||
'descendant-or-self::foo[contains(concat(" ", @class, " "), " bar ")]'
|
||||
)
|
||||
end
|
||||
|
||||
example 'parse a selector using multiple classes' do
|
||||
parse_css('.foo.bar').should == parse_xpath(
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), "foo") ' \
|
||||
'and contains(concat(" ", @class, " "), "bar")]'
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), " foo ") ' \
|
||||
'and contains(concat(" ", @class, " "), " bar ")]'
|
||||
)
|
||||
end
|
||||
|
||||
example 'parse a selector using a class and an ID' do
|
||||
parse_css('#foo.bar').should == parse_xpath(
|
||||
'descendant-or-self::*[@id="foo" and ' \
|
||||
'contains(concat(" ", @class, " "), "bar")]'
|
||||
'contains(concat(" ", @class, " "), " bar ")]'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ describe Oga::CSS::Parser do
|
|||
|
||||
example 'parse a selector using an ID and a class' do
|
||||
parse_css('.foo#bar').should == parse_xpath(
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), "foo") ' \
|
||||
'descendant-or-self::*[contains(concat(" ", @class, " "), " foo ") ' \
|
||||
'and @id="bar"]'
|
||||
)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue