+ public void testReturn() {
+ String wikiText;
+
+ wikiText = "hello\n=Heading=\nhello2";
+
+ final WikiTokenizer tokenizer = new WikiTokenizer(wikiText);
+
+ assertEquals("hello", tokenizer.nextToken().token());
+ tokenizer.returnToLineStart();
+ assertEquals("hello", tokenizer.nextToken().token());
+ assertEquals("\n", tokenizer.nextToken().token());
+ tokenizer.returnToLineStart();
+ assertEquals("hello", tokenizer.nextToken().token());
+ assertEquals("\n", tokenizer.nextToken().token());
+
+ assertEquals("=Heading=", tokenizer.nextToken().token());
+ tokenizer.returnToLineStart();
+ assertEquals("=Heading=", tokenizer.nextToken().token());
+ assertEquals("\n", tokenizer.nextToken().token());
+ tokenizer.returnToLineStart();
+ assertEquals("=Heading=", tokenizer.nextToken().token());
+ assertEquals("\n", tokenizer.nextToken().token());
+
+ assertEquals("hello2", tokenizer.nextToken().token());
+ assertEquals(null, tokenizer.nextToken());
+ tokenizer.returnToLineStart();
+ assertEquals("hello2", tokenizer.nextToken().token());
+ assertEquals(null, tokenizer.nextToken());
+
+
+ }
+
+ public void testWikiHeading() {
+ String wikiText;
+
+ wikiText = "==";
+ assertEquals("==", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isHeading());
+ assertEquals(2, new WikiTokenizer(wikiText).nextToken().headingDepth());
+ assertEquals("", new WikiTokenizer(wikiText).nextToken().headingWikiText());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().errors.size());
+
+
+ wikiText = "=a";
+ assertEquals("=a", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isHeading());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().headingDepth());
+ assertEquals("a", new WikiTokenizer(wikiText).nextToken().headingWikiText());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().errors.size());
+
+ wikiText = "=a==";
+ assertEquals("=a==", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isHeading());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().headingDepth());
+ assertEquals("a", new WikiTokenizer(wikiText).nextToken().headingWikiText());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().errors.size());
+
+ wikiText = "a=";
+ assertEquals("a", new WikiTokenizer(wikiText).nextToken().token());
+ assertFalse(new WikiTokenizer(wikiText).nextToken().isHeading());
+
+ wikiText = "=a=";
+ assertEquals("=a=", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isHeading());
+ assertEquals(1, new WikiTokenizer(wikiText).nextToken().headingDepth());
+ assertEquals("a", new WikiTokenizer(wikiText).nextToken().headingWikiText());
+ assertEquals(0, new WikiTokenizer(wikiText).nextToken().errors.size());
+
+ wikiText = "==aa[[|=]] {{|={{=}} }}==";
+ assertEquals(wikiText, new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isHeading());
+ assertEquals(2, new WikiTokenizer(wikiText).nextToken().headingDepth());
+ assertEquals("aa[[|=]] {{|={{=}} }}", new WikiTokenizer(wikiText).nextToken().headingWikiText());
+ assertEquals(0, new WikiTokenizer(wikiText).nextToken().errors.size());
+ }
+
+
+