diff --git a/java/src/org/apache/xml/resolver/tests/BasicResolverTests.java b/java/src/org/apache/xml/resolver/tests/BasicResolverTests.java
new file mode 100644
index 0000000..1d8d0b7
--- /dev/null
+++ b/java/src/org/apache/xml/resolver/tests/BasicResolverTests.java
@@ -0,0 +1,125 @@
+package org.apache.xml.resolver.tests;
+
+import junit.framework.TestCase;
+
+import java.net.URL;
+
+import org.apache.xml.resolver.Catalog;
+import org.apache.xml.resolver.CatalogManager;
+import org.apache.xml.resolver.tools.CatalogResolver;
+
+public class BasicResolverTests extends TestCase {
+ protected Catalog catalog;
+
+ public static void main(String args[]) {
+ junit.textui.TestRunner.run(BasicResolverTests.class);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ CatalogManager manager = new CatalogManager();
+
+ // Just do this to make sure that the debug level gets set.
+ // I could set the value explicitly, but I know that the
+ // ant build file is going to set the system property, so just
+ // make sure that that gets used.
+ int verbosity = manager.getVerbosity();
+
+ catalog = new Catalog(manager);
+ catalog.setupReaders();
+ catalog.loadSystemCatalogs();
+ }
+
+ public void testResolveSystem() {
+ String resolved = null;
+ String local = "file:/local/system-resolver.dtd";
+
+ try {
+ resolved = catalog.resolveSystem("http://example.org/resolver.dtd");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testResolvePublic() {
+ String resolved = null;
+ String local = "file:/local/public-resolver.dtd";
+
+ try {
+ resolved = catalog.resolvePublic("-//Apache//DTD Resolver Test//EN",
+ "some-broken-system-identifier");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testRewriteSystem() {
+ String resolved = null;
+ String local = "file:/longest/path";
+
+ try {
+ resolved = catalog.resolveSystem("http://rewrite.example.org/longest/path");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testResolveURI() {
+ String resolved = null;
+ String local = "file:/local/uri";
+
+ try {
+ resolved = catalog.resolveURI("http://example.org/someURI");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testGroup() {
+ String resolved = null;
+ String local = "file:/local/other/uri";
+
+ try {
+ resolved = catalog.resolveURI("http://example.org/someOtherURI");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testDelegateSystem() {
+ String resolved = null;
+ String local = "file:/local/delegated/system-resolver.dtd";
+
+ try {
+ resolved = catalog.resolveSystem("http://delegate.example.org/resolver.dtd");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+
+ public void testDocument() {
+ String resolved = null;
+ String local = "file:/default-document";
+
+ try {
+ resolved = catalog.resolveDocument();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ assertTrue(local.equals(resolved));
+ }
+}
diff --git a/java/src/org/apache/xml/resolver/tests/catalog.xml b/java/src/org/apache/xml/resolver/tests/catalog.xml
new file mode 100644
index 0000000..ac07027
--- /dev/null
+++ b/java/src/org/apache/xml/resolver/tests/catalog.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/src/org/apache/xml/resolver/tests/delegate-system.xml b/java/src/org/apache/xml/resolver/tests/delegate-system.xml
new file mode 100644
index 0000000..2da1f75
--- /dev/null
+++ b/java/src/org/apache/xml/resolver/tests/delegate-system.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/java/src/org/apache/xml/resolver/tests/tr9401.xml b/java/src/org/apache/xml/resolver/tests/tr9401.xml
new file mode 100644
index 0000000..273e5a3
--- /dev/null
+++ b/java/src/org/apache/xml/resolver/tests/tr9401.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+