1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.xml.suppression;
19
20 import java.io.File;
21 import java.io.FileInputStream;
22 import java.io.InputStream;
23 import java.io.InputStreamReader;
24 import java.io.Reader;
25 import java.util.List;
26 import javax.xml.parsers.SAXParser;
27 import javax.xml.parsers.SAXParserFactory;
28 import static org.junit.Assert.assertTrue;
29 import org.junit.Test;
30 import org.owasp.dependencycheck.BaseTest;
31 import org.xml.sax.InputSource;
32 import org.xml.sax.XMLReader;
33
34
35
36
37
38 public class SuppressionHandlerTest extends BaseTest {
39
40
41
42
43
44
45 @Test
46 public void testHandler() throws Exception {
47 File file = BaseTest.getResourceAsFile(this, "suppressions.xml");
48 File schema = BaseTest.getResourceAsFile(this, "schema/suppression.xsd");
49 SuppressionHandler handler = new SuppressionHandler();
50
51 SAXParserFactory factory = SAXParserFactory.newInstance();
52 factory.setNamespaceAware(true);
53 factory.setValidating(true);
54 SAXParser saxParser = factory.newSAXParser();
55 saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_LANGUAGE, SuppressionParser.W3C_XML_SCHEMA);
56 saxParser.setProperty(SuppressionParser.JAXP_SCHEMA_SOURCE, schema);
57 XMLReader xmlReader = saxParser.getXMLReader();
58 xmlReader.setErrorHandler(new SuppressionErrorHandler());
59 xmlReader.setContentHandler(handler);
60
61 InputStream inputStream = new FileInputStream(file);
62 Reader reader = new InputStreamReader(inputStream, "UTF-8");
63 InputSource in = new InputSource(reader);
64
65
66 xmlReader.parse(in);
67
68 List<SuppressionRule> result = handler.getSuppressionRules();
69 assertTrue(result.size() > 3);
70 int baseCount = 0;
71 for (SuppressionRule r : result) {
72 if (r.isBase()) {
73 baseCount++;
74 }
75 }
76 assertTrue(baseCount > 0);
77 }
78 }