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.HtmlHeading4;
30 import com.gargoylesoftware.htmlunit.html.HtmlListItem;
31 import com.gargoylesoftware.htmlunit.html.HtmlOrderedList;
32 import com.gargoylesoftware.htmlunit.html.HtmlPage;
33 import com.gargoylesoftware.htmlunit.html.HtmlParagraph;
34 import com.gargoylesoftware.htmlunit.html.HtmlUnorderedList;
35
36 import java.util.Iterator;
37
38
39
40
41
42
43
44 public class NestedItemsVerifier
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<HtmlElement> elementIterator = division.getHtmlElementDescendants().iterator();
60
61
62
63
64
65 HtmlDivision div = (HtmlDivision) elementIterator.next();
66 assertNotNull( div );
67 assertEquals( div.getAttribute( "class" ), "section" );
68
69 HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
70 assertNotNull( h2 );
71 assertEquals( h2.asText().trim(), "List Section" );
72
73 HtmlAnchor a = (HtmlAnchor) elementIterator.next();
74 assertNotNull( a );
75 assertEquals( a.getAttribute( "name" ), "List_Section" );
76
77
78
79
80 div = (HtmlDivision) elementIterator.next();
81 assertNotNull( div );
82 assertEquals( div.getAttribute( "class" ), "section" );
83
84 div = (HtmlDivision) elementIterator.next();
85 assertNotNull( div );
86 assertEquals( div.getAttribute( "class" ), "section" );
87
88 HtmlHeading4 h4 = (HtmlHeading4) elementIterator.next();
89 assertNotNull( h4 );
90 assertEquals( h4.asText().trim(), "Unordered lists" );
91
92 a = (HtmlAnchor) elementIterator.next();
93 assertNotNull( a );
94 assertEquals( a.getAttribute( "name" ), "Unordered_lists" );
95
96 HtmlParagraph p = (HtmlParagraph) elementIterator.next();
97 assertNotNull( p );
98 assertEquals( p.asText().trim(), "Below is an unordered list, followed by six paragraphs." );
99
100 HtmlUnorderedList ul = (HtmlUnorderedList) elementIterator.next();
101 assertNotNull( ul );
102
103 HtmlListItem li = (HtmlListItem) elementIterator.next();
104 assertNotNull( li );
105 assertEquals( li.getFirstChild().asText().trim(), "Item 1." );
106
107 ul = (HtmlUnorderedList) elementIterator.next();
108 assertNotNull( ul );
109
110 li = (HtmlListItem) elementIterator.next();
111 assertNotNull( li );
112 p = (HtmlParagraph) elementIterator.next();
113 assertNotNull( p );
114 assertEquals( p.getFirstChild().asText().trim(), "Item 11." );
115 li = (HtmlListItem) elementIterator.next();
116 assertNotNull( li );
117 p = (HtmlParagraph) elementIterator.next();
118 assertNotNull( p );
119 assertEquals( p.getFirstChild().asText().trim(), "Item 12." );
120 li = (HtmlListItem) elementIterator.next();
121 assertNotNull( li );
122 assertEquals( li.getFirstChild().asText().trim(), "Item 13." );
123 li = (HtmlListItem) elementIterator.next();
124 assertNotNull( li );
125 assertEquals( li.getFirstChild().asText().trim(), "Item 14." );
126 li = (HtmlListItem) elementIterator.next();
127 assertNotNull( li );
128 assertEquals( li.getFirstChild().asText().trim(), "Item 2." );
129 li = (HtmlListItem) elementIterator.next();
130 assertNotNull( li );
131 assertEquals( li.getFirstChild().asText().trim(), "Item 3." );
132 li = (HtmlListItem) elementIterator.next();
133 assertNotNull( li );
134 assertEquals( li.getFirstChild().asText().trim(), "Item 4." );
135
136 ul = (HtmlUnorderedList) elementIterator.next();
137 assertNotNull( ul );
138
139 li = (HtmlListItem) elementIterator.next();
140 assertNotNull( li );
141 assertEquals( li.getFirstChild().asText().trim(), "Item 41." );
142 li = (HtmlListItem) elementIterator.next();
143 assertNotNull( li );
144 assertEquals( li.getFirstChild().asText().trim(), "Item 42." );
145 li = (HtmlListItem) elementIterator.next();
146 assertNotNull( li );
147 assertEquals( li.getFirstChild().asText().trim(), "Item 43." );
148 li = (HtmlListItem) elementIterator.next();
149 assertNotNull( li );
150 assertEquals( li.getFirstChild().asText().trim(), "Item 44." );
151
152 p = (HtmlParagraph) elementIterator.next();
153 assertNotNull( p );
154 assertEquals( p.asText().trim(), "Paragraph 1 below list." );
155 p = (HtmlParagraph) elementIterator.next();
156 assertNotNull( p );
157 assertEquals( p.asText().trim(), "Paragraph 2 below list." );
158 p = (HtmlParagraph) elementIterator.next();
159 assertNotNull( p );
160 assertEquals( p.asText().trim(), "Paragraph 3 below list." );
161 p = (HtmlParagraph) elementIterator.next();
162 assertNotNull( p );
163 assertEquals( p.asText().trim(), "Paragraph 4 below list." );
164 p = (HtmlParagraph) elementIterator.next();
165 assertNotNull( p );
166 assertEquals( p.asText().trim(), "Paragraph 5 below list." );
167 p = (HtmlParagraph) elementIterator.next();
168 assertNotNull( p );
169 assertEquals( p.asText().trim(), "Paragraph 6 below list." );
170
171
172
173
174 div = (HtmlDivision) elementIterator.next();
175 assertNotNull( div );
176 assertEquals( div.getAttribute( "class" ), "section" );
177
178 h4 = (HtmlHeading4) elementIterator.next();
179 assertNotNull( h4 );
180 assertEquals( h4.asText().trim(), "Ordered lists" );
181
182 a = (HtmlAnchor) elementIterator.next();
183 assertNotNull( a );
184 assertEquals( a.getAttribute( "name" ), "Ordered_lists" );
185
186 p = (HtmlParagraph) elementIterator.next();
187 assertNotNull( p );
188 assertEquals( p.asText().trim(), "Below is an ordered list, followed by six paragraphs." );
189
190 HtmlOrderedList ol = (HtmlOrderedList) elementIterator.next();
191 assertNotNull( ol );
192
193 li = (HtmlListItem) elementIterator.next();
194 assertNotNull( li );
195 assertEquals( li.getFirstChild().asText().trim(), "Item 1." );
196
197 ol = (HtmlOrderedList) elementIterator.next();
198 assertNotNull( ol );
199
200 li = (HtmlListItem) elementIterator.next();
201 assertNotNull( li );
202 assertEquals( li.getFirstChild().asText().trim(), "Item 11." );
203 li = (HtmlListItem) elementIterator.next();
204 assertNotNull( li );
205 assertEquals( li.getFirstChild().asText().trim(), "Item 12." );
206 li = (HtmlListItem) elementIterator.next();
207 assertNotNull( li );
208 assertEquals( li.getFirstChild().asText().trim(), "Item 13." );
209 li = (HtmlListItem) elementIterator.next();
210 assertNotNull( li );
211 assertEquals( li.getFirstChild().asText().trim(), "Item 14." );
212 li = (HtmlListItem) elementIterator.next();
213 assertNotNull( li );
214 assertEquals( li.getFirstChild().asText().trim(), "Item 2." );
215 li = (HtmlListItem) elementIterator.next();
216 assertNotNull( li );
217 assertEquals( li.getFirstChild().asText().trim(), "Item 3." );
218 li = (HtmlListItem) elementIterator.next();
219 assertNotNull( li );
220 assertEquals( li.getFirstChild().asText().trim(), "Item 4." );
221
222 ol = (HtmlOrderedList) elementIterator.next();
223 assertNotNull( ol );
224
225 li = (HtmlListItem) elementIterator.next();
226 assertNotNull( li );
227 assertEquals( li.getFirstChild().asText().trim(), "Item 41." );
228 li = (HtmlListItem) elementIterator.next();
229 assertNotNull( li );
230 assertEquals( li.getFirstChild().asText().trim(), "Item 42." );
231 li = (HtmlListItem) elementIterator.next();
232 assertNotNull( li );
233 assertEquals( li.getFirstChild().asText().trim(), "Item 43." );
234 li = (HtmlListItem) elementIterator.next();
235 assertNotNull( li );
236 assertEquals( li.getFirstChild().asText().trim(), "Item 44." );
237
238 p = (HtmlParagraph) elementIterator.next();
239 assertNotNull( p );
240 assertEquals( p.asText().trim(), "Paragraph 1 below list." );
241 p = (HtmlParagraph) elementIterator.next();
242 assertNotNull( p );
243 assertEquals( p.asText().trim(), "Paragraph 2 below list." );
244 p = (HtmlParagraph) elementIterator.next();
245 assertNotNull( p );
246 assertEquals( p.asText().trim(), "Paragraph 3 below list." );
247 p = (HtmlParagraph) elementIterator.next();
248 assertNotNull( p );
249 assertEquals( p.asText().trim(), "Paragraph 4 below list." );
250 p = (HtmlParagraph) elementIterator.next();
251 assertNotNull( p );
252 assertEquals( p.asText().trim(), "Paragraph 5 below list." );
253 p = (HtmlParagraph) elementIterator.next();
254 assertNotNull( p );
255 assertEquals( p.asText().trim(), "Paragraph 6 below list." );
256
257
258
259
260 div = (HtmlDivision) elementIterator.next();
261 assertNotNull( div );
262 assertEquals( div.getAttribute( "class" ), "section" );
263
264 h4 = (HtmlHeading4) elementIterator.next();
265 assertNotNull( h4 );
266 assertEquals( h4.asText().trim(), "Definition lists" );
267
268 a = (HtmlAnchor) elementIterator.next();
269 assertNotNull( a );
270 assertEquals( a.getAttribute( "name" ), "Definition_lists" );
271
272 p = (HtmlParagraph) elementIterator.next();
273 assertNotNull( p );
274 assertEquals( p.asText().trim(), "Below is a definition list, followed by six paragraphs." );
275
276 HtmlDefinitionList dl = (HtmlDefinitionList) elementIterator.next();
277 assertNotNull( dl );
278
279 HtmlDefinitionTerm dt = (HtmlDefinitionTerm) elementIterator.next();
280 assertNotNull( dt );
281 assertEquals( dt.getFirstChild().asText().trim(), "Term 1." );
282 HtmlDefinitionDescription dd = (HtmlDefinitionDescription) elementIterator.next();
283 assertNotNull( dd );
284 assertEquals( dd.getFirstChild().asText().trim(), "Description 1." );
285
286 dt = (HtmlDefinitionTerm) elementIterator.next();
287 assertNotNull( dt );
288 assertEquals( dt.getFirstChild().asText().trim(), "Term 2." );
289 dd = (HtmlDefinitionDescription) elementIterator.next();
290 assertNotNull( dd );
291 assertEquals( dd.getFirstChild().asText().trim(), "Description 2." );
292
293 dl = (HtmlDefinitionList) elementIterator.next();
294 assertNotNull( dl );
295 dt = (HtmlDefinitionTerm) elementIterator.next();
296 assertNotNull( dt );
297 assertEquals( dt.getFirstChild().asText().trim(), "Term 21." );
298 dd = (HtmlDefinitionDescription) elementIterator.next();
299 assertNotNull( dd );
300 assertEquals( dd.getFirstChild().asText().trim(), "Description 21." );
301
302 p = (HtmlParagraph) elementIterator.next();
303 assertNotNull( p );
304 assertEquals( p.asText().trim(), "Paragraph 1 below list." );
305 p = (HtmlParagraph) elementIterator.next();
306 assertNotNull( p );
307 assertEquals( p.asText().trim(), "Paragraph 2 below list." );
308 p = (HtmlParagraph) elementIterator.next();
309 assertNotNull( p );
310 assertEquals( p.asText().trim(), "Paragraph 3 below list." );
311 p = (HtmlParagraph) elementIterator.next();
312 assertNotNull( p );
313 assertEquals( p.asText().trim(), "Paragraph 4 below list." );
314 p = (HtmlParagraph) elementIterator.next();
315 assertNotNull( p );
316 assertEquals( p.asText().trim(), "Paragraph 5 below list." );
317 p = (HtmlParagraph) elementIterator.next();
318 assertNotNull( p );
319 assertEquals( p.asText().trim(), "Paragraph 6 below list." );
320
321 assertFalse( elementIterator.hasNext() );
322 }
323 }