diff -r fd16c54261b3 -r 06bc494ca11e langtools/test/tools/apt/mirror/declaration/PackageDecl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/apt/mirror/declaration/PackageDecl.java Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,167 @@ +/* + * Copyright 2004-2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + + +/* + * @test + * @bug 4853450 5031168 + * @summary PackageDeclaration tests + * @library ../../lib + * @compile -source 1.5 PackageDecl.java + * @run main PackageDecl + */ + + +import java.io.File; +import java.util.*; +import com.sun.mirror.declaration.*; +import com.sun.mirror.type.*; +import com.sun.mirror.util.*; + +import pkg1.pkg2.*; + + +/** + * Sed Quis custodiet ipsos custodes? + */ +public class PackageDecl extends Tester { + + public PackageDecl() { + super(System.getProperty("test.src", ".") + File.separator + + "pkg1" + File.separator + "package-info.java"); + } + + public static void main(String[] args) { + (new PackageDecl()).run(); + } + + + private PackageDeclaration pkg1 = null; // a package + private PackageDeclaration pkg2 = null; // a subpackage + + protected void init() { + pkg1 = env.getPackage("pkg1"); + pkg2 = env.getPackage("pkg1.pkg2"); + } + + + // Declaration methods + + @Test(result="package") + Collection accept() { + final Collection res = new ArrayList(); + + pkg1.accept(new SimpleDeclarationVisitor() { + public void visitTypeDeclaration(TypeDeclaration t) { + res.add("type"); + } + public void visitPackageDeclaration(PackageDeclaration p) { + res.add("package"); + } + }); + return res; + } + + @Test(result={"@pkg1.AnAnnoType"}) + Collection getAnnotationMirrors() { + return pkg1.getAnnotationMirrors(); + } + + @Test(result=" Herein lieth the package comment.\n" + + " A doc comment it be, and wonderous to behold.\n") + String getDocCommentFromPackageInfoFile() { + return pkg1.getDocComment(); + } + + @Test(result="\nHerein lieth the package comment.\n" + + "An HTML file it be, and wonderous to behold.\n\n") + @Ignore("Not yet supported") + String getDocCommentFromHtmlFile() { + return pkg2.getDocComment(); + } + + @Test(result={}) + Collection getModifiers() { + return pkg1.getModifiers(); + } + + @Test(result="null") + SourcePosition getPosition() { + return thisClassDecl.getPackage().getPosition(); + } + + @Test(result="package-info.java") + String getPositionFromPackageInfoFile() { + return pkg1.getPosition().file().getName(); + } + + @Test(result="pkg1/pkg2/package.html") + @Ignore("Not yet supported") + String getPositionFromHtmlFile() { + return pkg2.getPosition().file().getName() + .replace(File.separatorChar, '/'); + } + + @Test(result="pkg1") + String getSimpleName1() { + return pkg1.getSimpleName(); + } + + @Test(result="pkg2") + String getSimpleName2() { + return pkg2.getSimpleName(); + } + + + // PackageDeclaration methods + + @Test(result="pkg1.AnAnnoType") + Collection getAnnotationTypes() { + return pkg1.getAnnotationTypes(); + } + + @Test(result={"pkg1.AClass", "pkg1.AnEnum"}) + Collection getClasses() { + return pkg1.getClasses(); + } + + @Test(result="pkg1.AnEnum") + Collection getEnums() { + return pkg1.getEnums(); + } + + @Test(result={"pkg1.AnInterface", "pkg1.AnAnnoType"}) + Collection getInterfaces() { + return pkg1.getInterfaces(); + } + + @Test(result="pkg1") + String getQualifiedName1() { + return pkg1.getQualifiedName(); + } + + @Test(result="pkg1.pkg2") + String getQualifiedName2() { + return pkg2.getQualifiedName(); + } +}