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
86
87
88
89
90
91
92
93
94
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test for doorhanger background check for updates
// with an unsupported update.
add_task(async function doorhanger_bc_check_unsupported() {
let params = { checkAttempts: 1, queryString: "&unsupported=1" };
await runDoorhangerUpdateTest(params, [
{
notificationId: "update-unsupported",
button: "button",
pageURLs: { manual: gDetailsURL },
},
async function doorhanger_unsupported_persist() {
await TestUtils.waitForCondition(
() => PanelUI.menuButton.hasAttribute("badge-status"),
"Waiting for update badge",
undefined,
200
).catch(e => {
// Instead of throwing let the check below fail the test.
logTestInfo(e);
});
is(
PanelUI.notificationPanel.state,
"closed",
"The window's doorhanger is closed."
);
ok(
PanelUI.menuButton.hasAttribute("badge-status"),
"The window has a badge."
);
is(
PanelUI.menuButton.getAttribute("badge-status"),
"update-unsupported",
"The correct badge is showing for the background window"
);
// Test persistence of the badge when the client has restarted by
// resetting the UpdateListener.
UpdateListener.reset();
is(
PanelUI.notificationPanel.state,
"closed",
"The window's doorhanger is closed."
);
ok(
!PanelUI.menuButton.hasAttribute("badge-status"),
"The window does not have a badge."
);
UpdateListener.maybeShowUnsupportedNotification();
is(
PanelUI.notificationPanel.state,
"closed",
"The window's doorhanger is closed."
);
ok(
PanelUI.menuButton.hasAttribute("badge-status"),
"The window has a badge."
);
is(
PanelUI.menuButton.getAttribute("badge-status"),
"update-unsupported",
"The correct badge is showing for the background window."
);
},
]);
params = {
checkAttempts: 1,
queryString: "&invalidCompleteSize=1&promptWaitTime=0",
};
await runDoorhangerUpdateTest(params, [
{
notificationId: "update-restart",
button: "secondaryButton",
checkActiveUpdate: { state: STATE_PENDING },
},
async function doorhanger_unsupported_removed() {
// Test that finding an update removes the app.update.unsupported.url
// preference.
let unsupportedURL = Services.prefs.getCharPref(
PREF_APP_UPDATE_UNSUPPORTED_URL,
null
);
ok(
!unsupportedURL,
"The " + PREF_APP_UPDATE_UNSUPPORTED_URL + " preference was removed."
);
},
]);
});
|