import junit.framework.TestCase;
public class WikiTokenizerTest extends TestCase {
-
+
public void testWikiLink() {
String wikiText;
wikiText = "* This is ''bold''' asdf.";
assertEquals(wikiText, new WikiTokenizer(wikiText).nextToken().token());
+
+ wikiText = "* {{a|US}} {{IPA|[ˈfɔɹ.wɝd]]}}\nasdf\n";
+ assertEquals("* {{a|US}} {{IPA|[ˈfɔɹ.wɝd]]}}", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isListItem());
+ assertEquals("\n", new WikiTokenizer(wikiText).nextToken().nextToken().token());
+
+
+ wikiText = "* [[asdf|\u2028" +
+ "asdf]]";
+ assertEquals("* [[asdf|\n" +
+ "asdf]]", new WikiTokenizer(wikiText).nextToken().token());
+ assertTrue(new WikiTokenizer(wikiText).nextToken().isListItem());
+
}
public void testFunction() {
String wikiText;
-
+
+ {
+ WikiTokenizer wt = new WikiTokenizer("'''Προστατευόμενη Ονομασία Προέλευσης''', \"Protected Designation of Origin\" {{");
+ while (wt.nextToken() != null) {
+ if (wt.isFunction()) {
+ assertEquals("", wt.functionName());
+ }
+ }
+ }
+
wikiText = "{{abc}}";
assertEquals(wikiText, new WikiTokenizer(wikiText).nextToken().token());
assertTrue(new WikiTokenizer(wikiText).nextToken().isFunction());
assertEquals(Arrays.asList(expectedTokens), actualTokens);
}
+ public void testHtml() {
+ String wikiText;
+
+ {
+ wikiText = " zz <pre> asdf </pre> ZZ <math> 1234 </math> XX ";
+ final WikiTokenizer tokenizer = new WikiTokenizer(wikiText);
+ assertEquals(" zz ", tokenizer.nextToken().token());
+ assertEquals("<pre> asdf </pre>", tokenizer.nextToken().token());
+ assertEquals(" ZZ ", tokenizer.nextToken().token());
+ assertEquals("<math> 1234 </math>", tokenizer.nextToken().token());
+ assertEquals(" XX ", tokenizer.nextToken().token());
+ }
+ {
+ wikiText = "\n<math> 1234 </math>";
+ final WikiTokenizer tokenizer = new WikiTokenizer(wikiText);
+ assertEquals("<math> 1234 </math>", tokenizer.nextToken().nextToken().token());
+ }
+
+ {
+ wikiText = "# z'' is the '''free''' variable in \"<math>\\forall x\\exists y:xy=z</math>\".''";
+ final WikiTokenizer tokenizer = new WikiTokenizer(wikiText);
+ assertEquals(wikiText, tokenizer.nextToken().token());
+ }
+
+
+ }
+
}