private static boolean foundEndKeyword(char[] keyword, Token t, Stack<char[]> endWordStack) { return t.is(Token.RESERVED_WORD, keyword) && !endWordStack.isEmpty() && keyword==endWordStack.peek(); }
@Test public void testNameValuePair_happyPath() { String code = "dialog.title=Options"; Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.DATA_TYPE, "dialog.title")); token = token.getNextToken(); Assert.assertTrue(token.isSingleChar(TokenTypes.OPERATOR, '=')); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.IDENTIFIER, "Options")); }
@Test public void testKeywords() { String code = "127.0.0.1 localhost"; Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.RESERVED_WORD, "127.0.0.1")); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.WHITESPACE, " ")); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.IDENTIFIER, "localhost")); }
@Test public void testHtml_happyPath_closingTag() { String code = "</body>"; Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.MARKUP_TAG_DELIMITER, "</")); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.MARKUP_TAG_NAME, "body")); token = token.getNextToken(); Assert.assertTrue(token.isSingleChar(TokenTypes.MARKUP_TAG_DELIMITER, '>')); }
@Test public void testNullLiterals() { String code = "null"; Segment segment = createSegment(code); JsonTokenMaker tm = new JsonTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.RESERVED_WORD, "null")); }
@Test public void testGetTokenList_whitespaceStart_LiteralBackQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = " `cat foo.txt`"; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.isSingleChar(TokenTypes.WHITESPACE, ' ')); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.LITERAL_BACKQUOTE, text.trim())); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }
@Test public void testCss_id() { String code = "#mainContent"; Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, CSS_PREV_TOKEN_TYPE, 0); Assert.assertTrue(token.is(TokenTypes.ANNOTATION, "#mainContent")); }
@Test public void testBooleanLiterals() { String[] booleans = { "true", "false" }; for (String code : booleans) { Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_BOOLEAN, code)); } }
@Test public void testNullLiterals() { String code = "null"; Segment segment = createSegment(code); JshintrcTokenMaker tm = new JshintrcTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.RESERVED_WORD, "null")); }
@Test public void testBooleanLiterals() { String[] booleans = { "true", "false" }; for (String code : booleans) { Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_BOOLEAN, code)); } }
@Test public void testGetTokenList_identifierStart_LiteralBackQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = "foo`cat foo.txt`"; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.IDENTIFIER, "foo")); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.LITERAL_BACKQUOTE, "`cat foo.txt`")); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }
@Test public void testGetTokenList_identifierStart_LiteralSingleQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = "foo'Hello world'"; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.IDENTIFIER, "foo")); token = token.getNextToken(); Assert.assertTrue(token.is(TokenTypes.LITERAL_CHAR, "'Hello world'")); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }
@Test public void testLineComments() { String code = "// Hello world"; Segment segment = createSegment(code); JshintrcTokenMaker tm = new JshintrcTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(Token.COMMENT_EOL, code)); }
@Test public void testDataTypes() { String[] dataTypes = { "bool", "int", "double", "num", "void", }; for (String code : dataTypes) { Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.DATA_TYPE, code)); } }
@Test public void testCss_id() { String code = "#mainContent"; Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, CSS_PREV_TOKEN_TYPE, 0); Assert.assertTrue(token.is(TokenTypes.VARIABLE, "#mainContent")); }
@Test public void testLess_selectorReferencingParentSelector() { TokenMaker tm = createTokenMaker(); String code = "&.extraClass"; Segment s = createSegment(code); Token t = tm.getTokenList(s, CSSTokenMaker.INTERNAL_CSS_PROPERTY, 0); Assert.assertTrue(t.is(TokenTypes.RESERVED_WORD, code)); }
@Test public void testBooleanLiterals() { String[] booleans = { "true", "false" }; for (String code : booleans) { Segment segment = createSegment(code); TokenMaker tm = createTokenMaker(); Token token = tm.getTokenList(segment, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_BOOLEAN, code)); } }
@Test public void testGetTokenList_nullStart_LiteralBackQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = "`cat foo.txt`"; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_BACKQUOTE, text)); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }
@Test public void testGetTokenList_nullStart_LiteralDoubleQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = "\"Hello world\""; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_STRING_DOUBLE_QUOTE, text)); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }
@Test public void testGetTokenList_nullStart_LiteralSingleQuote() { UnixShellTokenMaker tm = new UnixShellTokenMaker(); String text = "'Hello world'"; Segment s = createSegment(text); Token token = tm.getTokenList(s, TokenTypes.NULL, 0); Assert.assertTrue(token.is(TokenTypes.LITERAL_CHAR, text)); token = token.getNextToken(); Assert.assertEquals(new TokenImpl(), token); }