@@ -641,6 +641,63 @@ QUnit.test( "show/hide detached nodes", function( assert ) {
641641 span . remove ( ) ;
642642} ) ;
643643
644+ QUnit [ document . body . attachShadow ? "test" : "skip" ] ( "show/hide shadow child nodes" , function ( assert ) {
645+ assert . expect ( 28 ) ;
646+ jQuery ( "<div id='shadowHost'></div>" ) . appendTo ( "#qunit-fixture" ) ;
647+ var shadowHost = document . querySelector ( "#shadowHost" ) ;
648+ var shadowRoot = shadowHost . attachShadow ( { mode : "open" } ) ;
649+ shadowRoot . innerHTML = "" +
650+ "<style>.hidden{display: none;}</style>" +
651+ "<div class='hidden' id='shadowdiv'>" +
652+ " <p class='hidden' id='shadowp'>" +
653+ " <a href='#' class='hidden' id='shadowa'></a>" +
654+ " </p>" +
655+ " <code class='hidden' id='shadowcode'></code>" +
656+ " <pre class='hidden' id='shadowpre'></pre>" +
657+ " <span class='hidden' id='shadowspan'></span>" +
658+ "</div>" +
659+ "<table class='hidden' id='shadowtable'>" +
660+ " <thead class='hidden' id='shadowthead'>" +
661+ " <tr class='hidden' id='shadowtr'>" +
662+ " <th class='hidden' id='shadowth'></th>" +
663+ " </tr>" +
664+ " </thead>" +
665+ " <tbody class='hidden' id='shadowtbody'>" +
666+ " <tr class='hidden'>" +
667+ " <td class='hidden' id='shadowtd'></td>" +
668+ " </tr>" +
669+ " </tbody>" +
670+ "</table>" +
671+ "<ul class='hidden' id='shadowul'>" +
672+ " <li class='hidden' id='shadowli'></li>" +
673+ "</ul>" ;
674+
675+ var test = {
676+ "div" : "block" ,
677+ "p" : "block" ,
678+ "a" : "inline" ,
679+ "code" : "inline" ,
680+ "pre" : "block" ,
681+ "span" : "inline" ,
682+ "table" : "table" ,
683+ "thead" : "table-header-group" ,
684+ "tbody" : "table-row-group" ,
685+ "tr" : "table-row" ,
686+ "th" : "table-cell" ,
687+ "td" : "table-cell" ,
688+ "ul" : "block" ,
689+ "li" : "list-item"
690+ } ;
691+
692+ jQuery . each ( test , function ( selector , expected ) {
693+ var shadowChild = shadowRoot . querySelector ( "#shadow" + selector ) ;
694+ var $shadowChild = jQuery ( shadowChild ) ;
695+ assert . strictEqual ( $shadowChild . css ( "display" ) , "none" , "is hidden" ) ;
696+ $shadowChild . show ( ) ;
697+ assert . strictEqual ( $shadowChild . css ( "display" ) , expected , "Show using correct display type for " + selector ) ;
698+ } ) ;
699+ } ) ;
700+
644701QUnit . test ( "hide hidden elements (bug #7141)" , function ( assert ) {
645702 assert . expect ( 3 ) ;
646703
@@ -966,6 +1023,29 @@ QUnit[ jQuery.find.compile && jQuery.fn.toggle ? "test" : "skip" ]( "detached to
9661023 "cascade-hidden element in detached tree" ) ;
9671024} ) ;
9681025
1026+ QUnit [ jQuery . find . compile && jQuery . fn . toggle && document . body . attachShadow ? "test" : "skip" ] ( "shadow toggle()" , function ( assert ) {
1027+ assert . expect ( 4 ) ;
1028+ jQuery ( "<div id='shadowHost'></div>" ) . appendTo ( "#qunit-fixture" ) ;
1029+ var shadowHost = document . querySelector ( "#shadowHost" ) ;
1030+ var shadowRoot = shadowHost . attachShadow ( { mode : "open" } ) ;
1031+ shadowRoot . innerHTML = "" +
1032+ "<style>.hidden{display: none;}</style>" +
1033+ "<div id='shadowHiddenChild' class='hidden'></div>" +
1034+ "<div id='shadowChild'></div>" ;
1035+ var shadowChild = shadowRoot . querySelector ( "#shadowChild" ) ;
1036+ var shadowHiddenChild = shadowRoot . querySelector ( "#shadowHiddenChild" ) ;
1037+
1038+ var $shadowChild = jQuery ( shadowChild ) ;
1039+ assert . strictEqual ( $shadowChild . css ( "display" ) , "block" , "is visible" ) ;
1040+ $shadowChild . toggle ( ) ;
1041+ assert . strictEqual ( $shadowChild . css ( "display" ) , "none" , "is hidden" ) ;
1042+
1043+ $shadowChild = jQuery ( shadowHiddenChild ) ;
1044+ assert . strictEqual ( $shadowChild . css ( "display" ) , "none" , "is hidden" ) ;
1045+ $shadowChild . toggle ( ) ;
1046+ assert . strictEqual ( $shadowChild . css ( "display" ) , "block" , "is visible" ) ;
1047+ } ) ;
1048+
9691049QUnit . test ( "jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)" , function ( assert ) {
9701050 assert . expect ( 4 ) ;
9711051
0 commit comments