aboutsummaryrefslogtreecommitdiff
path: root/test/spec
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2022-10-13 13:55:41 +1100
committerYuchen Pei <hi@ypei.me>2022-10-13 14:14:29 +1100
commitfcd816e95e73a78fd24a7e6baef709d7657d265f (patch)
tree807494ee13cf6570f4c11fc29a8c64b7ab846a09 /test/spec
parent88fa677b51b6b1eb814866ea08129a6b7cda9ddb (diff)
`// @license` should be at the beginning of a line (mod whitespace)
Otherwise the following will be processed for @license / @license-end method: // foo.js // // @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0 // document.getElementById('bar'); // // @license-end function foo(x, y) { console.log(x + y); } $ node ./utitlities/check-script foo.js [ true, '// // @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0\n' + "// document.getElementById('bar');\n" + '// // @license-end\n' + 'function foo(x, y) {\n' + ' console.log(x + y);\n' + '}\n', '\n' + 'Recognized license: "GNU General Public License (GPL) version 3".\n' + 'Script appears to be trivial.' ]
Diffstat (limited to 'test/spec')
-rw-r--r--test/spec/LibreJSSpec.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/spec/LibreJSSpec.js b/test/spec/LibreJSSpec.js
index 7828bcb..d7a49f5 100644
--- a/test/spec/LibreJSSpec.js
+++ b/test/spec/LibreJSSpec.js
@@ -42,7 +42,11 @@ describe('LibreJS\' components', () => {
const trivialCall = 'foo();';
let licensed = `// @license ${license.magnet} ${license.id}\n${nontrivial}\n// @license-end`;
let unknownLicensed = `// @license ${unknownLicense.magnet} ${unknownLicense.id}\n${nontrivial}\n// @license-end`;
+ let commentedOutUnknownLicensed =
+ unknownLicensed.split('\n').map(y => '// ' + y).join('\n');
let malformedLicensed = `// @license\n${nontrivial}`;
+ let commentedOutMalformedLicensed =
+ malformedLicensed.split('\n').map(y => '// ' + y).join('\n');
let tab, documentUrl;
const enableContactFinderTests = false;
@@ -124,10 +128,20 @@ describe('LibreJS\' components', () => {
expect(processed).not.toContain(nontrivial);
});
+ it('should leave alone scripts with commented out unknown license tags', async () => {
+ let processed = await processScript(commentedOutUnknownLicensed);
+ expect(processed).toContain(nontrivial);
+ });
+
it('should block scripts with malformed license tags', async () => {
let processed = await processScript(malformedLicensed);
expect(processed).not.toContain(nontrivial);
});
+
+ it('should leave alone scripts with commented out malformed license tags', async () => {
+ let processed = await processScript(commentedOutMalformedLicensed);
+ expect(processed).toContain(nontrivial);
+ });
});
describe('The HTML processor', () => {