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