aboutsummaryrefslogtreecommitdiff
path: root/test/es-module/test-esm-data-urls.js
diff options
context:
space:
mode:
authorBradley Farias <bfarias@godaddy.com>2019-11-22 10:34:31 -0600
committerBradley Farias <bfarias@godaddy.com>2019-11-26 11:00:33 -0600
commit568968e39bff623e30b71f4eaf20f3a471bbc8be (patch)
tree11643fde62d36190b0680ce973a2bfd074ae890f /test/es-module/test-esm-data-urls.js
parent8c41b19619d1241543047ceee85931647257c5cc (diff)
downloadandroid-node-v8-568968e39bff623e30b71f4eaf20f3a471bbc8be.tar.gz
android-node-v8-568968e39bff623e30b71f4eaf20f3a471bbc8be.tar.bz2
android-node-v8-568968e39bff623e30b71f4eaf20f3a471bbc8be.zip
esm: data URLs should ignore unknown parameters
PR-URL: https://github.com/nodejs/node/pull/30593 Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: Guy Bedford <guybedford@gmail.com>
Diffstat (limited to 'test/es-module/test-esm-data-urls.js')
-rw-r--r--test/es-module/test-esm-data-urls.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/es-module/test-esm-data-urls.js b/test/es-module/test-esm-data-urls.js
index f2f166b47e..7efe7a1199 100644
--- a/test/es-module/test-esm-data-urls.js
+++ b/test/es-module/test-esm-data-urls.js
@@ -36,6 +36,47 @@ function createBase64URL(mime, body) {
assert.deepStrictEqual(ns.default, plainESMURL);
}
{
+ const body = 'export default import.meta.url;';
+ const plainESMURL = createURL('text/javascript;charset=UTF-8', body);
+ const ns = await import(plainESMURL);
+ assert.deepStrictEqual(Object.keys(ns), ['default']);
+ assert.deepStrictEqual(ns.default, plainESMURL);
+ }
+ {
+ const body = 'export default import.meta.url;';
+ const plainESMURL = createURL('text/javascript;charset="UTF-8"', body);
+ const ns = await import(plainESMURL);
+ assert.deepStrictEqual(Object.keys(ns), ['default']);
+ assert.deepStrictEqual(ns.default, plainESMURL);
+ }
+ {
+ const body = 'export default import.meta.url;';
+ const plainESMURL = createURL('text/javascript;;a=a;b=b;;', body);
+ const ns = await import(plainESMURL);
+ assert.deepStrictEqual(Object.keys(ns), ['default']);
+ assert.deepStrictEqual(ns.default, plainESMURL);
+ }
+ {
+ const ns = await import('data:application/json;foo="test,"this"');
+ assert.deepStrictEqual(Object.keys(ns), ['default']);
+ assert.deepStrictEqual(ns.default, 'this');
+ }
+ {
+ const ns = await import(`data:application/json;foo=${
+ encodeURIComponent('test,')
+ },0`);
+ assert.deepStrictEqual(Object.keys(ns), ['default']);
+ assert.deepStrictEqual(ns.default, 0);
+ }
+ {
+ await assert.rejects(async () => {
+ return import('data:application/json;foo="test,",0');
+ }, {
+ name: 'SyntaxError',
+ message: /Unexpected end of JSON input/
+ });
+ }
+ {
const body = '{"x": 1}';
const plainESMURL = createURL('application/json', body);
const ns = await import(plainESMURL);