View Javadoc

1   package org.apache.maven.doxia.siterenderer;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
23  import com.gargoylesoftware.htmlunit.html.HtmlDefinitionDescription;
24  import com.gargoylesoftware.htmlunit.html.HtmlDefinitionList;
25  import com.gargoylesoftware.htmlunit.html.HtmlDefinitionTerm;
26  import com.gargoylesoftware.htmlunit.html.HtmlDivision;
27  import com.gargoylesoftware.htmlunit.html.HtmlElement;
28  import com.gargoylesoftware.htmlunit.html.HtmlHeading2;
29  import com.gargoylesoftware.htmlunit.html.HtmlListItem;
30  import com.gargoylesoftware.htmlunit.html.HtmlOrderedList;
31  import com.gargoylesoftware.htmlunit.html.HtmlPage;
32  import com.gargoylesoftware.htmlunit.html.HtmlParagraph;
33  import com.gargoylesoftware.htmlunit.html.HtmlPreformattedText;
34  
35  import java.util.Iterator;
36  
37  
38  /**
39   *
40   * @author ltheussl
41   * @version $Id: FaqVerifier.java 1195521 2011-10-31 15:29:36Z hboutemy $
42   */
43  public class FaqVerifier
44      extends AbstractVerifier
45  {
46      /** {@inheritDoc} */
47      public void verify( String file )
48              throws Exception
49      {
50          HtmlPage page = htmlPage( file );
51          assertNotNull( page );
52  
53          HtmlElement element = page.getHtmlElementById( "contentBox" );
54          assertNotNull( element );
55          HtmlDivision division = (HtmlDivision) element;
56          assertNotNull( division );
57  
58          Iterator<HtmlElement> elementIterator = division.getHtmlElementDescendants().iterator();
59  
60          // ----------------------------------------------------------------------
61          //
62          // ----------------------------------------------------------------------
63  
64          HtmlDivision div = (HtmlDivision) elementIterator.next();
65          assertEquals( div.getAttribute( "class" ), "section" );
66  
67          HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
68          assertEquals( h2.asText().trim(), "Oft Asked Questions" );
69  
70          HtmlAnchor a = (HtmlAnchor) elementIterator.next();
71          assertEquals( a.getAttribute( "name" ), "top" );
72  
73          a = (HtmlAnchor) elementIterator.next();
74          assertEquals( a.getAttribute( "name" ), "Oft_Asked_Questions" );
75  
76          HtmlParagraph p = (HtmlParagraph) elementIterator.next();
77          element = elementIterator.next();
78          assertEquals( element.getTagName(), "b" );
79          assertEquals( element.asText().trim(), "Contributing" );
80  
81          HtmlOrderedList ol = (HtmlOrderedList) elementIterator.next();
82          assertEquals( ol.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
83  
84          HtmlListItem li = (HtmlListItem) elementIterator.next();
85          assertEquals( li.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
86  
87          a = (HtmlAnchor) elementIterator.next();
88          assertEquals( a.getAttribute( "href" ), "#stupid-question" );
89  
90          element = elementIterator.next();
91          assertEquals( element.getTagName(), "b" );
92          assertEquals( element.asText().trim(), "stupid" );
93  
94          p = (HtmlParagraph) elementIterator.next();
95          element = elementIterator.next();
96          assertEquals( element.getTagName(), "b" );
97          assertEquals( element.asText().trim(), "Using Maven" );
98  
99          ol = (HtmlOrderedList) elementIterator.next();
100         assertEquals( ol.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
101 
102         li = (HtmlListItem) elementIterator.next();
103         assertNotNull( li );
104         assertEquals( li.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
105 
106         a = (HtmlAnchor) elementIterator.next();
107         assertEquals( a.getAttribute( "href" ), "#disable-reports" );
108 
109         div = (HtmlDivision) elementIterator.next();
110         assertEquals( div.getAttribute( "class" ), "section" );
111 
112         h2 = (HtmlHeading2) elementIterator.next();
113         assertEquals( h2.asText().trim(), "Contributing" );
114 
115         a = (HtmlAnchor) elementIterator.next();
116         assertEquals( a.getAttribute( "name" ), "Contributing" );
117 
118         HtmlDefinitionList dl = (HtmlDefinitionList) elementIterator.next();
119 
120         HtmlDefinitionTerm dt = (HtmlDefinitionTerm) elementIterator.next();
121         assertEquals( dt.getFirstChild().asText().trim(), "One stupid question & a silly answer?" );
122 
123         a = (HtmlAnchor) elementIterator.next();
124         assertEquals( a.getAttribute( "name" ), "stupid-question" );
125 
126         element = elementIterator.next();
127         assertEquals( element.getTagName(), "b" );
128         assertEquals( element.asText().trim(), "stupid" );
129 
130         HtmlDefinitionDescription dd = (HtmlDefinitionDescription) elementIterator.next();
131 
132         p = (HtmlParagraph) elementIterator.next();
133 
134         a = (HtmlAnchor) elementIterator.next();
135         assertEquals( a.getAttribute( "href" ), "#Using_Maven" );
136         assertEquals( a.asText().trim(), "local link" );
137 
138         a = (HtmlAnchor) elementIterator.next();
139         assertEquals( a.getAttribute( "href" ), "./cdc.html" );
140         assertEquals( a.asText().trim(), "source document" );
141 
142         a = (HtmlAnchor) elementIterator.next();
143         assertEquals( a.getAttribute( "href" ), "http://maven.apache.org/?l=a&m=b" );
144         assertEquals( a.asText().trim(), "external link" );
145 
146         element = elementIterator.next();
147         assertEquals( element.getTagName(), "i" );
148         assertEquals( element.asText().trim(), "italic" );
149 
150         p = (HtmlParagraph) elementIterator.next();
151         assertEquals( p.getAttribute( "align" ), "right" );
152 
153         a = (HtmlAnchor) elementIterator.next();
154         assertEquals( a.getAttribute( "href" ), "#top" );
155         assertEquals( a.asText().trim(), "[top]" );
156 
157 
158         div = (HtmlDivision) elementIterator.next();
159         assertEquals( div.getAttribute( "class" ), "section" );
160 
161         h2 = (HtmlHeading2) elementIterator.next();
162         assertEquals( h2.asText().trim(), "Using Maven" );
163 
164         a = (HtmlAnchor) elementIterator.next();
165         assertEquals( a.getAttribute( "name" ), "Using_Maven" );
166 
167         dl = (HtmlDefinitionList) elementIterator.next();
168 
169         dt = (HtmlDefinitionTerm) elementIterator.next();
170         assertEquals( dt.getFirstChild().asText().trim(), "How do I disable a report on my site?" );
171 
172         a = (HtmlAnchor) elementIterator.next();
173         assertEquals( a.getAttribute( "name" ), "disable-reports" );
174 
175         dd = (HtmlDefinitionDescription) elementIterator.next();
176 
177         p = (HtmlParagraph) elementIterator.next();
178 
179         element = elementIterator.next();
180         assertEquals( element.getTagName(), "tt" );
181         assertEquals( element.asText().trim(), "<source></source>" );
182 
183         div = (HtmlDivision) elementIterator.next();
184         assertEquals( div.getAttribute( "class" ), "source" );
185 
186         HtmlPreformattedText pre = (HtmlPreformattedText) elementIterator.next();
187         assertEquals( pre.asText().trim(), "<source>1.5</source>" );
188 
189         p = (HtmlParagraph) elementIterator.next();
190         assertEquals( p.getAttribute( "align" ), "right" );
191 
192         a = (HtmlAnchor) elementIterator.next();
193         assertEquals( a.getAttribute( "href" ), "#top" );
194         assertEquals( a.asText().trim(), "[top]" );
195 
196         assertFalse( elementIterator.hasNext() );
197     }
198 }