langtools/test/com/sun/javadoc/testInterface/TestInterface.java
changeset 24399 af1a0220d0fa
parent 24072 e7549dcbc4af
child 30730 d3ce7619db2c
--- a/langtools/test/com/sun/javadoc/testInterface/TestInterface.java	Fri May 09 23:31:05 2014 +0200
+++ b/langtools/test/com/sun/javadoc/testInterface/TestInterface.java	Fri May 09 15:37:12 2014 -0700
@@ -29,101 +29,82 @@
  *           If A implements I and B extends A, B should be in the list of
  *           implementing classes in the documentation for I.
  * @author   jamieh
- * @library  ../lib/
+ * @library  ../lib
  * @build    JavadocTester
- * @build    TestInterface
  * @run main TestInterface
  */
 
 public class TestInterface extends JavadocTester {
 
-    //Javadoc arguments.
-    private static final String[] ARGS = new String[] {
-        "-d", OUTPUT_DIR, "-sourcepath", SRC_DIR, "pkg"
-    };
+    public static void main(String... args) throws Exception {
+        TestInterface tester = new TestInterface();
+        tester.runTests();
+    }
 
-    //Input for string search tests.
-    private static final String[][] TEST = {
-        { "pkg/Interface.html",
-            "<pre>int&nbsp;method()</pre>"},
-        { "pkg/Interface.html",
-            "<pre>static final&nbsp;int field</pre>"},
-
+    @Test
+    void test() {
+        javadoc("-d", "out",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
 
-        // Make sure known implementing class list is correct and omits type parameters.
-        { "pkg/Interface.html",
-            "<dl>\n" +
-            "<dt>All Known Implementing Classes:</dt>\n" +
-            "<dd><a href=\"../pkg/Child.html\" title=\"class in pkg\">Child" +
-            "</a>, <a href=\"../pkg/Parent.html\" title=\"class in pkg\">Parent" +
-            "</a></dd>\n" +
-            "</dl>"},
+        checkOutput("pkg/Interface.html", true,
+                "<pre>int&nbsp;method()</pre>",
+                "<pre>static final&nbsp;int field</pre>",
+                // Make sure known implementing class list is correct and omits type parameters.
+                "<dl>\n"
+                + "<dt>All Known Implementing Classes:</dt>\n"
+                + "<dd><a href=\"../pkg/Child.html\" title=\"class in pkg\">Child"
+                + "</a>, <a href=\"../pkg/Parent.html\" title=\"class in pkg\">Parent"
+                + "</a></dd>\n"
+                + "</dl>");
 
-         // Make sure "All Implemented Interfaces": has substituted type parameters
-         { "pkg/Child.html",
-            "<dl>\n" +
-            "<dt>All Implemented Interfaces:</dt>\n" +
-            "<dd><a href=\"../pkg/Interface.html\" title=\"interface in pkg\">" +
-            "Interface</a>&lt;T&gt;</dd>\n" +
-            "</dl>"
-         },
-         //Make sure Class Tree has substituted type parameters.
-         { "pkg/Child.html",
-            "<ul class=\"inheritance\">\n" +
-            "<li>java.lang.Object</li>\n" +
-            "<li>\n" +
-            "<ul class=\"inheritance\">\n" +
-            "<li><a href=\"../pkg/Parent.html\" title=\"class in pkg\">" +
-            "pkg.Parent</a>&lt;T&gt;</li>\n" +
-            "<li>\n" +
-            "<ul class=\"inheritance\">\n" +
-            "<li>pkg.Child&lt;T&gt;</li>\n" +
-            "</ul>\n" +
-            "</li>\n" +
-            "</ul>\n" +
-            "</li>\n" +
-            "</ul>"
-         },
-         //Make sure "Direct Know Subclasses" omits type parameters
-        { "pkg/Parent.html",
-            "<dl>\n" +
-            "<dt>Direct Known Subclasses:</dt>\n" +
-            "<dd><a href=\"../pkg/Child.html\" title=\"class in pkg\">Child" +
-            "</a></dd>\n" +
-            "</dl>"
-        },
-        //Make sure "Specified By" has substituted type parameters.
-        { "pkg/Child.html",
-            "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n" +
-            "<dd><code><a href=\"../pkg/Interface.html#method--\">method</a>" +
-            "</code>&nbsp;in interface&nbsp;<code>" +
-            "<a href=\"../pkg/Interface.html\" title=\"interface in pkg\">" +
-            "Interface</a>&lt;<a href=\"../pkg/Child.html\" title=\"type parameter in Child\">" +
-            "T</a>&gt;</code></dd>"
-         },
-        //Make sure "Overrides" has substituted type parameters.
-        { "pkg/Child.html",
-            "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" +
-            "<dd><code><a href=\"../pkg/Parent.html#method--\">method</a>" +
-            "</code>&nbsp;in class&nbsp;<code><a href=\"../pkg/Parent.html\" " +
-            "title=\"class in pkg\">Parent</a>&lt;<a href=\"../pkg/Child.html\" " +
-            "title=\"type parameter in Child\">T</a>&gt;</code></dd>"
-         },
-    };
-    private static final String[][] NEGATED_TEST = {
-        { "pkg/Interface.html",
-            "public int&nbsp;method()"},
-        { "pkg/Interface.html",
-            "public static final&nbsp;int field"},
-    };
+        checkOutput("pkg/Child.html", true,
+                // Make sure "All Implemented Interfaces": has substituted type parameters
+                "<dl>\n"
+                + "<dt>All Implemented Interfaces:</dt>\n"
+                + "<dd><a href=\"../pkg/Interface.html\" title=\"interface in pkg\">"
+                + "Interface</a>&lt;T&gt;</dd>\n"
+                + "</dl>",
+                //Make sure Class Tree has substituted type parameters.
+                "<ul class=\"inheritance\">\n"
+                + "<li>java.lang.Object</li>\n"
+                + "<li>\n"
+                + "<ul class=\"inheritance\">\n"
+                + "<li><a href=\"../pkg/Parent.html\" title=\"class in pkg\">"
+                + "pkg.Parent</a>&lt;T&gt;</li>\n"
+                + "<li>\n"
+                + "<ul class=\"inheritance\">\n"
+                + "<li>pkg.Child&lt;T&gt;</li>\n"
+                + "</ul>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "</li>\n"
+                + "</ul>",
+                //Make sure "Specified By" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg/Interface.html#method--\">method</a>"
+                + "</code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"../pkg/Interface.html\" title=\"interface in pkg\">"
+                + "Interface</a>&lt;<a href=\"../pkg/Child.html\" title=\"type parameter in Child\">"
+                + "T</a>&gt;</code></dd>",
+                //Make sure "Overrides" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg/Parent.html#method--\">method</a>"
+                + "</code>&nbsp;in class&nbsp;<code><a href=\"../pkg/Parent.html\" "
+                + "title=\"class in pkg\">Parent</a>&lt;<a href=\"../pkg/Child.html\" "
+                + "title=\"type parameter in Child\">T</a>&gt;</code></dd>");
 
-    /**
-     * The entry point of the test.
-     * @param args the array of command line arguments.
-     */
-    public static void main(String[] args) {
-        TestInterface tester = new TestInterface();
-        tester.run(ARGS, TEST, NEGATED_TEST);
-        tester.printSummary();
+        checkOutput("pkg/Parent.html", true,
+                //Make sure "Direct Know Subclasses" omits type parameters
+                "<dl>\n"
+                + "<dt>Direct Known Subclasses:</dt>\n"
+                + "<dd><a href=\"../pkg/Child.html\" title=\"class in pkg\">Child"
+                + "</a></dd>\n"
+                + "</dl>");
+
+        checkOutput("pkg/Interface.html", false,
+                "public int&nbsp;method()",
+                "public static final&nbsp;int field");
     }
 }