mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 08:18:41 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,206 @@
|
|||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
/* Bug 699130 */
|
||||
|
||||
"use strict";
|
||||
|
||||
var WebConsoleUtils = require("devtools/client/webconsole/utils").Utils;
|
||||
var DEVTOOLS_CHROME_ENABLED = "devtools.chrome.enabled";
|
||||
|
||||
function test()
|
||||
{
|
||||
waitForExplicitFinish();
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, false);
|
||||
gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
|
||||
gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
|
||||
openScratchpad(runTests);
|
||||
}, true);
|
||||
|
||||
content.location = "data:text/html,test Edit menu updates Scratchpad - bug 699130";
|
||||
}
|
||||
|
||||
function runTests()
|
||||
{
|
||||
let sp = gScratchpadWindow.Scratchpad;
|
||||
let doc = gScratchpadWindow.document;
|
||||
let winUtils = gScratchpadWindow.QueryInterface(Ci.nsIInterfaceRequestor).
|
||||
getInterface(Ci.nsIDOMWindowUtils);
|
||||
let OS = Services.appinfo.OS;
|
||||
|
||||
info("will test the Edit menu");
|
||||
|
||||
let pass = 0;
|
||||
|
||||
sp.setText("bug 699130: hello world! (edit menu)");
|
||||
|
||||
let editMenu = doc.getElementById("sp-edit-menu");
|
||||
ok(editMenu, "the Edit menu");
|
||||
let menubar = editMenu.parentNode;
|
||||
ok(menubar, "menubar found");
|
||||
|
||||
let editMenuIndex = -1;
|
||||
for (let i = 0; i < menubar.children.length; i++) {
|
||||
if (menubar.children[i] === editMenu) {
|
||||
editMenuIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
isnot(editMenuIndex, -1, "Edit menu index is correct");
|
||||
|
||||
let menuPopup = editMenu.menupopup;
|
||||
ok(menuPopup, "the Edit menupopup");
|
||||
let cutItem = doc.getElementById("menu_cut");
|
||||
ok(cutItem, "the Cut menuitem");
|
||||
let pasteItem = doc.getElementById("menu_paste");
|
||||
ok(pasteItem, "the Paste menuitem");
|
||||
|
||||
let anchor = doc.documentElement;
|
||||
let isContextMenu = false;
|
||||
|
||||
let oldVal = sp.editor.getText();
|
||||
|
||||
let testSelfXss = function (oldVal) {
|
||||
// Self xss prevention tests (bug 994134)
|
||||
info("Self xss paste tests");
|
||||
is(WebConsoleUtils.usageCount, 0, "Test for usage count getter");
|
||||
let notificationbox = doc.getElementById("scratchpad-notificationbox");
|
||||
let notification = notificationbox.getNotificationWithValue("selfxss-notification");
|
||||
ok(notification, "Self-xss notification shown");
|
||||
is(oldVal, sp.editor.getText(), "Paste blocked by self-xss prevention");
|
||||
Services.prefs.setIntPref("devtools.selfxss.count", 10);
|
||||
notificationbox.removeAllNotifications(true);
|
||||
openMenu(10, 10, firstShow);
|
||||
};
|
||||
|
||||
let openMenu = function (aX, aY, aCallback) {
|
||||
if (!editMenu || OS != "Darwin") {
|
||||
menuPopup.addEventListener("popupshown", function onPopupShown() {
|
||||
menuPopup.removeEventListener("popupshown", onPopupShown, false);
|
||||
executeSoon(aCallback);
|
||||
}, false);
|
||||
}
|
||||
|
||||
executeSoon(function () {
|
||||
if (editMenu) {
|
||||
if (OS == "Darwin") {
|
||||
winUtils.forceUpdateNativeMenuAt(editMenuIndex);
|
||||
executeSoon(aCallback);
|
||||
} else {
|
||||
editMenu.open = true;
|
||||
}
|
||||
} else {
|
||||
menuPopup.openPopup(anchor, "overlap", aX, aY, isContextMenu, false);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
let closeMenu = function (aCallback) {
|
||||
if (!editMenu || OS != "Darwin") {
|
||||
menuPopup.addEventListener("popuphidden", function onPopupHidden() {
|
||||
menuPopup.removeEventListener("popuphidden", onPopupHidden, false);
|
||||
executeSoon(aCallback);
|
||||
}, false);
|
||||
}
|
||||
|
||||
executeSoon(function () {
|
||||
if (editMenu) {
|
||||
if (OS == "Darwin") {
|
||||
winUtils.forceUpdateNativeMenuAt(editMenuIndex);
|
||||
executeSoon(aCallback);
|
||||
} else {
|
||||
editMenu.open = false;
|
||||
}
|
||||
} else {
|
||||
menuPopup.hidePopup();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
let firstShow = function () {
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled");
|
||||
closeMenu(firstHide);
|
||||
};
|
||||
|
||||
let firstHide = function () {
|
||||
sp.editor.setSelection({ line: 0, ch: 0 }, { line: 0, ch: 10 });
|
||||
openMenu(11, 11, showAfterSelect);
|
||||
};
|
||||
|
||||
let showAfterSelect = function () {
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled after select");
|
||||
closeMenu(hideAfterSelect);
|
||||
};
|
||||
|
||||
let hideAfterSelect = function () {
|
||||
sp.editor.on("change", onCut);
|
||||
waitForFocus(function () {
|
||||
let selectedText = sp.editor.getSelection();
|
||||
ok(selectedText.length > 0, "non-empty selected text will be cut");
|
||||
|
||||
EventUtils.synthesizeKey("x", {accelKey: true}, gScratchpadWindow);
|
||||
}, gScratchpadWindow);
|
||||
};
|
||||
|
||||
let onCut = function () {
|
||||
sp.editor.off("change", onCut);
|
||||
openMenu(12, 12, showAfterCut);
|
||||
};
|
||||
|
||||
let showAfterCut = function () {
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled after cut");
|
||||
ok(!pasteItem.hasAttribute("disabled"), "paste menuitem is enabled after cut");
|
||||
closeMenu(hideAfterCut);
|
||||
};
|
||||
|
||||
let hideAfterCut = function () {
|
||||
waitForFocus(function () {
|
||||
sp.editor.on("change", onPaste);
|
||||
EventUtils.synthesizeKey("v", {accelKey: true}, gScratchpadWindow);
|
||||
}, gScratchpadWindow);
|
||||
};
|
||||
|
||||
let onPaste = function () {
|
||||
sp.editor.off("change", onPaste);
|
||||
openMenu(13, 13, showAfterPaste);
|
||||
};
|
||||
|
||||
let showAfterPaste = function () {
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled after paste");
|
||||
ok(!pasteItem.hasAttribute("disabled"), "paste menuitem is enabled after paste");
|
||||
closeMenu(hideAfterPaste);
|
||||
};
|
||||
|
||||
let hideAfterPaste = function () {
|
||||
if (pass == 0) {
|
||||
pass++;
|
||||
testContextMenu();
|
||||
} else {
|
||||
Services.prefs.clearUserPref(DEVTOOLS_CHROME_ENABLED);
|
||||
finish();
|
||||
}
|
||||
};
|
||||
|
||||
let testContextMenu = function () {
|
||||
info("will test the context menu");
|
||||
|
||||
editMenu = null;
|
||||
isContextMenu = true;
|
||||
|
||||
menuPopup = doc.getElementById("scratchpad-text-popup");
|
||||
ok(menuPopup, "the context menupopup");
|
||||
cutItem = doc.getElementById("cMenu_cut");
|
||||
ok(cutItem, "the Cut menuitem");
|
||||
pasteItem = doc.getElementById("cMenu_paste");
|
||||
ok(pasteItem, "the Paste menuitem");
|
||||
|
||||
sp.setText("bug 699130: hello world! (context menu)");
|
||||
openMenu(10, 10, firstShow);
|
||||
};
|
||||
waitForFocus(function () {
|
||||
WebConsoleUtils.usageCount = 0;
|
||||
EventUtils.synthesizeKey("v", {accelKey: true}, gScratchpadWindow);
|
||||
testSelfXss(oldVal);
|
||||
}, gScratchpadWindow);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue