diff --git a/src/system-extension-contextual.js b/src/system-extension-contextual.js index 740e5a173..88087b14f 100644 --- a/src/system-extension-contextual.js +++ b/src/system-extension-contextual.js @@ -17,7 +17,7 @@ addStealExtension(function (loader) { if (definer) { var localName = name + '/' + parentName; - if(!loader.has(name)) { + if(!loader.has(localName)) { // `definer` could be a function or could be a moduleName if (typeof definer === 'string') { definer = pluginLoader['import'](definer); diff --git a/test/ext-steal-clone/multiple/first-test.js b/test/ext-steal-clone/multiple/first-test.js new file mode 100644 index 000000000..d766cc1b0 --- /dev/null +++ b/test/ext-steal-clone/multiple/first-test.js @@ -0,0 +1,5 @@ +var clone = require("steal-clone"); + +module.exports = function(){ + return clone({}).import("./first") +} diff --git a/test/ext-steal-clone/multiple/first.js b/test/ext-steal-clone/multiple/first.js new file mode 100644 index 000000000..cbc07bd23 --- /dev/null +++ b/test/ext-steal-clone/multiple/first.js @@ -0,0 +1 @@ +module.exports = {name: "first"}; diff --git a/test/ext-steal-clone/multiple/index.html b/test/ext-steal-clone/multiple/index.html new file mode 100644 index 000000000..0d3b070dd --- /dev/null +++ b/test/ext-steal-clone/multiple/index.html @@ -0,0 +1,18 @@ + + + + + clone tests + + + + + + + diff --git a/test/ext-steal-clone/multiple/second-runs-tests.js b/test/ext-steal-clone/multiple/second-runs-tests.js new file mode 100644 index 000000000..f656a3037 --- /dev/null +++ b/test/ext-steal-clone/multiple/second-runs-tests.js @@ -0,0 +1,5 @@ +var clone = require("steal-clone"); + +module.exports = function(){ + return clone({}).import('./second') +}; diff --git a/test/ext-steal-clone/multiple/second-test.js b/test/ext-steal-clone/multiple/second-test.js new file mode 100644 index 000000000..17058124e --- /dev/null +++ b/test/ext-steal-clone/multiple/second-test.js @@ -0,0 +1 @@ +module.exports = require("./second-runs-tests"); diff --git a/test/ext-steal-clone/multiple/second.js b/test/ext-steal-clone/multiple/second.js new file mode 100644 index 000000000..016dbd0ac --- /dev/null +++ b/test/ext-steal-clone/multiple/second.js @@ -0,0 +1 @@ +module.exports = {name: "second"}; diff --git a/test/ext-steal-clone/multiple/test.js b/test/ext-steal-clone/multiple/test.js new file mode 100644 index 000000000..99a35dd48 --- /dev/null +++ b/test/ext-steal-clone/multiple/test.js @@ -0,0 +1,18 @@ +var doClone1 = require("./first-test"); +var doClone2 = require("./second-test"); + +Promise.all([doClone1(), doClone2()]).then(function(){ + if (typeof window !== "undefined" && window.assert) { + assert.ok(true, "promises resolved"); + done(); + } else { + console.log("worked"); + } +}, function(){ + if (typeof window !== "undefined" && window.assert) { + assert.ok(false, "promises failed"); + done(); + } else { + console.log("promises failed"); + } +}); diff --git a/test/steal_clone_test.js b/test/steal_clone_test.js index 6fdcb8e2b..a2e330090 100644 --- a/test/steal_clone_test.js +++ b/test/steal_clone_test.js @@ -49,3 +49,8 @@ QUnit.test("works when using relative overrides", function(assert) { QUnit.test("what happens within a cloned loader should not leak", function(assert) { makeIframe("ext-steal-clone/leak/index.html", assert); }); + + +QUnit.test("multiple clones can work at different paths", function(assert) { + makeIframe("ext-steal-clone/multiple/index.html", assert); +});