modules/graphics/src/test/java/javafx/css/CssLexerTest.java

Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization

*** 21,31 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! package com.sun.javafx.css.parser; import java.io.CharArrayReader; import java.io.Reader; import java.util.ArrayList; import java.util.Arrays; --- 21,33 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! package javafx.css; ! ! import com.sun.javafx.css.parser.Token; import java.io.CharArrayReader; import java.io.Reader; import java.util.ArrayList; import java.util.Arrays;
*** 35,47 **** import static org.junit.Assert.assertEquals; import org.junit.Test; ! public class CSSLexerTest { ! public CSSLexerTest() { } private void checkTokens(List<Token> resultTokens, Token... expectedTokens) throws org.junit.ComparisonFailure { --- 37,49 ---- import static org.junit.Assert.assertEquals; import org.junit.Test; ! public class CssLexerTest { ! public CssLexerTest() { } private void checkTokens(List<Token> resultTokens, Token... expectedTokens) throws org.junit.ComparisonFailure {
*** 80,90 **** } List<Token> getTokens(String string) { Reader reader = new CharArrayReader(string.toCharArray()); ! final CSSLexer lexer = CSSLexer.getInstance(); lexer.setReader(reader); final List<Token> tokens = new ArrayList<Token>(); Token token = null; --- 82,92 ---- } List<Token> getTokens(String string) { Reader reader = new CharArrayReader(string.toCharArray()); ! final CssLexer lexer = new CssLexer(); lexer.setReader(reader); final List<Token> tokens = new ArrayList<Token>(); Token token = null;
*** 107,302 **** checkTokens(getTokens("+.45"+units), new Token(type, "+.45"+units), Token.EOF_TOKEN); } @Test public void testLexValidDigits() { ! lexDigitsWithUnits("", CSSLexer.NUMBER); } @Test public void testLexValidDigitsWithCM() { ! lexDigitsWithUnits("cm", CSSLexer.CM); // case should be ignored ! lexDigitsWithUnits("cM", CSSLexer.CM); } @Test public void testLexValidDigitsWithDEG() { ! lexDigitsWithUnits("deg", CSSLexer.DEG); // case should be ignored ! lexDigitsWithUnits("dEg", CSSLexer.DEG); } @Test public void testLexValidDigitsWithEM() { ! lexDigitsWithUnits("em", CSSLexer.EMS); // case should be ignored ! lexDigitsWithUnits("Em", CSSLexer.EMS); } @Test public void testLexValidDigitsWithEX() { ! lexDigitsWithUnits("ex", CSSLexer.EXS); // case should be ignored ! lexDigitsWithUnits("Ex", CSSLexer.EXS); } @Test public void testLexValidDigitsWithGRAD() { ! lexDigitsWithUnits("grad", CSSLexer.GRAD); // case should be ignored ! lexDigitsWithUnits("gRad", CSSLexer.GRAD); } @Test public void testLexValidDigitsWithIN() { ! lexDigitsWithUnits("in", CSSLexer.IN); // case should be ignored ! lexDigitsWithUnits("In", CSSLexer.IN); } @Test public void testLexValidDigitsWithMM() { ! lexDigitsWithUnits("mm", CSSLexer.MM); // case should be ignored ! lexDigitsWithUnits("mM", CSSLexer.MM); } @Test public void testLexValidDigitsWithPC() { ! lexDigitsWithUnits("pc", CSSLexer.PC); // case should be ignored ! lexDigitsWithUnits("Pc", CSSLexer.PC); } @Test public void testLexValidDigitsWithPT() { ! lexDigitsWithUnits("pt", CSSLexer.PT); // case should be ignored ! lexDigitsWithUnits("PT", CSSLexer.PT); } @Test public void testLexValidDigitsWithPX() { ! lexDigitsWithUnits("px", CSSLexer.PX); // case should be ignored ! lexDigitsWithUnits("Px", CSSLexer.PX); } @Test public void testLexValidDigitsWithRAD() { ! lexDigitsWithUnits("rad", CSSLexer.RAD); // case should be ignored ! lexDigitsWithUnits("RaD", CSSLexer.RAD); } @Test public void testLexValidDigitsWithTURN() { ! lexDigitsWithUnits("turn", CSSLexer.TURN); // case should be ignored ! lexDigitsWithUnits("TurN", CSSLexer.TURN); } @Test public void testLexValidDigitsWithS() { ! lexDigitsWithUnits("s", CSSLexer.SECONDS); // case should be ignored ! lexDigitsWithUnits("S", CSSLexer.SECONDS); } @Test public void testLexValidDigitsWithMS() { ! lexDigitsWithUnits("ms", CSSLexer.MS); // case should be ignored ! lexDigitsWithUnits("mS", CSSLexer.MS); } @Test public void testLexValidDigitsWithPCT() { ! lexDigitsWithUnits("%", CSSLexer.PERCENTAGE); } @Test public void testLexValidDigitsWithBadUnits() { lexDigitsWithUnits("xyzzy", Token.INVALID); } @Test public void textLexValidDigitsValidDigits() { checkTokens( getTokens("foo: 10pt; bar: 20%;"), ! new Token(CSSLexer.IDENT, "foo"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PT, "10pt"), ! new Token(CSSLexer.SEMI, ";"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.IDENT, "bar"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PERCENTAGE, "20%"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsValidDigits() { checkTokens( getTokens("foo: 10pz; bar: 20%;"), ! new Token(CSSLexer.IDENT, "foo"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), new Token(Token.INVALID, "10pz"), ! new Token(CSSLexer.SEMI, ";"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.IDENT, "bar"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PERCENTAGE, "20%"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexValidDigitsBangImportant() { checkTokens( getTokens("foo: 10pt !important;"), ! new Token(CSSLexer.IDENT, "foo"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PT, "10pt"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.IMPORTANT_SYM, "!important"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsBangImportant() { checkTokens( getTokens("foo: 10pz !important;"), ! new Token(CSSLexer.IDENT, "foo"), ! new Token(CSSLexer.COLON, ":"), ! new Token(CSSLexer.WS, " "), new Token(Token.INVALID, "10pz"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.IMPORTANT_SYM, "!important"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexValidDigitsInSequence() { checkTokens( getTokens("-1 0px 1pt .5em;"), ! new Token(CSSLexer.NUMBER, "-1"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PX, "0px"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PT, "1pt"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.EMS, ".5em"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsInSequence() { checkTokens( getTokens("-1 0px 1pz .5em;"), ! new Token(CSSLexer.NUMBER, "-1"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.PX, "0px"), ! new Token(CSSLexer.WS, " "), new Token(Token.INVALID, "1pz"), ! new Token(CSSLexer.WS, " "), ! new Token(CSSLexer.EMS, ".5em"), ! new Token(CSSLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test --- 109,304 ---- checkTokens(getTokens("+.45"+units), new Token(type, "+.45"+units), Token.EOF_TOKEN); } @Test public void testLexValidDigits() { ! lexDigitsWithUnits("", CssLexer.NUMBER); } @Test public void testLexValidDigitsWithCM() { ! lexDigitsWithUnits("cm", CssLexer.CM); // case should be ignored ! lexDigitsWithUnits("cM", CssLexer.CM); } @Test public void testLexValidDigitsWithDEG() { ! lexDigitsWithUnits("deg", CssLexer.DEG); // case should be ignored ! lexDigitsWithUnits("dEg", CssLexer.DEG); } @Test public void testLexValidDigitsWithEM() { ! lexDigitsWithUnits("em", CssLexer.EMS); // case should be ignored ! lexDigitsWithUnits("Em", CssLexer.EMS); } @Test public void testLexValidDigitsWithEX() { ! lexDigitsWithUnits("ex", CssLexer.EXS); // case should be ignored ! lexDigitsWithUnits("Ex", CssLexer.EXS); } @Test public void testLexValidDigitsWithGRAD() { ! lexDigitsWithUnits("grad", CssLexer.GRAD); // case should be ignored ! lexDigitsWithUnits("gRad", CssLexer.GRAD); } @Test public void testLexValidDigitsWithIN() { ! lexDigitsWithUnits("in", CssLexer.IN); // case should be ignored ! lexDigitsWithUnits("In", CssLexer.IN); } @Test public void testLexValidDigitsWithMM() { ! lexDigitsWithUnits("mm", CssLexer.MM); // case should be ignored ! lexDigitsWithUnits("mM", CssLexer.MM); } @Test public void testLexValidDigitsWithPC() { ! lexDigitsWithUnits("pc", CssLexer.PC); // case should be ignored ! lexDigitsWithUnits("Pc", CssLexer.PC); } @Test public void testLexValidDigitsWithPT() { ! lexDigitsWithUnits("pt", CssLexer.PT); // case should be ignored ! lexDigitsWithUnits("PT", CssLexer.PT); } @Test public void testLexValidDigitsWithPX() { ! lexDigitsWithUnits("px", CssLexer.PX); // case should be ignored ! lexDigitsWithUnits("Px", CssLexer.PX); } @Test public void testLexValidDigitsWithRAD() { ! lexDigitsWithUnits("rad", CssLexer.RAD); // case should be ignored ! lexDigitsWithUnits("RaD", CssLexer.RAD); } @Test public void testLexValidDigitsWithTURN() { ! lexDigitsWithUnits("turn", CssLexer.TURN); // case should be ignored ! lexDigitsWithUnits("TurN", CssLexer.TURN); } @Test public void testLexValidDigitsWithS() { ! lexDigitsWithUnits("s", CssLexer.SECONDS); // case should be ignored ! lexDigitsWithUnits("S", CssLexer.SECONDS); } @Test public void testLexValidDigitsWithMS() { ! lexDigitsWithUnits("ms", CssLexer.MS); // case should be ignored ! lexDigitsWithUnits("mS", CssLexer.MS); } @Test public void testLexValidDigitsWithPCT() { ! lexDigitsWithUnits("%", CssLexer.PERCENTAGE); } @Test public void testLexValidDigitsWithBadUnits() { lexDigitsWithUnits("xyzzy", Token.INVALID); } @Test public void textLexValidDigitsValidDigits() { checkTokens( getTokens("foo: 10pt; bar: 20%;"), ! new Token(CssLexer.IDENT, "foo"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PT, "10pt"), ! new Token(CssLexer.SEMI, ";"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.IDENT, "bar"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PERCENTAGE, "20%"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsValidDigits() { checkTokens( getTokens("foo: 10pz; bar: 20%;"), ! new Token(CssLexer.IDENT, "foo"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), new Token(Token.INVALID, "10pz"), ! new Token(CssLexer.SEMI, ";"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.IDENT, "bar"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PERCENTAGE, "20%"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexValidDigitsBangImportant() { checkTokens( getTokens("foo: 10pt !important;"), ! new Token(CssLexer.IDENT, "foo"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PT, "10pt"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.IMPORTANT_SYM, "!important"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsBangImportant() { checkTokens( getTokens("foo: 10pz !important;"), ! new Token(CssLexer.IDENT, "foo"), ! new Token(CssLexer.COLON, ":"), ! new Token(CssLexer.WS, " "), new Token(Token.INVALID, "10pz"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.IMPORTANT_SYM, "!important"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexValidDigitsInSequence() { checkTokens( getTokens("-1 0px 1pt .5em;"), ! new Token(CssLexer.NUMBER, "-1"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PX, "0px"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PT, "1pt"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.EMS, ".5em"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test public void textLexInvalidDigitsInSequence() { checkTokens( getTokens("-1 0px 1pz .5em;"), ! new Token(CssLexer.NUMBER, "-1"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.PX, "0px"), ! new Token(CssLexer.WS, " "), new Token(Token.INVALID, "1pz"), ! new Token(CssLexer.WS, " "), ! new Token(CssLexer.EMS, ".5em"), ! new Token(CssLexer.SEMI, ";"), Token.EOF_TOKEN ); } @Test
*** 304,318 **** String str = "a: b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 306,320 ---- String str = "a: b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 330,350 **** String str = "a: b;\rc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 4), ! new Token(CSSLexer.NL, "\\r", 1, 5), ! new Token(CSSLexer.IDENT, "c", 2, 0), ! new Token(CSSLexer.COLON, ":", 2, 1), ! new Token(CSSLexer.WS, " ", 2, 2), ! new Token(CSSLexer.IDENT, "d", 2, 3), ! new Token(CSSLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 332,352 ---- String str = "a: b;\rc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 4), ! new Token(CssLexer.NL, "\\r", 1, 5), ! new Token(CssLexer.IDENT, "c", 2, 0), ! new Token(CssLexer.COLON, ":", 2, 1), ! new Token(CssLexer.WS, " ", 2, 2), ! new Token(CssLexer.IDENT, "d", 2, 3), ! new Token(CssLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 362,382 **** String str = "a: b;\nc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 4), ! new Token(CSSLexer.NL, "\\n", 1, 5), ! new Token(CSSLexer.IDENT, "c", 2, 0), ! new Token(CSSLexer.COLON, ":", 2, 1), ! new Token(CSSLexer.WS, " ", 2, 2), ! new Token(CSSLexer.IDENT, "d", 2, 3), ! new Token(CSSLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 364,384 ---- String str = "a: b;\nc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 4), ! new Token(CssLexer.NL, "\\n", 1, 5), ! new Token(CssLexer.IDENT, "c", 2, 0), ! new Token(CssLexer.COLON, ":", 2, 1), ! new Token(CssLexer.WS, " ", 2, 2), ! new Token(CssLexer.IDENT, "d", 2, 3), ! new Token(CssLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 394,414 **** // 012345 01234 String str = "a: b;\r\nc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 4), ! new Token(CSSLexer.NL, "\\r\\n", 1, 5), ! new Token(CSSLexer.IDENT, "c", 2, 0), ! new Token(CSSLexer.COLON, ":", 2, 1), ! new Token(CSSLexer.WS, " ", 2, 2), ! new Token(CSSLexer.IDENT, "d", 2, 3), ! new Token(CSSLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 396,416 ---- // 012345 01234 String str = "a: b;\r\nc: d;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 4), ! new Token(CssLexer.NL, "\\r\\n", 1, 5), ! new Token(CssLexer.IDENT, "c", 2, 0), ! new Token(CssLexer.COLON, ":", 2, 1), ! new Token(CssLexer.WS, " ", 2, 2), ! new Token(CssLexer.IDENT, "d", 2, 3), ! new Token(CssLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 426,440 **** // 0123456789012345 String str = "a: /*comment*/b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 14), ! new Token(CSSLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 428,442 ---- // 0123456789012345 String str = "a: /*comment*/b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 14), ! new Token(CssLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 451,466 **** // 012345678901 01234 String str = "/*comment*/\na: b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.NL, "\\n", 1, 11), ! new Token(CSSLexer.IDENT, "a", 2, 0), ! new Token(CSSLexer.COLON, ":", 2, 1), ! new Token(CSSLexer.WS, " ", 2, 2), ! new Token(CSSLexer.IDENT, "b", 2, 3), ! new Token(CSSLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 453,468 ---- // 012345678901 01234 String str = "/*comment*/\na: b;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.NL, "\\n", 1, 11), ! new Token(CssLexer.IDENT, "a", 2, 0), ! new Token(CssLexer.COLON, ":", 2, 1), ! new Token(CssLexer.WS, " ", 2, 2), ! new Token(CssLexer.IDENT, "b", 2, 3), ! new Token(CssLexer.SEMI, ";", 2, 4), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 477,494 **** // 01234567890 String str = "a: b(arg);"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.LPAREN, "(", 1, 4), ! new Token(CSSLexer.IDENT, "arg", 1, 5), ! new Token(CSSLexer.RPAREN, ")", 1, 8), ! new Token(CSSLexer.SEMI, ";", 1, 9), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 479,496 ---- // 01234567890 String str = "a: b(arg);"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.LPAREN, "(", 1, 4), ! new Token(CssLexer.IDENT, "arg", 1, 5), ! new Token(CssLexer.RPAREN, ")", 1, 8), ! new Token(CssLexer.SEMI, ";", 1, 9), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 505,519 **** // 01234567890 String str = "a: #012345;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.HASH, "#012345", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 10), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 507,521 ---- // 01234567890 String str = "a: #012345;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.HASH, "#012345", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 10), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 530,544 **** // 01234567890 String str = "a: 123.45;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.NUMBER, "123.45", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 9), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 532,546 ---- // 01234567890 String str = "a: 123.45;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.NUMBER, "123.45", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 9), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 555,571 **** // 0123456789012345 String str = "a: b !important;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.WS, " ", 1, 4), ! new Token(CSSLexer.IMPORTANT_SYM, "!important", 1, 5), ! new Token(CSSLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 557,573 ---- // 0123456789012345 String str = "a: b !important;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.WS, " ", 1, 4), ! new Token(CssLexer.IMPORTANT_SYM, "!important", 1, 5), ! new Token(CssLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 582,598 **** // 0123456789012345 String str = "a: b !imporzant;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), ! new Token(CSSLexer.IDENT, "b", 1, 3), ! new Token(CSSLexer.WS, " ", 1, 4), new Token(Token.SKIP, "!imporz", 1, 5), ! new Token(CSSLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 584,600 ---- // 0123456789012345 String str = "a: b !imporzant;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), ! new Token(CssLexer.IDENT, "b", 1, 3), ! new Token(CssLexer.WS, " ", 1, 4), new Token(Token.SKIP, "!imporz", 1, 5), ! new Token(CssLexer.SEMI, ";", 1, 15), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 609,623 **** // 0123456789012345 String str = "a: 1pz;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.IDENT, "a", 1, 0), ! new Token(CSSLexer.COLON, ":", 1, 1), ! new Token(CSSLexer.WS, " ", 1, 2), new Token(Token.INVALID, "1pz", 1, 3), ! new Token(CSSLexer.SEMI, ";", 1, 6), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 611,625 ---- // 0123456789012345 String str = "a: 1pz;"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.IDENT, "a", 1, 0), ! new Token(CssLexer.COLON, ":", 1, 1), ! new Token(CssLexer.WS, " ", 1, 2), new Token(Token.INVALID, "1pz", 1, 3), ! new Token(CssLexer.SEMI, ";", 1, 6), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 635,662 **** // 012345678901 0123456789012345 012345678 0 String str = "/*comment*/\n*.foo#bar:baz {\n\ta: 1em;\n}"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CSSLexer.NL, "\\n", 1, 11), ! new Token(CSSLexer.STAR, "*", 2, 0), ! new Token(CSSLexer.DOT, ".", 2, 1), ! new Token(CSSLexer.IDENT, "foo", 2, 2), ! new Token(CSSLexer.HASH, "#bar", 2, 5), ! new Token(CSSLexer.COLON, ":", 2, 9), ! new Token(CSSLexer.IDENT, "baz", 2, 10), ! new Token(CSSLexer.WS, " ", 2, 13), ! new Token(CSSLexer.LBRACE, "{", 2, 14), ! new Token(CSSLexer.NL, "\\n", 2, 15), ! new Token(CSSLexer.WS, "\t", 3, 0), ! new Token(CSSLexer.IDENT, "a", 3, 1), ! new Token(CSSLexer.COLON, ":", 3, 2), ! new Token(CSSLexer.WS, " ", 3, 3), ! new Token(CSSLexer.EMS, "1em", 3, 4), ! new Token(CSSLexer.SEMI, ";", 3, 7), ! new Token(CSSLexer.NL, "\\n", 3, 8), ! new Token(CSSLexer.RBRACE, "}", 4, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 637,664 ---- // 012345678901 0123456789012345 012345678 0 String str = "/*comment*/\n*.foo#bar:baz {\n\ta: 1em;\n}"; // [?][0] = line // [?][1] = offset Token[] expected = { ! new Token(CssLexer.NL, "\\n", 1, 11), ! new Token(CssLexer.STAR, "*", 2, 0), ! new Token(CssLexer.DOT, ".", 2, 1), ! new Token(CssLexer.IDENT, "foo", 2, 2), ! new Token(CssLexer.HASH, "#bar", 2, 5), ! new Token(CssLexer.COLON, ":", 2, 9), ! new Token(CssLexer.IDENT, "baz", 2, 10), ! new Token(CssLexer.WS, " ", 2, 13), ! new Token(CssLexer.LBRACE, "{", 2, 14), ! new Token(CssLexer.NL, "\\n", 2, 15), ! new Token(CssLexer.WS, "\t", 3, 0), ! new Token(CssLexer.IDENT, "a", 3, 1), ! new Token(CssLexer.COLON, ":", 3, 2), ! new Token(CssLexer.WS, " ", 3, 3), ! new Token(CssLexer.EMS, "1em", 3, 4), ! new Token(CssLexer.SEMI, ";", 3, 7), ! new Token(CssLexer.NL, "\\n", 3, 8), ! new Token(CssLexer.RBRACE, "}", 4, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 673,683 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(http://foo.bar.com/fonts/serif/fubar.ttf)"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 675,685 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(http://foo.bar.com/fonts/serif/fubar.ttf)"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 695,705 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url( http://foo.bar.com/fonts/serif/fubar.ttf\t)"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 697,707 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url( http://foo.bar.com/fonts/serif/fubar.ttf\t)"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 717,727 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url( 'http://foo.bar.com/fonts/serif/fubar.ttf'\t)"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 719,729 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url( 'http://foo.bar.com/fonts/serif/fubar.ttf'\t)"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 739,749 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(\"http://foo.bar.com/fonts/serif/fubar.ttf\")"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 741,751 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(\"http://foo.bar.com/fonts/serif/fubar.ttf\")"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/serif/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 761,771 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(http://foo.bar.com/fonts/true\\ type/fubar.ttf)"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/true type/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 763,773 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(http://foo.bar.com/fonts/true\\ type/fubar.ttf)"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/true type/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);
*** 783,793 **** // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(\"http://foo.bar.com/fonts/true\\ type/fubar.ttf\")"; Token[] expected = new Token[]{ ! new Token(CSSLexer.URL, "http://foo.bar.com/fonts/true type/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected); --- 785,795 ---- // 1 2 3 4 // 01234567890101234567890123450123456780123456789 String str = "url(\"http://foo.bar.com/fonts/true\\ type/fubar.ttf\")"; Token[] expected = new Token[]{ ! new Token(CssLexer.URL, "http://foo.bar.com/fonts/true type/fubar.ttf", 1, 0), Token.EOF_TOKEN }; List<Token> tlist = getTokens(str); checkTokens(tlist, expected);