1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
// Tests that the eula is shown correctly for search results
var gManagerWindow;
var gCategoryUtilities;
var gApp = document.getElementById("bundle_brand").getString("brandShortName");
var gSearchCount = 0;
function test() {
requestLongerTimeout(2);
waitForExplicitFinish();
// Turn on searching for this test
Services.prefs.setIntPref(PREF_SEARCH_MAXRESULTS, 15);
Services.prefs.setCharPref("extensions.getAddons.search.url", TESTROOT + "browser_eula.xml");
open_manager(null, function(aWindow) {
gManagerWindow = aWindow;
gCategoryUtilities = new CategoryUtilities(gManagerWindow);
run_next_test();
});
}
function end_test() {
close_manager(gManagerWindow, finish);
}
function get_node(parent, anonid) {
return parent.ownerDocument.getAnonymousElementByAttribute(parent, "anonid", anonid);
}
function installSearchResult(aCallback) {
var searchBox = gManagerWindow.document.getElementById("header-search");
// Search for something different each time
searchBox.value = "foo" + gSearchCount;
gSearchCount++;
EventUtils.synthesizeMouseAtCenter(searchBox, { }, gManagerWindow);
EventUtils.synthesizeKey("VK_RETURN", { }, gManagerWindow);
wait_for_view_load(gManagerWindow, function() {
let remote = gManagerWindow.document.getElementById("search-filter-remote")
EventUtils.synthesizeMouseAtCenter(remote, { }, gManagerWindow);
let item = get_addon_element(gManagerWindow, "addon1@tests.mozilla.org");
ok(!!item, "Should see the search result in the list");
let status = get_node(item, "install-status");
EventUtils.synthesizeMouseAtCenter(get_node(status, "install-remote-btn"), {}, gManagerWindow);
item.mInstall.addListener({
onInstallEnded: function() {
executeSoon(aCallback);
}
});
});
}
// Install an add-on through the search page, accept the EULA and then undo it
add_test(function() {
// Accept the EULA when it appears
let sawEULA = false;
wait_for_window_open(function(aWindow) {
sawEULA = true;
is(aWindow.location.href, "chrome://mozapps/content/extensions/eula.xul", "Window opened should be correct");
is(aWindow.document.getElementById("eula").value, "This is the EULA for this add-on", "EULA should be correct");
aWindow.document.documentElement.acceptDialog();
});
installSearchResult(function() {
ok(sawEULA, "Should have seen the EULA");
AddonManager.getAllInstalls(function(aInstalls) {
is(aInstalls.length, 1, "Should be one pending install");
aInstalls[0].cancel();
run_next_test();
});
});
});
|