| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| description( |
| 'Test transforming youtube flash plugin to youtube iFrame based player. <<a href="rdar://problem/11201356"> rdar://problem/11201356</a>>' |
| ); |
| |
| function checkEmbeddedYouTubeVideoInsideIframe() |
| { |
| normalEmbedInIframe = document.getElementById('test-iframe').contentDocument.getElementById('normal-embed'); |
| normalEmbedInIframeShadowRoot = internals.shadowRoot(normalEmbedInIframe); |
| shouldBe('internals.shadowPseudoId(normalEmbedInIframeShadowRoot.firstChild)', '"-webkit-plugin-replacement"'); |
| shouldBe('normalEmbedInIframeShadowRoot.firstChild.firstChild.tagName', '"IFRAME"'); |
| |
| document.body.removeChild(document.getElementById("test-container")); |
| finishJSTest(); |
| } |
| |
| function testEmbedYouTubeVideoInsideIframe() |
| { |
| var markup = [ |
| '<body>', |
| '<p>Normal Embed:<br><embed id="normal-embed" src="http://www.youtube.com/v/N0gb9v4LI4o" type="application/x-shockwave-flash" width="425" height="350"></p>', |
| '<script>', |
| 'window.setTimeout(window.parent.checkEmbeddedYouTubeVideoInsideIframe, 0);', |
| '</' + 'script>', |
| '</body>', |
| ]; |
| var iframe = document.getElementById('test-iframe'); |
| iframe.srcdoc = markup.join(""); |
| } |
| |
| function Test() |
| { |
| setTimeout(function() { |
| normalEmbed = document.getElementById('normal-embed'); |
| elinkEmbed = document.getElementById('elink-embed'); |
| objectEmbed = document.getElementById('object-embed'); |
| objectNoEmbed = document.getElementById('object-no-embed'); |
| |
| // Test we don't change any embed/object tag to iframe. |
| shouldBe('normalEmbed.tagName', '"EMBED"'); |
| shouldBe('elinkEmbed.tagName', '"EMBED"'); |
| shouldBe('objectEmbed.tagName', '"EMBED"'); |
| shouldBe('objectNoEmbed.tagName', '"OBJECT"'); |
| |
| // Test we don't see those shadow iframes in DOM. |
| shouldBe('document.querySelectorAll("iframe").length', '1'); |
| |
| // Test we have the shadow root and the iframe player. |
| normalEmbedShadowRoot = internals.shadowRoot(normalEmbed); |
| shouldBe('internals.shadowPseudoId(normalEmbedShadowRoot.firstChild)', '"-webkit-plugin-replacement"'); |
| shouldBe('normalEmbedShadowRoot.firstChild.firstChild.tagName', '"IFRAME"'); |
| |
| objectEmbedShadowRoot = internals.shadowRoot(objectEmbed); |
| shouldBe('internals.shadowPseudoId(objectEmbedShadowRoot.firstChild)', '"-webkit-plugin-replacement"'); |
| shouldBe('objectEmbedShadowRoot.firstChild.firstChild.tagName', '"IFRAME"'); |
| |
| objectNoEmbedShadowRoot = internals.shadowRoot(objectNoEmbed); |
| shouldBe('internals.shadowPseudoId(objectNoEmbedShadowRoot.firstChild)', '"-webkit-plugin-replacement"'); |
| shouldBe('objectNoEmbedShadowRoot.firstChild.firstChild.tagName', '"IFRAME"'); |
| |
| testEmbedYouTubeVideoInsideIframe(); |
| }, 0); |
| } |
| </script> |
| </head> |
| <body onLoad="Test()"> |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <div id="test-container"> |
| <p>Normal Embed:<br><embed id="normal-embed" src="http://www.youtube.com/v/N0gb9v4LI4o" type="application/x-shockwave-flash" width="425" height="350"></p> |
| <p>E-link Embed:<br><embed id="elink-embed" src="http://www.youtube.com/e/N0gb9v4LI4o" type="application/x-shockwave-flash" width="425" height="350"></p> |
| <p>Object with embed:<br> |
| <object width="425" height="350"> |
| <param name="movie" value="http://www.youtube.com/v/N0gb9v4LI4o?version=3&hl=en_US"></param> |
| <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param> |
| <embed id="object-embed" src="http://www.youtube.com/v/N0gb9v4LI4o?version=3&hl=en_US" type="application/x-shockwave-flash" width="425" height="350" allowscriptaccess="always" allowfullscreen="true"></embed> |
| </object> |
| </p> |
| <p>Object without embed:<br><object id="object-no-embed" width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/N0gb9v4LI4o?version=3&hl=en_US"></object> |
| <p>Embed inside iframe:<br> |
| <iframe width="300" height="200" id="test-iframe"></iframe> |
| </div> |
| |
| <script src="../../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |