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.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
41
42
43 public class FaqVerifier
44 extends AbstractVerifier
45 {
46
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 }