|
21 | 21 | */ |
22 | 22 | package com.github.packageurl; |
23 | 23 |
|
| 24 | +import java.io.IOException; |
| 25 | +import java.io.InputStream; |
| 26 | +import java.util.TreeMap; |
| 27 | + |
24 | 28 | import org.apache.commons.io.IOUtils; |
25 | 29 | import org.json.JSONArray; |
26 | 30 | import org.json.JSONObject; |
|
30 | 34 | import org.junit.Test; |
31 | 35 | import org.junit.rules.ExpectedException; |
32 | 36 |
|
33 | | -import java.io.IOException; |
34 | | -import java.io.InputStream; |
35 | | -import java.util.TreeMap; |
36 | | - |
37 | 37 | /** |
38 | 38 | * Test cases for PackageURL parsing |
39 | 39 | * <p> |
@@ -303,4 +303,19 @@ public void testGetCoordinates() throws Exception { |
303 | 303 | PackageURL purl = new PackageURL("pkg:generic/acme/example-component@1.0.0?key1=value1&key2=value2"); |
304 | 304 | Assert.assertEquals("pkg:generic/acme/example-component@1.0.0", purl.getCoordinates()); |
305 | 305 | } |
| 306 | + |
| 307 | + @Test |
| 308 | + public void testNpmCaseSensitive() throws Exception { |
| 309 | + // e.g. https://www.npmjs.com/package/base64/v/1.0.0 |
| 310 | + PackageURL base64Lowercase = new PackageURL("pkg:npm/base64@1.0.0"); |
| 311 | + Assert.assertEquals(base64Lowercase.getType(), "npm"); |
| 312 | + Assert.assertEquals(base64Lowercase.getName(), "base64"); |
| 313 | + Assert.assertEquals(base64Lowercase.getVersion(), "1.0.0"); |
| 314 | + |
| 315 | + // e.g. https://www.npmjs.com/package/Base64/v/1.0.0 |
| 316 | + PackageURL base64Uppercase = new PackageURL("pkg:npm/Base64@1.0.0"); |
| 317 | + Assert.assertEquals(base64Uppercase.getType(), "npm"); |
| 318 | + Assert.assertEquals(base64Uppercase.getName(), "Base64"); |
| 319 | + Assert.assertEquals(base64Uppercase.getVersion(), "1.0.0"); |
| 320 | + } |
306 | 321 | } |
0 commit comments