diff options
| author | 2021-02-03 19:17:00 -0500 | |
|---|---|---|
| committer | 2021-02-03 19:17:00 -0500 | |
| commit | 3a0d66f07b112b6d2bdc2b57bbf717a89a351ce6 (patch) | |
| tree | a7cf56282e54f05785243bc1e903d6594f2c06ba /npm_assets/node_modules/html5shiv/test/unit | |
| parent | 787b97a4cb24330b36f11297c6d3a7a473a907d0 (diff) | |
New upstream version 8.1.2.upstream/8.1.2
Diffstat (limited to 'npm_assets/node_modules/html5shiv/test/unit')
| -rw-r--r-- | npm_assets/node_modules/html5shiv/test/unit/tests.js | 281 |
1 files changed, 281 insertions, 0 deletions
diff --git a/npm_assets/node_modules/html5shiv/test/unit/tests.js b/npm_assets/node_modules/html5shiv/test/unit/tests.js new file mode 100644 index 0000000..52e8c9c --- /dev/null +++ b/npm_assets/node_modules/html5shiv/test/unit/tests.js @@ -0,0 +1,281 @@ +(function(){ + +module("html5shiv tests"); +var blockElements = "article,aside,figcaption,figure,footer,header,hgroup,nav,section".split(','); + +var testEnv = [ + { + doc: document, + initialShivMethods: html5.shivMethods, + html5: html5, + name: 'default' + } +]; + + +var shivTests = function(fn, env){ + if(!env){ + env = testEnv[0]; + } + env.html5.shivMethods = true; + fn(); + env.html5.shivMethods = env.initialShivMethods; +}; + +var envTest = function(name, fn, frames){ + if(!frames){ + frames = ['default']; + } + asyncTest(name, function(){ + $.each(testEnv, function(i, env){ + if($.inArray(env.name, frames) != -1){ + fn(env); + } + }); + if(testEnv.length > 1){ + start(); + } else { + initIframes(); + } + }); + +}; + +QUnit.reset = function() { + $.each(testEnv, function(i, env){ + $('#qunit-fixture', env.doc).html(env.fixture); + }); +}; + + +var initIframes = function(){ + if(testEnv.length > 1){return;} + testEnv[0].fixture = $('#qunit-fixture').html(); + + $('iframe.test-frame').each(function(){ + var win = this.contentWindow; + if($('#qunit-fixture', win.document).length){ + testEnv.push({ + doc: win.document, + html5: win.html5, + initialShivMethods: (win.html5 || {}).shivMethods, + fixture: $('#qunit-fixture', win.document).html(), + name: this.src.split('?')[1] + }); + } + }); + if(testEnv.length > 1){ + start(); + } else { + setTimeout(initIframes, 30); + } +}; + + +$(initIframes); + + +envTest("display block tests", function(env){ + $.each(blockElements, function(i, elem){ + equals($(elem, env.doc).css('display'), 'block', elem +" has display: block"); + }); + +}, ['default', 'disableMethodsBefore']); + +envTest("test html5.createElement/html5.createDocumentFragment", function(env){ + var doc5 = html5; + if(env.html5){ + doc5 = env.html5; + env.html5.shivMethods = false; + } + html5.shivMethods = false; + + var fragDiv = doc5.createElement('div', env.doc); + var frag = doc5.createDocumentFragment(env.doc); + var markText = "with these words highlighted"; + var div = $( doc5.createElement('div', env.doc) ).html('<section><article><mark>s</mark></article>?</section>').appendTo(env.doc.getElementById('qunit-fixture')); + + fragDiv.innerHTML = '<section>This native javascript sentence is in a green box <mark>'+markText+'</mark>?</section>'; + + frag.appendChild(fragDiv); + fragDiv.innerHTML += '<article>This native javascript sentence is also in a green box <mark>'+markText+'</mark>?</article>'; + + env.doc.getElementById('qunit-fixture').appendChild(frag); + + equals($('section article > mark', div).length, 1, "found mark in section > article"); + equals($('section > mark', fragDiv).html(), markText, "innerHTML getter equals innerHTML setter"); + equals($('article', fragDiv).css('borderTopWidth'), '2px', "article has a 2px border"); + + if(env.html5){ + env.html5.shivMethods = env.initialShivMethods; + } + html5.shivMethods = true; +}, ['disableMethodsBefore', 'disableMethodsAfter']); + + +if(!html5.supportsUnknownElements){ + + envTest("config shivMethods test", function(env){ + var div = $('<div/>', env.doc).html('<section><article><mark></mark></article>?</section>').appendTo(env.doc.getElementById('qunit-fixture')); + equals($('section article > mark', div).length, (env.html5.shivMethods) ? 1 : 0, "found/no found mark in section > article"); + }, ['default', 'disableMethodsBefore', 'disableMethodsAfter']); + + envTest("config shivCSS test", function(env){ + $.each(blockElements, function(i, elem){ + equals($(elem, env.doc).css('display'), 'inline', elem +" has display: inline if unshived"); + }); + env.html5.shivCSS = true; + env.html5.shivDocument(); + $.each(blockElements, function(i, elem){ + equals($(elem, env.doc).css('display'), 'block', elem +" has display: block. after reshiving"); + }); + }, ['disableCSS']); +} + +envTest("config add elements test", function(env){ + var value = $.trim($('abcxyz', env.doc).html()); + ok((html5.supportsUnknownElements || env.html5.elements.indexOf('abcxyz') !== -1) ? value : !value, "unknownelement has one/none div inside: "+ value); +}, ['default', 'disableMethodsBefore', 'addUnknownBefore', 'addUnknownAfter']); + +envTest("parsing tests", function(env){ + $.each(blockElements, function(i, elem){ + equals($(elem +' div.inside', env.doc).length, 1, elem +" has a div inside"); + }); +}, ['default', 'disableMethodsBefore']); + +envTest("style test", function(env){ + var article = $('article', env.doc); + equals(article.css('borderTopWidth'), '2px', "article has a 2px border"); +}, ['default', 'disableMethodsBefore']); + +if (!html5.supportsUnknownElements) { + envTest("shiv different document", function(env){ + var markText = "with these words highlighted3"; + var markup = '<section><article>This jQuery 1.6.4 sentence is in a green box <mark>' + markText + '</mark></article>?</section>'; + + var div = $('<div/>', env.doc).html(markup).appendTo(env.doc.getElementById('qunit-fixture')); + equals($('section article > mark', div).length, 0, "document is not shived"); + + html5.shivDocument(env.doc); + + div = $('<div/>', env.doc).html(markup).appendTo(env.doc.getElementById('qunit-fixture')); + equals($('section article > mark', div).length, 1, "document is shived"); + equals($('article', div).css('borderTopWidth'), '2px', "article has a 2px border"); + + }, ['noEmbed']); +} + +envTest("createElement/innerHTML test", function(env){ + shivTests( + function(){ + var div = env.doc.createElement('div'); + var text = "This native javascript sentence is in a green box <mark>with these words highlighted</mark>?"; + div.innerHTML = '<section id="section">'+ text +'</section>'; + env.doc.getElementById('qunit-fixture').appendChild(div); + equals($('#section', env.doc).html(), text, "innerHTML getter equals innerHTML setter"); + equals($('#section mark', env.doc).length, 1, "section has a mark element inside"); + }, + env + ); +}, ['default', 'disableMethodsBefore']); + +envTest("createElement/createDocumentFragment/innerHTML test", function(env){ + shivTests( + function(){ + var div = env.doc.createElement('div'); + var frag = env.doc.createDocumentFragment(); + var markText = "with these words highlighted"; + div.innerHTML = '<section>This native javascript sentence is in a green box <mark>'+markText+'</mark>?</section>'; + frag.appendChild(div); + div.innerHTML += '<article>This native javascript sentence is also in a green box <mark>'+markText+'</mark>?</article>'; + env.doc.getElementById('qunit-fixture').appendChild(frag); + equals($('section > mark', div).html(), markText, "innerHTML getter equals innerHTML setter"); + equals($('article', div).css('borderTopWidth'), '2px', "article has a 2px border"); + }, + env + ); +}, ['default', 'disableMethodsBefore']); + + +envTest("createDocumentFragment/cloneNode/innerHTML test", function(env){ + shivTests( + function(){ + var frag = env.doc.createDocumentFragment(); + var fragDiv = env.doc.createElement('div'); + + var markText = "with these words highlighted2"; + var fragDivClone; + frag.appendChild(fragDiv); + + fragDiv.innerHTML = '<div><article>This native javascript sentence is also in a green box <mark>'+markText+'</mark>?</article></div>'; + + fragDivClone = fragDiv.cloneNode(true); + + env.doc.getElementById('qunit-fixture').appendChild(fragDivClone); + equals($('mark', env.doc).html(), markText, "innerHTML getter equals innerHTML setter"); + }, + env + ); +}, ['default', 'addUnknownAfter']); + +test("form test", function() { + shivTests( + function(){ + var form = document.createElement('form'); + var select = document.createElement('select'); + var input = document.createElement('input'); + var button = document.createElement('button'); + var option = document.createElement('option'); + var markText = "with these words highlighted2"; + + form.setAttribute('action', 'some/path'); + form.setAttribute('name', 'formName'); + form.target = '_blank'; + select.name = 'selectName'; + option.value = '1.value'; + button.setAttribute('type', 'submit'); + input.type = 'submit'; + + form.innerHTML = '<article>This native javascript sentence is also in a green box <mark>'+markText+'</mark>?</article>'; + + + form.appendChild(select); + form.appendChild(button); + form.appendChild(input); + + + + if(select.add){ + try { + select.add(option); + } catch(er){ + select.appendChild(option); + } + } else { + select.appendChild(option); + } + document.getElementById('qunit-fixture').appendChild(form); + + equals($('select option', form).val(), '1.value', "select has one option with value"); + equals($('article > mark', form).html(), markText, "innerHTML getter equals innerHTML setter"); + equals($('article', form).css('borderTopWidth'), '2px', "article has a 2px border"); + } + ); +}); + +envTest("jQuery test", function(env){ + shivTests( + function(){ + var markText = "with these words highlighted3"; + var div = $('<div/>', env.doc).html('<section><article>This jQuery 1.6.4 sentence is in a green box <mark>'+markText+'</mark></article>?</section>').appendTo(env.doc.getElementById('qunit-fixture')); + equals($('article > mark', div).html(), markText, "innerHTML getter equals innerHTML setter"); + equals($('article', div).css('borderTopWidth'), '2px', "article has a 2px border"); + }, + env + ); +}); + + + + +})(); |
