Specs for lexing CSS operators with whitespace
This commit is contained in:
parent
5f037c76cc
commit
08bc23905e
|
@ -3,60 +3,87 @@ require 'spec_helper'
|
|||
describe Oga::CSS::Lexer do
|
||||
describe 'operators' do
|
||||
it 'lexes the = operator' do
|
||||
lex_css('[=]').should == [
|
||||
lex_css('[foo="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_EQ, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the ~= operator' do
|
||||
lex_css('[~=]').should == [
|
||||
lex_css('[foo~="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_SPACE_IN, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the ^= operator' do
|
||||
lex_css('[^=]').should == [
|
||||
lex_css('[foo^="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_STARTS_WITH, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the $= operator' do
|
||||
lex_css('[$=]').should == [
|
||||
lex_css('[foo$="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_ENDS_WITH, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil],
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the *= operator' do
|
||||
lex_css('[*=]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IN, nil],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes an identifier followed by the *= operator' do
|
||||
lex_css('[foo *=]').should == [
|
||||
lex_css('[foo*="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_IN, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the |= operator' do
|
||||
lex_css('[|=]').should == [
|
||||
lex_css('[foo|="bar"]').should == [
|
||||
[:T_LBRACK, nil],
|
||||
[:T_IDENT, 'foo'],
|
||||
[:T_HYPHEN_IN, nil],
|
||||
[:T_STRING, 'bar'],
|
||||
[:T_RBRACK, nil]
|
||||
]
|
||||
end
|
||||
|
||||
it 'lexes the = operator surrounded by whitespace' do
|
||||
lex_css('[foo = "bar"]').should == lex_css('[foo="bar"]')
|
||||
end
|
||||
|
||||
it 'lexes the ~= operator surrounded by whitespace' do
|
||||
lex_css('[foo ~= "bar"]').should == lex_css('[foo~="bar"]')
|
||||
end
|
||||
|
||||
it 'lexes the ^= operator surrounded by whitespace' do
|
||||
lex_css('[foo ^= "bar"]').should == lex_css('[foo^="bar"]')
|
||||
end
|
||||
|
||||
it 'lexes the $= operator surrounded by whitespace' do
|
||||
lex_css('[foo $= "bar"]').should == lex_css('[foo$="bar"]')
|
||||
end
|
||||
|
||||
it 'lexes the *= operator surrounded by whitespace' do
|
||||
lex_css('[foo *= "bar"]').should == lex_css('[foo*="bar"]')
|
||||
end
|
||||
|
||||
it 'lexes the |= operator surrounded by whitespace' do
|
||||
lex_css('[foo |= "bar"]').should == lex_css('[foo|="bar"]')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue