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