1 package org.apache.maven.doxia.siterenderer;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
42
43
44 public class FaqVerifier
45 extends AbstractVerifier
46 {
47
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 }