1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.site.run;
20
21 import javax.xml.parsers.DocumentBuilder;
22 import javax.xml.parsers.DocumentBuilderFactory;
23 import javax.xml.xpath.XPath;
24 import javax.xml.xpath.XPathConstants;
25 import javax.xml.xpath.XPathFactory;
26
27 import org.junit.Test;
28 import org.w3c.dom.Document;
29 import org.w3c.dom.Node;
30 import org.w3c.dom.NodeList;
31
32 import static org.junit.Assert.assertTrue;
33 import static org.junit.Assert.fail;
34
35 public class WebXmlTest {
36
37 @Test
38 public void testFilters() throws Exception {
39 DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
40 Document doc = docBuilder.parse(SiteRunMojo.class.getResourceAsStream("/run/web.xml"));
41 XPath xPath = XPathFactory.newInstance().newXPath();
42
43 NodeList filterClasses =
44 (NodeList) xPath.compile("/web-app/filter/filter-class").evaluate(doc, XPathConstants.NODESET);
45
46 assertTrue("Expected at least one filter", filterClasses.getLength() > 0);
47 for (int index = 0; index < filterClasses.getLength(); index++) {
48 Node filterClass = filterClasses.item(index).getFirstChild();
49 try {
50 Class.forName(filterClass.getNodeValue());
51 } catch (ClassNotFoundException cnfe) {
52 fail("/web-app/filter[" + index + "]/filter-class refers to " + filterClass.getNodeValue()
53 + ", which doesn't exist");
54 }
55 }
56 }
57 }