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.HtmlHeader2;
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   *
41   * @author ltheussl
42   * @version $Id: FaqVerifier.java 776258 2009-05-19 10:06:09Z ltheussl $
43   */
44  public class FaqVerifier
45      extends AbstractVerifier
46  {
47      /** {@inheritDoc} */
48      public void verify( String file )
49              throws Exception
50      {
51          HtmlPage page = htmlPage( file );
52          assertNotNull( page );
53  
54          HtmlElement element = page.getHtmlElementById( "contentBox" );
55          assertNotNull( element );
56          HtmlDivision division = (HtmlDivision) element;
57          assertNotNull( division );
58  
59          Iterator elementIterator = division.getAllHtmlChildElements();
60  
61          // ----------------------------------------------------------------------
62          //
63          // ----------------------------------------------------------------------
64  
65          HtmlDivision div = (HtmlDivision) elementIterator.next();
66          assertEquals( div.getAttributeValue( "class" ), "section" );
67  
68          HtmlHeader2 h2 = (HtmlHeader2) elementIterator.next();
69          assertEquals( h2.asText().trim(), "Oft Asked Questions" );
70  
71          HtmlAnchor a = (HtmlAnchor) elementIterator.next();
72          assertEquals( a.getAttributeValue( "name" ), "top" );
73  
74          a = (HtmlAnchor) elementIterator.next();
75          assertEquals( a.getAttributeValue( "name" ), "Oft_Asked_Questions" );
76  
77          HtmlParagraph p = (HtmlParagraph) elementIterator.next();
78          element = (HtmlElement) elementIterator.next();
79          assertEquals( element.getTagName(), "b" );
80          assertEquals( element.asText().trim(), "Contributing" );
81  
82          HtmlOrderedList ol = (HtmlOrderedList) elementIterator.next();
83          assertEquals( ol.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
84  
85          HtmlListItem li = (HtmlListItem) elementIterator.next();
86          assertEquals( li.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
87  
88          a = (HtmlAnchor) elementIterator.next();
89          assertEquals( a.getAttributeValue( "href" ), "#stupid-question" );
90  
91          element = (HtmlElement) elementIterator.next();
92          assertEquals( element.getTagName(), "b" );
93          assertEquals( element.asText().trim(), "stupid" );
94  
95          p = (HtmlParagraph) elementIterator.next();
96          element = (HtmlElement) elementIterator.next();
97          assertEquals( element.getTagName(), "b" );
98          assertEquals( element.asText().trim(), "Using Maven" );
99  
100         ol = (HtmlOrderedList) elementIterator.next();
101         assertEquals( ol.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
102 
103         li = (HtmlListItem) elementIterator.next();
104         assertNotNull( li );
105         assertEquals( li.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
106 
107         a = (HtmlAnchor) elementIterator.next();
108         assertEquals( a.getAttributeValue( "href" ), "#disable-reports" );
109 
110         div = (HtmlDivision) elementIterator.next();
111         assertEquals( div.getAttributeValue( "class" ), "section" );
112 
113         h2 = (HtmlHeader2) elementIterator.next();
114         assertEquals( h2.asText().trim(), "Contributing" );
115 
116         a = (HtmlAnchor) elementIterator.next();
117         assertEquals( a.getAttributeValue( "name" ), "Contributing" );
118 
119         HtmlDefinitionList dl = (HtmlDefinitionList) elementIterator.next();
120 
121         HtmlDefinitionTerm dt = (HtmlDefinitionTerm) elementIterator.next();
122         assertEquals( dt.getFirstDomChild().asText().trim(), "One stupid question & a silly answer?" );
123 
124         a = (HtmlAnchor) elementIterator.next();
125         assertEquals( a.getAttributeValue( "name" ), "stupid-question" );
126 
127         element = (HtmlElement) elementIterator.next();
128         assertEquals( element.getTagName(), "b" );
129         assertEquals( element.asText().trim(), "stupid" );
130 
131         HtmlDefinitionDescription dd = (HtmlDefinitionDescription) elementIterator.next();
132 
133         p = (HtmlParagraph) elementIterator.next();
134 
135         a = (HtmlAnchor) elementIterator.next();
136         assertEquals( a.getAttributeValue( "href" ), "#Using_Maven" );
137         assertEquals( a.asText().trim(), "local link" );
138 
139         a = (HtmlAnchor) elementIterator.next();
140         assertEquals( a.getAttributeValue( "href" ), "./cdc.html" );
141         assertEquals( a.asText().trim(), "source document" );
142 
143         a = (HtmlAnchor) elementIterator.next();
144         assertEquals( a.getAttributeValue( "href" ), "http://maven.apache.org/?l=a&m=b" );
145         assertEquals( a.asText().trim(), "external link" );
146 
147         element = (HtmlElement) elementIterator.next();
148         assertEquals( element.getTagName(), "i" );
149         assertEquals( element.asText().trim(), "italic" );
150 
151         p = (HtmlParagraph) elementIterator.next();
152         assertEquals( p.getAttributeValue( "align" ), "right" );
153 
154         a = (HtmlAnchor) elementIterator.next();
155         assertEquals( a.getAttributeValue( "href" ), "#top" );
156         assertEquals( a.asText().trim(), "[top]" );
157 
158 
159         div = (HtmlDivision) elementIterator.next();
160         assertEquals( div.getAttributeValue( "class" ), "section" );
161 
162         h2 = (HtmlHeader2) elementIterator.next();
163         assertEquals( h2.asText().trim(), "Using Maven" );
164 
165         a = (HtmlAnchor) elementIterator.next();
166         assertEquals( a.getAttributeValue( "name" ), "Using_Maven" );
167 
168         dl = (HtmlDefinitionList) elementIterator.next();
169 
170         dt = (HtmlDefinitionTerm) elementIterator.next();
171         assertEquals( dt.getFirstDomChild().asText().trim(), "How do I disable a report on my site?" );
172 
173         a = (HtmlAnchor) elementIterator.next();
174         assertEquals( a.getAttributeValue( "name" ), "disable-reports" );
175 
176         dd = (HtmlDefinitionDescription) elementIterator.next();
177 
178         p = (HtmlParagraph) elementIterator.next();
179 
180         element = (HtmlElement) elementIterator.next();
181         assertEquals( element.getTagName(), "tt" );
182         assertEquals( element.asText().trim(), "<source></source>" );
183 
184         div = (HtmlDivision) elementIterator.next();
185         assertEquals( div.getAttributeValue( "class" ), "source" );
186 
187         HtmlPreformattedText pre = (HtmlPreformattedText) elementIterator.next();
188         assertEquals( pre.asText().trim(), "<source>1.5</source>" );
189 
190         p = (HtmlParagraph) elementIterator.next();
191         assertEquals( p.getAttributeValue( "align" ), "right" );
192 
193         a = (HtmlAnchor) elementIterator.next();
194         assertEquals( a.getAttributeValue( "href" ), "#top" );
195         assertEquals( a.asText().trim(), "[top]" );
196 
197         assertFalse( elementIterator.hasNext() );
198     }
199 }