mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
94e3b0bd8d
This is generally pretty straightforward, and rewrites nearly all calls. It skips the ones that it can detect using frame script globals like `sendAsyncMessage`, though. Differential Revision: https://phabricator.services.mozilla.com/D53740 --HG-- extra : moz-landing-system : lando
135 lines
3.9 KiB
JavaScript
135 lines
3.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
function clickClearReports() {
|
|
const doc = content.document;
|
|
const reportListUnsubmitted = doc.getElementById("reportListUnsubmitted");
|
|
const reportListSubmitted = doc.getElementById("reportListSubmitted");
|
|
if (!reportListUnsubmitted || !reportListSubmitted) {
|
|
Assert.ok(false, "Report list not found");
|
|
}
|
|
|
|
const unsubmittedStyle = doc.defaultView.getComputedStyle(
|
|
reportListUnsubmitted
|
|
);
|
|
const submittedStyle = doc.defaultView.getComputedStyle(reportListSubmitted);
|
|
Assert.notEqual(
|
|
unsubmittedStyle.display,
|
|
"none",
|
|
"Unsubmitted report list is visible"
|
|
);
|
|
Assert.notEqual(
|
|
submittedStyle.display,
|
|
"none",
|
|
"Submitted report list is visible"
|
|
);
|
|
|
|
const clearUnsubmittedButton = doc.getElementById("clearUnsubmittedReports");
|
|
const clearSubmittedButton = doc.getElementById("clearSubmittedReports");
|
|
clearUnsubmittedButton.click();
|
|
clearSubmittedButton.click();
|
|
}
|
|
|
|
var promptShown = false;
|
|
|
|
var oldPrompt = Services.prompt;
|
|
Services.prompt = {
|
|
confirm() {
|
|
promptShown = true;
|
|
return true;
|
|
},
|
|
};
|
|
|
|
registerCleanupFunction(function() {
|
|
Services.prompt = oldPrompt;
|
|
});
|
|
|
|
add_task(async function test() {
|
|
let appD = make_fake_appdir();
|
|
let crD = appD.clone();
|
|
crD.append("Crash Reports");
|
|
|
|
// Add crashes to submitted dir
|
|
let submitdir = crD.clone();
|
|
submitdir.append("submitted");
|
|
|
|
let file1 = submitdir.clone();
|
|
file1.append("bp-nontxt");
|
|
file1.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
let file2 = submitdir.clone();
|
|
file2.append("nonbp-file.txt");
|
|
file2.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
add_fake_crashes(crD, 5);
|
|
|
|
// Add crashes to pending dir
|
|
let pendingdir = crD.clone();
|
|
pendingdir.append("pending");
|
|
|
|
let crashes = add_fake_crashes(crD, 2);
|
|
addPendingCrashreport(crD, crashes[0].date);
|
|
addPendingCrashreport(crD, crashes[1].date);
|
|
|
|
// Add crashes to reports dir
|
|
let report1 = crD.clone();
|
|
report1.append("NotInstallTime777");
|
|
report1.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
let report2 = crD.clone();
|
|
report2.append("InstallTime" + Services.appinfo.appBuildID);
|
|
report2.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
let report3 = crD.clone();
|
|
report3.append("InstallTimeNew");
|
|
report3.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
let report4 = crD.clone();
|
|
report4.append("InstallTimeOld");
|
|
report4.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
|
|
report4.lastModifiedTime = Date.now() - 63172000000;
|
|
|
|
registerCleanupFunction(function() {
|
|
cleanup_fake_appdir();
|
|
});
|
|
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: "about:crashes" },
|
|
async function(browser) {
|
|
let dirs = [submitdir, pendingdir, crD];
|
|
let existing = [
|
|
file1.path,
|
|
file2.path,
|
|
report1.path,
|
|
report2.path,
|
|
report3.path,
|
|
submitdir.path,
|
|
pendingdir.path,
|
|
];
|
|
|
|
SpecialPowers.spawn(browser, [], clickClearReports);
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
content.document
|
|
.getElementById("reportListUnsubmitted")
|
|
.classList.contains("hidden") &&
|
|
content.document
|
|
.getElementById("reportListSubmitted")
|
|
.classList.contains("hidden")
|
|
);
|
|
|
|
for (let dir of dirs) {
|
|
let entries = dir.directoryEntries;
|
|
while (entries.hasMoreElements()) {
|
|
let file = entries.nextFile;
|
|
let index = existing.indexOf(file.path);
|
|
isnot(index, -1, file.leafName + " exists");
|
|
|
|
if (index != -1) {
|
|
existing.splice(index, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
is(existing.length, 0, "All the files that should still exist exist");
|
|
ok(promptShown, "Prompt shown");
|
|
}
|
|
);
|
|
});
|