mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-16 08:24:11 +00:00
121 lines
4.0 KiB
JavaScript
121 lines
4.0 KiB
JavaScript
|
/* Any copyright is dedicated to the Public Domain.
|
||
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
||
|
*/
|
||
|
|
||
|
// Bug 590347
|
||
|
// Tests if softblock notifications are exposed in preference to incompatible
|
||
|
// notifications when compatibility checking is disabled
|
||
|
|
||
|
var gProvider;
|
||
|
var gManagerWindow;
|
||
|
var gCategoryUtilities;
|
||
|
|
||
|
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
|
||
|
var gVersion = Services.appinfo.version;
|
||
|
|
||
|
// Opens the details view of an add-on
|
||
|
function open_details(aId, aType, aCallback) {
|
||
|
requestLongerTimeout(2);
|
||
|
|
||
|
gCategoryUtilities.openType(aType, function() {
|
||
|
var list = gManagerWindow.document.getElementById("addon-list");
|
||
|
var item = list.firstChild;
|
||
|
while (item) {
|
||
|
if ("mAddon" in item && item.mAddon.id == aId) {
|
||
|
list.ensureElementIsVisible(item);
|
||
|
EventUtils.synthesizeMouseAtCenter(item, { clickCount: 1 }, gManagerWindow);
|
||
|
EventUtils.synthesizeMouseAtCenter(item, { clickCount: 2 }, gManagerWindow);
|
||
|
wait_for_view_load(gManagerWindow, aCallback);
|
||
|
return;
|
||
|
}
|
||
|
item = item.nextSibling;
|
||
|
}
|
||
|
ok(false, "Should have found the add-on in the list");
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function get_list_view_warning_node() {
|
||
|
let item = gManagerWindow.document.getElementById("addon-list").firstChild;
|
||
|
let found = false;
|
||
|
while (item) {
|
||
|
if (item.mAddon.name == "Test add-on") {
|
||
|
found = true;
|
||
|
break;
|
||
|
}
|
||
|
item = item.nextSibling;
|
||
|
}
|
||
|
ok(found, "Test add-on node should have been found.");
|
||
|
return item.ownerDocument.getAnonymousElementByAttribute(item, "anonid", "warning");
|
||
|
}
|
||
|
|
||
|
function get_detail_view_warning_node(aManagerWindow) {
|
||
|
if(aManagerWindow)
|
||
|
return aManagerWindow.document.getElementById("detail-warning");
|
||
|
}
|
||
|
|
||
|
function test() {
|
||
|
waitForExplicitFinish();
|
||
|
|
||
|
gProvider = new MockProvider();
|
||
|
|
||
|
gProvider.createAddons([{
|
||
|
id: "addon1@tests.mozilla.org",
|
||
|
name: "Test add-on",
|
||
|
description: "A test add-on",
|
||
|
isCompatible: false,
|
||
|
blocklistState: Ci.nsIBlocklistService.STATE_SOFTBLOCKED,
|
||
|
}]);
|
||
|
|
||
|
open_manager(null, function(aWindow) {
|
||
|
gManagerWindow = aWindow;
|
||
|
gCategoryUtilities = new CategoryUtilities(gManagerWindow);
|
||
|
run_next_test();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function end_test() {
|
||
|
close_manager(gManagerWindow, function() {
|
||
|
finish();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Check with compatibility checking enabled
|
||
|
add_test(function() {
|
||
|
gCategoryUtilities.openType("extension", function() {
|
||
|
Services.prefs.setBoolPref(PREF_CHECK_COMPATIBILITY, true);
|
||
|
let warning_node = get_list_view_warning_node();
|
||
|
is_element_visible(warning_node, "Warning message should be visible");
|
||
|
is(warning_node.textContent, "Test add-on is incompatible with " + gApp + " " + gVersion + ".", "Warning message should be correct");
|
||
|
run_next_test();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
add_test(function() {
|
||
|
open_details("addon1@tests.mozilla.org", "extension", function() {
|
||
|
let warning_node = get_detail_view_warning_node(gManagerWindow);
|
||
|
is_element_visible(warning_node, "Warning message should be visible");
|
||
|
is(warning_node.textContent, "Test add-on is incompatible with " + gApp + " " + gVersion + ".", "Warning message should be correct");
|
||
|
Services.prefs.setBoolPref(PREF_CHECK_COMPATIBILITY, false);
|
||
|
run_next_test();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Check with compatibility checking disabled
|
||
|
add_test(function() {
|
||
|
gCategoryUtilities.openType("extension", function() {
|
||
|
let warning_node = get_list_view_warning_node();
|
||
|
is_element_visible(warning_node, "Warning message should be visible");
|
||
|
is(warning_node.textContent, "Test add-on is known to cause security or stability issues.", "Warning message should be correct");
|
||
|
run_next_test();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
add_test(function() {
|
||
|
open_details("addon1@tests.mozilla.org", "extension", function() {
|
||
|
let warning_node = get_detail_view_warning_node(gManagerWindow);
|
||
|
is_element_visible(warning_node, "Warning message should be visible");
|
||
|
is(warning_node.textContent, "Test add-on is known to cause security or stability issues.", "Warning message should be correct");
|
||
|
run_next_test();
|
||
|
});
|
||
|
});
|