deleted file mode 100644
--- a/browser/base/content/test/general/test_contextmenu.html
+++ /dev/null
@@ -1,880 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Tests for browser context menu</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
- <script type="text/javascript" src="head_plain.js"></script>
-</head>
-<body>
-Browser context menu tests.
-<p id="display"></p>
-
-<div id="content">
-</div>
-
-<pre id="test">
-<script type="text/javascript" src="contextmenu_common.js"></script>
-<script class="testbody" type="text/javascript">
-
-SpecialPowers.Cu.import("resource://gre/modules/InlineSpellChecker.jsm", window);
-
-const Ci = SpecialPowers.Ci;
-
-function executeCopyCommand(command, expectedValue)
-{
- // Just execute the command directly rather than simulating a context menu
- // press to avoid having to deal with its asynchronous nature
- SpecialPowers.wrap(subwindow).controllers.getControllerForCommand(command).doCommand(command);
-
- // The easiest way to check the clipboard is to paste the contents into a
- // textbox
- input.focus();
- input.value = "";
- SpecialPowers.wrap(input).controllers.getControllerForCommand("cmd_paste").doCommand("cmd_paste");
- is(input.value, expectedValue, "paste for command " + command);
-}
-
-function invokeItemAction(generatedItemId)
-{
- var item = contextMenu.getElementsByAttribute("generateditemid",
- generatedItemId)[0];
- ok(item, "Got generated XUL menu item");
- item.doCommand();
- ok(!pagemenu.hasAttribute("hopeless"), "attribute got removed");
-}
-
-function selectText(element) {
- // Clear any previous selections before selecting new element.
- subwindow.getSelection().removeAllRanges();
-
- var div = subwindow.document.createRange();
- div.setStartBefore(element);
- div.setEndAfter(element);
- subwindow.getSelection().addRange(div);
-}
-
-function selectInputText(element) {
- // Clear any previous selections before selecting new element.
- subwindow.getSelection().removeAllRanges();
-
- element.select();
-}
-
-/*
- * runTest
- *
- * Called by a popupshowing event handler. Each test checks for expected menu
- * contents, closes the popup, and finally triggers the popup on a new element
- * (thus kicking off another cycle).
- *
- */
-function runTest(testNum) {
- // Seems we need to enable this again, or sendKeyEvent() complaints.
- ok(true, "Starting test #" + testNum);
-
- var inspectItems = [];
- if (SpecialPowers.getBoolPref("devtools.inspector.enabled")) {
- inspectItems = ["---", null,
- "context-inspect", true];
- }
-
- var loginFillItems = [
- "---", null,
- "fill-login", null,
- [
- "fill-login-no-logins", false,
- "---", null,
- "fill-login-saved-passwords", true
- ], null,
- ];
-
- var tests = [
- function () {
- // Invoke context menu for next test.
- openContextMenuFor(text);
- },
-
- function () {
- // Context menu for plain text
- plainTextItems = ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems);
- checkContextMenu(plainTextItems);
- closeContextMenu();
- openContextMenuFor(link); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for text link
- checkContextMenu(["context-openlinkintab", true,
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- "context-copylink", true,
- "context-searchselect", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(mailto); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for text mailto-link
- checkContextMenu(["context-copyemail", true,
- "context-searchselect", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(img); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for an image
- checkContextMenu(["context-viewimage", true,
- "context-copyimage-contents", true,
- "context-copyimage", true,
- "---", null,
- "context-saveimage", true,
- "context-sendimage", true,
- "context-setDesktopBackground", true,
- "context-viewimageinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(canvas); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a canvas
- checkContextMenu(["context-viewimage", true,
- "context-saveimage", true,
- "context-selectall", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(video_ok); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a video (with a VALID media source)
- checkContextMenu(["context-media-play", true,
- "context-media-mute", true,
- "context-media-playbackrate", null,
- ["context-media-playbackrate-050x", true,
- "context-media-playbackrate-100x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-hidecontrols", true,
- "context-video-showstats", true,
- "context-video-fullscreen", true,
- "---", null,
- "context-viewvideo", true,
- "context-copyvideourl", true,
- "---", null,
- "context-savevideo", true,
- "context-video-saveimage", true,
- "context-sendvideo", true,
- "context-castvideo", null,
- [], null
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(audio_in_video); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a video (with an audio-only file)
- checkContextMenu(["context-media-play", true,
- "context-media-mute", true,
- "context-media-playbackrate", null,
- ["context-media-playbackrate-050x", true,
- "context-media-playbackrate-100x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-showcontrols", true,
- "---", null,
- "context-copyaudiourl", true,
- "---", null,
- "context-saveaudio", true,
- "context-sendaudio", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(video_bad); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a video (with an INVALID media source)
- checkContextMenu(["context-media-play", false,
- "context-media-mute", false,
- "context-media-playbackrate", null,
- ["context-media-playbackrate-050x", false,
- "context-media-playbackrate-100x", false,
- "context-media-playbackrate-150x", false,
- "context-media-playbackrate-200x", false], null,
- "context-media-hidecontrols", false,
- "context-video-showstats", false,
- "context-video-fullscreen", false,
- "---", null,
- "context-viewvideo", true,
- "context-copyvideourl", true,
- "---", null,
- "context-savevideo", true,
- "context-video-saveimage", false,
- "context-sendvideo", true,
- "context-castvideo", null,
- [], null
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(video_bad2); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a video (with an INVALID media source)
- checkContextMenu(["context-media-play", false,
- "context-media-mute", false,
- "context-media-playbackrate", null,
- ["context-media-playbackrate-050x", false,
- "context-media-playbackrate-100x", false,
- "context-media-playbackrate-150x", false,
- "context-media-playbackrate-200x", false], null,
- "context-media-hidecontrols", false,
- "context-video-showstats", false,
- "context-video-fullscreen", false,
- "---", null,
- "context-viewvideo", false,
- "context-copyvideourl", false,
- "---", null,
- "context-savevideo", false,
- "context-video-saveimage", false,
- "context-sendvideo", false,
- "context-castvideo", null,
- [], null
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(iframe); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for an iframe
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "frame", null,
- ["context-showonlythisframe", true,
- "context-openframeintab", true,
- "context-openframe", true,
- "---", null,
- "context-reloadframe", true,
- "---", null,
- "context-bookmarkframe", true,
- "context-saveframe", true,
- "---", null,
- "context-printframe", true,
- "---", null,
- "context-viewframesource", true,
- "context-viewframeinfo", true], null,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(video_in_iframe); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for a video in an iframe
- checkContextMenu(["context-media-play", true,
- "context-media-mute", true,
- "context-media-playbackrate", null,
- ["context-media-playbackrate-050x", true,
- "context-media-playbackrate-100x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-hidecontrols", true,
- "context-video-showstats", true,
- "context-video-fullscreen", true,
- "---", null,
- "context-viewvideo", true,
- "context-copyvideourl", true,
- "---", null,
- "context-savevideo", true,
- "context-video-saveimage", true,
- "context-sendvideo", true,
- "context-castvideo", null,
- [], null,
- "frame", null,
- ["context-showonlythisframe", true,
- "context-openframeintab", true,
- "context-openframe", true,
- "---", null,
- "context-reloadframe", true,
- "---", null,
- "context-bookmarkframe", true,
- "context-saveframe", true,
- "---", null,
- "context-printframe", true,
- "---", null,
- "context-viewframeinfo", true], null].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(image_in_iframe); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for an image in an iframe
- checkContextMenu(["context-viewimage", true,
- "context-copyimage-contents", true,
- "context-copyimage", true,
- "---", null,
- "context-saveimage", true,
- "context-sendimage", true,
- "context-setDesktopBackground", true,
- "context-viewimageinfo", true,
- "frame", null,
- ["context-showonlythisframe", true,
- "context-openframeintab", true,
- "context-openframe", true,
- "---", null,
- "context-reloadframe", true,
- "---", null,
- "context-bookmarkframe", true,
- "context-saveframe", true,
- "---", null,
- "context-printframe", true,
- "---", null,
- "context-viewframeinfo", true], null].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(textarea); // Invoke context menu for next test
- },
-
- function () {
- // Context menu for textarea before spell check initialization finishes
- checkContextMenu(["context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null,
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-add-dictionaries-main", true,
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(textarea, false, true); // Invoke context menu for next test, but wait for the spellcheck.
- },
-
- function () {
- // Context menu for textarea after spell check initialization finishes
- checkContextMenu(["*chubbiness", true, // spelling suggestion
- "spell-add-to-dictionary", true,
- "---", null,
- "context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-check-enabled", true,
- "spell-dictionaries", true,
- ["spell-check-dictionary-en-US", true,
- "---", null,
- "spell-add-dictionaries", true], null
- ].concat(inspectItems));
- contextMenu.ownerDocument.getElementById("spell-add-to-dictionary").doCommand(); // Add to dictionary
- closeContextMenu();
- openContextMenuFor(text); // Invoke context menu for next test.
- },
-
- function () {
- // Re-check context menu for plain text to make sure it hasn't changed
- checkContextMenu(plainTextItems);
- closeContextMenu();
- openContextMenuFor(textarea, false, true); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for textarea after a word has been added
- // to the dictionary
- checkContextMenu(["spell-undo-add-to-dictionary", true,
- "---", null,
- "context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-check-enabled", true,
- "spell-dictionaries", true,
- ["spell-check-dictionary-en-US", true,
- "---", null,
- "spell-add-dictionaries", true], null
- ].concat(inspectItems));
- contextMenu.ownerDocument.getElementById("spell-undo-add-to-dictionary").doCommand(); // Undo add to dictionary
- closeContextMenu();
- openContextMenuFor(contenteditable, false, true);
- },
-
- function () {
- // Context menu for contenteditable
- checkContextMenu(["spell-no-suggestions", false,
- "spell-add-to-dictionary", true,
- "---", null,
- "context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-check-enabled", true,
- "spell-dictionaries", true,
- ["spell-check-dictionary-en-US", true,
- "---", null,
- "spell-add-dictionaries", true], null
- ].concat(inspectItems));
-
- closeContextMenu();
- openContextMenuFor(link); // Invoke context menu for next test.
- },
-
- function () {
- executeCopyCommand("cmd_copyLink", "http://mozilla.com/");
- closeContextMenu();
- openContextMenuFor(pagemenu); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for element with assigned content context menu
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "+Plain item", {type: "", icon: "", checked: false, disabled: false},
- "+Disabled item", {type: "", icon: "", checked: false, disabled: true},
- "+Item w/ textContent", {type: "", icon: "", checked: false, disabled: false},
- "---", null,
- "+Checkbox", {type: "checkbox", icon: "", checked: true, disabled: false},
- "---", null,
- "+Radio1", {type: "checkbox", icon: "", checked: true, disabled: false},
- "+Radio2", {type: "checkbox", icon: "", checked: false, disabled: false},
- "+Radio3", {type: "checkbox", icon: "", checked: false, disabled: false},
- "---", null,
- "+Item w/ icon", {type: "", icon: "favicon.ico", checked: false, disabled: false},
- "+Item w/ bad icon", {type: "", icon: "", checked: false, disabled: false},
- "---", null,
- "generated-submenu-1", true,
- ["+Radio1", {type: "checkbox", icon: "", checked: false, disabled: false},
- "+Radio2", {type: "checkbox", icon: "", checked: true, disabled: false},
- "+Radio3", {type: "checkbox", icon: "", checked: false, disabled: false},
- "---", null,
- "+Checkbox", {type: "checkbox", icon: "", checked: false, disabled: false}], null,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
-
- invokeItemAction("1");
- closeContextMenu();
-
- // run requestFullscreen on the element we're testing
- var full_screen_element = subwindow.document.getElementById("test-dom-full-screen");
- var openDomFullScreen = function() {
- subwindow.removeEventListener("fullscreenchange", openDomFullScreen, false);
- openContextMenuFor(dom_full_screen, true); // Invoke context menu for next test.
- }
- subwindow.addEventListener("fullscreenchange", openDomFullScreen, false);
- SpecialPowers.setBoolPref("full-screen-api.allow-trusted-requests-only", false);
- SpecialPowers.setCharPref("full-screen-api.transition-duration.enter", "0 0");
- SpecialPowers.setCharPref("full-screen-api.transition-duration.leave", "0 0");
- full_screen_element.requestFullscreen();
- },
-
- function () {
- // Context menu for DOM Fullscreen mode (NOTE: this is *NOT* on an img)
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-leave-dom-fullscreen", true,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- var full_screen_element = subwindow.document.getElementById("test-dom-full-screen");
- var openPagemenu = function() {
- subwindow.removeEventListener("fullscreenchange", openPagemenu, false);
- SpecialPowers.clearUserPref("full-screen-api.allow-trusted-requests-only");
- SpecialPowers.clearUserPref("full-screen-api.transition-duration.enter", "0 0");
- SpecialPowers.clearUserPref("full-screen-api.transition-duration.leave", "0 0");
- openContextMenuFor(pagemenu, true); // Invoke context menu for next test.
- }
- subwindow.addEventListener("fullscreenchange", openPagemenu, false);
- subwindow.document.exitFullscreen();
- },
-
- function () {
- // Context menu for element with assigned content context menu
- // The shift key should bypass content context menu processing
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- selectText(selecttext); // Select text prior to opening context menu.
- openContextMenuFor(selecttext); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for selected text
- if (SpecialPowers.Services.appinfo.OS == "Darwin") {
- // This test is only enabled on Mac due to bug 736399.
- checkContextMenu(["context-copy", true,
- "context-selectall", true,
- "---", null,
- "context-searchselect", true,
- "context-viewpartialsource-selection", true
- ].concat(inspectItems));
- }
- closeContextMenu();
- selectText(selecttextlink); // Select text prior to opening context menu.
- openContextMenuFor(selecttextlink); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for selected text which matches valid URL pattern
- if (SpecialPowers.Services.appinfo.OS == "Darwin") {
- // This test is only enabled on Mac due to bug 736399.
- checkContextMenu(["context-openlinkincurrent", true,
- "context-openlinkintab", true,
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- "context-copy", true,
- "context-selectall", true,
- "---", null,
- "context-searchselect", true,
- "context-viewpartialsource-selection", true
- ].concat(inspectItems));
- }
- closeContextMenu();
- // clear the selection because following tests don't expect any selection
- subwindow.getSelection().removeAllRanges();
-
- openContextMenuFor(imagelink)
- },
-
- function () {
- // Context menu for image link
- checkContextMenu(["context-openlinkintab", true,
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- "context-copylink", true,
- "---", null,
- "context-viewimage", true,
- "context-copyimage-contents", true,
- "context-copyimage", true,
- "---", null,
- "context-saveimage", true,
- "context-sendimage", true,
- "context-setDesktopBackground", true,
- "context-viewimageinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- selectInputText(select_inputtext); // Select text prior to opening context menu.
- openContextMenuFor(select_inputtext); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for selected text in input
- checkContextMenu(["context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", true,
- "---", null,
- "context-selectall", true,
- "context-searchselect",true,
- "---", null,
- "spell-check-enabled", true
- ].concat(loginFillItems)
- .concat(inspectItems));
- closeContextMenu();
- selectInputText(select_inputtext_password); // Select text prior to opening context menu.
- openContextMenuFor(select_inputtext_password); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for selected text in input[type="password"]
- checkContextMenu(["context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", true,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-check-enabled", true,
- //spell checker is shown on input[type="password"] on this testcase
- "spell-dictionaries", true,
- ["spell-check-dictionary-en-US", true,
- "---", null,
- "spell-add-dictionaries", true], null
- ].concat(loginFillItems)
- .concat(inspectItems));
- closeContextMenu();
- subwindow.getSelection().removeAllRanges();
- openContextMenuFor(plugin);
- },
-
- function () {
- // Context menu for click-to-play blocked plugin
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-ctp-play", true,
- "context-ctp-hide", true,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- SpecialPowers.clearUserPref("plugins.click_to_play");
- getTestPlugin().enabledState = Ci.nsIPluginTag.STATE_ENABLED;
- openContextMenuFor(longdesc);
- },
-
- function () {
- // Context menu for an image with longdesc
- checkContextMenu(["context-viewimage", true,
- "context-copyimage-contents", true,
- "context-copyimage", true,
- "---", null,
- "context-saveimage", true,
- "context-sendimage", true,
- "context-setDesktopBackground", true,
- "context-viewimageinfo", true,
- "context-viewimagedesc", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(srcdoc);
- },
-
- function () {
- // Context menu for an iframe with srcdoc attribute set
- checkContextMenu(["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "frame", null,
- ["context-reloadframe", true,
- "---", null,
- "context-saveframe", true,
- "---", null,
- "context-printframe", true,
- "---", null,
- "context-viewframesource", true,
- "context-viewframeinfo", true], null,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ].concat(inspectItems));
- closeContextMenu();
- openContextMenuFor(inputspellfalse, false, true); // Invoke context menu for next test.
- },
-
- function () {
- // Context menu for text input field with spellcheck=false
- checkContextMenu(["context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- "---", null,
- "spell-add-dictionaries-main", true,
- ].concat(inspectItems));
-
- // finish test
- subwindow.close();
- SimpleTest.finish();
- },
- ];
-
- /*
- * Other things that would be nice to test:
- * - check state of disabled items
- * - test execution of menu items (maybe as a separate test?)
- */
-
- tests[testNum]();
-}
-
-
-var testNum;
-var subwindow, chromeWin, contextMenu;
-var text, link, mailto, input, img, canvas, video_ok, video_bad, video_bad2,
- iframe, video_in_iframe, image_in_iframe, textarea, contenteditable,
- pagemenu, dom_full_screen, plainTextItems, audio_in_video,
- selecttext, selecttextlink, imagelink, select_inputtext, select_inputtext_password,
- plugin, longdesc, iframe, inputspellfalse;
-
-function startTest() {
- chromeWin = SpecialPowers.wrap(subwindow)
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow)
- .QueryInterface(Ci.nsIDOMChromeWindow);
- contextMenu = chromeWin.document.getElementById("contentAreaContextMenu");
- ok(contextMenu, "Got context menu XUL");
-
- if (chromeWin.document.getElementById("Browser:Stop").getAttribute("disabled") != "true") {
- todo(false, "Wait for subwindow to load... (This should usually happen once.)");
- SimpleTest.executeSoon(startTest);
- return;
- }
-
- subwindow.allowFullscreen = true;
- lastElement = null;
-
- text = subwindow.document.getElementById("test-text");
- link = subwindow.document.getElementById("test-link");
- imagelink = subwindow.document.getElementById("test-image-link");
- mailto = subwindow.document.getElementById("test-mailto");
- input = subwindow.document.getElementById("test-input");
- img = subwindow.document.getElementById("test-image");
- canvas = subwindow.document.getElementById("test-canvas");
- video_ok = subwindow.document.getElementById("test-video-ok");
- audio_in_video = subwindow.document.getElementById("test-audio-in-video");
- video_bad = subwindow.document.getElementById("test-video-bad");
- video_bad2 = subwindow.document.getElementById("test-video-bad2");
- iframe = subwindow.document.getElementById("test-iframe");
- video_in_iframe = subwindow.document.getElementById("test-video-in-iframe").contentDocument.getElementsByTagName("video")[0];
- video_in_iframe.pause();
- image_in_iframe = subwindow.document.getElementById("test-image-in-iframe").contentDocument.getElementsByTagName("img")[0];
- textarea = subwindow.document.getElementById("test-textarea");
- contenteditable = subwindow.document.getElementById("test-contenteditable");
- contenteditable.focus(); // content editable needs to be focused to enable spellcheck
- inputspellfalse = subwindow.document.getElementById("test-contenteditable-spellcheck-false");
- inputspellfalse.focus(); // content editable needs to be focused to enable spellcheck
- pagemenu = subwindow.document.getElementById("test-pagemenu");
- dom_full_screen = subwindow.document.getElementById("test-dom-full-screen");
- selecttext = subwindow.document.getElementById("test-select-text");
- selecttextlink = subwindow.document.getElementById("test-select-text-link");
- select_inputtext = subwindow.document.getElementById("test-select-input-text");
- select_inputtext_password = subwindow.document.getElementById("test-select-input-text-type-password");
- plugin = subwindow.document.getElementById("test-plugin");
- longdesc = subwindow.document.getElementById("test-longdesc");
- srcdoc = subwindow.document.getElementById("test-srcdoc");
-
- contextMenu.addEventListener("popupshown", function() { runTest(++testNum); }, false);
- testNum = 0;
- runTest(testNum);
-}
-
-// We open this in a separate window, because the Mochitests run inside a frame.
-// The frame causes an extra menu item, and prevents running the test
-// standalone (ie, clicking the test name in the Mochitest window) to see
-// success/failure messages.
-var painted = false, loaded = false;
-
-function waitForEvents(event)
-{
- if (event.type == "MozAfterPaint")
- painted = true;
- else if (event.type == "load")
- loaded = true;
- if (painted && loaded) {
- subwindow.removeEventListener("MozAfterPaint", waitForEvents, false);
- subwindow.onload = null;
- SimpleTest.waitForFocus(startTest, subwindow);
- }
-}
-
-SpecialPowers.setBoolPref("plugins.click_to_play", true);
-setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
-
-var subwindow = window.open("./subtst_contextmenu.html", "contextmenu-subtext", "width=600,height=800");
-subwindow.addEventListener("MozAfterPaint", waitForEvents, false);
-subwindow.onload = waitForEvents;
-
-SimpleTest.waitForExplicitFinish();
-</script>
-</pre>
-</body>
-</html>