package org.archive.surt;
import java.util.Iterator;
import junit.framework.TestCase;
public class NewSurtTokenizerTest extends TestCase {
public void testRoot() {
NewSurtTokenizer tok = new NewSurtTokenizer("http://(");
Iterator<String> it = tok.iterator();
assertEquals("http://(", it.next());
assertFalse(it.hasNext());
}
public void testOneSeg() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org", it.next());
assertFalse(it.hasNext());
}
public void testOneSegComma() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertFalse(it.hasNext());
}
public void testFewSegs() {
NewSurtTokenizer tok = new NewSurtTokenizer("http://(org,archive,www");
Iterator<String> it = tok.iterator();
assertEquals("http://(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www", it.next());
assertFalse(it.hasNext());
}
public void testFewSegsComma() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertFalse(it.hasNext());
}
public void testIndex() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertFalse(it.hasNext());
}
public void testPage() {
NewSurtTokenizer tok = new NewSurtTokenizer("http://(org,archive,www,)/about.html");
Iterator<String> it = tok.iterator();
assertEquals("http://(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("about.html", it.next());
assertFalse(it.hasNext());
}
public void testPath() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/one/two/");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("one/", it.next());
assertEquals("two/", it.next());
assertFalse(it.hasNext());
}
public void testPathPage() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/one/two/about.html");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("one/", it.next());
assertEquals("two/", it.next());
assertEquals("about.html", it.next());
assertFalse(it.hasNext());
}
public void testQuery() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/one/two/about.html?yo=hey&hi");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("one/", it.next());
assertEquals("two/", it.next());
assertEquals("about.html", it.next());
assertEquals("?yo=hey&hi", it.next());
assertFalse(it.hasNext());
}
public void testAnchor() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/one/two/about.html#fishing/,)fish(?moo");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("one/", it.next());
assertEquals("two/", it.next());
assertEquals("about.html", it.next());
assertEquals("#fishing/,)fish(?moo", it.next());
assertFalse(it.hasNext());
}
public void testQueryAnchor() {
NewSurtTokenizer tok = new NewSurtTokenizer("ftp://(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423");
Iterator<String> it = tok.iterator();
assertEquals("ftp://(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("fishes/", it.next());
assertEquals("pinky.html", it.next());
assertEquals("?moo=yes&bar=12", it.next());
assertEquals("#423", it.next());
assertFalse(it.hasNext());
}
public void testListDiffing() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/");
NewSurtTokenizer tok2 = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html");
assertEquals("pinky.html", tok2.toList().get(tok.toList().size()));
}
public void testTrailingTab() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423\t");
Iterator<String> it = tok.iterator();
assertEquals("(", it.next());
assertEquals("org,", it.next());
assertEquals("archive,", it.next());
assertEquals("www,", it.next());
assertEquals(")/", it.next());
assertEquals("fishes/", it.next());
assertEquals("pinky.html", it.next());
assertEquals("?moo=yes&bar=12", it.next());
assertEquals("#423", it.next());
assertEquals("\t", it.next());
assertFalse(it.hasNext());
}
public void testSearchList() {
NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423");
Iterator<String> it = tok.getSearchList().iterator();
assertEquals("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423", it.next());
assertEquals("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12", it.next());
assertEquals("(org,archive,www,)/fishes/pinky.html", it.next());
assertEquals("(org,archive,www,)/fishes/", it.next());
assertEquals("(org,archive,www,)/", it.next());
assertEquals("(org,archive,www,", it.next());
assertEquals("(org,archive,", it.next());
assertEquals("(org,", it.next());
assertEquals("(", it.next());
assertFalse(it.hasNext());
}
}