summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_contextmenu.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_contextmenu.js')
-rw-r--r--browser/base/content/test/general/browser_contextmenu.js996
1 files changed, 0 insertions, 996 deletions
diff --git a/browser/base/content/test/general/browser_contextmenu.js b/browser/base/content/test/general/browser_contextmenu.js
deleted file mode 100644
index 3e0135848..000000000
--- a/browser/base/content/test/general/browser_contextmenu.js
+++ /dev/null
@@ -1,996 +0,0 @@
-"use strict";
-
-let contextMenu;
-let LOGIN_FILL_ITEMS = [
- "---", null,
- "fill-login", null,
- [
- "fill-login-no-logins", false,
- "---", null,
- "fill-login-saved-passwords", true
- ], null,
-];
-let hasPocket = Services.prefs.getBoolPref("extensions.pocket.enabled");
-let hasContainers = Services.prefs.getBoolPref("privacy.userContext.enabled");
-
-const example_base = "http://example.com/browser/browser/base/content/test/general/";
-const chrome_base = "chrome://mochitests/content/browser/browser/base/content/test/general/";
-
-Services.scriptloader.loadSubScript(chrome_base + "contextmenu_common.js", this);
-
-// Below are test cases for XUL element
-add_task(function* test_xul_text_link_label() {
- let url = chrome_base + "subtst_contextmenu_xul.xul";
-
- yield BrowserTestUtils.openNewForegroundTab(gBrowser, url);
-
- yield test_contextmenu("#test-xul-text-link-label",
- ["context-openlinkintab", true,
- ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []),
- // We need a blank entry here because the containers submenu is
- // dynamically generated with no ids.
- ...(hasContainers ? ["", null] : []),
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
- "context-copylink", true,
- "context-searchselect", true
- ]
- );
-
- // Clean up so won't affect HTML element test cases
- lastElementSelector = null;
- gBrowser.removeCurrentTab();
-});
-
-// Below are test cases for HTML element
-
-add_task(function* test_setup_html() {
- let url = example_base + "subtst_contextmenu.html";
-
- yield BrowserTestUtils.openNewForegroundTab(gBrowser, url);
-
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let videoIframe = doc.querySelector("#test-video-in-iframe");
- let video = videoIframe.contentDocument.querySelector("video");
- let awaitPause = ContentTaskUtils.waitForEvent(video, "pause");
- video.pause();
- yield awaitPause;
-
- let audioIframe = doc.querySelector("#test-audio-in-iframe");
- // media documents always use a <video> tag.
- let audio = audioIframe.contentDocument.querySelector("video");
- awaitPause = ContentTaskUtils.waitForEvent(audio, "pause");
- audio.pause();
- yield awaitPause;
- });
-});
-
-let plainTextItems;
-add_task(function* test_plaintext() {
- plainTextItems = ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ];
- yield test_contextmenu("#test-text", plainTextItems);
-});
-
-add_task(function* test_link() {
- yield test_contextmenu("#test-link",
- ["context-openlinkintab", true,
- ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []),
- // We need a blank entry here because the containers submenu is
- // dynamically generated with no ids.
- ...(hasContainers ? ["", null] : []),
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
- "context-copylink", true,
- "context-searchselect", true
- ]
- );
-});
-
-add_task(function* test_mailto() {
- yield test_contextmenu("#test-mailto",
- ["context-copyemail", true,
- "context-searchselect", true
- ]
- );
-});
-
-add_task(function* test_image() {
- yield test_contextmenu("#test-image",
- ["context-viewimage", true,
- "context-copyimage-contents", true,
- "context-copyimage", true,
- "---", null,
- "context-saveimage", true,
- "context-sendimage", true,
- "context-setDesktopBackground", true,
- "context-viewimageinfo", true
- ]
- );
-});
-
-add_task(function* test_canvas() {
- yield test_contextmenu("#test-canvas",
- ["context-viewimage", true,
- "context-saveimage", true,
- "context-selectall", true
- ]
- );
-});
-
-add_task(function* test_video_ok() {
- yield test_contextmenu("#test-video-ok",
- ["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-125x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-loop", true,
- "context-media-hidecontrols", 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
- ]
- );
-});
-
-add_task(function* test_audio_in_video() {
- yield test_contextmenu("#test-audio-in-video",
- ["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-125x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-loop", true,
- "context-media-showcontrols", true,
- "---", null,
- "context-copyaudiourl", true,
- "---", null,
- "context-saveaudio", true,
- "context-sendaudio", true
- ]
- );
-});
-
-add_task(function* test_video_bad() {
- yield test_contextmenu("#test-video-bad",
- ["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-125x", false,
- "context-media-playbackrate-150x", false,
- "context-media-playbackrate-200x", false], null,
- "context-media-loop", true,
- "context-media-hidecontrols", 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
- ]
- );
-});
-
-add_task(function* test_video_bad2() {
- yield test_contextmenu("#test-video-bad2",
- ["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-125x", false,
- "context-media-playbackrate-150x", false,
- "context-media-playbackrate-200x", false], null,
- "context-media-loop", true,
- "context-media-hidecontrols", 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
- ]
- );
-});
-
-add_task(function* test_iframe() {
- yield test_contextmenu("#test-iframe",
- ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- ...(hasPocket ? ["context-pocket", 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
- ]
- );
-});
-
-add_task(function* test_video_in_iframe() {
- yield test_contextmenu("#test-video-in-iframe",
- ["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-125x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-loop", true,
- "context-media-hidecontrols", 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]
- );
-});
-
-add_task(function* test_audio_in_iframe() {
- yield test_contextmenu("#test-audio-in-iframe",
- ["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-125x", true,
- "context-media-playbackrate-150x", true,
- "context-media-playbackrate-200x", true], null,
- "context-media-loop", true,
- "---", null,
- "context-copyaudiourl", true,
- "---", null,
- "context-saveaudio", true,
- "context-sendaudio", 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]
- );
-});
-
-add_task(function* test_image_in_iframe() {
- yield test_contextmenu("#test-image-in-iframe",
- ["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]
- );
-});
-
-add_task(function* test_textarea() {
- // Disabled since this is seeing spell-check-enabled
- // instead of spell-add-dictionaries-main
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-textarea",
- ["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,
- ],
- {
- skipFocusChange: true,
- }
- );
- */
-});
-
-add_task(function* test_textarea_spellcheck() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-textarea",
- ["*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
- ],
- {
- waitForSpellCheck: true,
- offsetX: 6,
- offsetY: 6,
- postCheckContextMenuFn() {
- document.getElementById("spell-add-to-dictionary").doCommand();
- }
- }
- );
- */
-});
-
-add_task(function* test_plaintext2() {
- yield test_contextmenu("#test-text", plainTextItems);
-});
-
-add_task(function* test_undo_add_to_dictionary() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-textarea",
- ["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
- ],
- {
- waitForSpellCheck: true,
- postCheckContextMenuFn() {
- document.getElementById("spell-undo-add-to-dictionary")
- .doCommand();
- }
- }
- );
- */
-});
-
-add_task(function* test_contenteditable() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-contenteditable",
- ["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
- ],
- {waitForSpellCheck: true}
- );
- */
-});
-
-add_task(function* test_copylinkcommand() {
- yield test_contextmenu("#test-link", null, {
- postCheckContextMenuFn: function*() {
- document.commandDispatcher
- .getControllerForCommand("cmd_copyLink")
- .doCommand("cmd_copyLink");
-
- // The easiest way to check the clipboard is to paste the contents
- // into a textbox.
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let input = doc.getElementById("test-input");
- input.focus();
- input.value = "";
- });
- document.commandDispatcher
- .getControllerForCommand("cmd_paste")
- .doCommand("cmd_paste");
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let input = doc.getElementById("test-input");
- Assert.equal(input.value, "http://mozilla.com/", "paste for command cmd_paste");
- });
- }
- });
-});
-
-add_task(function* test_pagemenu() {
- yield test_contextmenu("#test-pagemenu",
- ["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,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ],
- {postCheckContextMenuFn: function*() {
- let item = contextMenu.getElementsByAttribute("generateditemid", "1")[0];
- ok(item, "Got generated XUL menu item");
- item.doCommand();
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let pagemenu = content.document.getElementById("test-pagemenu");
- Assert.ok(!pagemenu.hasAttribute("hopeless"), "attribute got removed");
- });
- }
- });
-});
-
-add_task(function* test_dom_full_screen() {
- yield test_contextmenu("#test-dom-full-screen",
- ["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,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ],
- {
- shiftkey: true,
- *preCheckContextMenuFn() {
- yield pushPrefs(["full-screen-api.allow-trusted-requests-only", false],
- ["full-screen-api.transition-duration.enter", "0 0"],
- ["full-screen-api.transition-duration.leave", "0 0"])
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let win = doc.defaultView;
- let full_screen_element = doc.getElementById("test-dom-full-screen");
- let awaitFullScreenChange =
- ContentTaskUtils.waitForEvent(win, "fullscreenchange");
- full_screen_element.requestFullscreen();
- yield awaitFullScreenChange;
- });
- },
- *postCheckContextMenuFn() {
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let win = content.document.defaultView;
- let awaitFullScreenChange =
- ContentTaskUtils.waitForEvent(win, "fullscreenchange");
- content.document.exitFullscreen();
- yield awaitFullScreenChange;
- });
- }
- }
- );
-});
-
-add_task(function* test_pagemenu2() {
- yield test_contextmenu("#test-text",
- ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ],
- {shiftkey: true}
- );
-});
-
-add_task(function* test_select_text() {
- yield test_contextmenu("#test-select-text",
- ["context-copy", true,
- "context-selectall", true,
- "---", null,
- "context-searchselect", true,
- "context-viewpartialsource-selection", true
- ],
- {
- offsetX: 6,
- offsetY: 6,
- *preCheckContextMenuFn() {
- yield selectText("#test-select-text");
- }
- }
- );
-});
-
-add_task(function* test_select_text_link() {
- yield test_contextmenu("#test-select-text-link",
- ["context-openlinkincurrent", true,
- "context-openlinkintab", true,
- ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []),
- // We need a blank entry here because the containers submenu is
- // dynamically generated with no ids.
- ...(hasContainers ? ["", null] : []),
- "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
- ],
- {
- offsetX: 6,
- offsetY: 6,
- *preCheckContextMenuFn() {
- yield selectText("#test-select-text-link");
- },
- *postCheckContextMenuFn() {
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let win = content.document.defaultView;
- win.getSelection().removeAllRanges();
- });
- }
- }
- );
-});
-
-add_task(function* test_imagelink() {
- yield test_contextmenu("#test-image-link",
- ["context-openlinkintab", true,
- ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []),
- // We need a blank entry here because the containers submenu is
- // dynamically generated with no ids.
- ...(hasContainers ? ["", null] : []),
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", 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
- ]
- );
-});
-
-add_task(function* test_select_input_text() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-select-input-text",
- ["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(LOGIN_FILL_ITEMS),
- {
- *preCheckContextMenuFn() {
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let win = doc.defaultView;
- win.getSelection().removeAllRanges();
- let element = doc.querySelector("#test-select-input-text");
- element.select();
- });
- }
- }
- );
- */
-});
-
-add_task(function* test_select_input_text_password() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-select-input-text-type-password",
- ["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(LOGIN_FILL_ITEMS),
- {
- *preCheckContextMenuFn() {
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let doc = content.document;
- let win = doc.defaultView;
- win.getSelection().removeAllRanges();
- let element = doc.querySelector("#test-select-input-text-type-password");
- element.select();
- });
- },
- *postCheckContextMenuFn() {
- yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
- let win = content.document.defaultView;
- win.getSelection().removeAllRanges();
- });
- }
- }
- );
- */
-});
-
-add_task(function* test_click_to_play_blocked_plugin() {
- yield test_contextmenu("#test-plugin",
- ["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,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ],
- {
- preCheckContextMenuFn: function*() {
- pushPrefs(["plugins.click_to_play", true]);
- setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
- },
- postCheckContextMenuFn: function*() {
- getTestPlugin().enabledState = Ci.nsIPluginTag.STATE_ENABLED;
- }
- }
- );
-});
-
-add_task(function* test_longdesc() {
- yield test_contextmenu("#test-longdesc",
- ["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
- ]
- );
-});
-
-add_task(function* test_srcdoc() {
- yield test_contextmenu("#test-srcdoc",
- ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- ...(hasPocket ? ["context-pocket", 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
- ]
- );
-});
-
-add_task(function* test_input_spell_false() {
- todo(false, "spell checker tests are failing, bug 1246296");
- return;
-
- /*
- yield test_contextmenu("#test-contenteditable-spellcheck-false",
- ["context-undo", false,
- "---", null,
- "context-cut", true,
- "context-copy", true,
- "context-paste", null, // ignore clipboard state
- "context-delete", false,
- "---", null,
- "context-selectall", true,
- ]
- );
- */
-});
-
-const remoteClientsFixture = [ { id: 1, name: "Foo"}, { id: 2, name: "Bar"} ];
-
-add_task(function* test_plaintext_sendpagetodevice() {
- if (!gFxAccounts.sendTabToDeviceEnabled) {
- return;
- }
- const oldGetter = setupRemoteClientsFixture(remoteClientsFixture);
-
- let plainTextItemsWithSendPage =
- ["context-navigation", null,
- ["context-back", false,
- "context-forward", false,
- "context-reload", true,
- "context-bookmarkpage", true], null,
- "---", null,
- "context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
- "---", null,
- "context-sendpagetodevice", true,
- ["*Foo", true,
- "*Bar", true,
- "---", null,
- "*All Devices", true], null,
- "---", null,
- "context-viewbgimage", false,
- "context-selectall", true,
- "---", null,
- "context-viewsource", true,
- "context-viewinfo", true
- ];
- yield test_contextmenu("#test-text", plainTextItemsWithSendPage, {
- *onContextMenuShown() {
- yield openMenuItemSubmenu("context-sendpagetodevice");
- }
- });
-
- restoreRemoteClients(oldGetter);
-});
-
-add_task(function* test_link_sendlinktodevice() {
- if (!gFxAccounts.sendTabToDeviceEnabled) {
- return;
- }
- const oldGetter = setupRemoteClientsFixture(remoteClientsFixture);
-
- yield test_contextmenu("#test-link",
- ["context-openlinkintab", true,
- ...(hasContainers ? ["context-openlinkinusercontext-menu", true] : []),
- // We need a blank entry here because the containers submenu is
- // dynamically generated with no ids.
- ...(hasContainers ? ["", null] : []),
- "context-openlink", true,
- "context-openlinkprivate", true,
- "---", null,
- "context-bookmarklink", true,
- "context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
- "context-copylink", true,
- "context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true,
- ["*Foo", true,
- "*Bar", true,
- "---", null,
- "*All Devices", true], null,
- ],
- {
- *onContextMenuShown() {
- yield openMenuItemSubmenu("context-sendlinktodevice");
- }
- });
-
- restoreRemoteClients(oldGetter);
-});
-
-add_task(function* test_cleanup_html() {
- gBrowser.removeCurrentTab();
-});
-
-/**
- * Selects the text of the element that matches the provided `selector`
- *
- * @param {String} selector
- * A selector passed to querySelector to find
- * the element that will be referenced.
- */
-function* selectText(selector) {
- yield ContentTask.spawn(gBrowser.selectedBrowser, selector, function*(contentSelector) {
- info(`Selecting text of ${contentSelector}`);
- let doc = content.document;
- let win = doc.defaultView;
- win.getSelection().removeAllRanges();
- let div = doc.createRange();
- let element = doc.querySelector(contentSelector);
- Assert.ok(element, "Found element to select text from");
- div.setStartBefore(element);
- div.setEndAfter(element);
- win.getSelection().addRange(div);
- });
-}