--- old/test/com/sun/javadoc/testInterface/TestInterface.java Fri Jan 22 12:24:12 2016 +++ /dev/null Fri Jan 22 12:24:12 2016 @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 4682448 4947464 5029946 8025633 8026567 - * @summary Verify that the public modifier does not show up in the - * documentation for public methods, as recommended by the JLS. - * 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 - * @modules jdk.javadoc - * @build JavadocTester - * @run main TestInterface - */ - -public class TestInterface extends JavadocTester { - - public static void main(String... args) throws Exception { - TestInterface tester = new TestInterface(); - tester.runTests(); - } - - @Test - void test() { - javadoc("-d", "out", - "-sourcepath", testSrc, - "pkg"); - checkExit(Exit.OK); - - checkOutput("pkg/Interface.html", true, - "
int method()
", - "
static final int field
", - // Make sure known implementing class list is correct and omits type parameters. - "
\n" - + "
All Known Implementing Classes:
\n" - + "
Child" - + ", Parent" - + "
\n" - + "
"); - - checkOutput("pkg/Child.html", true, - // Make sure "All Implemented Interfaces": has substituted type parameters - "
\n" - + "
All Implemented Interfaces:
\n" - + "
" - + "Interface<T>
\n" - + "
", - //Make sure Class Tree has substituted type parameters. - "", - //Make sure "Specified By" has substituted type parameters. - "
Specified by:
\n" - + "
method" - + " in interface " - + "" - + "Interface<" - + "T>
", - //Make sure "Overrides" has substituted type parameters. - "
Overrides:
\n" - + "
method" - + " in class Parent<T>
"); - - checkOutput("pkg/Parent.html", true, - //Make sure "Direct Know Subclasses" omits type parameters - "
\n" - + "
Direct Known Subclasses:
\n" - + "
Child" - + "
\n" - + "
"); - - checkOutput("pkg/Interface.html", false, - "public int method()", - "public static final int field"); - } -} --- /dev/null Fri Jan 22 12:24:12 2016 +++ new/test/jdk/javadoc/doclet/testInterface/TestInterface.java Fri Jan 22 12:24:12 2016 @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 4682448 4947464 5029946 8025633 8026567 8035473 + * @summary Verify that the public modifier does not show up in the + * documentation for public methods, as recommended by the JLS. + * 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 + * @modules jdk.javadoc + * @build JavadocTester + * @run main TestInterface + */ + +/* + * TODO: make it Inteferface ie. fix all ParameterTypes, likely should get + * fixed when Doc is replace by j.l.m, but meanwhile this test has been adjusted + * take the current format this is better than @ignore because we can follow the + * differences as the work progress. + * + * The consensus is that we should have something as follows: + * In Child.html + * Specified by: method in interface + * Overrides: method in class Parent + * In otherwords the TypeParameter in scope should be used ex: Interface, Parent + and Child + */ + +public class TestInterface extends JavadocTester { + + public static void main(String... args) throws Exception { + TestInterface tester = new TestInterface(); + tester.runTests(); + } + + @Test + void test() { + javadoc("-d", "out", + "-sourcepath", testSrc, + "pkg"); + checkExit(Exit.OK); + + checkOutput("pkg/Interface.html", true, + "
int method()
", + "
static final int field
", + // Make sure known implementing class list is correct and omits type parameters. + "
\n" + + "
All Known Implementing Classes:
\n" + + "
Child" + + ", Parent" + + "
\n" + + "
"); + + checkOutput("pkg/Child.html", true, + // Make sure "All Implemented Interfaces": has substituted type parameters + "
\n" + + "
All Implemented Interfaces:
\n" + + "
" + + "Interface<CE>
\n" + + "
", + //Make sure Class Tree has substituted type parameters. + "
    \n" + + "
  • java.lang.Object
  • \n" + + "
  • \n" + + "
      \n" + + "
    • " + + "pkg.Parent<CE>
    • \n" + + "
    • \n" + + "
        \n" + + "
      • pkg.Child<CE>
      • \n" + + "
      \n" + + "
    • \n" + + "
    \n" + + "
  • \n" + + "
", + //Make sure "Specified By" has substituted type parameters. + "
Specified by:
\n" + + "
method" + + " in interface " + + "" + + "Interface<" + + "CE>
", + //Make sure "Overrides" has substituted type parameters. + "
Overrides:
\n" + + "
method" + + " in class Parent<CE>
"); + + checkOutput("pkg/Parent.html", true, + //Make sure "Direct Know Subclasses" omits type parameters + "
\n" + + "
Direct Known Subclasses:
\n" + + "
Child" + + "
\n" + + "
"); + + checkOutput("pkg/Interface.html", false, + "public int method()", + "public static final int field"); + } + + @Test + void test1() { + javadoc("-d", "out-1", + "-sourcepath", testSrc, + "pkg1"); + checkExit(Exit.OK); + + checkOutput("pkg1/Child.html", true, + // Ensure the correct Overrides in the inheritance hierarchy is reported + "Overrides:\n" + + "
method1" + + " in class " + + "GrandParent" + + "<CE>"); + } + + @Test + void test2() { + javadoc("-d", "out-2", + "-sourcepath", testSrc, + "pkg2"); + + checkExit(Exit.OK); + + checkOutput("pkg2/Spliterator.OfDouble.html", true, + // Ensure the correct type parameters are displayed correctly + "

Nested classes/interfaces inherited from interface pkg2." + + "Spliterator

\n" + + "" + + "Spliterator.OfDouble, Spliterator.OfInt<" + + "" + + "Integer>, " + + "Spliterator.OfPrimitive<T,T_CONS," + + "" + + "T_SPLITR extends " + + "Spliterator.OfPrimitive<T," + + "" + + "T_CONS," + + "T_SPLITR>>"); + } +}