Test for Embed and Object for bug 32292: Unable to focus on embedded plugins such as Flash via javascript focus().

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS successfullyParsed is true

TEST COMPLETE
PASS "embedElem"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "objectElem"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "embedElemWithFallbackContents"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "objectElemWithFallbackContents"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginEmbedElem"; document.activeElement === pluginElement is false
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginObjectElem"; document.activeElement === pluginElement is false
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginEmbedElemWithFallbackContents"; document.activeElement === pluginElement is false
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginObjectElemWithFallbackContents"; document.activeElement === pluginElement is false
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginEmbedElemWithTabindex"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginObjectElemWithTabindex"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginEmbedElemWithContenteditable"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
PASS "noPluginObjectElemWithContenteditable"; document.activeElement === pluginElement is true
PASS pluginElement.tabIndex is parseInt(pluginElement.getAttribute("data-expected-tabindex"))
fast/events/tabindex-focus-blur-all.html
Test for bug 32292: "Unable to focus on embedded plugins such as Flash via javascript focus()"

This tests focusing Embeds and Objects. See LayoutTests/java for Applet elements.

   Fallback contents.     Fallback contents. Fallback contents.
