diff options
author | Bradley Farias <bfarias@godaddy.com> | 2019-11-22 19:34:31 +0300 |
---|---|---|
committer | Bradley Farias <bfarias@godaddy.com> | 2019-11-26 20:00:33 +0300 |
commit | 568968e39bff623e30b71f4eaf20f3a471bbc8be (patch) | |
tree | 11643fde62d36190b0680ce973a2bfd074ae890f /test/es-module | |
parent | 8c41b19619d1241543047ceee85931647257c5cc (diff) |
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')
-rw-r--r-- | test/es-module/test-esm-data-urls.js | 41 |
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 f2f166b47ee..7efe7a1199c 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); |