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.HtmlDivision;
24 import com.gargoylesoftware.htmlunit.html.HtmlElement;
25 import com.gargoylesoftware.htmlunit.html.HtmlHeader2;
26 import com.gargoylesoftware.htmlunit.html.HtmlHeader3;
27 import com.gargoylesoftware.htmlunit.html.HtmlPage;
28 import com.gargoylesoftware.htmlunit.html.HtmlParagraph;
29 import com.gargoylesoftware.htmlunit.html.UnknownHtmlElement;
30
31 import java.util.Iterator;
32
33
34
35
36
37
38
39
40 public class AptVerifier
41 extends AbstractVerifier
42 {
43
44 public void verify( String file )
45 throws Exception
46 {
47 HtmlPage page = htmlPage( file );
48 assertNotNull( page );
49
50 HtmlElement element = page.getHtmlElementById( "contentBox" );
51 assertNotNull( element );
52 HtmlDivision division = (HtmlDivision) element;
53 assertNotNull( division );
54
55 Iterator elementIterator = division.getAllHtmlChildElements();
56
57
58
59
60
61 HtmlDivision div = (HtmlDivision) elementIterator.next();
62 assertEquals( "section", div.getAttributeValue( "class" ) );
63
64 HtmlHeader2 h2 = (HtmlHeader2) elementIterator.next();
65 assertNotNull( h2 );
66 assertEquals( "Links", h2.asText().trim() );
67
68 HtmlAnchor a = (HtmlAnchor) elementIterator.next();
69 assertEquals( "Links", a.getAttributeValue( "name" ) );
70
71 HtmlParagraph p = (HtmlParagraph) elementIterator.next();
72 assertNotNull( p );
73
74
75 a = (HtmlAnchor) elementIterator.next();
76 assertEquals( "Anchor", a.getAttributeValue( "name" ) );
77 a = (HtmlAnchor) elementIterator.next();
78 assertEquals( "cdc.html", a.getAttributeValue( "name" ) );
79
80 a = (HtmlAnchor) elementIterator.next();
81 assertEquals( "#Anchor", a.getAttributeValue( "href" ) );
82 a = (HtmlAnchor) elementIterator.next();
83 assertEquals( "#Anchor", a.getAttributeValue( "href" ) );
84
85 a = (HtmlAnchor) elementIterator.next();
86 assertEquals( "Anchor_with_space", a.getAttributeValue( "name" ) );
87 a = (HtmlAnchor) elementIterator.next();
88 assertEquals( "#Anchor_with_space", a.getAttributeValue( "href" ) );
89
90 a = (HtmlAnchor) elementIterator.next();
91 assertEquals( "http://maven.apache.org/", a.getAttributeValue( "href" ) );
92 assertEquals( "externalLink", a.getAttributeValue( "class" ) );
93 a = (HtmlAnchor) elementIterator.next();
94 assertEquals( "http://maven.apache.org/", a.getAttributeValue( "href" ) );
95 assertEquals( "externalLink", a.getAttributeValue( "class" ) );
96
97
98 a = (HtmlAnchor) elementIterator.next();
99 assertEquals( "./cdc.html", a.getAttributeValue( "href" ) );
100 a = (HtmlAnchor) elementIterator.next();
101 assertEquals( "#cdc.html", a.getAttributeValue( "href" ) );
102
103 a = (HtmlAnchor) elementIterator.next();
104 assertEquals( "/index.html", a.getAttributeValue( "href" ) );
105
106 div = (HtmlDivision) elementIterator.next();
107 assertEquals( "section", div.getAttributeValue( "class" ) );
108
109 h2 = (HtmlHeader2) elementIterator.next();
110 assertNotNull( h2 );
111 assertEquals( "Section formatting: italic bold mono", h2.asText().trim() );
112
113 UnknownHtmlElement unknown = (UnknownHtmlElement) elementIterator.next();
114 assertEquals( "i", unknown.getTagName() );
115 assertEquals( "italic", unknown.asText().trim() );
116
117 unknown = (UnknownHtmlElement) elementIterator.next();
118 assertEquals( "b", unknown.getTagName() );
119 assertEquals( "bold", unknown.asText().trim() );
120
121 unknown = (UnknownHtmlElement) elementIterator.next();
122 assertEquals( "tt", unknown.getTagName() );
123 assertEquals( "mono", unknown.asText().trim() );
124
125 a = (HtmlAnchor) elementIterator.next();
126 assertEquals( "Section_formatting:_italic_bold_mono", a.getAttributeValue( "name" ) );
127
128 div = (HtmlDivision) elementIterator.next();
129 assertEquals( "section", div.getAttributeValue( "class" ) );
130
131 HtmlHeader3 h3 = (HtmlHeader3) elementIterator.next();
132 assertNotNull( h3 );
133 assertEquals( "SubSection formatting: italic bold mono", h3.asText().trim() );
134
135 unknown = (UnknownHtmlElement) elementIterator.next();
136 assertEquals( "i", unknown.getTagName() );
137 assertEquals( "italic", unknown.asText().trim() );
138
139 unknown = (UnknownHtmlElement) elementIterator.next();
140 assertEquals( "b", unknown.getTagName() );
141 assertEquals( "bold", unknown.asText().trim() );
142
143 unknown = (UnknownHtmlElement) elementIterator.next();
144 assertEquals( "tt", unknown.getTagName() );
145 assertEquals( "mono", unknown.asText().trim() );
146
147 a = (HtmlAnchor) elementIterator.next();
148 assertEquals( "SubSection_formatting:_italic_bold_mono", a.getAttributeValue( "name" ) );
149
150 p = (HtmlParagraph) elementIterator.next();
151 assertNotNull( p );
152
153 unknown = (UnknownHtmlElement) elementIterator.next();
154 assertEquals( "i", unknown.getTagName() );
155 assertEquals( "italic", unknown.asText().trim() );
156
157 unknown = (UnknownHtmlElement) elementIterator.next();
158 assertEquals( "b", unknown.getTagName() );
159 assertEquals( "bold", unknown.asText().trim() );
160
161 unknown = (UnknownHtmlElement) elementIterator.next();
162 assertEquals( "tt", unknown.getTagName() );
163 assertEquals( "mono", unknown.asText().trim() );
164
165 div = (HtmlDivision) elementIterator.next();
166 assertEquals( "section", div.getAttributeValue( "class" ) );
167
168 h2 = (HtmlHeader2) elementIterator.next();
169 assertNotNull( h2 );
170 assertEquals( "No Default Anchor in Section Title with Explicit Anchor", h2.asText().trim() );
171 a = (HtmlAnchor) elementIterator.next();
172 assertEquals( "No_Default_Anchor_in_Section_Title_with_Explicit_Anchor", a.getAttributeValue( "name" ) );
173
174 div = (HtmlDivision) elementIterator.next();
175 assertEquals( "section", div.getAttributeValue( "class" ) );
176 }
177 }