/** * Moves the caret to the given position. * * @param offset2 * the offset from the beginning of the text */ public void goTo(int offset2) { goN(offset2 - offset); }
/** * Tries to scan for an opening brace after skipping all preceding whitespace characters. A * correct opening brace is either "<" or "</". * * @return false, if the parsing could not be completed because the end of the HTML source was * reached. True otherwise. */ private boolean scanForOpeningBrace() { caret.walkAfterWhitespaces(); if (caret.wayToEnd() >= 2) { if (caret.startsWithCheckCase("</")) { caret.goN(2); parsedTokenType = Token.END_TAG; status = Status.SCAN_TAG_TYPE; } else if (caret.startsWithCheckCase("<")) { caret.goN(1); parsedTokenType = Token.START_TAG; status = Status.SCAN_TAG_TYPE; } else { status = Status.UNPARSEABLE; } return true; } else { return false; } }
@Test public void test() { String test = " ABCDEFGH\t\r\nabcdefgh"; Caret c = new Caret(test, 0); assertThat(c.walkAfterMatchCheckCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('h')); c.goN(1); assertThat(c.walkAfterMatchCheckCase("cdefg"), equalTo(false)); } }
@Test public void test() { String test = " ABCDEFGH\t\r\nabcdefgh"; Caret c = new Caret(test, 0); assertThat(c.walkToMatchIgnoreCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('C')); c.goN(1); assertThat(c.walkToMatchIgnoreCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('c')); c.goN(1); assertThat(c.walkToMatchIgnoreCase("cdefg"), equalTo(false)); } }
@Test public void test() { String test = " ABCDEFGH\t\r\nabcdefgh"; Caret c = new Caret(test, 0); assertThat(c.walkToMatchCheckCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('c')); c.goN(1); assertThat(c.walkToMatchCheckCase("cdefg"), equalTo(false)); } }
break; } else if (caret.startsWithCheckCase("\'")) { caret.goN(1); caret.walkAfterCharCheckCase('\''); } else if (caret.startsWithCheckCase("\"")) { caret.goN(1); caret.walkAfterCharCheckCase('\"'); } else { caret.goN(1); caret.goN(-1); // walk back before '/' or '>' caret.walkBackBeforeWhitespaces(); int argumentsEnd = Math.max(argumentsBegin, caret.getOffset() + 1); caret.goN(1); status = Status.SCAN_FOR_CLOSING_BRACE;
@Test public void test() { String test = " ABCDEFGH\t\r\nabcdefgh"; Caret c = new Caret(test, 0); assertThat(c.walkAfterMatchIgnoreCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('H')); assertThat(c.walkAfterMatchIgnoreCase("cdefg"), equalTo(true)); assertThat(c.get(0), equalTo('h')); c.goN(1); assertThat(c.walkAfterMatchIgnoreCase("cdefg"), equalTo(false)); } }
@Test public void testCaretMoving() { parser = new HtmlTokenParser("This part should be completely ignored. <div />", 0); parser.getCaret().goN("This part should be completely ignored.".length()); Result result = parser.parseToken(); assertThat(result, equalTo(Result.SUCCESS)); assertThat(parser.getParsedTokenType(), equalTo(Token.STANDALONE_TAG)); assertThat(parser.getTagType(), equalTo((CharSequence) "div")); assertThat(parser.getTagArguments(), equalTo((CharSequence) "")); } }
@Test public void test() { String test = "ABCDEFGH\t\r \nabcdefg h"; Caret c = new Caret(test); c.walkToWhitespace(); assertThat(c.get(0), equalTo('\t')); c.walkToWhitespace(); assertThat(c.get(0), equalTo('\t')); c.goN(1); c.walkToWhitespace(); assertThat(c.get(0), equalTo('\r')); c.goN(4); c.walkToWhitespace(); assertThat(c.get(0), equalTo(' ')); c.goN(2); assertThat(c.walkToWhitespace(), equalTo(false)); } }
@Test public void test() { String test = "0123456789"; Caret c1 = new Caret(test); assertThat(c1.get(0), equalTo('0')); assertThat(c1.get(3), equalTo('3')); Caret c2 = new Caret(test, 5); assertThat(c2.get(1), equalTo('6')); Caret c3 = c2.copy(); assertThat(c3.get(2), equalTo('7')); c3.goN(2); assertThat(c2.get(1), equalTo('6')); } }
@Test public void test() { String test = " ABCDEFGH\t\r \nabcdefg"; Caret c = new Caret(test); c.walkToCharCheckCase('A'); c.walkBackBeforeWhitespaces(); assertThat(c.get(0), equalTo('A')); c.goN(-1); c.walkBackBeforeWhitespaces(); assertThat(c.getOffset(), equalTo(0)); c.walkToCharCheckCase('a'); c.goN(-1); c.walkBackBeforeWhitespaces(); assertThat(c.get(0), equalTo('H')); } }