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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Check that all debug targets except tabs are sorted alphabetically.
add_task(async function () {
const thisFirefoxClient = setupThisFirefoxMock();
thisFirefoxClient.listAddons = () => [
createAddonData({ id: "addon-b", name: "Addon B" }),
createAddonData({ id: "addon-c", name: "Addon C" }),
createAddonData({ id: "addon-a", name: "Addon A" }),
createAddonData({ id: "tmp-b", name: "Temporary B", temporary: true }),
createAddonData({ id: "tmp-c", name: "Temporary C", temporary: true }),
createAddonData({ id: "tmp-a", name: "Temporary A", temporary: true }),
];
thisFirefoxClient.listWorkers = () => {
return {
otherWorkers: [
{ id: "worker-b", name: "Worker B" },
{ id: "worker-c", name: "Worker C" },
{ id: "worker-a", name: "Worker A" },
],
sharedWorkers: [
{ id: "shared-worker-b", name: "Shared Worker B" },
{ id: "shared-worker-c", name: "Shared Worker C" },
{ id: "shared-worker-a", name: "Shared Worker A" },
],
serviceWorkers: [
{ id: "service-worker-b", name: "Service Worker B" },
{ id: "service-worker-c", name: "Service Worker C" },
{ id: "service-worker-a", name: "Service Worker A" },
],
};
};
thisFirefoxClient.listTabs = () => [
{
browserId: 2,
title: "Tab B",
url: "https://www.b.com",
retrieveFavicon: () => {},
},
{
browserId: 3,
title: "Tab C",
url: "https://www.c.com",
retrieveFavicon: () => {},
},
{
browserId: 1,
title: "Tab A",
url: "https://www.a.com",
retrieveFavicon: () => {},
},
];
const { document, tab, window } = await openAboutDebugging();
await selectThisFirefoxPage(document, window.AboutDebugging.store);
function findTargetIndex(name) {
const targets = [...document.querySelectorAll(".qa-debug-target-item")];
return targets.findIndex(target => target.textContent.includes(name));
}
function assertTargetOrder(targetNames, message) {
let isSorted = true;
for (let i = 1; i < targetNames.length; i++) {
const index1 = findTargetIndex(targetNames[i - 1]);
const index2 = findTargetIndex(targetNames[i]);
if (index1 > index2) {
isSorted = false;
info(
`Targets ${targetNames[i - 1]} and ${targetNames[i]} ` +
`are not sorted as expected`
);
}
}
ok(isSorted, message);
}
assertTargetOrder(
["Tab B", "Tab C", "Tab A"],
"Tabs are sorted as returned by the back-end"
);
assertTargetOrder(
["Addon A", "Addon B", "Addon C"],
"Addons are sorted alphabetically"
);
assertTargetOrder(
["Temporary A", "Temporary B", "Temporary C"],
"Temporary addons are sorted alphabetically"
);
assertTargetOrder(
["Worker A", "Worker B", "Worker C"],
"Workers are sorted alphabetically"
);
assertTargetOrder(
["Shared Worker A", "Shared Worker B", "Shared Worker C"],
"Shared workers are sorted alphabetically"
);
assertTargetOrder(
["Service Worker A", "Service Worker B", "Service Worker C"],
"Service workers are sorted alphabetically"
);
await removeTab(tab);
});
|