@Test (timeout = 30000)
public void testToString() {

  toStringTest("/");
  toStringTest("/foo");
  toStringTest("/foo/bar");
  toStringTest("foo");
  toStringTest("foo/bar");
  toStringTest("/foo/bar#boo");
  toStringTest("foo/bar#boo");
  boolean emptyException = false;
  try {
    toStringTest("");
  } catch (IllegalArgumentException e) {
    // expect to receive an IllegalArgumentException
    emptyException = true;
  }
  assertTrue(emptyException);
  if (Path.WINDOWS) {
    toStringTest("c:");
    toStringTest("c:/");
    toStringTest("c:foo");
    toStringTest("c:foo/bar");
    toStringTest("c:foo/bar");
    toStringTest("c:/foo/bar");
    toStringTest("C:/foo/bar#boo");
    toStringTest("C:foo/bar#boo");
  }
}