void () { String text = " * <outer><inner> sdf </inner></outer>"; // Cursor before <outer>. EnterAfterJavadocTagHandler.Context context = parse(text, 0); assertEmpty(context); // Cursor at <outer>. int offset = text.indexOf("<outer>") + 2; context = parse(text, offset); assertEmpty(context); // Cursor between <outer> and <inner>. offset = text.indexOf("<inner>"); context = parse(text, offset); assertEquals(offset - 1, context.startTagEndOffset); assertEquals(text.indexOf("</outer>"), context.endTagStartOffset); // Cursor at <inner>. offset += 2; context = parse(text, offset); assertEmpty(context); // Cursor inside <inner>. offset = text.indexOf("sdf"); context = parse(text, offset); assertEquals(text.indexOf("<inner>") + "<inner>".length() - 1, context.startTagEndOffset); assertEquals(text.indexOf("</inner>"), context.endTagStartOffset); // Cursor at </inner>. offset = text.indexOf("</inner>") + 2; context = parse(text, offset); assertEmpty(context); // Cursor between </inner> and </outer>. offset = text.indexOf("</outer>"); context = parse(text, offset); assertEquals(text.indexOf("<inner>") - 1, context.startTagEndOffset); assertEquals(offset, context.endTagStartOffset); // Cursor at </outer>. offset += 2; context = parse(text, offset); assertEmpty(context); // Cursor at end. context = parse(text); assertEmpty(context); }