@Test public void combinedIncorrectSelector() throws RecognitionException { String crashingSelector = "p:not*() p:not() { }"; ANTLRParser compiler = new ANTLRParser(); ParseResult result = compiler.parseRuleset(crashingSelector); assertNoTokenMissing(crashingSelector, result.getTree(), -1); }
@Test public void simpleIncorrectSelector() throws RecognitionException { String crashingSelector = "p:not*()"; ANTLRParser compiler = new ANTLRParser(); ParseResult result = compiler.parseSelector(crashingSelector); assertNoTokenMissing(crashingSelector, result.getTree(), 0); }
@Test public void stylesheet() throws RecognitionException { String crashingSelector = "p:not([class**=\"lead\"]) {\n color: black;\n}"; ANTLRParser compiler = new ANTLRParser(); ParseResult result = compiler.parseStyleSheet(crashingSelector); // the -3 is correct, even if it seems like huge hack. It sort of is. // RBRACE }; LBRACE {; RBRACKET ] and LBRACKET [ are (correctly thrown away) // and one dummy node EMPTY_COMBINATOR is added during the translation. // therefore there are -3 dummy nodes // this way of testing malformed trees is bad anyway,this needs to be changed // for something more readable and stable. (These tests are broken with each tree change) assertNoTokenMissing(crashingSelector, result.getTree(), -5); }