diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/data/inner_nomodule.js | 1 | ||||
-rw-r--r-- | test/data/nomodule.js | 1 | ||||
-rw-r--r-- | test/unit/manipulation.js | 32 |
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 ); |