mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-26 13:27:27 +00:00
77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
/**
|
|
* Test the log capturing capabilities of LogShake.jsm, checking
|
|
* for Gonk-specific parts
|
|
*/
|
|
|
|
/* jshint moz: true, esnext: true */
|
|
/* global Cc, Ci, Cu, LogCapture, LogShake, ok, add_test, run_next_test, dump,
|
|
setup_logshake_mocks, OS, sdcard, FileUtils */
|
|
/* exported run_test */
|
|
|
|
/* disable use strict warning */
|
|
/* jshint -W097 */
|
|
|
|
"use strict";
|
|
|
|
Cu.import("resource://gre/modules/Promise.jsm");
|
|
Cu.import("resource://gre/modules/FileUtils.jsm");
|
|
|
|
function run_test() {
|
|
Cu.import("resource://gre/modules/LogShake.jsm");
|
|
run_next_test();
|
|
}
|
|
|
|
add_test(setup_logshake_mocks);
|
|
|
|
add_test(function test_logShake_captureLogs_writes_zip() {
|
|
// Enable LogShake
|
|
LogShake.init();
|
|
|
|
let expectedFiles = [];
|
|
|
|
LogShake.enableQAMode();
|
|
|
|
LogShake.captureLogs().then(logResults => {
|
|
LogShake.uninit();
|
|
|
|
ok(logResults.logPaths.length === 1, "Should have zip path");
|
|
ok(logResults.logFilenames.length >= 1, "Should have log filenames");
|
|
ok(logResults.compressed, "Log files should be compressed");
|
|
|
|
let zipPath = OS.Path.join(sdcard, logResults.logPaths[0]);
|
|
ok(zipPath, "Should have a valid archive path: " + zipPath);
|
|
|
|
let zipFile = new FileUtils.File(zipPath);
|
|
ok(zipFile, "Should have a valid archive file: " + zipFile);
|
|
|
|
let zipReader = Cc["@mozilla.org/libjar/zip-reader;1"]
|
|
.createInstance(Ci.nsIZipReader);
|
|
zipReader.open(zipFile);
|
|
|
|
let logFilenamesSeen = {};
|
|
|
|
let zipEntries = zipReader.findEntries(null); // Find all entries
|
|
while (zipEntries.hasMore()) {
|
|
let entryName = zipEntries.getNext();
|
|
let entry = zipReader.getEntry(entryName);
|
|
logFilenamesSeen[entryName] = true;
|
|
ok(!entry.isDirectory, "Archive entry " + entryName + " should be a file");
|
|
}
|
|
zipReader.close();
|
|
|
|
// TODO: Verify archive contents
|
|
logResults.logFilenames.forEach(filename => {
|
|
ok(logFilenamesSeen[filename], "File " + filename + " should be present in archive");
|
|
});
|
|
run_next_test();
|
|
},
|
|
error => {
|
|
LogShake.uninit();
|
|
|
|
ok(false, "Should not have received error: " + error);
|
|
|
|
run_next_test();
|
|
});
|
|
});
|
|
|