1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.owasp.dependencycheck.data.nvdcve;
19
20 import java.io.File;
21 import java.sql.Driver;
22 import java.sql.DriverManager;
23 import org.junit.After;
24 import org.junit.AfterClass;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertTrue;
27 import org.junit.Before;
28 import org.junit.BeforeClass;
29 import org.junit.Test;
30 import org.owasp.dependencycheck.BaseTest;
31
32
33
34
35
36 public class DriverLoaderTest extends BaseTest {
37
38
39
40
41 @Test
42 public void testLoad_String() throws Exception {
43 String className = "org.h2.Driver";
44 Driver d = null;
45 try {
46 d = DriverLoader.load(className);
47 } finally {
48 if (d != null) {
49 DriverManager.deregisterDriver(d);
50 }
51 }
52 }
53
54
55
56
57
58 @Test(expected = DriverLoadException.class)
59 public void testLoad_String_ex() throws Exception {
60 String className = "bad.Driver";
61 Driver d = DriverLoader.load(className);
62 }
63
64
65
66
67 @Test
68 public void testLoad_String_String() throws Exception {
69 String className = "com.mysql.jdbc.Driver";
70
71
72 File testClassPath = BaseTest.getResourceAsFile(this, "org.mortbay.jetty.jar").getParentFile();
73 File driver = new File(testClassPath, "../../src/test/resources/mysql-connector-java-5.1.27-bin.jar");
74 assertTrue("MySQL Driver JAR file not found in src/test/resources?", driver.isFile());
75
76 Driver d = null;
77 try {
78 d = DriverLoader.load(className, driver.getAbsolutePath());
79 d = DriverManager.getDriver("jdbc:mysql://localhost:3306/dependencycheck");
80 assertNotNull(d);
81 } finally {
82 if (d != null) {
83 DriverManager.deregisterDriver(d);
84 }
85 }
86 }
87
88
89
90
91 @Test
92 public void testLoad_String_String_multiple_paths() throws Exception {
93 final String className = "com.mysql.jdbc.Driver";
94
95
96 final File testClassPath = BaseTest.getResourceAsFile(this, "org.mortbay.jetty.jar").getParentFile();
97 final File dir1 = new File(testClassPath, "../../src/test/");
98 final File dir2 = new File(testClassPath, "../../src/test/resources/");
99 final String paths = String.format("%s" + File.pathSeparator + "%s", dir1.getAbsolutePath(), dir2.getAbsolutePath());
100
101 Driver d = null;
102 try {
103 d = DriverLoader.load(className, paths);
104 } finally {
105 if (d != null) {
106 DriverManager.deregisterDriver(d);
107 }
108 }
109 }
110
111
112
113
114 @Test(expected = DriverLoadException.class)
115 public void testLoad_String_String_badClassName() throws Exception {
116 String className = "com.mybad.jdbc.Driver";
117
118
119 File testClassPath = BaseTest.getResourceAsFile(this, "org.mortbay.jetty.jar").getParentFile();
120 File driver = new File(testClassPath, "../../src/test/resources/mysql-connector-java-5.1.27-bin.jar");
121 assertTrue("MySQL Driver JAR file not found in src/test/resources?", driver.isFile());
122
123 Driver d = DriverLoader.load(className, driver.getAbsolutePath());
124 }
125
126
127
128
129 @Test(expected = DriverLoadException.class)
130 public void testLoad_String_String_badPath() throws Exception {
131 String className = "com.mysql.jdbc.Driver";
132
133
134 File testClassPath = BaseTest.getResourceAsFile(this, "org.mortbay.jetty.jar").getParentFile();
135 File driver = new File(testClassPath, "../../src/test/bad/mysql-connector-java-5.1.27-bin.jar");
136 Driver d = DriverLoader.load(className, driver.getAbsolutePath());
137 }
138 }