mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-14 15:37:55 +00:00
128 lines
3.7 KiB
JavaScript
128 lines
3.7 KiB
JavaScript
function invokeUsingCtrlD(phase) {
|
|
switch (phase) {
|
|
case 1:
|
|
EventUtils.synthesizeKey("d", { accelKey: true });
|
|
break;
|
|
case 2:
|
|
case 4:
|
|
EventUtils.synthesizeKey("VK_ESCAPE", {});
|
|
break;
|
|
case 3:
|
|
EventUtils.synthesizeKey("d", { accelKey: true });
|
|
EventUtils.synthesizeKey("d", { accelKey: true });
|
|
break;
|
|
}
|
|
}
|
|
|
|
function invokeUsingStarButton(phase) {
|
|
switch (phase) {
|
|
case 1:
|
|
EventUtils.synthesizeMouseAtCenter(BookmarkingUI.star, {});
|
|
break;
|
|
case 2:
|
|
case 4:
|
|
EventUtils.synthesizeKey("VK_ESCAPE", {});
|
|
break;
|
|
case 3:
|
|
EventUtils.synthesizeMouseAtCenter(BookmarkingUI.star,
|
|
{ clickCount: 2 });
|
|
break;
|
|
}
|
|
}
|
|
|
|
var testURL = "data:text/plain,Content";
|
|
var bookmarkId;
|
|
|
|
function add_bookmark(aURI, aTitle) {
|
|
return PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
aURI, PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
aTitle);
|
|
}
|
|
|
|
// test bug 432599
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
gBrowser.selectedTab = gBrowser.addTab();
|
|
gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
|
|
gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
|
|
waitForStarChange(false, initTest);
|
|
}, true);
|
|
|
|
content.location = testURL;
|
|
}
|
|
|
|
function initTest() {
|
|
// First, bookmark the page.
|
|
bookmarkId = add_bookmark(makeURI(testURL), "Bug 432599 Test");
|
|
|
|
checkBookmarksPanel(invokers[currentInvoker], 1);
|
|
}
|
|
|
|
function waitForStarChange(aValue, aCallback) {
|
|
let expectedStatus = aValue ? BookmarkingUI.STATUS_STARRED
|
|
: BookmarkingUI.STATUS_UNSTARRED;
|
|
if (BookmarkingUI.status == BookmarkingUI.STATUS_UPDATING ||
|
|
BookmarkingUI.status != expectedStatus) {
|
|
info("Waiting for star button change.");
|
|
setTimeout(waitForStarChange, 50, aValue, aCallback);
|
|
return;
|
|
}
|
|
aCallback();
|
|
}
|
|
|
|
let invokers = [invokeUsingStarButton, invokeUsingCtrlD];
|
|
let currentInvoker = 0;
|
|
|
|
let initialValue;
|
|
let initialRemoveHidden;
|
|
|
|
let popupElement = document.getElementById("editBookmarkPanel");
|
|
let titleElement = document.getElementById("editBookmarkPanelTitle");
|
|
let removeElement = document.getElementById("editBookmarkPanelRemoveButton");
|
|
|
|
function checkBookmarksPanel(invoker, phase)
|
|
{
|
|
let onPopupShown = function(aEvent) {
|
|
if (aEvent.originalTarget == popupElement) {
|
|
popupElement.removeEventListener("popupshown", arguments.callee, false);
|
|
checkBookmarksPanel(invoker, phase + 1);
|
|
}
|
|
};
|
|
let onPopupHidden = function(aEvent) {
|
|
if (aEvent.originalTarget == popupElement) {
|
|
popupElement.removeEventListener("popuphidden", arguments.callee, false);
|
|
if (phase < 4) {
|
|
checkBookmarksPanel(invoker, phase + 1);
|
|
} else {
|
|
++currentInvoker;
|
|
if (currentInvoker < invokers.length) {
|
|
checkBookmarksPanel(invokers[currentInvoker], 1);
|
|
} else {
|
|
gBrowser.removeCurrentTab();
|
|
PlacesUtils.bookmarks.removeItem(bookmarkId);
|
|
executeSoon(finish);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
switch (phase) {
|
|
case 1:
|
|
case 3:
|
|
popupElement.addEventListener("popupshown", onPopupShown, false);
|
|
break;
|
|
case 2:
|
|
popupElement.addEventListener("popuphidden", onPopupHidden, false);
|
|
initialValue = titleElement.value;
|
|
initialRemoveHidden = removeElement.hidden;
|
|
break;
|
|
case 4:
|
|
popupElement.addEventListener("popuphidden", onPopupHidden, false);
|
|
is(titleElement.value, initialValue, "The bookmark panel's title should be the same");
|
|
is(removeElement.hidden, initialRemoveHidden, "The bookmark panel's visibility should not change");
|
|
break;
|
|
}
|
|
invoker(phase);
|
|
}
|