aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/data/inner_nomodule.js1
-rw-r--r--test/data/nomodule.js1
-rw-r--r--test/unit/manipulation.js32
3 files changed, 33 insertions, 1 deletions
diff --git a/test/data/inner_nomodule.js b/test/data/inner_nomodule.js
new file mode 100644
index 000000000..472f9d6b1
--- /dev/null
+++ b/test/data/inner_nomodule.js
@@ -0,0 +1 @@
+window.ok( !QUnit.moduleTypeSupported, "evaluated: inner nomodule script with src" );
diff --git a/test/data/nomodule.js b/test/data/nomodule.js
new file mode 100644
index 000000000..fd26ea4e0
--- /dev/null
+++ b/test/data/nomodule.js
@@ -0,0 +1 @@
+window.ok( !QUnit.moduleTypeSupported, "evaluated: nomodule script with src" );
diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js
index 672f397ad..7f30ddf25 100644
--- a/test/unit/manipulation.js
+++ b/test/unit/manipulation.js
@@ -1798,7 +1798,7 @@ QUnit.test( "html(Function)", function( assert ) {
} );
QUnit[
- // Support: Edge 16-17
+ // Support: Edge 16-18+
// Edge sometimes doesn't execute module scripts so skip the test there.
( QUnit.moduleTypeSupported && !/edge\//i.test( navigator.userAgent ) ) ?
"test" :
@@ -1825,6 +1825,36 @@ QUnit[
}, 1000 );
} );
+QUnit[
+ // Support: IE 9-11 only, Android 4.0-4.4 only, iOS 7-10 only
+ // `nomodule` scripts should be executed by legacy browsers only.
+ // iOS 10 supports `<script type="module">` but doesn't support the nomodule attribute
+ // so let's skip it here; sites supporting it must handle `nomodule` in a custom way anyway.
+ !/iphone os 10_/i.test( navigator.userAgent ) ?
+ "test" :
+ "skip"
+]( "html(script nomodule)", function( assert ) {
+ assert.expect( QUnit.moduleTypeSupported ? 0 : 4 );
+ var done = assert.async(),
+ $fixture = jQuery( "#qunit-fixture" );
+
+ $fixture.html(
+ [
+ "<script nomodule>ok( !QUnit.moduleTypeSupported, 'evaluated: nomodule script' );</script>",
+ "<script nomodule src='" + url( "nomodule.js" ) + "'></script>",
+ "<div>",
+ "<script nomodule>ok( !QUnit.moduleTypeSupported, 'evaluated: inner nomodule script' );</script>",
+ "<script nomodule src='" + url( "inner_nomodule.js" ) + "'></script>",
+ "</div>"
+ ].join( "" )
+ );
+
+ // Allow asynchronous script execution to generate assertions
+ setTimeout( function() {
+ done();
+ }, 1000 );
+} );
+
QUnit.test( "html(Function) with incoming value -- direct selection", function( assert ) {
assert.expect( 4 );