Skip to content

Commit 053c58b

Browse files
committed
Account for NPM being case-sensitive
1 parent aa029fe commit 053c58b

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

src/main/java/com/github/packageurl/PackageURL.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ private String validateNamespace(final String[] values) throws MalformedPackageU
265265
case StandardTypes.DEBIAN:
266266
case StandardTypes.GITHUB:
267267
case StandardTypes.GOLANG:
268-
case StandardTypes.NPM:
269268
case StandardTypes.RPM:
270269
retVal = tempNamespace.toLowerCase();
271270
break;
@@ -286,7 +285,6 @@ private String validateName(final String value) throws MalformedPackageURLExcept
286285
case StandardTypes.DEBIAN:
287286
case StandardTypes.GITHUB:
288287
case StandardTypes.GOLANG:
289-
case StandardTypes.NPM:
290288
temp = value.toLowerCase();
291289
break;
292290
case StandardTypes.PYPI:

src/test/java/com/github/packageurl/PackageURLTest.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
*/
2222
package com.github.packageurl;
2323

24+
import java.io.IOException;
25+
import java.io.InputStream;
26+
import java.util.TreeMap;
27+
2428
import org.apache.commons.io.IOUtils;
2529
import org.json.JSONArray;
2630
import org.json.JSONObject;
@@ -30,10 +34,6 @@
3034
import org.junit.Test;
3135
import org.junit.rules.ExpectedException;
3236

33-
import java.io.IOException;
34-
import java.io.InputStream;
35-
import java.util.TreeMap;
36-
3737
/**
3838
* Test cases for PackageURL parsing
3939
* <p>
@@ -303,4 +303,19 @@ public void testGetCoordinates() throws Exception {
303303
PackageURL purl = new PackageURL("pkg:generic/acme/example-component@1.0.0?key1=value1&key2=value2");
304304
Assert.assertEquals("pkg:generic/acme/example-component@1.0.0", purl.getCoordinates());
305305
}
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+
}
306321
}

0 commit comments

Comments
 (0)