TestOverridenPrivateMethodsWithPackageFlag.java revision 3233:b5d08bc0d224
1169689Skan/* 2169689Skan * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. 3169689Skan * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4169689Skan * 5169689Skan * This code is free software; you can redistribute it and/or modify it 6169689Skan * under the terms of the GNU General Public License version 2 only, as 7169689Skan * published by the Free Software Foundation. 8169689Skan * 9169689Skan * This code is distributed in the hope that it will be useful, but WITHOUT 10169689Skan * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11169689Skan * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12169689Skan * version 2 for more details (a copy is included in the LICENSE file that 13169689Skan * accompanied this code). 14169689Skan * 15169689Skan * You should have received a copy of the GNU General Public License version 16169689Skan * 2 along with this work; if not, write to the Free Software Foundation, 17169689Skan * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18169689Skan * 19169689Skan * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20169689Skan * or visit www.oracle.com if you need additional information or have any 21169689Skan * questions. 22169689Skan */ 23169689Skan 24169689Skan/* 25169689Skan * @test 26169689Skan * @bug 4634891 8025633 8026567 27169689Skan * @summary Determine if overridden methods are properly documented when 28169689Skan * -protected (default) visibility flag is used. 29169689Skan * @author jamieh 30169689Skan * @library ../lib 31169689Skan * @modules jdk.javadoc 32169689Skan * @build JavadocTester 33169689Skan * @run main TestOverridenPrivateMethodsWithPackageFlag 34169689Skan */ 35169689Skan 36169689Skanpublic class TestOverridenPrivateMethodsWithPackageFlag extends JavadocTester { 37169689Skan 38169689Skan public static void main(String... args) throws Exception { 39169689Skan TestOverridenPrivateMethodsWithPackageFlag tester = new TestOverridenPrivateMethodsWithPackageFlag(); 40169689Skan tester.runTests(); 41169689Skan } 42169689Skan 43169689Skan @Test 44169689Skan void test() { 45169689Skan javadoc("-d", "out", 46169689Skan "-sourcepath", testSrc, 47169689Skan "-package", 48169689Skan "pkg1", "pkg2"); 49169689Skan checkExit(Exit.OK); 50169689Skan 51169689Skan // The public method should be overridden 52169689Skan checkOutput("pkg1/SubClass.html", true, 53169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 54169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" 55169689Skan + "publicMethod</a></code> in class <code>" 56169689Skan + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); 57169689Skan 58169689Skan // The public method in different package should be overridden 59169689Skan checkOutput("pkg2/SubClass.html", true, 60169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 61169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" 62169689Skan + "publicMethod</a></code> in class <code>" 63169689Skan + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); 64169689Skan 65169689Skan // The package private method should be overridden since the base and sub class are in the same 66169689Skan // package. 67169689Skan checkOutput("pkg1/SubClass.html", true, 68169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 69169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">" 70169689Skan + "packagePrivateMethod</a></code> in class <code>" 71169689Skan + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); 72169689Skan 73169689Skan // The private method in should not be overridden 74169689Skan checkOutput("pkg1/SubClass.html", false, 75169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 76169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"); 77169689Skan 78169689Skan // The private method in different package should not be overridden 79169689Skan checkOutput("pkg2/SubClass.html", false, 80169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 81169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"); 82169689Skan 83169689Skan // The package private method should not be overridden since the base and sub class are in 84169689Skan // different packages. 85169689Skan checkOutput("pkg2/SubClass.html", false, 86169689Skan "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" 87169689Skan + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod()\">"); 88169689Skan } 89169689Skan} 90169689Skan