nomodule-reflect.html (3066B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>noModule IDL attribute must reflect nomodule content attribute</title> 5 <link rel="author" title="Yusuke Suzuki" href="mailto:utatane.tea@gmail.com"> 6 <link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 </head> 10 <body> 11 <script id="classicWithoutNomodule"></script> 12 <script id="classicWithNomodule" nomodule></script> 13 <script id="moduleWithoutNomodule" type=module></script> 14 <script id="moduleWithNomodule" type=module nomodule></script> 15 <script> 16 17 test(() => { 18 assert_false(document.getElementById('classicWithoutNomodule').noModule); 19 }, 'noModule IDL attribute on a parser created classic script element without nomodule content attribute'); 20 21 test(() => { 22 assert_true(document.getElementById('classicWithNomodule').noModule); 23 }, 'noModule IDL attribute on a parser created classic script element with nomodule content attribute'); 24 25 test(() => { 26 assert_false(document.getElementById('moduleWithoutNomodule').noModule); 27 }, 'noModule IDL attribute on a parser created module script element without nomodule content attribute'); 28 29 test(() => { 30 assert_true(document.getElementById('moduleWithNomodule').noModule); 31 }, 'noModule IDL attribute on a parser created module script element with nomodule content attribute'); 32 33 34 test(() => { 35 const script = document.createElement('script'); 36 assert_false(script.noModule); 37 }, 'noModule IDL attribute on a dynamically created script element without nomodule content attribute'); 38 39 test(() => { 40 const script = document.createElement('script'); 41 script.setAttribute('nomodule', 'nomodule'); 42 assert_true(script.noModule); 43 }, 'noModule IDL attribute on a dynamically created script element after nomodule content attribute is set to "nomodule"'); 44 45 test(() => { 46 const script = document.createElement('script'); 47 script.setAttribute('nomodule', ''); 48 assert_true(script.noModule); 49 }, 'noModule IDL attribute on a dynamically created script element after nomodule content attribute is set to ""'); 50 51 test(() => { 52 const script = document.createElement('script'); 53 script.setAttribute('nomodule', 'nomodule'); 54 assert_true(script.noModule); 55 script.removeAttribute('nomodule'); 56 assert_false(script.noModule); 57 }, 'noModule IDL attribute on a dynamically created script element after nomodule content attribute had been removed'); 58 59 test(() => { 60 const script = document.createElement('script'); 61 assert_false(script.hasAttribute('nomodule')); 62 script.noModule = true; 63 assert_true(script.hasAttribute('nomodule')); 64 }, 'noModule IDL attribute must add nomodule content attribute on setting to true'); 65 66 test(() => { 67 const script = document.createElement('script'); 68 script.setAttribute('nomodule', 'nomodule'); 69 script.noModule = false; 70 assert_false(script.hasAttribute('nomodule')); 71 }, 'noModule IDL attribute must remove nomodule content attribute on setting to false'); 72 73 </script> 74 </body> 75 </html>