зеркало из https://github.com/mozilla/pjs.git
Bug 552755 Fix browser_bug510909.js. r=dtownsend
This commit is contained in:
Родитель
3c798b3410
Коммит
73377f88bf
|
@ -45,7 +45,6 @@ include $(DEPTH)/config/autoconf.mk
|
|||
|
||||
_TEST_FILES = \
|
||||
head.js \
|
||||
browser_bug510909.js \
|
||||
browser_updatessl.js \
|
||||
browser_updatessl.rdf \
|
||||
browser_installssl.js \
|
||||
|
|
|
@ -1,195 +0,0 @@
|
|||
Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm");
|
||||
|
||||
var win = null;
|
||||
|
||||
function WindowListener(url) {
|
||||
this.url = url;
|
||||
|
||||
Services.wm.addListener(this);
|
||||
}
|
||||
|
||||
WindowListener.prototype = {
|
||||
url: null,
|
||||
|
||||
onWindowTitleChange: function(window, title) {
|
||||
},
|
||||
|
||||
onOpenWindow: function(window) {
|
||||
var domwindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindowInternal);
|
||||
var self = this;
|
||||
domwindow.addEventListener("load", function() {
|
||||
self.windowLoad(domwindow);
|
||||
}, false);
|
||||
},
|
||||
|
||||
// Window open handling
|
||||
windowLoad: function(window) {
|
||||
// Allow any other load handlers to execute
|
||||
var self = this;
|
||||
executeSoon(function() { self.windowReady(window); } );
|
||||
},
|
||||
|
||||
windowReady: function(win) {
|
||||
is(win.document.location.href, this.url, "Should have seen the right window");
|
||||
win.document.documentElement.acceptDialog();
|
||||
},
|
||||
|
||||
onCloseWindow: function(window) {
|
||||
Services.wm.removeListener(this);
|
||||
},
|
||||
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsIWindowMediatorListener) ||
|
||||
iid.equals(Components.interfaces.nsISupports))
|
||||
return this;
|
||||
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
}
|
||||
|
||||
function test() {
|
||||
is(LightweightThemeManager.usedThemes.length, 0, "Should be no themes there");
|
||||
ok(LightweightThemeManager.currentTheme == null, "Should not have a theme selected");
|
||||
|
||||
// Load up some lightweight themes
|
||||
LightweightThemeManager.currentTheme = {
|
||||
"id":"2",
|
||||
"name":"Dirty Red",
|
||||
"accentcolor":"#ffffff",
|
||||
"textcolor":"#ffa0a0",
|
||||
"description":null,
|
||||
"author":"Mozilla",
|
||||
"headerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"footerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"previewURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"iconURL":null
|
||||
};
|
||||
LightweightThemeManager.currentTheme = {
|
||||
"id":"1",
|
||||
"name":"Abstract Black",
|
||||
"accentcolor":"#ffffff",
|
||||
"textcolor":"#000000",
|
||||
"description":null,
|
||||
"author":"Mozilla",
|
||||
"headerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"footerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"previewURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"iconURL":null
|
||||
};
|
||||
LightweightThemeManager.currentTheme = {
|
||||
"id":"3",
|
||||
"name":"Morose Mauve",
|
||||
"accentcolor":"#ffffff",
|
||||
"textcolor":"#e0b0ff",
|
||||
"description":null,
|
||||
"author":"Mozilla",
|
||||
"headerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"footerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"iconURL":null
|
||||
};
|
||||
is(LightweightThemeManager.usedThemes.length, 3, "Should be all the themes there");
|
||||
ok(LightweightThemeManager.currentTheme != null, "Should have selected a theme");
|
||||
is(LightweightThemeManager.currentTheme.id, 3, "Should have selected the right theme");
|
||||
|
||||
win = window.openDialog("chrome://mozapps/content/extensions/extensions.xul", "",
|
||||
"chrome,menubar,extra-chrome,toolbar,dialog=no,resizable");
|
||||
win.addEventListener("load", function() { executeSoon(loaded); }, false);
|
||||
waitForExplicitFinish();
|
||||
}
|
||||
|
||||
function loaded() {
|
||||
win.showView("themes");
|
||||
is(win.gExtensionsView.childNodes.length,
|
||||
LightweightThemeManager.usedThemes.length + 2,
|
||||
"Should be all the lightweight themes and the default theme and the template");
|
||||
is(win.gExtensionsView.childNodes[1].getAttribute("addonID"), 1,
|
||||
"Themes should be in the right order");
|
||||
is(win.gExtensionsView.childNodes[2].getAttribute("addonID"), "{972ce4c6-7e08-4474-a285-3208198ce6fd}",
|
||||
"Themes should be in the right order");
|
||||
is(win.gExtensionsView.childNodes[3].getAttribute("addonID"), 2,
|
||||
"Themes should be in the right order");
|
||||
is(win.gExtensionsView.childNodes[4].getAttribute("addonID"), 3,
|
||||
"Themes should be in the right order");
|
||||
|
||||
var selected = win.gExtensionsView.selectedItem;
|
||||
is(selected.getAttribute("addonID"),
|
||||
LightweightThemeManager.currentTheme.id,
|
||||
"Should have selected the current theme");
|
||||
is(win.document.getElementById("previewImageDeck").selectedIndex, 1,
|
||||
"Should be no preview to display");
|
||||
var btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(btn.disabled, "Should not be able to switch to the current theme");
|
||||
|
||||
selected = win.gExtensionsView.selectedItem = win.gExtensionsView.childNodes[1];
|
||||
is(win.document.getElementById("previewImageDeck").selectedIndex, 2,
|
||||
"Should be a preview to display");
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(!btn.disabled, "Should be able to switch to a different lightweight theme");
|
||||
EventUtils.synthesizeMouse(btn, btn.boxObject.width / 2, btn.boxObject.height / 2, {}, win);
|
||||
is(LightweightThemeManager.currentTheme.id, 1,
|
||||
"Should have changed theme");
|
||||
// A list rebuild happens so get the selected item again
|
||||
selected = win.gExtensionsView.selectedItem;
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(btn.disabled, "Should not be able to switch to the current theme");
|
||||
|
||||
selected = win.gExtensionsView.selectedItem = win.gExtensionsView.childNodes[2];
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(!btn.disabled, "Should be able to switch to the default theme");
|
||||
EventUtils.synthesizeMouse(btn, btn.boxObject.width / 2, btn.boxObject.height / 2, {}, win);
|
||||
is(LightweightThemeManager.currentTheme, null,
|
||||
"Should have disabled lightweight themes");
|
||||
ok(btn.disabled, "Should not be able to switch to the current theme");
|
||||
|
||||
selected = win.gExtensionsView.selectedItem = win.gExtensionsView.childNodes[3];
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(!btn.disabled, "Should be able to switch to a different lightweight theme");
|
||||
EventUtils.synthesizeMouse(btn, btn.boxObject.width / 2, btn.boxObject.height / 2, {}, win);
|
||||
is(LightweightThemeManager.currentTheme.id, 2,
|
||||
"Should have changed theme");
|
||||
// A list rebuild happens so get the selected item again
|
||||
selected = win.gExtensionsView.selectedItem;
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_useTheme");
|
||||
ok(btn.disabled, "Should not be able to switch to the current theme");
|
||||
btn = win.document.getAnonymousElementByAttribute(selected, "command", "cmd_uninstall");
|
||||
ok(!btn.disabled, "Should be able to uninstall a lightweight theme");
|
||||
new WindowListener("chrome://mozapps/content/extensions/list.xul");
|
||||
EventUtils.synthesizeMouse(btn, btn.boxObject.width / 2, btn.boxObject.height / 2, {}, win);
|
||||
is(LightweightThemeManager.currentTheme, null,
|
||||
"Should have turned off the lightweight theme");
|
||||
is(LightweightThemeManager.usedThemes.length, 2, "Should have removed the theme");
|
||||
is(win.gExtensionsView.childNodes.length,
|
||||
LightweightThemeManager.usedThemes.length + 2,
|
||||
"Should have updated the list");
|
||||
|
||||
LightweightThemeManager.currentTheme = {
|
||||
"id":"2",
|
||||
"name":"Dirty Red",
|
||||
"accentcolor":"#ffffff",
|
||||
"textcolor":"#ffa0a0",
|
||||
"description":null,
|
||||
"author":"Mozilla",
|
||||
"headerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"footerURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"previewURL":"http://example.com/browser/toolkit/mozapps/extensions/test/blank.png",
|
||||
"iconURL":null
|
||||
};
|
||||
is(LightweightThemeManager.usedThemes.length, 3, "Should have added the theme");
|
||||
is(win.gExtensionsView.childNodes.length,
|
||||
LightweightThemeManager.usedThemes.length + 2,
|
||||
"Should have updated the list");
|
||||
|
||||
win.close();
|
||||
endTest();
|
||||
}
|
||||
|
||||
function endTest() {
|
||||
var themes = LightweightThemeManager.usedThemes;
|
||||
themes.forEach(function(theme) {
|
||||
LightweightThemeManager.forgetUsedTheme(theme.id);
|
||||
});
|
||||
is(LightweightThemeManager.usedThemes.length, 0, "Should be no themes left");
|
||||
ok(LightweightThemeManager.currentTheme == null, "Should be no theme selected");
|
||||
finish();
|
||||
}
|
Загрузка…
Ссылка в новой задаче