test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java

Mon, 13 Dec 2010 13:44:47 -0800

author
bpatel
date
Mon, 13 Dec 2010 13:44:47 -0800
changeset 793
ffbf2b2a8611
parent 766
90af8d87741f
child 1410
bfec2a1cc869
permissions
-rw-r--r--

7006270: Several javadoc regression tests are failing on windows
Reviewed-by: jjg

     1 /*
     2  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 /*
    27  * @test
    28  * @bug 6851834
    29  * @summary This test verifies the HTML document generation for javadoc output.
    30  * @author Bhavesh Patel
    31  * @build TestHtmlDocument
    32  * @run main TestHtmlDocument
    33  */
    35 import java.io.*;
    36 import com.sun.tools.doclets.formats.html.markup.*;
    38 /**
    39  * The class reads each file, complete with newlines, into a string to easily
    40  * compare the existing markup with the generated markup.
    41  */
    42 public class TestHtmlDocument {
    44     private static final String BUGID = "6851834";
    45     private static final String BUGNAME = "TestHtmlDocument";
    46     private static final String FS = System.getProperty("file.separator");
    47     private static final String LS = System.getProperty("line.separator");
    48     private static String srcdir = System.getProperty("test.src", ".");
    50     // Entry point
    51     public static void main(String[] args) throws IOException {
    52         // Check whether the generated markup is same as the existing markup.
    53         if (generateHtmlTree().equals(readFileToString(srcdir + FS + "testMarkup.html"))) {
    54             System.out.println("\nTest passed for bug " + BUGID + " (" + BUGNAME + ")\n");
    55         } else {
    56             throw new Error("\nTest failed for bug " + BUGID + " (" + BUGNAME + ")\n");
    57         }
    58     }
    60     // Generate the HTML output using the HTML document generation within doclet.
    61     public static String generateHtmlTree() {
    62         // Document type for the HTML document
    63         DocType htmlDocType = DocType.Transitional();
    64         HtmlTree html = new HtmlTree(HtmlTag.HTML);
    65         HtmlTree head = new HtmlTree(HtmlTag.HEAD);
    66         HtmlTree title = new HtmlTree(HtmlTag.TITLE);
    67         // String content within the document
    68         StringContent titleContent = new StringContent("Markup test");
    69         title.addContent(titleContent);
    70         head.addContent(title);
    71         // Test META tag
    72         HtmlTree meta = new HtmlTree(HtmlTag.META);
    73         meta.addAttr(HtmlAttr.NAME, "keywords");
    74         meta.addAttr(HtmlAttr.CONTENT, "testContent");
    75         head.addContent(meta);
    76         // Test invalid META tag
    77         HtmlTree invmeta = new HtmlTree(HtmlTag.META);
    78         head.addContent(invmeta);
    79         // Test LINK tag
    80         HtmlTree link = new HtmlTree(HtmlTag.LINK);
    81         link.addAttr(HtmlAttr.REL, "testRel");
    82         link.addAttr(HtmlAttr.HREF, "testLink.html");
    83         head.addContent(link);
    84         // Test invalid LINK tag
    85         HtmlTree invlink = new HtmlTree(HtmlTag.LINK);
    86         head.addContent(invlink);
    87         html.addContent(head);
    88         // Comment within the document
    89         Comment bodyMarker = new Comment("======== START OF BODY ========");
    90         html.addContent(bodyMarker);
    91         HtmlTree body = new HtmlTree(HtmlTag.BODY);
    92         Comment pMarker = new Comment("======== START OF PARAGRAPH ========");
    93         body.addContent(pMarker);
    94         HtmlTree p = new HtmlTree(HtmlTag.P);
    95         StringContent bodyContent = new StringContent(
    96                 "This document is generated from sample source code and HTML " +
    97                 "files with examples of a wide variety of Java language constructs: packages, " +
    98                 "subclasses, subinterfaces, nested classes, nested interfaces," +
    99                 "inheriting from other packages, constructors, fields," +
   100                 "methods, and so forth. ");
   101         p.addContent(bodyContent);
   102         StringContent anchorContent = new StringContent("Click Here");
   103         p.addContent(HtmlTree.A("testLink.html", anchorContent));
   104         StringContent pContent = new StringContent(" to <test> out a link.");
   105         p.addContent(pContent);
   106         body.addContent(p);
   107         HtmlTree p1 = new HtmlTree(HtmlTag.P);
   108         // Test another version of A tag.
   109         HtmlTree anchor = new HtmlTree(HtmlTag.A);
   110         anchor.addAttr(HtmlAttr.HREF, "testLink.html");
   111         anchor.addAttr(HtmlAttr.NAME, "Another version of a tag");
   112         p1.addContent(anchor);
   113         body.addContent(p1);
   114         // Test for empty tags.
   115         HtmlTree dl = new HtmlTree(HtmlTag.DL);
   116         html.addContent(dl);
   117         // Test for empty nested tags.
   118         HtmlTree dlTree = new HtmlTree(HtmlTag.DL);
   119         dlTree.addContent(new HtmlTree(HtmlTag.DT));
   120         dlTree.addContent(new HtmlTree (HtmlTag.DD));
   121         html.addContent(dlTree);
   122         HtmlTree dlDisplay = new HtmlTree(HtmlTag.DL);
   123         dlDisplay.addContent(new HtmlTree(HtmlTag.DT));
   124         HtmlTree dd = new HtmlTree (HtmlTag.DD);
   125         StringContent ddContent = new StringContent("Test DD");
   126         dd.addContent(ddContent);
   127         dlDisplay.addContent(dd);
   128         body.addContent(dlDisplay);
   129         StringContent emptyString = new StringContent("");
   130         body.addContent(emptyString);
   131         Comment emptyComment = new Comment("");
   132         body.addContent(emptyComment);
   133         HtmlTree hr = new HtmlTree(HtmlTag.HR);
   134         body.addContent(hr);
   135         html.addContent(body);
   136         HtmlDocument htmlDoc = new HtmlDocument(htmlDocType, html);
   137         return htmlDoc.toString();
   138     }
   140     // Read the file into a String
   141     public static String readFileToString(String filename) throws IOException {
   142         File file = new File(filename);
   143         if ( !file.exists() ) {
   144             System.out.println("\nFILE DOES NOT EXIST: " + filename);
   145         }
   146         BufferedReader in = new BufferedReader(new FileReader(file));
   147         StringBuilder fileString = new StringBuilder();
   148         // Create an array of characters the size of the file
   149         try {
   150             String line;
   151             while ((line = in.readLine()) != null) {
   152                 fileString.append(line);
   153                 fileString.append(LS);
   154             }
   155         } finally {
   156             in.close();
   157         }
   158         return fileString.toString();
   159     }
   160 }

mercurial