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