mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 09:18:42 +09:00
Merge remote-tracking branch 'origin/master' into custom
This commit is contained in:
commit
55828393ce
2798 changed files with 8839 additions and 257595 deletions
|
|
@ -4,15 +4,9 @@
|
|||
# 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/.
|
||||
|
||||
TEST_DIRS += ['tests']
|
||||
EXTRA_COMPONENTS += ['nsHelperAppDlg.manifest']
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'nsHelperAppDlg.manifest',
|
||||
]
|
||||
|
||||
EXTRA_PP_COMPONENTS += [
|
||||
'nsHelperAppDlg.js',
|
||||
]
|
||||
EXTRA_PP_COMPONENTS += ['nsHelperAppDlg.js']
|
||||
|
||||
EXTRA_JS_MODULES += [
|
||||
'DownloadLastDir.jsm',
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"../../../../../testing/mochitest/chrome.eslintrc.js"
|
||||
]
|
||||
};
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
[DEFAULT]
|
||||
skip-if = os == 'android'
|
||||
support-files =
|
||||
unknownContentType_dialog_layout_data.pif
|
||||
unknownContentType_dialog_layout_data.pif^headers^
|
||||
unknownContentType_dialog_layout_data.txt
|
||||
unknownContentType_dialog_layout_data.txt^headers^
|
||||
|
||||
[test_unknownContentType_delayedbutton.xul]
|
||||
[test_unknownContentType_dialog_layout.xul]
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- 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/. -->
|
||||
<!--
|
||||
* The unknownContentType popup can have two different layouts depending on
|
||||
* whether a helper application can be selected or not.
|
||||
* This tests that both layouts have correct collapsed elements.
|
||||
-->
|
||||
|
||||
<window title="Unknown Content Type Dialog Test"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="doTest()">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
|
||||
<script type="application/javascript"><![CDATA[
|
||||
const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/Task.jsm");
|
||||
Cu.import("resource://gre/modules/Promise.jsm");
|
||||
|
||||
const UCT_URI = "chrome://mozapps/content/downloads/unknownContentType.xul";
|
||||
const LOAD_URI = "http://mochi.test:8888/chrome/toolkit/mozapps/downloads/tests/chrome/unknownContentType_dialog_layout_data.txt";
|
||||
|
||||
const DIALOG_DELAY = Services.prefs.getIntPref("security.dialog_enable_delay") + 200;
|
||||
|
||||
let UCTObserver = {
|
||||
opened: Promise.defer(),
|
||||
closed: Promise.defer(),
|
||||
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
|
||||
|
||||
switch (aTopic) {
|
||||
case "domwindowopened":
|
||||
win.addEventListener("load", function onLoad(event) {
|
||||
win.removeEventListener("load", onLoad, false);
|
||||
|
||||
// Let the dialog initialize
|
||||
SimpleTest.executeSoon(function() {
|
||||
UCTObserver.opened.resolve(win);
|
||||
});
|
||||
}, false);
|
||||
break;
|
||||
|
||||
case "domwindowclosed":
|
||||
if (win.location == UCT_URI) {
|
||||
this.closed.resolve();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Services.ww.registerNotification(UCTObserver);
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
SimpleTest.requestFlakyTimeout("This test is testing a timing-based feature, so it really needs to wait a certain amount of time to verify that the feature worked.");
|
||||
|
||||
function waitDelay(delay) {
|
||||
return new Promise((resolve, reject) => {
|
||||
window.setTimeout(resolve, delay);
|
||||
});
|
||||
}
|
||||
|
||||
function doTest() {
|
||||
Task.spawn(function test_aboutCrashed() {
|
||||
let frame = document.getElementById("testframe");
|
||||
frame.setAttribute("src", LOAD_URI);
|
||||
|
||||
let uctWindow = yield UCTObserver.opened.promise;
|
||||
let ok = uctWindow.document.documentElement.getButton("accept");
|
||||
|
||||
SimpleTest.is(ok.disabled, true, "button started disabled");
|
||||
|
||||
yield waitDelay(DIALOG_DELAY);
|
||||
|
||||
SimpleTest.is(ok.disabled, false, "button was enabled");
|
||||
|
||||
focusOutOfDialog = SimpleTest.promiseFocus(window);
|
||||
window.focus();
|
||||
yield focusOutOfDialog;
|
||||
|
||||
SimpleTest.is(ok.disabled, true, "button was disabled");
|
||||
|
||||
focusOnDialog = SimpleTest.promiseFocus(uctWindow);
|
||||
uctWindow.focus();
|
||||
yield focusOnDialog;
|
||||
|
||||
SimpleTest.is(ok.disabled, true, "button remained disabled");
|
||||
|
||||
yield waitDelay(DIALOG_DELAY);
|
||||
SimpleTest.is(ok.disabled, false, "button re-enabled after delay");
|
||||
|
||||
uctWindow.document.documentElement.cancelDialog();
|
||||
yield UCTObserver.closed.promise;
|
||||
|
||||
Services.ww.unregisterNotification(UCTObserver);
|
||||
uctWindow = null;
|
||||
UCTObserver = null;
|
||||
SimpleTest.finish();
|
||||
});
|
||||
}
|
||||
]]></script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display:none;"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
|
||||
<iframe xmlns="http://www.w3.org/1999/xhtml"
|
||||
id="testframe">
|
||||
</iframe>
|
||||
</window>
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- 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/. -->
|
||||
<!--
|
||||
* The unknownContentType popup can have two different layouts depending on
|
||||
* whether a helper application can be selected or not.
|
||||
* This tests that both layouts have correct collapsed elements.
|
||||
-->
|
||||
|
||||
<window title="Unknown Content Type Dialog Test"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="init()">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
|
||||
|
||||
const UCT_URI = "chrome://mozapps/content/downloads/unknownContentType.xul";
|
||||
|
||||
let testIndex = -1;
|
||||
let tests = [
|
||||
{ // This URL will trigger the simple UI, where only the Save an Cancel buttons are available
|
||||
url: "http://mochi.test:8888/chrome/toolkit/mozapps/downloads/tests/chrome/unknownContentType_dialog_layout_data.pif",
|
||||
elements: {
|
||||
basicBox: { collapsed: false },
|
||||
normalBox: { collapsed: true }
|
||||
}
|
||||
},
|
||||
{ // This URL will trigger the full UI
|
||||
url: "http://mochi.test:8888/chrome/toolkit/mozapps/downloads/tests/chrome/unknownContentType_dialog_layout_data.txt",
|
||||
elements: {
|
||||
basicBox: { collapsed: true },
|
||||
normalBox: { collapsed: false }
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
let ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].
|
||||
getService(Ci.nsIWindowWatcher);
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
let windowObserver = {
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
|
||||
|
||||
if (aTopic == "domwindowclosed") {
|
||||
if (win.location == UCT_URI)
|
||||
loadNextTest();
|
||||
return;
|
||||
}
|
||||
|
||||
// domwindowopened
|
||||
win.addEventListener("load", function onLoad(event) {
|
||||
win.removeEventListener("load", onLoad, false);
|
||||
|
||||
// Let the dialog initialize
|
||||
SimpleTest.executeSoon(function() {
|
||||
checkWindow(win);
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
};
|
||||
|
||||
function init() {
|
||||
ww.registerNotification(windowObserver);
|
||||
loadNextTest();
|
||||
}
|
||||
|
||||
function loadNextTest() {
|
||||
if (!tests[++testIndex]) {
|
||||
ww.unregisterNotification(windowObserver);
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
}
|
||||
let frame = document.getElementById("testframe");
|
||||
frame.setAttribute("src", tests[testIndex].url);
|
||||
}
|
||||
|
||||
function checkWindow(win) {
|
||||
for (let [id, props] of Object.entries(tests[testIndex].elements)) {
|
||||
let elem = win.dialog.dialogElement(id);
|
||||
for (let [prop, value] of Object.entries(props)) {
|
||||
is(elem[prop], value,
|
||||
"Element with id " + id + " has property " +
|
||||
prop + " set to " + value);
|
||||
}
|
||||
}
|
||||
win.document.documentElement.cancelDialog();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display:none;"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
|
||||
<iframe xmlns="http://www.w3.org/1999/xhtml"
|
||||
id="testframe">
|
||||
</iframe>
|
||||
</window>
|
||||
|
|
@ -1 +0,0 @@
|
|||
Dummy content for unknownContentType_dialog_layout_data.pif
|
||||
|
|
@ -1 +0,0 @@
|
|||
Content-Type: application/octet-stream
|
||||
|
|
@ -1 +0,0 @@
|
|||
Dummy content for unknownContentType_dialog_layout_data.txt
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Content-Type: text/plain
|
||||
Content-Disposition: attachment
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
|
||||
MOCHITEST_CHROME_MANIFESTS += ['chrome/chrome.ini']
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"../../../../../testing/xpcshell/xpcshell.eslintrc.js"
|
||||
]
|
||||
};
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
do_register_cleanup(function() {
|
||||
Services.obs.notifyObservers(null, "quit-application", null);
|
||||
});
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80 filetype=javascript: */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
*
|
||||
* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/**
|
||||
* Tests for the "DownloadPaths.jsm" JavaScript module.
|
||||
*/
|
||||
|
||||
var Cc = Components.classes;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
var Cr = Components.results;
|
||||
|
||||
Cu.import("resource://gre/modules/DownloadPaths.jsm");
|
||||
|
||||
/**
|
||||
* Provides a temporary save directory.
|
||||
*
|
||||
* @returns nsIFile pointing to the new or existing directory.
|
||||
*/
|
||||
function createTemporarySaveDirectory()
|
||||
{
|
||||
var saveDir = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties).get("TmpD", Ci.nsIFile);
|
||||
saveDir.append("testsavedir");
|
||||
if (!saveDir.exists()) {
|
||||
saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
|
||||
}
|
||||
return saveDir;
|
||||
}
|
||||
|
||||
function testSplitBaseNameAndExtension(aLeafName, [aBase, aExt])
|
||||
{
|
||||
var [base, ext] = DownloadPaths.splitBaseNameAndExtension(aLeafName);
|
||||
do_check_eq(base, aBase);
|
||||
do_check_eq(ext, aExt);
|
||||
|
||||
// If we modify the base name and concatenate it with the extension again,
|
||||
// another roundtrip through the function should give a consistent result.
|
||||
// The only exception is when we introduce an extension in a file name that
|
||||
// didn't have one or that ended with one of the special cases like ".gz". If
|
||||
// we avoid using a dot and we introduce at least another special character,
|
||||
// the results are always consistent.
|
||||
[base, ext] = DownloadPaths.splitBaseNameAndExtension("(" + base + ")" + ext);
|
||||
do_check_eq(base, "(" + aBase + ")");
|
||||
do_check_eq(ext, aExt);
|
||||
}
|
||||
|
||||
function testCreateNiceUniqueFile(aTempFile, aExpectedLeafName)
|
||||
{
|
||||
var createdFile = DownloadPaths.createNiceUniqueFile(aTempFile);
|
||||
do_check_eq(createdFile.leafName, aExpectedLeafName);
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
// Usual file names.
|
||||
testSplitBaseNameAndExtension("base", ["base", ""]);
|
||||
testSplitBaseNameAndExtension("base.ext", ["base", ".ext"]);
|
||||
testSplitBaseNameAndExtension("base.application", ["base", ".application"]);
|
||||
testSplitBaseNameAndExtension("base.x.Z", ["base", ".x.Z"]);
|
||||
testSplitBaseNameAndExtension("base.ext.Z", ["base", ".ext.Z"]);
|
||||
testSplitBaseNameAndExtension("base.ext.gz", ["base", ".ext.gz"]);
|
||||
testSplitBaseNameAndExtension("base.ext.Bz2", ["base", ".ext.Bz2"]);
|
||||
testSplitBaseNameAndExtension("base..ext", ["base.", ".ext"]);
|
||||
testSplitBaseNameAndExtension("base..Z", ["base.", ".Z"]);
|
||||
testSplitBaseNameAndExtension("base. .Z", ["base. ", ".Z"]);
|
||||
testSplitBaseNameAndExtension("base.base.Bz2", ["base.base", ".Bz2"]);
|
||||
testSplitBaseNameAndExtension("base .ext", ["base ", ".ext"]);
|
||||
|
||||
// Corner cases. A name ending with a dot technically has no extension, but
|
||||
// we consider the ending dot separately from the base name so that modifying
|
||||
// the latter never results in an extension being introduced accidentally.
|
||||
// Names beginning with a dot are hidden files on Unix-like platforms and if
|
||||
// their name doesn't contain another dot they should have no extension, but
|
||||
// on Windows the whole name is considered as an extension.
|
||||
testSplitBaseNameAndExtension("base.", ["base", "."]);
|
||||
testSplitBaseNameAndExtension(".ext", ["", ".ext"]);
|
||||
|
||||
// Unusual file names (not recommended as input to the function).
|
||||
testSplitBaseNameAndExtension("base. ", ["base", ". "]);
|
||||
testSplitBaseNameAndExtension("base ", ["base ", ""]);
|
||||
testSplitBaseNameAndExtension("", ["", ""]);
|
||||
testSplitBaseNameAndExtension(" ", [" ", ""]);
|
||||
testSplitBaseNameAndExtension(" . ", [" ", ". "]);
|
||||
testSplitBaseNameAndExtension(" .. ", [" .", ". "]);
|
||||
testSplitBaseNameAndExtension(" .ext", [" ", ".ext"]);
|
||||
testSplitBaseNameAndExtension(" .ext. ", [" .ext", ". "]);
|
||||
testSplitBaseNameAndExtension(" .ext.gz ", [" .ext", ".gz "]);
|
||||
|
||||
var destDir = createTemporarySaveDirectory();
|
||||
try {
|
||||
// Single extension.
|
||||
var tempFile = destDir.clone();
|
||||
tempFile.append("test.txt");
|
||||
testCreateNiceUniqueFile(tempFile, "test.txt");
|
||||
testCreateNiceUniqueFile(tempFile, "test(1).txt");
|
||||
testCreateNiceUniqueFile(tempFile, "test(2).txt");
|
||||
|
||||
// Double extension.
|
||||
tempFile.leafName = "test.tar.gz";
|
||||
testCreateNiceUniqueFile(tempFile, "test.tar.gz");
|
||||
testCreateNiceUniqueFile(tempFile, "test(1).tar.gz");
|
||||
testCreateNiceUniqueFile(tempFile, "test(2).tar.gz");
|
||||
|
||||
// Test automatic shortening of long file names. We don't know exactly how
|
||||
// many characters are removed, because it depends on the name of the folder
|
||||
// where the file is located.
|
||||
tempFile.leafName = new Array(256).join("T") + ".txt";
|
||||
var newFile = DownloadPaths.createNiceUniqueFile(tempFile);
|
||||
do_check_true(newFile.leafName.length < tempFile.leafName.length);
|
||||
do_check_eq(newFile.leafName.slice(-4), ".txt");
|
||||
|
||||
// Creating a valid file name from an invalid one is not always possible.
|
||||
tempFile.append("file-under-long-directory.txt");
|
||||
try {
|
||||
DownloadPaths.createNiceUniqueFile(tempFile);
|
||||
do_throw("Exception expected with a long parent directory name.")
|
||||
} catch (e) {
|
||||
// An exception is expected, but we don't know which one exactly.
|
||||
}
|
||||
} finally {
|
||||
// Clean up the temporary directory.
|
||||
destDir.remove(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,237 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
var Cu = Components.utils;
|
||||
Cu.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
const gDecimalSymbol = Number(5.4).toLocaleString().match(/\D/);
|
||||
function _(str) {
|
||||
return str.replace(/\./g, gDecimalSymbol);
|
||||
}
|
||||
|
||||
function testConvertByteUnits(aBytes, aValue, aUnit)
|
||||
{
|
||||
let [value, unit] = DownloadUtils.convertByteUnits(aBytes);
|
||||
do_check_eq(value, aValue);
|
||||
do_check_eq(unit, aUnit);
|
||||
}
|
||||
|
||||
function testTransferTotal(aCurrBytes, aMaxBytes, aTransfer)
|
||||
{
|
||||
let transfer = DownloadUtils.getTransferTotal(aCurrBytes, aMaxBytes);
|
||||
do_check_eq(transfer, aTransfer);
|
||||
}
|
||||
|
||||
// Get the em-dash character because typing it directly here doesn't work :(
|
||||
var gDash = DownloadUtils.getDownloadStatus(0)[0].match(/remaining (.) 0 bytes/)[1];
|
||||
|
||||
var gVals = [0, 100, 2345, 55555, 982341, 23194134, 1482, 58, 9921949201, 13498132, Infinity];
|
||||
|
||||
function testStatus(aFunc, aCurr, aMore, aRate, aTest)
|
||||
{
|
||||
dump("Status Test: " + [aCurr, aMore, aRate, aTest] + "\n");
|
||||
let curr = gVals[aCurr];
|
||||
let max = curr + gVals[aMore];
|
||||
let speed = gVals[aRate];
|
||||
|
||||
let [status, last] = aFunc(curr, max, speed);
|
||||
|
||||
if (0) {
|
||||
dump("testStatus(" + aCurr + ", " + aMore + ", " + aRate + ", [\"" +
|
||||
status.replace(gDash, "--") + "\", " + last.toFixed(3) + "]);\n");
|
||||
}
|
||||
|
||||
// Make sure the status text matches
|
||||
do_check_eq(status, _(aTest[0].replace(/--/, gDash)));
|
||||
|
||||
// Make sure the lastSeconds matches
|
||||
if (last == Infinity)
|
||||
do_check_eq(last, aTest[1]);
|
||||
else
|
||||
do_check_true(Math.abs(last - aTest[1]) < .1);
|
||||
}
|
||||
|
||||
function testURI(aURI, aDisp, aHost)
|
||||
{
|
||||
dump("URI Test: " + [aURI, aDisp, aHost] + "\n");
|
||||
|
||||
let [disp, host] = DownloadUtils.getURIHost(aURI);
|
||||
|
||||
// Make sure we have the right display host and full host
|
||||
do_check_eq(disp, aDisp);
|
||||
do_check_eq(host, aHost);
|
||||
}
|
||||
|
||||
|
||||
function testGetReadableDates(aDate, aCompactValue)
|
||||
{
|
||||
const now = new Date(2000, 11, 31, 11, 59, 59);
|
||||
|
||||
let [dateCompact] = DownloadUtils.getReadableDates(aDate, now);
|
||||
do_check_eq(dateCompact, aCompactValue);
|
||||
}
|
||||
|
||||
function testAllGetReadableDates()
|
||||
{
|
||||
// This test cannot depend on the current date and time, or the date format.
|
||||
// It depends on being run with the English localization, however.
|
||||
const today_11_30 = new Date(2000, 11, 31, 11, 30, 15);
|
||||
const today_12_30 = new Date(2000, 11, 31, 12, 30, 15);
|
||||
const yesterday_11_30 = new Date(2000, 11, 30, 11, 30, 15);
|
||||
const yesterday_12_30 = new Date(2000, 11, 30, 12, 30, 15);
|
||||
const twodaysago = new Date(2000, 11, 29, 11, 30, 15);
|
||||
const sixdaysago = new Date(2000, 11, 25, 11, 30, 15);
|
||||
const sevendaysago = new Date(2000, 11, 24, 11, 30, 15);
|
||||
|
||||
// TODO: Remove Intl fallback when bug 1215247 is fixed.
|
||||
const locale = typeof Intl === "undefined"
|
||||
? undefined
|
||||
: Components.classes["@mozilla.org/chrome/chrome-registry;1"]
|
||||
.getService(Components.interfaces.nsIXULChromeRegistry)
|
||||
.getSelectedLocale("global", true);
|
||||
|
||||
let dts = Components.classes["@mozilla.org/intl/scriptabledateformat;1"].
|
||||
getService(Components.interfaces.nsIScriptableDateFormat);
|
||||
|
||||
testGetReadableDates(today_11_30, dts.FormatTime("", dts.timeFormatNoSeconds,
|
||||
11, 30, 0));
|
||||
testGetReadableDates(today_12_30, dts.FormatTime("", dts.timeFormatNoSeconds,
|
||||
12, 30, 0));
|
||||
testGetReadableDates(yesterday_11_30, "Yesterday");
|
||||
testGetReadableDates(yesterday_12_30, "Yesterday");
|
||||
testGetReadableDates(twodaysago,
|
||||
typeof Intl === "undefined"
|
||||
? twodaysago.toLocaleFormat("%A")
|
||||
: twodaysago.toLocaleDateString(locale, { weekday: "long" }));
|
||||
testGetReadableDates(sixdaysago,
|
||||
typeof Intl === "undefined"
|
||||
? sixdaysago.toLocaleFormat("%A")
|
||||
: sixdaysago.toLocaleDateString(locale, { weekday: "long" }));
|
||||
testGetReadableDates(sevendaysago,
|
||||
(typeof Intl === "undefined"
|
||||
? sevendaysago.toLocaleFormat("%B")
|
||||
: sevendaysago.toLocaleDateString(locale, { month: "long" })) + " " +
|
||||
sevendaysago.getDate().toString().padStart(2, "0"));
|
||||
|
||||
let [, dateTimeFull] = DownloadUtils.getReadableDates(today_11_30);
|
||||
do_check_eq(dateTimeFull, dts.FormatDateTime("", dts.dateFormatLong,
|
||||
dts.timeFormatNoSeconds,
|
||||
2000, 12, 31, 11, 30, 0));
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
testConvertByteUnits(-1, "-1", "bytes");
|
||||
testConvertByteUnits(1, _("1"), "bytes");
|
||||
testConvertByteUnits(42, _("42"), "bytes");
|
||||
testConvertByteUnits(123, _("123"), "bytes");
|
||||
testConvertByteUnits(1024, _("1.0"), "KB");
|
||||
testConvertByteUnits(8888, _("8.7"), "KB");
|
||||
testConvertByteUnits(59283, _("57.9"), "KB");
|
||||
testConvertByteUnits(640000, _("625"), "KB");
|
||||
testConvertByteUnits(1048576, _("1.0"), "MB");
|
||||
testConvertByteUnits(307232768, _("293"), "MB");
|
||||
testConvertByteUnits(1073741824, _("1.0"), "GB");
|
||||
|
||||
testTransferTotal(1, 1, _("1 of 1 bytes"));
|
||||
testTransferTotal(234, 4924, _("234 bytes of 4.8 KB"));
|
||||
testTransferTotal(94923, 233923, _("92.7 of 228 KB"));
|
||||
testTransferTotal(4924, 94923, _("4.8 of 92.7 KB"));
|
||||
testTransferTotal(2342, 294960345, _("2.3 KB of 281 MB"));
|
||||
testTransferTotal(234, undefined, _("234 bytes"));
|
||||
testTransferTotal(4889023, undefined, _("4.7 MB"));
|
||||
|
||||
if (0) {
|
||||
// Help find some interesting test cases
|
||||
let r = () => Math.floor(Math.random() * 10);
|
||||
for (let i = 0; i < 100; i++) {
|
||||
testStatus(r(), r(), r());
|
||||
}
|
||||
}
|
||||
|
||||
// First, test with rates, via getDownloadStatus...
|
||||
let statusFunc = DownloadUtils.getDownloadStatus.bind(DownloadUtils);
|
||||
|
||||
testStatus(statusFunc, 2, 1, 7, ["A few seconds remaining -- 2.3 of 2.4 KB (58 bytes/sec)", 1.724]);
|
||||
testStatus(statusFunc, 1, 2, 6, ["A few seconds remaining -- 100 bytes of 2.4 KB (1.4 KB/sec)", 1.582]);
|
||||
testStatus(statusFunc, 4, 3, 9, ["A few seconds remaining -- 959 KB of 1.0 MB (12.9 MB/sec)", 0.004]);
|
||||
testStatus(statusFunc, 2, 3, 8, ["A few seconds remaining -- 2.3 of 56.5 KB (9.2 GB/sec)", 0.000]);
|
||||
|
||||
testStatus(statusFunc, 8, 4, 3, ["17 seconds remaining -- 9.2 of 9.2 GB (54.3 KB/sec)", 17.682]);
|
||||
testStatus(statusFunc, 1, 3, 2, ["23 seconds remaining -- 100 bytes of 54.4 KB (2.3 KB/sec)", 23.691]);
|
||||
testStatus(statusFunc, 9, 3, 2, ["23 seconds remaining -- 12.9 of 12.9 MB (2.3 KB/sec)", 23.691]);
|
||||
testStatus(statusFunc, 5, 6, 7, ["25 seconds remaining -- 22.1 of 22.1 MB (58 bytes/sec)", 25.552]);
|
||||
|
||||
testStatus(statusFunc, 3, 9, 3, ["4 minutes remaining -- 54.3 KB of 12.9 MB (54.3 KB/sec)", 242.969]);
|
||||
testStatus(statusFunc, 2, 3, 1, ["9 minutes remaining -- 2.3 of 56.5 KB (100 bytes/sec)", 555.550]);
|
||||
testStatus(statusFunc, 4, 3, 7, ["15 minutes remaining -- 959 KB of 1.0 MB (58 bytes/sec)", 957.845]);
|
||||
testStatus(statusFunc, 5, 3, 7, ["15 minutes remaining -- 22.1 of 22.2 MB (58 bytes/sec)", 957.845]);
|
||||
|
||||
testStatus(statusFunc, 1, 9, 2, ["1 hour, 35 minutes remaining -- 100 bytes of 12.9 MB (2.3 KB/sec)", 5756.133]);
|
||||
testStatus(statusFunc, 2, 9, 6, ["2 hours, 31 minutes remaining -- 2.3 KB of 12.9 MB (1.4 KB/sec)", 9108.051]);
|
||||
testStatus(statusFunc, 2, 4, 1, ["2 hours, 43 minutes remaining -- 2.3 of 962 KB (100 bytes/sec)", 9823.410]);
|
||||
testStatus(statusFunc, 6, 4, 7, ["4 hours, 42 minutes remaining -- 1.4 of 961 KB (58 bytes/sec)", 16936.914]);
|
||||
|
||||
testStatus(statusFunc, 6, 9, 1, ["1 day, 13 hours remaining -- 1.4 KB of 12.9 MB (100 bytes/sec)", 134981.320]);
|
||||
testStatus(statusFunc, 3, 8, 3, ["2 days, 1 hour remaining -- 54.3 KB of 9.2 GB (54.3 KB/sec)", 178596.872]);
|
||||
testStatus(statusFunc, 1, 8, 6, ["77 days, 11 hours remaining -- 100 bytes of 9.2 GB (1.4 KB/sec)", 6694972.470]);
|
||||
testStatus(statusFunc, 6, 8, 7, ["1979 days, 22 hours remaining -- 1.4 KB of 9.2 GB (58 bytes/sec)", 171068089.672]);
|
||||
|
||||
testStatus(statusFunc, 0, 0, 5, ["Unknown time remaining -- 0 of 0 bytes (22.1 MB/sec)", Infinity]);
|
||||
testStatus(statusFunc, 0, 6, 0, ["Unknown time remaining -- 0 bytes of 1.4 KB (0 bytes/sec)", Infinity]);
|
||||
testStatus(statusFunc, 6, 6, 0, ["Unknown time remaining -- 1.4 of 2.9 KB (0 bytes/sec)", Infinity]);
|
||||
testStatus(statusFunc, 8, 5, 0, ["Unknown time remaining -- 9.2 of 9.3 GB (0 bytes/sec)", Infinity]);
|
||||
|
||||
// With rate equal to Infinity
|
||||
testStatus(statusFunc, 0, 0, 10, ["Unknown time remaining -- 0 of 0 bytes (Really fast)", Infinity]);
|
||||
testStatus(statusFunc, 1, 2, 10, ["A few seconds remaining -- 100 bytes of 2.4 KB (Really fast)", 0]);
|
||||
|
||||
// Now test without rates, via getDownloadStatusNoRate.
|
||||
statusFunc = DownloadUtils.getDownloadStatusNoRate.bind(DownloadUtils);
|
||||
|
||||
testStatus(statusFunc, 2, 1, 7, ["A few seconds remaining -- 2.3 of 2.4 KB", 1.724]);
|
||||
testStatus(statusFunc, 1, 2, 6, ["A few seconds remaining -- 100 bytes of 2.4 KB", 1.582]);
|
||||
testStatus(statusFunc, 4, 3, 9, ["A few seconds remaining -- 959 KB of 1.0 MB", 0.004]);
|
||||
testStatus(statusFunc, 2, 3, 8, ["A few seconds remaining -- 2.3 of 56.5 KB", 0.000]);
|
||||
|
||||
testStatus(statusFunc, 8, 4, 3, ["17 seconds remaining -- 9.2 of 9.2 GB", 17.682]);
|
||||
testStatus(statusFunc, 1, 3, 2, ["23 seconds remaining -- 100 bytes of 54.4 KB", 23.691]);
|
||||
testStatus(statusFunc, 9, 3, 2, ["23 seconds remaining -- 12.9 of 12.9 MB", 23.691]);
|
||||
testStatus(statusFunc, 5, 6, 7, ["25 seconds remaining -- 22.1 of 22.1 MB", 25.552]);
|
||||
|
||||
testStatus(statusFunc, 3, 9, 3, ["4 minutes remaining -- 54.3 KB of 12.9 MB", 242.969]);
|
||||
testStatus(statusFunc, 2, 3, 1, ["9 minutes remaining -- 2.3 of 56.5 KB", 555.550]);
|
||||
testStatus(statusFunc, 4, 3, 7, ["15 minutes remaining -- 959 KB of 1.0 MB", 957.845]);
|
||||
testStatus(statusFunc, 5, 3, 7, ["15 minutes remaining -- 22.1 of 22.2 MB", 957.845]);
|
||||
|
||||
testStatus(statusFunc, 1, 9, 2, ["1 hour, 35 minutes remaining -- 100 bytes of 12.9 MB", 5756.133]);
|
||||
testStatus(statusFunc, 2, 9, 6, ["2 hours, 31 minutes remaining -- 2.3 KB of 12.9 MB", 9108.051]);
|
||||
testStatus(statusFunc, 2, 4, 1, ["2 hours, 43 minutes remaining -- 2.3 of 962 KB", 9823.410]);
|
||||
testStatus(statusFunc, 6, 4, 7, ["4 hours, 42 minutes remaining -- 1.4 of 961 KB", 16936.914]);
|
||||
|
||||
testStatus(statusFunc, 6, 9, 1, ["1 day, 13 hours remaining -- 1.4 KB of 12.9 MB", 134981.320]);
|
||||
testStatus(statusFunc, 3, 8, 3, ["2 days, 1 hour remaining -- 54.3 KB of 9.2 GB", 178596.872]);
|
||||
testStatus(statusFunc, 1, 8, 6, ["77 days, 11 hours remaining -- 100 bytes of 9.2 GB", 6694972.470]);
|
||||
testStatus(statusFunc, 6, 8, 7, ["1979 days, 22 hours remaining -- 1.4 KB of 9.2 GB", 171068089.672]);
|
||||
|
||||
testStatus(statusFunc, 0, 0, 5, ["Unknown time remaining -- 0 of 0 bytes", Infinity]);
|
||||
testStatus(statusFunc, 0, 6, 0, ["Unknown time remaining -- 0 bytes of 1.4 KB", Infinity]);
|
||||
testStatus(statusFunc, 6, 6, 0, ["Unknown time remaining -- 1.4 of 2.9 KB", Infinity]);
|
||||
testStatus(statusFunc, 8, 5, 0, ["Unknown time remaining -- 9.2 of 9.3 GB", Infinity]);
|
||||
|
||||
testURI("http://www.mozilla.org/", "mozilla.org", "www.mozilla.org");
|
||||
testURI("http://www.city.mikasa.hokkaido.jp/", "city.mikasa.hokkaido.jp", "www.city.mikasa.hokkaido.jp");
|
||||
testURI("data:text/html,Hello World", "data resource", "data resource");
|
||||
testURI("jar:http://www.mozilla.com/file!/magic", "mozilla.com", "www.mozilla.com");
|
||||
testURI("file:///C:/Cool/Stuff/", "local file", "local file");
|
||||
// Don't test for moz-icon if we don't have a protocol handler for it (e.g. b2g):
|
||||
if ("@mozilla.org/network/protocol;1?name=moz-icon" in Components.classes) {
|
||||
testURI("moz-icon:file:///test.extension", "local file", "local file");
|
||||
testURI("moz-icon://.extension", "moz-icon resource", "moz-icon resource");
|
||||
}
|
||||
testURI("about:config", "about resource", "about resource");
|
||||
testURI("invalid.uri", "", "");
|
||||
|
||||
testAllGetReadableDates();
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/**
|
||||
* Test bug 448344 to make sure when we're in low minutes, we show both minutes
|
||||
* and seconds; but continue to show only minutes when we have plenty.
|
||||
*/
|
||||
|
||||
Components.utils.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
/**
|
||||
* Print some debug message to the console. All arguments will be printed,
|
||||
* separated by spaces.
|
||||
*
|
||||
* @param [arg0, arg1, arg2, ...]
|
||||
* Any number of arguments to print out
|
||||
* @usage _("Hello World") -> prints "Hello World"
|
||||
* @usage _(1, 2, 3) -> prints "1 2 3"
|
||||
*/
|
||||
var _ = function(some, debug, text, to) {
|
||||
print(Array.slice(arguments).join(" "));
|
||||
};
|
||||
|
||||
_("Make an array of time lefts and expected string to be shown for that time");
|
||||
var expectedTimes = [
|
||||
[1.1, "A few seconds remaining", "under 4sec -> few"],
|
||||
[2.5, "A few seconds remaining", "under 4sec -> few"],
|
||||
[3.9, "A few seconds remaining", "under 4sec -> few"],
|
||||
[5.3, "5 seconds remaining", "truncate seconds"],
|
||||
[1.1 * 60, "1 minute, 6 seconds remaining", "under 4min -> show sec"],
|
||||
[2.5 * 60, "2 minutes, 30 seconds remaining", "under 4min -> show sec"],
|
||||
[3.9 * 60, "3 minutes, 54 seconds remaining", "under 4min -> show sec"],
|
||||
[5.3 * 60, "5 minutes remaining", "over 4min -> only show min"],
|
||||
[1.1 * 3600, "1 hour, 6 minutes remaining", "over 1hr -> show min/sec"],
|
||||
[2.5 * 3600, "2 hours, 30 minutes remaining", "over 1hr -> show min/sec"],
|
||||
[3.9 * 3600, "3 hours, 54 minutes remaining", "over 1hr -> show min/sec"],
|
||||
[5.3 * 3600, "5 hours, 18 minutes remaining", "over 1hr -> show min/sec"],
|
||||
];
|
||||
_(expectedTimes.join("\n"));
|
||||
|
||||
function run_test()
|
||||
{
|
||||
expectedTimes.forEach(function([time, expectStatus, comment]) {
|
||||
_("Running test with time", time);
|
||||
_("Test comment:", comment);
|
||||
let [status, last] = DownloadUtils.getTimeLeft(time);
|
||||
|
||||
_("Got status:", status, "last:", last);
|
||||
_("Expecting..", expectStatus);
|
||||
do_check_eq(status, expectStatus);
|
||||
|
||||
_();
|
||||
});
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/**
|
||||
* Test bug 420482 by making sure multiple consumers of DownloadUtils gets the
|
||||
* same time remaining time if they provide the same time left but a different
|
||||
* "last time".
|
||||
*/
|
||||
|
||||
var Cu = Components.utils;
|
||||
Cu.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
function run_test()
|
||||
{
|
||||
// Simulate having multiple downloads requesting time left
|
||||
let downloadTimes = {};
|
||||
for (let time of [1, 30, 60, 3456, 9999])
|
||||
downloadTimes[time] = DownloadUtils.getTimeLeft(time)[0];
|
||||
|
||||
// Pretend we're a download status bar also asking for a time left, but we're
|
||||
// using a different "last sec". We need to make sure we get the same time.
|
||||
let lastSec = 314;
|
||||
for (let [time, text] of Object.entries(downloadTimes))
|
||||
do_check_eq(DownloadUtils.getTimeLeft(time, lastSec)[0], text);
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/**
|
||||
* Make sure passing null and nothing to various variable-arg DownloadUtils
|
||||
* methods provide the same result.
|
||||
*/
|
||||
|
||||
var Cu = Components.utils;
|
||||
Cu.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
function run_test()
|
||||
{
|
||||
do_check_eq(DownloadUtils.getDownloadStatus(1000, null, null, null) + "",
|
||||
DownloadUtils.getDownloadStatus(1000) + "");
|
||||
do_check_eq(DownloadUtils.getDownloadStatus(1000, null, null) + "",
|
||||
DownloadUtils.getDownloadStatus(1000, null) + "");
|
||||
|
||||
do_check_eq(DownloadUtils.getTransferTotal(1000, null) + "",
|
||||
DownloadUtils.getTransferTotal(1000) + "");
|
||||
|
||||
do_check_eq(DownloadUtils.getTimeLeft(1000, null) + "",
|
||||
DownloadUtils.getTimeLeft(1000) + "");
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
[DEFAULT]
|
||||
head = head_downloads.js
|
||||
tail =
|
||||
skip-if = toolkit == 'android'
|
||||
|
||||
[test_DownloadPaths.js]
|
||||
[test_DownloadUtils.js]
|
||||
[test_lowMinutes.js]
|
||||
[test_syncedDownloadUtils.js]
|
||||
[test_unspecified_arguments.js]
|
||||
|
|
@ -1,14 +1,16 @@
|
|||
component {4399533d-08d1-458c-a87a-235f74451cfa} addonManager.js
|
||||
contract @mozilla.org/addons/integration;1 {4399533d-08d1-458c-a87a-235f74451cfa}
|
||||
category update-timer addonManager @mozilla.org/addons/integration;1,getService,addon-background-update-timer,extensions.update.interval,86400
|
||||
|
||||
component {7beb3ba8-6ec3-41b4-b67c-da89b8518922} amContentHandler.js
|
||||
contract @mozilla.org/uriloader/content-handler;1?type=application/x-xpinstall {7beb3ba8-6ec3-41b4-b67c-da89b8518922}
|
||||
|
||||
component {0f38e086-89a3-40a5-8ffc-9b694de1d04a} amWebInstallListener.js
|
||||
contract @mozilla.org/addons/web-install-listener;1 {0f38e086-89a3-40a5-8ffc-9b694de1d04a}
|
||||
|
||||
component {9df8ef2b-94da-45c9-ab9f-132eb55fddf1} amInstallTrigger.js
|
||||
contract @mozilla.org/addons/installtrigger;1 {9df8ef2b-94da-45c9-ab9f-132eb55fddf1}
|
||||
category JavaScript-global-property InstallTrigger @mozilla.org/addons/installtrigger;1
|
||||
#ifndef MOZ_WIDGET_ANDROID
|
||||
|
||||
category addon-provider-module PluginProvider resource://gre/modules/addons/PluginProvider.jsm
|
||||
#endif
|
||||
category addon-provider-module GMPProvider resource://gre/modules/addons/GMPProvider.jsm
|
||||
|
|
|
|||
|
|
@ -10,16 +10,11 @@ EXTRA_JS_MODULES.addons += [
|
|||
'Content.js',
|
||||
'GMPProvider.jsm',
|
||||
'LightweightThemeImageOptimizer.jsm',
|
||||
'PluginProvider.jsm',
|
||||
'ProductAddonChecker.jsm',
|
||||
'SpellCheckDictionaryBootstrap.js',
|
||||
]
|
||||
|
||||
# Don't ship unused providers on Android
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
|
||||
EXTRA_JS_MODULES.addons += [
|
||||
'PluginProvider.jsm',
|
||||
]
|
||||
|
||||
EXTRA_PP_JS_MODULES.addons += [
|
||||
'AddonRepository.jsm',
|
||||
'AddonUpdateChecker.jsm',
|
||||
|
|
|
|||
|
|
@ -11,11 +11,7 @@ DIRS += [
|
|||
'updater',
|
||||
]
|
||||
|
||||
XPIDL_SOURCES += [
|
||||
'nsIUpdateService.idl',
|
||||
]
|
||||
|
||||
TEST_DIRS += ['tests']
|
||||
XPIDL_SOURCES += ['nsIUpdateService.idl']
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'nsUpdateService.manifest',
|
||||
|
|
@ -25,6 +21,3 @@ EXTRA_COMPONENTS += [
|
|||
EXTRA_PP_COMPONENTS += ['nsUpdateService.js']
|
||||
|
||||
JAR_MANIFESTS += ['jar.mn']
|
||||
|
||||
with Files('**'):
|
||||
BUG_COMPONENT = ('Toolkit', 'Application Update')
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
XPCSHELLTESTROOT = $(topobjdir)/_tests/xpcshell/$(relativesrcdir)
|
||||
|
||||
pp_const_file = $(srcdir)/data/xpcshellConstantsPP.js
|
||||
|
||||
PP_TARGETS += aus-test-const
|
||||
aus-test-const := $(pp_const_file)
|
||||
aus-test-const_PATH := $(XPCSHELLTESTROOT)/data
|
||||
aus-test-const_FLAGS := -Fsubstitution $(DEFINES) $(ACDEFINES)
|
||||
aus-test-const_TARGET := misc
|
||||
|
||||
INI_TEST_FILES = \
|
||||
TestAUSReadStrings1.ini \
|
||||
TestAUSReadStrings2.ini \
|
||||
TestAUSReadStrings3.ini \
|
||||
$(NULL)
|
||||
|
||||
MOZ_WINCONSOLE = 1
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
# TestAUSReadStrings runs during check in the following directory with a Unicode
|
||||
# char in order to test bug 473417 on Windows.
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
bug473417dir = test_bug473417-ó
|
||||
else
|
||||
bug473417dir = test_bug473417
|
||||
endif
|
||||
|
||||
check::
|
||||
$(RM) -rf $(DEPTH)/_tests/updater/ && $(NSINSTALL) -D $(DEPTH)/_tests/updater/$(bug473417dir)/
|
||||
for i in $(INI_TEST_FILES); do \
|
||||
$(INSTALL) $(srcdir)/$$i $(DEPTH)/_tests/updater/$(bug473417dir)/; \
|
||||
done
|
||||
$(INSTALL) $(FINAL_TARGET)/TestAUSReadStrings$(BIN_SUFFIX) $(DEPTH)/_tests/updater/$(bug473417dir)/
|
||||
@$(RUN_TEST_PROGRAM) $(DEPTH)/_tests/updater/$(bug473417dir)/TestAUSReadStrings$(BIN_SUFFIX)
|
||||
|
|
@ -1,415 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
#ifdef XP_WIN
|
||||
# include <windows.h>
|
||||
# include <wintrust.h>
|
||||
# include <tlhelp32.h>
|
||||
# include <softpub.h>
|
||||
# include <direct.h>
|
||||
# include <io.h>
|
||||
typedef WCHAR NS_tchar;
|
||||
# define NS_main wmain
|
||||
# ifndef F_OK
|
||||
# define F_OK 00
|
||||
# endif
|
||||
# ifndef W_OK
|
||||
# define W_OK 02
|
||||
# endif
|
||||
# ifndef R_OK
|
||||
# define R_OK 04
|
||||
# endif
|
||||
# if defined(_MSC_VER) && _MSC_VER < 1900
|
||||
# define stat _stat
|
||||
# endif
|
||||
# define NS_T(str) L ## str
|
||||
# define NS_tsnprintf(dest, count, fmt, ...) \
|
||||
{ \
|
||||
int _count = count - 1; \
|
||||
_snwprintf(dest, _count, fmt, ##__VA_ARGS__); \
|
||||
dest[_count] = L'\0'; \
|
||||
}
|
||||
# define NS_taccess _waccess
|
||||
# define NS_tchdir _wchdir
|
||||
# define NS_tfopen _wfopen
|
||||
# define NS_tstrcmp wcscmp
|
||||
# define NS_ttoi _wtoi
|
||||
# define NS_tstat _wstat
|
||||
# define NS_tgetcwd _wgetcwd
|
||||
# define LOG_S "%S"
|
||||
|
||||
#include "../common/updatehelper.h"
|
||||
#include "../common/certificatecheck.h"
|
||||
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# define NS_main main
|
||||
typedef char NS_tchar;
|
||||
# define NS_T(str) str
|
||||
# define NS_tsnprintf snprintf
|
||||
# define NS_taccess access
|
||||
# define NS_tchdir chdir
|
||||
# define NS_tfopen fopen
|
||||
# define NS_tstrcmp strcmp
|
||||
# define NS_ttoi atoi
|
||||
# define NS_tstat stat
|
||||
# define NS_tgetcwd getcwd
|
||||
# define NS_tfputs fputs
|
||||
# define LOG_S "%s"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifndef MAXPATHLEN
|
||||
# ifdef PATH_MAX
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# elif defined(MAX_PATH)
|
||||
# define MAXPATHLEN MAX_PATH
|
||||
# elif defined(_MAX_PATH)
|
||||
# define MAXPATHLEN _MAX_PATH
|
||||
# elif defined(CCHMAXPATH)
|
||||
# define MAXPATHLEN CCHMAXPATH
|
||||
# else
|
||||
# define MAXPATHLEN 1024
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static void
|
||||
WriteMsg(const NS_tchar *path, const char *status)
|
||||
{
|
||||
FILE* outFP = NS_tfopen(path, NS_T("wb"));
|
||||
if (!outFP) {
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(outFP, "%s\n", status);
|
||||
fclose(outFP);
|
||||
outFP = nullptr;
|
||||
}
|
||||
|
||||
static bool
|
||||
CheckMsg(const NS_tchar *path, const char *expected)
|
||||
{
|
||||
if (NS_taccess(path, F_OK)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
FILE *inFP = NS_tfopen(path, NS_T("rb"));
|
||||
if (!inFP) {
|
||||
return false;
|
||||
}
|
||||
|
||||
struct stat ms;
|
||||
if (fstat(fileno(inFP), &ms)) {
|
||||
fclose(inFP);
|
||||
inFP = nullptr;
|
||||
return false;
|
||||
}
|
||||
|
||||
char *mbuf = (char *) malloc(ms.st_size + 1);
|
||||
if (!mbuf) {
|
||||
fclose(inFP);
|
||||
inFP = nullptr;
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t r = ms.st_size;
|
||||
char *rb = mbuf;
|
||||
size_t c = fread(rb, sizeof(char), 50, inFP);
|
||||
r -= c;
|
||||
rb += c;
|
||||
if (c == 0 && r) {
|
||||
free(mbuf);
|
||||
fclose(inFP);
|
||||
inFP = nullptr;
|
||||
return false;
|
||||
}
|
||||
mbuf[ms.st_size] = '\0';
|
||||
rb = mbuf;
|
||||
|
||||
bool isMatch = strcmp(rb, expected) == 0;
|
||||
free(mbuf);
|
||||
fclose(inFP);
|
||||
inFP = nullptr;
|
||||
return isMatch;
|
||||
}
|
||||
|
||||
int NS_main(int argc, NS_tchar **argv)
|
||||
{
|
||||
if (argc == 2) {
|
||||
if (!NS_tstrcmp(argv[1], NS_T("post-update-async")) ||
|
||||
!NS_tstrcmp(argv[1], NS_T("post-update-sync"))) {
|
||||
NS_tchar exePath[MAXPATHLEN];
|
||||
#ifdef XP_WIN
|
||||
if (!::GetModuleFileNameW(0, exePath, MAXPATHLEN)) {
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
strcpy(exePath, argv[0]);
|
||||
#endif
|
||||
NS_tchar runFilePath[MAXPATHLEN];
|
||||
NS_tsnprintf(runFilePath, sizeof(runFilePath)/sizeof(runFilePath[0]),
|
||||
NS_T("%s.running"), exePath);
|
||||
#ifdef XP_WIN
|
||||
if (!NS_taccess(runFilePath, F_OK)) {
|
||||
// This makes it possible to check if the post update process was
|
||||
// launched twice which happens when the service performs an update.
|
||||
NS_tchar runFilePathBak[MAXPATHLEN];
|
||||
NS_tsnprintf(runFilePathBak, sizeof(runFilePathBak)/sizeof(runFilePathBak[0]),
|
||||
NS_T("%s.bak"), runFilePath);
|
||||
MoveFileExW(runFilePath, runFilePathBak, MOVEFILE_REPLACE_EXISTING);
|
||||
}
|
||||
#endif
|
||||
WriteMsg(runFilePath, "running");
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("post-update-sync"))) {
|
||||
#ifdef XP_WIN
|
||||
Sleep(2000);
|
||||
#else
|
||||
sleep(2);
|
||||
#endif
|
||||
}
|
||||
|
||||
NS_tchar logFilePath[MAXPATHLEN];
|
||||
NS_tsnprintf(logFilePath, sizeof(logFilePath)/sizeof(logFilePath[0]),
|
||||
NS_T("%s.log"), exePath);
|
||||
WriteMsg(logFilePath, "post-update");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (argc < 3) {
|
||||
fprintf(stderr, \
|
||||
"\n" \
|
||||
"Application Update Service Test Helper\n" \
|
||||
"\n" \
|
||||
"Usage: WORKINGDIR INFILE OUTFILE -s SECONDS [FILETOLOCK]\n" \
|
||||
" or: WORKINGDIR LOGFILE [ARG2 ARG3...]\n" \
|
||||
" or: signature-check filepath\n" \
|
||||
" or: setup-symlink dir1 dir2 file symlink\n" \
|
||||
" or: remove-symlink dir1 dir2 file symlink\n" \
|
||||
" or: check-symlink symlink\n" \
|
||||
" or: post-update\n" \
|
||||
"\n" \
|
||||
" WORKINGDIR \tThe relative path to the working directory to use.\n" \
|
||||
" INFILE \tThe relative path from the working directory for the file to\n" \
|
||||
" \tread actions to perform such as finish.\n" \
|
||||
" OUTFILE \tThe relative path from the working directory for the file to\n" \
|
||||
" \twrite status information.\n" \
|
||||
" SECONDS \tThe number of seconds to sleep.\n" \
|
||||
" FILETOLOCK \tThe relative path from the working directory to an existing\n" \
|
||||
" \tfile to open exlusively.\n" \
|
||||
" \tOnly available on Windows platforms and silently ignored on\n" \
|
||||
" \tother platforms.\n" \
|
||||
" LOGFILE \tThe relative path from the working directory to log the\n" \
|
||||
" \tcommand line arguments.\n" \
|
||||
" ARG2 ARG3...\tArguments to write to the LOGFILE after the preceding command\n" \
|
||||
" \tline arguments.\n" \
|
||||
"\n" \
|
||||
"Note: All paths must be relative.\n" \
|
||||
"\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("check-signature"))) {
|
||||
// Not implemented
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("setup-symlink"))) {
|
||||
#ifdef XP_UNIX
|
||||
NS_tchar path[MAXPATHLEN];
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s"), NS_T("/tmp"), argv[2]);
|
||||
mkdir(path, 0755);
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s/%s"), NS_T("/tmp"), argv[2], argv[3]);
|
||||
mkdir(path, 0755);
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s/%s/%s"), NS_T("/tmp"), argv[2], argv[3], argv[4]);
|
||||
FILE * file = NS_tfopen(path, NS_T("w"));
|
||||
if (file) {
|
||||
NS_tfputs(NS_T("test"), file);
|
||||
fclose(file);
|
||||
}
|
||||
if (symlink(path, argv[5]) != 0) {
|
||||
return 1;
|
||||
}
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s"), NS_T("/tmp"), argv[2]);
|
||||
if (argc > 6 && !NS_tstrcmp(argv[6], NS_T("change-perm"))) {
|
||||
chmod(path, 0644);
|
||||
}
|
||||
return 0;
|
||||
#else
|
||||
// Not implemented on non-Unix platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("remove-symlink"))) {
|
||||
#ifdef XP_UNIX
|
||||
NS_tchar path[MAXPATHLEN];
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s"), NS_T("/tmp"), argv[2]);
|
||||
chmod(path, 0755);
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s/%s/%s"), NS_T("/tmp"), argv[2], argv[3], argv[4]);
|
||||
unlink(path);
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s/%s"), NS_T("/tmp"), argv[2], argv[3]);
|
||||
rmdir(path);
|
||||
NS_tsnprintf(path, sizeof(path)/sizeof(path[0]),
|
||||
NS_T("%s/%s"), NS_T("/tmp"), argv[2]);
|
||||
rmdir(path);
|
||||
return 0;
|
||||
#else
|
||||
// Not implemented on non-Unix platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("check-symlink"))) {
|
||||
#ifdef XP_UNIX
|
||||
struct stat ss;
|
||||
lstat(argv[2], &ss);
|
||||
return S_ISLNK(ss.st_mode) ? 0 : 1;
|
||||
#else
|
||||
// Not implemented on non-Unix platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("wait-for-service-stop"))) {
|
||||
#ifdef XP_WIN
|
||||
const int maxWaitSeconds = NS_ttoi(argv[3]);
|
||||
LPCWSTR serviceName = argv[2];
|
||||
DWORD serviceState = WaitForServiceStop(serviceName, maxWaitSeconds);
|
||||
if (SERVICE_STOPPED == serviceState) {
|
||||
return 0;
|
||||
} else {
|
||||
return serviceState;
|
||||
}
|
||||
#else
|
||||
// Not implemented on non-Windows platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("wait-for-application-exit"))) {
|
||||
#ifdef XP_WIN
|
||||
const int maxWaitSeconds = NS_ttoi(argv[3]);
|
||||
LPCWSTR application = argv[2];
|
||||
DWORD ret = WaitForProcessExit(application, maxWaitSeconds);
|
||||
if (ERROR_SUCCESS == ret) {
|
||||
return 0;
|
||||
} else if (WAIT_TIMEOUT == ret) {
|
||||
return 1;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
#else
|
||||
// Not implemented on non-Windows platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("is-process-running"))) {
|
||||
#ifdef XP_WIN
|
||||
LPCWSTR application = argv[2];
|
||||
return (ERROR_NOT_FOUND == IsProcessRunning(application)) ? 0 : 1;
|
||||
#else
|
||||
// Not implemented on non-Windows platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!NS_tstrcmp(argv[1], NS_T("launch-service"))) {
|
||||
#ifdef XP_WIN
|
||||
DWORD ret = LaunchServiceSoftwareUpdateCommand(argc - 2, (LPCWSTR *)argv + 2);
|
||||
if (ret != ERROR_SUCCESS) {
|
||||
// 192 is used to avoid reusing a possible return value from the call to
|
||||
// WaitForServiceStop
|
||||
return 0x000000C0;
|
||||
}
|
||||
// Wait a maximum of 120 seconds.
|
||||
DWORD lastState = WaitForServiceStop(SVC_NAME, 120);
|
||||
if (SERVICE_STOPPED == lastState) {
|
||||
return 0;
|
||||
}
|
||||
return lastState;
|
||||
#else
|
||||
// Not implemented on non-Windows platforms
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (NS_tchdir(argv[1]) != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// File in use test helper section
|
||||
if (!NS_tstrcmp(argv[4], NS_T("-s"))) {
|
||||
NS_tchar *cwd = NS_tgetcwd(nullptr, 0);
|
||||
NS_tchar inFilePath[MAXPATHLEN];
|
||||
NS_tsnprintf(inFilePath, sizeof(inFilePath)/sizeof(inFilePath[0]),
|
||||
NS_T("%s/%s"), cwd, argv[2]);
|
||||
NS_tchar outFilePath[MAXPATHLEN];
|
||||
NS_tsnprintf(outFilePath, sizeof(outFilePath)/sizeof(outFilePath[0]),
|
||||
NS_T("%s/%s"), cwd, argv[3]);
|
||||
|
||||
int seconds = NS_ttoi(argv[5]);
|
||||
#ifdef XP_WIN
|
||||
HANDLE hFile = INVALID_HANDLE_VALUE;
|
||||
if (argc == 7) {
|
||||
hFile = CreateFileW(argv[6],
|
||||
DELETE | GENERIC_WRITE, 0,
|
||||
nullptr, OPEN_EXISTING, 0, nullptr);
|
||||
if (hFile == INVALID_HANDLE_VALUE) {
|
||||
WriteMsg(outFilePath, "error_locking");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
WriteMsg(outFilePath, "sleeping");
|
||||
int i = 0;
|
||||
while (!CheckMsg(inFilePath, "finish\n") && i++ <= seconds) {
|
||||
Sleep(1000);
|
||||
}
|
||||
|
||||
if (argc == 7) {
|
||||
CloseHandle(hFile);
|
||||
}
|
||||
#else
|
||||
WriteMsg(outFilePath, "sleeping");
|
||||
int i = 0;
|
||||
while (!CheckMsg(inFilePath, "finish\n") && i++ <= seconds) {
|
||||
sleep(1);
|
||||
}
|
||||
#endif
|
||||
WriteMsg(outFilePath, "finished");
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
// Command line argument test helper section
|
||||
NS_tchar logFilePath[MAXPATHLEN];
|
||||
NS_tsnprintf(logFilePath, sizeof(logFilePath)/sizeof(logFilePath[0]),
|
||||
NS_T("%s"), argv[2]);
|
||||
|
||||
FILE* logFP = NS_tfopen(logFilePath, NS_T("wb"));
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
fprintf(logFP, LOG_S "\n", argv[i]);
|
||||
}
|
||||
|
||||
fclose(logFP);
|
||||
logFP = nullptr;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* 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/. */
|
||||
|
||||
/**
|
||||
* This binary tests the updater's ReadStrings ini parser and should run in a
|
||||
* directory with a Unicode character to test bug 473417.
|
||||
*/
|
||||
#ifdef XP_WIN
|
||||
#include <windows.h>
|
||||
#define NS_main wmain
|
||||
#define NS_tstrrchr wcsrchr
|
||||
#define NS_T(str) L ## str
|
||||
#define PATH_SEPARATOR_CHAR L'\\'
|
||||
// On Windows, argv[0] can also have forward slashes instead
|
||||
#define ALT_PATH_SEPARATOR_CHAR L'/'
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#define NS_main main
|
||||
#define NS_tstrrchr strrchr
|
||||
#define NS_T(str) str
|
||||
#define PATH_SEPARATOR_CHAR '/'
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "updater/resource.h"
|
||||
#include "updater/progressui.h"
|
||||
#include "common/readstrings.h"
|
||||
#include "common/errors.h"
|
||||
#include "mozilla/ArrayUtils.h"
|
||||
|
||||
#ifndef MAXPATHLEN
|
||||
# ifdef PATH_MAX
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# elif defined(MAX_PATH)
|
||||
# define MAXPATHLEN MAX_PATH
|
||||
# elif defined(_MAX_PATH)
|
||||
# define MAXPATHLEN _MAX_PATH
|
||||
# elif defined(CCHMAXPATH)
|
||||
# define MAXPATHLEN CCHMAXPATH
|
||||
# else
|
||||
# define MAXPATHLEN 1024
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define TEST_NAME "Updater ReadStrings"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
static int gFailCount = 0;
|
||||
|
||||
/**
|
||||
* Prints the given failure message and arguments using printf, prepending
|
||||
* "TEST-UNEXPECTED-FAIL " for the benefit of the test harness and
|
||||
* appending "\n" to eliminate having to type it at each call site.
|
||||
*/
|
||||
void fail(const char* msg, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
printf("TEST-UNEXPECTED-FAIL | ");
|
||||
|
||||
va_start(ap, msg);
|
||||
vprintf(msg, ap);
|
||||
va_end(ap);
|
||||
|
||||
putchar('\n');
|
||||
++gFailCount;
|
||||
}
|
||||
|
||||
int NS_main(int argc, NS_tchar **argv)
|
||||
{
|
||||
printf("Running TestAUSReadStrings tests\n");
|
||||
|
||||
int rv = 0;
|
||||
int retval;
|
||||
NS_tchar inifile[MAXPATHLEN];
|
||||
StringTable testStrings;
|
||||
|
||||
NS_tchar *slash = NS_tstrrchr(argv[0], PATH_SEPARATOR_CHAR);
|
||||
#ifdef ALT_PATH_SEPARATOR_CHAR
|
||||
NS_tchar *altslash = NS_tstrrchr(argv[0], ALT_PATH_SEPARATOR_CHAR);
|
||||
slash = (slash > altslash) ? slash : altslash;
|
||||
#endif // ALT_PATH_SEPARATOR_CHAR
|
||||
|
||||
if (!slash) {
|
||||
fail("%s | unable to find platform specific path separator (check 1)", TEST_NAME);
|
||||
return 20;
|
||||
}
|
||||
|
||||
*(++slash) = '\0';
|
||||
// Test success when the ini file exists with both Title and Info in the
|
||||
// Strings section and the values for Title and Info.
|
||||
NS_tsnprintf(inifile, ArrayLength(inifile), NS_T("%sTestAUSReadStrings1.ini"), argv[0]);
|
||||
retval = ReadStrings(inifile, &testStrings);
|
||||
if (retval == OK) {
|
||||
if (strcmp(testStrings.title, "Title Test - \xD0\x98\xD1\x81\xD0\xBF\xD1\x8B" \
|
||||
"\xD1\x82\xD0\xB0\xD0\xBD\xD0\xB8\xD0\xB5 " \
|
||||
"\xCE\x94\xCE\xBF\xCE\xBA\xCE\xB9\xCE\xBC\xCE\xAE " \
|
||||
"\xE3\x83\x86\xE3\x82\xB9\xE3\x83\x88 " \
|
||||
"\xE6\xB8\xAC\xE8\xA9\xA6 " \
|
||||
"\xE6\xB5\x8B\xE8\xAF\x95") != 0) {
|
||||
rv = 21;
|
||||
fail("%s | Title ini value incorrect (check 3)", TEST_NAME);
|
||||
}
|
||||
|
||||
if (strcmp(testStrings.info, "Info Test - \xD0\x98\xD1\x81\xD0\xBF\xD1\x8B" \
|
||||
"\xD1\x82\xD0\xB0\xD0\xBD\xD0\xB8\xD0\xB5 " \
|
||||
"\xCE\x94\xCE\xBF\xCE\xBA\xCE\xB9\xCE\xBC\xCE\xAE " \
|
||||
"\xE3\x83\x86\xE3\x82\xB9\xE3\x83\x88 " \
|
||||
"\xE6\xB8\xAC\xE8\xA9\xA6 " \
|
||||
"\xE6\xB5\x8B\xE8\xAF\x95\xE2\x80\xA6") != 0) {
|
||||
rv = 22;
|
||||
fail("%s | Info ini value incorrect (check 4)", TEST_NAME);
|
||||
}
|
||||
} else {
|
||||
fail("%s | ReadStrings returned %i (check 2)", TEST_NAME, retval);
|
||||
rv = 23;
|
||||
}
|
||||
|
||||
// Test failure when the ini file exists without Title and with Info in the
|
||||
// Strings section.
|
||||
NS_tsnprintf(inifile, ArrayLength(inifile), NS_T("%sTestAUSReadStrings2.ini"), argv[0]);
|
||||
retval = ReadStrings(inifile, &testStrings);
|
||||
if (retval != PARSE_ERROR) {
|
||||
rv = 24;
|
||||
fail("%s | ReadStrings returned %i (check 5)", TEST_NAME, retval);
|
||||
}
|
||||
|
||||
// Test failure when the ini file exists with Title and without Info in the
|
||||
// Strings section.
|
||||
NS_tsnprintf(inifile, ArrayLength(inifile), NS_T("%sTestAUSReadStrings3.ini"), argv[0]);
|
||||
retval = ReadStrings(inifile, &testStrings);
|
||||
if (retval != PARSE_ERROR) {
|
||||
rv = 25;
|
||||
fail("%s | ReadStrings returned %i (check 6)", TEST_NAME, retval);
|
||||
}
|
||||
|
||||
// Test failure when the ini file doesn't exist
|
||||
NS_tsnprintf(inifile, ArrayLength(inifile), NS_T("%sTestAUSReadStringsBogus.ini"), argv[0]);
|
||||
retval = ReadStrings(inifile, &testStrings);
|
||||
if (retval != READ_ERROR) {
|
||||
rv = 26;
|
||||
fail("%s | ini file doesn't exist (check 7)", TEST_NAME);
|
||||
}
|
||||
|
||||
// Test reading a non-default section name
|
||||
NS_tsnprintf(inifile, ArrayLength(inifile), NS_T("%sTestAUSReadStrings3.ini"), argv[0]);
|
||||
retval = ReadStrings(inifile, "Title\0", 1, &testStrings.title, "BogusSection2");
|
||||
if (retval == OK) {
|
||||
if (strcmp(testStrings.title, "Bogus Title") != 0) {
|
||||
rv = 27;
|
||||
fail("%s | Title ini value incorrect (check 9)", TEST_NAME);
|
||||
}
|
||||
} else {
|
||||
fail("%s | ReadStrings returned %i (check 8)", TEST_NAME, retval);
|
||||
rv = 28;
|
||||
}
|
||||
|
||||
|
||||
if (rv == 0) {
|
||||
printf("TEST-PASS | %s | all checks passed\n", TEST_NAME);
|
||||
} else {
|
||||
fail("%s | %i out of 9 checks failed", TEST_NAME, gFailCount);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
; This file is in the UTF-8 encoding
|
||||
|
||||
[BogusSection1]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
||||
[Strings]
|
||||
|
||||
Bogus1=Bogus1
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Title Test - Испытание Δοκιμή テスト 測試 测试
|
||||
|
||||
; Comment
|
||||
|
||||
Bogus2=Bogus2
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Info Test - Испытание Δοκιμή テスト 測試 测试…
|
||||
|
||||
; Comment
|
||||
|
||||
Bogus3=Bogus3
|
||||
|
||||
; Comment
|
||||
|
||||
[BogusSection2]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
; This file is in the UTF-8 encoding
|
||||
|
||||
[BogusSection1]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
||||
[Strings]
|
||||
|
||||
Bogus1=Bogus1
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Info
|
||||
|
||||
; Comment
|
||||
|
||||
Bogus2=Bogus2
|
||||
|
||||
; Comment
|
||||
|
||||
[BogusSection2]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
; This file is in the UTF-8 encoding
|
||||
|
||||
[BogusSection1]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
||||
[Strings]
|
||||
|
||||
Bogus1=Bogus1
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Title
|
||||
|
||||
; Comment
|
||||
|
||||
Bogus2=Bogus2
|
||||
|
||||
; Comment
|
||||
|
||||
[BogusSection2]
|
||||
|
||||
; Comment
|
||||
|
||||
Title=Bogus Title
|
||||
|
||||
; Comment
|
||||
|
||||
Info=Bogus Info
|
||||
|
||||
; Comment
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"../../../../../testing/mochitest/chrome.eslintrc.js"
|
||||
]
|
||||
};
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
; 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/.
|
||||
|
||||
[DEFAULT]
|
||||
tags = appupdate
|
||||
support-files =
|
||||
utils.js
|
||||
update.sjs
|
||||
|
||||
; mochitest-chrome tests must start with "test_" and are executed in sorted
|
||||
; order and not in the order specified in the manifest.
|
||||
[test_0010_background_basic.xul]
|
||||
[test_0011_check_basic.xul]
|
||||
[test_0012_check_basic_staging.xul]
|
||||
skip-if = asan
|
||||
reason = Bug 1168003
|
||||
[test_0013_check_no_updates.xul]
|
||||
[test_0014_check_error_xml_malformed.xul]
|
||||
[test_0061_check_verifyFailPartial_noComplete.xul]
|
||||
[test_0062_check_verifyFailComplete_noPartial.xul]
|
||||
[test_0063_check_verifyFailPartialComplete.xul]
|
||||
[test_0064_check_verifyFailPartial_successComplete.xul]
|
||||
[test_0071_notify_verifyFailPartial_noComplete.xul]
|
||||
[test_0072_notify_verifyFailComplete_noPartial.xul]
|
||||
[test_0073_notify_verifyFailPartialComplete.xul]
|
||||
[test_0074_notify_verifyFailPartial_successComplete.xul]
|
||||
[test_0081_error_patchApplyFailure_partial_only.xul]
|
||||
[test_0082_error_patchApplyFailure_complete_only.xul]
|
||||
[test_0083_error_patchApplyFailure_partial_complete.xul]
|
||||
[test_0084_error_patchApplyFailure_verify_failed.xul]
|
||||
[test_0085_error_patchApplyFailure_partial_complete_staging.xul]
|
||||
skip-if = asan
|
||||
reason = Bug 1168003
|
||||
[test_0092_finishedBackground.xul]
|
||||
[test_0093_restartNotification.xul]
|
||||
[test_0094_restartNotification_remote.xul]
|
||||
[test_0095_restartNotification_remoteInvalidNumber.xul]
|
||||
[test_0096_restartNotification_stagedBackground.xul]
|
||||
skip-if = asan
|
||||
reason = Bug 1168003
|
||||
[test_0097_restartNotification_stagedServiceBackground.xul]
|
||||
skip-if = os != 'win'
|
||||
reason = only Windows has the maintenance service.
|
||||
[test_0101_background_restartNotification.xul]
|
||||
[test_0102_background_restartNotification_staging.xul]
|
||||
skip-if = asan
|
||||
reason = Bug 1168003
|
||||
[test_0103_background_restartNotification_stagingService.xul]
|
||||
skip-if = os != 'win'
|
||||
reason = only Windows has the maintenance service.
|
||||
[test_0111_neverButton_basic.xul]
|
||||
[test_0113_showNeverForVersionRemovedWithPref.xul]
|
||||
[test_0151_notify_backgroundCheckError.xul]
|
||||
[test_0152_notify_backgroundCheckOfflineRetry.xul]
|
||||
[test_0161_check_unsupported.xul]
|
||||
[test_0162_notify_unsupported.xul]
|
||||
[test_0171_check_noPerms_manual.xul]
|
||||
skip-if = os != 'win'
|
||||
reason = test must be able to prevent file deletion.
|
||||
[test_0172_notify_noPerms_manual.xul]
|
||||
skip-if = os != 'win'
|
||||
reason = test must be able to prevent file deletion.
|
||||
[test_9999_cleanup.xul]
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: basic, download, and finished"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&showPrompt=1" +
|
||||
getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.checkForBackgroundUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download, and finished"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download with staging, and finished"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check and no updates found"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_NO_UPDATES_FOUND,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?noUpdates=1";
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check and error (xml malformed)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?xmlMalformed=1";
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download, and errors (partial patch with an invalid size)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&partialPatchOnly=1" +
|
||||
"&invalidPartialSize=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download, and errors (complete patch with an invalid size)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&completePatchOnly=1" +
|
||||
"&invalidCompleteSize=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download, and errors (partial and complete patches with invalid sizes)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&invalidPartialSize=1" +
|
||||
"&invalidCompleteSize=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check, basic, download, and finished (partial patch with an invalid size and successful complete patch)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&invalidPartialSize=1" +
|
||||
getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: errors (partial patch with an invalid size)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("partial", null, null, null, "1234", null,
|
||||
STATE_DOWNLOADING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version,
|
||||
Services.appinfo.platformVersion);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_DOWNLOADING);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: errors (complete patch with an invalid size)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, "1234", null,
|
||||
STATE_DOWNLOADING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_DOWNLOADING);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: errors (partial and complete patches with invalid sizes)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("partial", null, null, null, "1234", null,
|
||||
STATE_DOWNLOADING) +
|
||||
getLocalPatchString("complete", null, null, null, "1234",
|
||||
"false");
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_DOWNLOADING);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: finishedBackground (partial patch with an invalid size and successful complete patch)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("partial", null, null, null, "1234", null,
|
||||
STATE_DOWNLOADING) +
|
||||
getLocalPatchString("complete", null, null, null, null,
|
||||
"false");
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_DOWNLOADING);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: errors (partial only patch apply failure)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_FAILED_CRC_ERROR);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: errors (complete only patch apply failure)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_FAILED_CRC_ERROR);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: error patching, download, and finished (partial failed and download complete)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERROR_PATCHING,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING,
|
||||
extraStartFunction: createContinueFile
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1",
|
||||
extraStartFunction: removeContinueFile
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
removeContinueFile();
|
||||
|
||||
// Specify the url to update.sjs with a slowDownloadMar param so the ui can
|
||||
// load before the download completes.
|
||||
let slowDownloadURL = URL_HTTP_UPDATE_XML + "?slowDownloadMar=1";
|
||||
let patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||
STATE_PENDING) +
|
||||
getLocalPatchString("complete", slowDownloadURL, null, null,
|
||||
null, "false");
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_FAILED_CRC_ERROR);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: error patching, download, and errors (partial failed and download complete verification failure)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERROR_PATCHING,
|
||||
buttonClick: "next"
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING,
|
||||
extraStartFunction: createContinueFile
|
||||
}, {
|
||||
pageid: PAGEID_ERRORS,
|
||||
buttonClick: "finish",
|
||||
extraStartFunction: removeContinueFile
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
removeContinueFile();
|
||||
|
||||
// Specify the url to update.sjs with a slowDownloadMar param so the ui can
|
||||
// load before the download completes.
|
||||
let slowDownloadURL = URL_HTTP_UPDATE_XML + "?slowDownloadMar=1";
|
||||
let patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||
STATE_PENDING) +
|
||||
getLocalPatchString("complete", slowDownloadURL, "MD5",
|
||||
null, "1234",
|
||||
"false");
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_FAILED_CRC_ERROR);
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: error patching, download with staging, and finished (partial failed and download complete), with fast MAR download"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
// This test forces the download to complete before the "next" button on the
|
||||
// errorpatching wizard page is clicked. This is done by creating the continue
|
||||
// file when the wizard loads to start the download, then clicking the "next"
|
||||
// button in the download's onStopRequest event listener.
|
||||
|
||||
const testDownloadListener = {
|
||||
onStartRequest(aRequest, aContext) { },
|
||||
|
||||
onProgress(aRequest, aContext, aProgress, aMaxProgress) { },
|
||||
|
||||
onStatus(aRequest, aContext, aStatus, aStatusText) { },
|
||||
|
||||
onStopRequest(aRequest, aContext, aStatus) {
|
||||
debugDump("clicking errorpatching page next button");
|
||||
gDocElem.getButton("next").click();
|
||||
gAUS.removeDownloadListener(this);
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIRequestObserver,
|
||||
Ci.nsIProgressEventSink])
|
||||
};
|
||||
|
||||
let TESTS = [ {
|
||||
pageid: PAGEID_ERROR_PATCHING,
|
||||
extraCheckFunction: createContinueFile
|
||||
}, {
|
||||
pageid: PAGEID_DOWNLOADING
|
||||
}, {
|
||||
pageid: PAGEID_FINISHED,
|
||||
buttonClick: "extra1",
|
||||
extraStartFunction: removeContinueFile
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
removeContinueFile();
|
||||
|
||||
// Specify the url to update.sjs with a slowDownloadMar param so the ui can
|
||||
// load before the download completes.
|
||||
let slowDownloadURL = URL_HTTP_UPDATE_XML + "?slowDownloadMar=1";
|
||||
let patches = getLocalPatchString("partial", null, null, null, null, null,
|
||||
STATE_PENDING) +
|
||||
getLocalPatchString("complete", slowDownloadURL, null, null,
|
||||
null, "false");
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, "false");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_FAILED_READ_ERROR);
|
||||
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
testPostUpdateProcessing();
|
||||
|
||||
gAUS.addDownloadListener(testDownloadListener);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: finished background"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version,
|
||||
Services.appinfo.platformVersion);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, "pending",
|
||||
"The active update should have a state of pending");
|
||||
|
||||
gUP.showUpdateDownloaded(gUpdateManager.activeUpdate);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: restart notification pref promptWaitTime"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, STATE_PENDING,
|
||||
"The active update should have a state of " + STATE_PENDING);
|
||||
|
||||
ok(gUpdateManager.activeUpdate.promptWaitTime == 1, "Checking that the " +
|
||||
"update's promptWaitTime attribute value was set from the " +
|
||||
PREF_APP_UPDATE_PROMPTWAITTIME + " preference");
|
||||
|
||||
gUP.showUpdateDownloaded(gUpdateManager.activeUpdate, true);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: restart notification xml promptWaitTime"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version, null,
|
||||
null, null, null, null, false,
|
||||
null, false, false, false, 1);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, STATE_PENDING,
|
||||
"The active update should have a state of " + STATE_PENDING);
|
||||
|
||||
ok(gUpdateManager.activeUpdate.promptWaitTime == 1, "Checking that the " +
|
||||
"update's promptWaitTime attribute value was set by the XML");
|
||||
|
||||
gUP.showUpdateDownloaded(gUpdateManager.activeUpdate, true);
|
||||
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: restart notification xml promptWaitTime with invalid number"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version,
|
||||
null, null,
|
||||
null, null, null,
|
||||
null, false, null,
|
||||
false, false,
|
||||
false, "invalidNumber");
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, STATE_PENDING,
|
||||
"The active update should have a state of " + STATE_PENDING);
|
||||
|
||||
ok(gUpdateManager.activeUpdate.promptWaitTime == 1, "Checking that the " +
|
||||
"update's promptWaitTime attribute value was set from the " +
|
||||
PREF_APP_UPDATE_PROMPTWAITTIME + " preference");
|
||||
|
||||
gUP.showUpdateDownloaded(gUpdateManager.activeUpdate, true);
|
||||
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: restart notification staged w/o service"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_APPLIED);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version,
|
||||
Services.appinfo.platformVersion);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_APPLIED);
|
||||
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_SERVICE_ENABLED, false);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, STATE_APPLIED,
|
||||
"The active update should have a state of " + STATE_APPLIED);
|
||||
|
||||
ok(gUpdateManager.activeUpdate.promptWaitTime == 1, "Checking that the " +
|
||||
"update's promptWaitTime attribute value was set from the " +
|
||||
PREF_APP_UPDATE_PROMPTWAITTIME + " preference");
|
||||
|
||||
gUpdateManager.refreshUpdateStatus();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: restart notification staged with service"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let patches = getLocalPatchString("complete", null, null, null, null, null,
|
||||
STATE_APPLIED_SVC);
|
||||
let updates = getLocalUpdateString(patches, null, null, null,
|
||||
Services.appinfo.version,
|
||||
Services.appinfo.platformVersion);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
writeStatusFile(STATE_APPLIED_SVC);
|
||||
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_SERVICE_ENABLED, true);
|
||||
|
||||
reloadUpdateManagerData();
|
||||
|
||||
is(gUpdateManager.activeUpdate.state, STATE_APPLIED_SVC,
|
||||
"The active update should have a state of " + STATE_APPLIED_SVC);
|
||||
|
||||
ok(gUpdateManager.activeUpdate.promptWaitTime == 1, "Checking that the " +
|
||||
"update's promptWaitTime attribute value was set from the " +
|
||||
PREF_APP_UPDATE_PROMPTWAITTIME + " preference");
|
||||
|
||||
gUpdateManager.refreshUpdateStatus();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: background finish with a background download"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: background finish with a background download and update staging"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: background finish with a background download and update staging and servicefs"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FINISHED_BKGRD,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
gUseTestUpdater = true;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, true);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_SERVICE_ENABLED, true);
|
||||
Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 1);
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update check and basic (never button test)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
gPrefToCheck = PREFBRANCH_APP_UPDATE_NEVER + Services.appinfo.version;
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
extraDelayedCheckFunction: checkPrefHasUserValue,
|
||||
prefHasUserValue: false,
|
||||
neverButton: true,
|
||||
buttonClick: "extra2"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showNever=1&showDetails=1" +
|
||||
getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
// add the never preference for this version to verify that checking for
|
||||
// updates clears the preference.
|
||||
Services.prefs.setBoolPref(gPrefToCheck, true)
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
function finishTest() {
|
||||
checkPrefHasUserValue(true);
|
||||
finishTestDefault();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: update available with never pref and without showNeverForVersion"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
gPrefToCheck = PREFBRANCH_APP_UPDATE_NEVER + Services.appinfo.version;
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
extraDelayedCheckFunction: checkPrefHasUserValue,
|
||||
prefHasUserValue: true,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&showPrompt=1" +
|
||||
getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
// add the never preference for this version to verify that checking for
|
||||
// updates clears the preference.
|
||||
Services.prefs.setBoolPref(gPrefToCheck, true)
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
function finishTest() {
|
||||
Services.prefs.clearUserPref(gPrefToCheck)
|
||||
finishTestDefault();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Test notification when multiple background check errors occur (bug 595455)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_ERROR_EXTRA,
|
||||
extraDelayedCheckFunction: checkErrorExtraPage,
|
||||
shouldBeHidden: false,
|
||||
displayedTextElem: "bgErrorLabel",
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?xmlMalformed=1";
|
||||
setUpdateURL(url);
|
||||
|
||||
errorsPrefObserver.init(PREF_APP_UPDATE_BACKGROUNDERRORS,
|
||||
PREF_APP_UPDATE_BACKGROUNDMAXERRORS);
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Test that an update check that fails due to being offline is performed after going online"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_FOUND_BASIC,
|
||||
buttonClick: "extra1"
|
||||
} ];
|
||||
|
||||
const NETWORK_ERROR_OFFLINE = 111;
|
||||
var gProxyPrefValue;
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_ENABLED, true);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_AUTO, false);
|
||||
|
||||
Services.io.offline = true;
|
||||
gProxyPrefValue = Services.prefs.getIntPref("network.proxy.type");
|
||||
Services.prefs.setIntPref("network.proxy.type", 0);
|
||||
|
||||
gUpdateChecker.checkForUpdates(updateCheckListener, true);
|
||||
}
|
||||
|
||||
function resetOffline() {
|
||||
Services.prefs.setIntPref("network.proxy.type", gProxyPrefValue);
|
||||
Services.io.offline = false;
|
||||
}
|
||||
|
||||
/* Update check listener */
|
||||
const updateCheckListener = {
|
||||
onProgress: function UCL_onProgress(aRequest, aPosition, aTotalSize) {
|
||||
},
|
||||
|
||||
onCheckComplete: function UCL_onCheckComplete(aRequest, aUpdates, aUpdateCount) {
|
||||
let status = aRequest.status;
|
||||
if (status == 0) {
|
||||
status = aRequest.channel.QueryInterface(Ci.nsIRequest).status;
|
||||
}
|
||||
debugDump("url = " + aRequest.channel.originalURI.spec + ", " +
|
||||
"request.status = " + status + ", " +
|
||||
"updateCount = " + aUpdateCount);
|
||||
ok(false, "Unexpected updateCheckListener::onCheckComplete called");
|
||||
},
|
||||
|
||||
onError: function UCL_onError(aRequest, aUpdate) {
|
||||
let status = aRequest.status;
|
||||
if (status == 0) {
|
||||
status = aRequest.channel.QueryInterface(Ci.nsIRequest).status;
|
||||
}
|
||||
is(status, Cr.NS_ERROR_OFFLINE,
|
||||
"checking the request status value");
|
||||
is(aUpdate.errorCode, NETWORK_ERROR_OFFLINE,
|
||||
"checking the update error code");
|
||||
debugDump("url = " + aRequest.channel.originalURI.spec + ", " +
|
||||
"request.status = " + status + ", " +
|
||||
"update.statusText = " +
|
||||
(aUpdate.statusText ? aUpdate.statusText : "null"));
|
||||
gAUS.onError(aRequest, aUpdate);
|
||||
// Use a timeout to allow the XHR to complete
|
||||
SimpleTest.executeSoon(resetOffline);
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIUpdateCheckListener])
|
||||
};
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Test checking for updates when system is no longer supported (bug 843497)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_UNSUPPORTED,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
// When checking manually the unsupported page should still be shown even if
|
||||
// it was shown previously.
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_NOTIFIEDUNSUPPORTED, true);
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?unsupported=1";
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Test notification of updates when system is no longer supported (bug 843497)"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_UNSUPPORTED,
|
||||
buttonClick: "finish"
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?unsupported=1";
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.notify(null);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: manual"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_CHECKING
|
||||
}, {
|
||||
pageid: PAGEID_MANUAL_UPDATE,
|
||||
buttonClick: "finish",
|
||||
extraCheckFunction: getWriteTestFile
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let file = getWriteTestFile();
|
||||
file.create(file.NORMAL_FILE_TYPE, 0o444);
|
||||
file.fileAttributesWin |= file.WFA_READONLY;
|
||||
file.fileAttributesWin &= ~file.WFA_READWRITE;
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1" + getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gUP.checkForUpdates();
|
||||
}
|
||||
|
||||
function getWriteTestFile() {
|
||||
let file = getAppBaseDir();
|
||||
file.append(FILE_UPDATE_TEST);
|
||||
file.QueryInterface(Ci.nsILocalFileWin);
|
||||
if (file.exists()) {
|
||||
file.fileAttributesWin |= file.WFA_READWRITE;
|
||||
file.fileAttributesWin &= ~file.WFA_READONLY;
|
||||
file.remove(true);
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Update Wizard pages: manual"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTestDefault();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
const TESTS = [ {
|
||||
pageid: PAGEID_MANUAL_UPDATE,
|
||||
buttonClick: "finish",
|
||||
extraCheckFunction: getWriteTestFile
|
||||
} ];
|
||||
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
let file = getWriteTestFile();
|
||||
file.create(file.NORMAL_FILE_TYPE, 0o444);
|
||||
file.fileAttributesWin |= file.WFA_READONLY;
|
||||
file.fileAttributesWin &= ~file.WFA_READWRITE;
|
||||
|
||||
let url = URL_HTTP_UPDATE_XML + "?showDetails=1&showPrompt=1" +
|
||||
getVersionParams();
|
||||
setUpdateURL(url);
|
||||
|
||||
gAUS.checkForBackgroundUpdates();
|
||||
}
|
||||
|
||||
function getWriteTestFile() {
|
||||
let file = getAppBaseDir();
|
||||
file.append(FILE_UPDATE_TEST);
|
||||
file.QueryInterface(Ci.nsILocalFileWin);
|
||||
if (file.exists()) {
|
||||
file.fileAttributesWin |= file.WFA_READWRITE;
|
||||
file.fileAttributesWin &= ~file.WFA_READONLY;
|
||||
file.remove(true);
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
/**
|
||||
* Removes files and preferences for previous application update tests in case
|
||||
* any of them had a fatal error. The test name ensures that it will run after
|
||||
* all other tests as long as the test naming uses the same format as the
|
||||
* existing tests.
|
||||
*/
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
|
||||
|
||||
<window title="Application Update test cleanup"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="runTest();">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
src="utils.js"/>
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
/**
|
||||
* If the application update tests left behind any of the files it uses it could
|
||||
* be a very bad thing. The purpose of this test is to prevent that from
|
||||
* happening.
|
||||
*/
|
||||
function runTest() {
|
||||
debugDump("entering");
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
if (DEBUG_AUS_TEST) {
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_LOG, true);
|
||||
}
|
||||
|
||||
closeUpdateWindow();
|
||||
|
||||
// Always leave the app.update.enabled and app.update.staging.enabled
|
||||
// preferences set to false when cleaning up.
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_ENABLED, false);
|
||||
Services.prefs.setBoolPref(PREF_APP_UPDATE_STAGING_ENABLED, false);
|
||||
|
||||
resetFiles();
|
||||
removeUpdateDirsAndFiles();
|
||||
reloadUpdateManagerData();
|
||||
|
||||
let file = getUpdatesXMLFile(true);
|
||||
ok(!file.exists(), file.path + " should not exist");
|
||||
|
||||
file = getUpdatesXMLFile(false);
|
||||
ok(!file.exists(), file.path + " should not exist");
|
||||
|
||||
let dir = getUpdatesDir();
|
||||
|
||||
file = dir.clone();
|
||||
file.append(FILE_UPDATE_STATUS);
|
||||
ok(!file.exists(), file.path + " should not exist");
|
||||
|
||||
file = dir.clone();
|
||||
file.append(FILE_UPDATE_MAR);
|
||||
ok(!file.exists(), file.path + " should not exist");
|
||||
|
||||
cleanupRestoreUpdaterBackup();
|
||||
}
|
||||
|
||||
/**
|
||||
* After all tests finish this will repeatedly attempt to restore the real
|
||||
* updater if it exists and then call finishTest after the restore is
|
||||
* successful.
|
||||
*/
|
||||
function cleanupRestoreUpdaterBackup() {
|
||||
debugDump("entering");
|
||||
|
||||
try {
|
||||
// Windows debug builds keep the updater file in use for a short period of
|
||||
// time after the updater process exits.
|
||||
restoreUpdaterBackup();
|
||||
} catch (e) {
|
||||
logTestInfo("Attempt to restore the backed up updater failed... " +
|
||||
"will try again, Exception: " + e);
|
||||
SimpleTest.executeSoon(cleanupRestoreUpdaterBackup);
|
||||
return;
|
||||
}
|
||||
|
||||
SimpleTest.executeSoon(finishTest);
|
||||
}
|
||||
|
||||
function finishTest() {
|
||||
debugDump("entering");
|
||||
|
||||
if (Services.prefs.prefHasUserValue(PREF_APP_UPDATE_LOG)) {
|
||||
Services.prefs.clearUserPref(PREF_APP_UPDATE_LOG);
|
||||
}
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test"></pre>
|
||||
</body>
|
||||
</window>
|
||||
|
|
@ -1,194 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
/**
|
||||
* Server side http server script for application update tests.
|
||||
*/
|
||||
|
||||
const { classes: Cc, interfaces: Ci } = Components;
|
||||
|
||||
const REL_PATH_DATA = "chrome/toolkit/mozapps/update/tests/data/";
|
||||
|
||||
function getTestDataFile(aFilename) {
|
||||
let file = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties).get("CurWorkD", Ci.nsILocalFile);
|
||||
let pathParts = REL_PATH_DATA.split("/");
|
||||
for (let i = 0; i < pathParts.length; ++i) {
|
||||
file.append(pathParts[i]);
|
||||
}
|
||||
if (aFilename) {
|
||||
file.append(aFilename);
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
function loadHelperScript() {
|
||||
let scriptFile = getTestDataFile("sharedUpdateXML.js");
|
||||
let io = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService2);
|
||||
let scriptSpec = io.newFileURI(scriptFile).spec;
|
||||
let scriptloader = Cc["@mozilla.org/moz/jssubscript-loader;1"].
|
||||
getService(Ci.mozIJSSubScriptLoader);
|
||||
scriptloader.loadSubScript(scriptSpec, this);
|
||||
}
|
||||
loadHelperScript();
|
||||
|
||||
const URL_HOST = "http://example.com";
|
||||
const URL_PATH_UPDATE_XML = "/chrome/toolkit/mozapps/update/tests/chrome/update.sjs";
|
||||
const URL_HTTP_UPDATE_SJS = URL_HOST + URL_PATH_UPDATE_XML;
|
||||
const SERVICE_URL = URL_HOST + "/" + REL_PATH_DATA + FILE_SIMPLE_MAR;
|
||||
|
||||
const SLOW_MAR_DOWNLOAD_INTERVAL = 100;
|
||||
var gTimer;
|
||||
|
||||
function handleRequest(aRequest, aResponse) {
|
||||
let params = { };
|
||||
if (aRequest.queryString) {
|
||||
params = parseQueryString(aRequest.queryString);
|
||||
}
|
||||
|
||||
let statusCode = params.statusCode ? parseInt(params.statusCode) : 200;
|
||||
let statusReason = params.statusReason ? params.statusReason : "OK";
|
||||
aResponse.setStatusLine(aRequest.httpVersion, statusCode, statusReason);
|
||||
aResponse.setHeader("Cache-Control", "no-cache", false);
|
||||
|
||||
// When a mar download is started by the update service it can finish
|
||||
// downloading before the ui has loaded. By specifying a serviceURL for the
|
||||
// update patch that points to this file and has a slowDownloadMar param the
|
||||
// mar will be downloaded asynchronously which will allow the ui to load
|
||||
// before the download completes.
|
||||
if (params.slowDownloadMar) {
|
||||
aResponse.processAsync();
|
||||
aResponse.setHeader("Content-Type", "binary/octet-stream");
|
||||
aResponse.setHeader("Content-Length", SIZE_SIMPLE_MAR);
|
||||
var continueFile = getTestDataFile("continue");
|
||||
var contents = readFileBytes(getTestDataFile(FILE_SIMPLE_MAR));
|
||||
gTimer = Cc["@mozilla.org/timer;1"].
|
||||
createInstance(Ci.nsITimer);
|
||||
gTimer.initWithCallback(function(aTimer) {
|
||||
if (continueFile.exists()) {
|
||||
gTimer.cancel();
|
||||
aResponse.write(contents);
|
||||
aResponse.finish();
|
||||
}
|
||||
}, SLOW_MAR_DOWNLOAD_INTERVAL, Ci.nsITimer.TYPE_REPEATING_SLACK);
|
||||
return;
|
||||
}
|
||||
|
||||
if (params.uiURL) {
|
||||
let remoteType = "";
|
||||
if (!params.remoteNoTypeAttr && params.uiURL == "BILLBOARD") {
|
||||
remoteType = " " + params.uiURL.toLowerCase() + "=\"1\"";
|
||||
}
|
||||
aResponse.write("<html><head><meta http-equiv=\"content-type\" content=" +
|
||||
"\"text/html; charset=utf-8\"></head><body" +
|
||||
remoteType + ">" + params.uiURL +
|
||||
"<br><br>this is a test mar that will not affect your " +
|
||||
"build.</body></html>");
|
||||
return;
|
||||
}
|
||||
|
||||
if (params.xmlMalformed) {
|
||||
aResponse.write("xml error");
|
||||
return;
|
||||
}
|
||||
|
||||
if (params.noUpdates) {
|
||||
aResponse.write(getRemoteUpdatesXMLString(""));
|
||||
return;
|
||||
}
|
||||
|
||||
if (params.unsupported) {
|
||||
aResponse.write(getRemoteUpdatesXMLString(" <update type=\"major\" " +
|
||||
"unsupported=\"true\" " +
|
||||
"detailsURL=\"" + URL_HOST +
|
||||
"\"></update>\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
let size;
|
||||
let patches = "";
|
||||
if (!params.partialPatchOnly) {
|
||||
size = SIZE_SIMPLE_MAR + (params.invalidCompleteSize ? "1" : "");
|
||||
patches += getRemotePatchString("complete", SERVICE_URL, "SHA512",
|
||||
SHA512_HASH_SIMPLE_MAR, size);
|
||||
}
|
||||
|
||||
if (!params.completePatchOnly) {
|
||||
size = SIZE_SIMPLE_MAR + (params.invalidPartialSize ? "1" : "");
|
||||
patches += getRemotePatchString("partial", SERVICE_URL, "SHA512",
|
||||
SHA512_HASH_SIMPLE_MAR, size);
|
||||
}
|
||||
|
||||
let type = params.type ? params.type : "major";
|
||||
let name = params.name ? params.name : "App Update Test";
|
||||
let appVersion = params.appVersion ? params.appVersion : "999999.9";
|
||||
let displayVersion = params.displayVersion ? params.displayVersion
|
||||
: "version " + appVersion;
|
||||
let buildID = params.buildID ? params.buildID : "01234567890123";
|
||||
// XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
|
||||
// let detailsURL = params.showDetails ? URL_HTTP_UPDATE_SJS + "?uiURL=DETAILS" : null;
|
||||
let detailsURL = URL_HTTP_UPDATE_SJS + "?uiURL=DETAILS";
|
||||
let showPrompt = params.showPrompt ? "true" : null;
|
||||
let showNever = params.showNever ? "true" : null;
|
||||
let promptWaitTime = params.promptWaitTime ? params.promptWaitTime : null;
|
||||
|
||||
let updates = getRemoteUpdateString(patches, type, "App Update Test",
|
||||
displayVersion, appVersion, buildID,
|
||||
detailsURL, showPrompt, showNever,
|
||||
promptWaitTime);
|
||||
aResponse.write(getRemoteUpdatesXMLString(updates));
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to create a JS object representing the url parameters from
|
||||
* the request's queryString.
|
||||
*
|
||||
* @param aQueryString
|
||||
* The request's query string.
|
||||
* @return A JS object representing the url parameters from the request's
|
||||
* queryString.
|
||||
*/
|
||||
function parseQueryString(aQueryString) {
|
||||
let paramArray = aQueryString.split("&");
|
||||
let regex = /^([^=]+)=(.*)$/;
|
||||
let params = {};
|
||||
for (let i = 0, sz = paramArray.length; i < sz; i++) {
|
||||
let match = regex.exec(paramArray[i]);
|
||||
if (!match) {
|
||||
throw "Bad parameter in queryString! '" + paramArray[i] + "'";
|
||||
}
|
||||
params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
|
||||
}
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the binary contents of a file and returns it as a string.
|
||||
*
|
||||
* @param aFile
|
||||
* The file to read from.
|
||||
* @return The contents of the file as a string.
|
||||
*/
|
||||
function readFileBytes(aFile) {
|
||||
let fis = Cc["@mozilla.org/network/file-input-stream;1"].
|
||||
createInstance(Ci.nsIFileInputStream);
|
||||
fis.init(aFile, -1, -1, false);
|
||||
let bis = Cc["@mozilla.org/binaryinputstream;1"].
|
||||
createInstance(Ci.nsIBinaryInputStream);
|
||||
bis.setInputStream(fis);
|
||||
let data = [];
|
||||
let count = fis.available();
|
||||
while (count > 0) {
|
||||
let bytes = bis.readByteArray(Math.min(65535, count));
|
||||
data.push(String.fromCharCode.apply(null, bytes));
|
||||
count -= bytes.length;
|
||||
if (bytes.length == 0) {
|
||||
throw "Nothing read from input stream!";
|
||||
}
|
||||
}
|
||||
data.join('');
|
||||
fis.close();
|
||||
return data.toString();
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 878 B |
|
|
@ -1,332 +0,0 @@
|
|||
UPDATE TYPE complete
|
||||
PREPARE REMOVEFILE Contents/Resources/searchplugins/searchpluginstext0
|
||||
PREPARE REMOVEFILE Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
PREPARE REMOVEFILE Contents/Resources/removed-files
|
||||
PREPARE REMOVEFILE Contents/Resources/precomplete
|
||||
PREPARE REMOVEFILE Contents/Resources/2/20/20text0
|
||||
PREPARE REMOVEFILE Contents/Resources/2/20/20png0.png
|
||||
PREPARE REMOVEFILE Contents/Resources/0/0exe0.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/0/00/00text0
|
||||
PREPARE REMOVEFILE Contents/MacOS/exe0.exe
|
||||
PREPARE REMOVEDIR Contents/Resources/searchplugins/
|
||||
PREPARE REMOVEDIR Contents/Resources/defaults/pref/
|
||||
PREPARE REMOVEDIR Contents/Resources/defaults/
|
||||
PREPARE REMOVEDIR Contents/Resources/2/20/
|
||||
PREPARE REMOVEDIR Contents/Resources/2/
|
||||
PREPARE REMOVEDIR Contents/Resources/0/00/
|
||||
PREPARE REMOVEDIR Contents/Resources/0/
|
||||
PREPARE REMOVEDIR Contents/Resources/
|
||||
PREPARE REMOVEDIR Contents/MacOS/
|
||||
PREPARE REMOVEDIR Contents/
|
||||
PREPARE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
PREPARE ADD Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
PREPARE ADD Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD Contents/Resources/removed-files
|
||||
PREPARE ADD Contents/Resources/precomplete
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE ADD Contents/Resources/1/10/10text0
|
||||
PREPARE ADD Contents/Resources/0/0exe0.exe
|
||||
PREPARE ADD Contents/Resources/0/00/00text1
|
||||
PREPARE ADD Contents/Resources/0/00/00text0
|
||||
PREPARE ADD Contents/Resources/0/00/00png0.png
|
||||
PREPARE ADD Contents/MacOS/exe0.exe
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/98/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/970/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/971/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/96/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/93/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/92/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/91/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/88/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/870/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/871/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/86/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/83/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/82/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/81/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/70/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/71/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/
|
||||
PREPARE REMOVEDIR Contents/Resources/6/
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5test.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEDIR Contents/Resources/5/
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text1
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text0
|
||||
PREPARE REMOVEDIR Contents/Resources/4/
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text1
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/searchplugins/searchpluginstext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
EXECUTE REMOVEFILE Contents/Resources/removed-files
|
||||
EXECUTE REMOVEFILE Contents/Resources/precomplete
|
||||
EXECUTE REMOVEFILE Contents/Resources/2/20/20text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/2/20/20png0.png
|
||||
EXECUTE REMOVEFILE Contents/Resources/0/0exe0.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/0/00/00text0
|
||||
EXECUTE REMOVEFILE Contents/MacOS/exe0.exe
|
||||
EXECUTE REMOVEDIR Contents/Resources/searchplugins/
|
||||
EXECUTE REMOVEDIR Contents/Resources/defaults/pref/
|
||||
EXECUTE REMOVEDIR Contents/Resources/defaults/
|
||||
EXECUTE REMOVEDIR Contents/Resources/2/20/
|
||||
EXECUTE REMOVEDIR Contents/Resources/2/
|
||||
EXECUTE REMOVEDIR Contents/Resources/0/00/
|
||||
EXECUTE REMOVEDIR Contents/Resources/0/
|
||||
EXECUTE REMOVEDIR Contents/Resources/
|
||||
EXECUTE REMOVEDIR Contents/MacOS/
|
||||
EXECUTE REMOVEDIR Contents/
|
||||
EXECUTE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
EXECUTE ADD Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
EXECUTE ADD Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD Contents/Resources/removed-files
|
||||
EXECUTE ADD Contents/Resources/precomplete
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE ADD Contents/Resources/1/10/10text0
|
||||
EXECUTE ADD Contents/Resources/0/0exe0.exe
|
||||
EXECUTE ADD Contents/Resources/0/00/00text1
|
||||
EXECUTE ADD Contents/Resources/0/00/00text0
|
||||
EXECUTE ADD Contents/Resources/0/00/00png0.png
|
||||
EXECUTE ADD Contents/MacOS/exe0.exe
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/99/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/99/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/98/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/970/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/971/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/96/96text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/96/96text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/96/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/95/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/95/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/94/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/94/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/93/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/92/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/91/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/90/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/90/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/89/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/89/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/88/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/870/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/871/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/86/86text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/86/86text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/86/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/85/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/85/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/84/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/84/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/83/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/82/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/81/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/80/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/80/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/70/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/71/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/7text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/7text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/
|
||||
EXECUTE REMOVEDIR Contents/Resources/6/
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5test.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text0
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text1
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEDIR Contents/Resources/5/
|
||||
EXECUTE REMOVEFILE Contents/Resources/4/4text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/4/4text0
|
||||
EXECUTE REMOVEDIR Contents/Resources/4/
|
||||
EXECUTE REMOVEFILE Contents/Resources/3/3text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/3/3text0
|
||||
FINISH REMOVEFILE Contents/Resources/searchplugins/searchpluginstext0
|
||||
FINISH REMOVEFILE Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
FINISH REMOVEFILE Contents/Resources/removed-files
|
||||
FINISH REMOVEFILE Contents/Resources/precomplete
|
||||
FINISH REMOVEFILE Contents/Resources/2/20/20text0
|
||||
FINISH REMOVEFILE Contents/Resources/2/20/20png0.png
|
||||
FINISH REMOVEFILE Contents/Resources/0/0exe0.exe
|
||||
FINISH REMOVEFILE Contents/Resources/0/00/00text0
|
||||
FINISH REMOVEFILE Contents/MacOS/exe0.exe
|
||||
FINISH REMOVEDIR Contents/Resources/searchplugins/
|
||||
removing directory: Contents/Resources/searchplugins/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/defaults/pref/
|
||||
removing directory: Contents/Resources/defaults/pref/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/defaults/
|
||||
removing directory: Contents/Resources/defaults/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/2/20/
|
||||
FINISH REMOVEDIR Contents/Resources/2/
|
||||
FINISH REMOVEDIR Contents/Resources/0/00/
|
||||
removing directory: Contents/Resources/0/00/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/0/
|
||||
removing directory: Contents/Resources/0/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/
|
||||
removing directory: Contents/Resources/, rv: 0
|
||||
FINISH REMOVEDIR Contents/MacOS/
|
||||
removing directory: Contents/MacOS/, rv: 0
|
||||
FINISH REMOVEDIR Contents/
|
||||
removing directory: Contents/, rv: 0
|
||||
FINISH ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
FINISH ADD Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
FINISH ADD Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
FINISH ADD Contents/Resources/removed-files
|
||||
FINISH ADD Contents/Resources/precomplete
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH ADD Contents/Resources/1/10/10text0
|
||||
FINISH ADD Contents/Resources/0/0exe0.exe
|
||||
FINISH ADD Contents/Resources/0/00/00text1
|
||||
FINISH ADD Contents/Resources/0/00/00text0
|
||||
FINISH ADD Contents/Resources/0/00/00png0.png
|
||||
FINISH ADD Contents/MacOS/exe0.exe
|
||||
FINISH REMOVEDIR Contents/Resources/9/99/
|
||||
FINISH REMOVEDIR Contents/Resources/9/99/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/98/
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/970/
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/971/
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text0
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text1
|
||||
FINISH REMOVEDIR Contents/Resources/9/96/
|
||||
FINISH REMOVEDIR Contents/Resources/9/95/
|
||||
FINISH REMOVEDIR Contents/Resources/9/95/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/94/
|
||||
FINISH REMOVEDIR Contents/Resources/9/94/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/93/
|
||||
FINISH REMOVEDIR Contents/Resources/9/92/
|
||||
removing directory: Contents/Resources/9/92/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/9/91/
|
||||
removing directory: Contents/Resources/9/91/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/9/90/
|
||||
FINISH REMOVEDIR Contents/Resources/9/90/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/89/
|
||||
FINISH REMOVEDIR Contents/Resources/8/89/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/88/
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/870/
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/871/
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text0
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text1
|
||||
FINISH REMOVEDIR Contents/Resources/8/86/
|
||||
FINISH REMOVEDIR Contents/Resources/8/85/
|
||||
FINISH REMOVEDIR Contents/Resources/8/85/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/84/
|
||||
FINISH REMOVEDIR Contents/Resources/8/84/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/83/
|
||||
FINISH REMOVEDIR Contents/Resources/8/82/
|
||||
removing directory: Contents/Resources/8/82/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/8/81/
|
||||
removing directory: Contents/Resources/8/81/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/8/80/
|
||||
FINISH REMOVEDIR Contents/Resources/8/80/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/7/70/
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/7/71/
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text0
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text1
|
||||
FINISH REMOVEDIR Contents/Resources/7/
|
||||
FINISH REMOVEDIR Contents/Resources/6/
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text1
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text0
|
||||
FINISH REMOVEFILE Contents/Resources/5/5test.exe
|
||||
FINISH REMOVEDIR Contents/Resources/5/
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text1
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text0
|
||||
FINISH REMOVEDIR Contents/Resources/4/
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text1
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text0
|
||||
succeeded
|
||||
calling QuitProgressUI
|
||||
|
|
@ -1,320 +0,0 @@
|
|||
UPDATE TYPE complete
|
||||
PREPARE REMOVEFILE searchplugins/searchpluginstext0
|
||||
PREPARE REMOVEFILE searchplugins/searchpluginspng0.png
|
||||
PREPARE REMOVEFILE removed-files
|
||||
PREPARE REMOVEFILE precomplete
|
||||
PREPARE REMOVEFILE exe0.exe
|
||||
PREPARE REMOVEFILE 2/20/20text0
|
||||
PREPARE REMOVEFILE 2/20/20png0.png
|
||||
PREPARE REMOVEFILE 0/0exe0.exe
|
||||
PREPARE REMOVEFILE 0/00/00text0
|
||||
PREPARE REMOVEDIR searchplugins/
|
||||
PREPARE REMOVEDIR defaults/pref/
|
||||
PREPARE REMOVEDIR defaults/
|
||||
PREPARE REMOVEDIR 2/20/
|
||||
PREPARE REMOVEDIR 2/
|
||||
PREPARE REMOVEDIR 0/00/
|
||||
PREPARE REMOVEDIR 0/
|
||||
PREPARE ADD searchplugins/searchpluginstext0
|
||||
PREPARE ADD searchplugins/searchpluginspng1.png
|
||||
PREPARE ADD searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD removed-files
|
||||
PREPARE ADD precomplete
|
||||
PREPARE ADD exe0.exe
|
||||
PREPARE ADD distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE ADD distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE ADD distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE ADD distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE ADD distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE ADD 1/10/10text0
|
||||
PREPARE ADD 0/0exe0.exe
|
||||
PREPARE ADD 0/00/00text1
|
||||
PREPARE ADD 0/00/00text0
|
||||
PREPARE ADD 0/00/00png0.png
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/98/
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/970/
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/971/
|
||||
PREPARE REMOVEDIR 9/97/
|
||||
PREPARE REMOVEFILE 9/96/96text0
|
||||
PREPARE REMOVEFILE 9/96/96text1
|
||||
PREPARE REMOVEDIR 9/96/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/93/
|
||||
PREPARE REMOVEDIR 9/92/
|
||||
PREPARE REMOVEDIR 9/91/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/88/
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/870/
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/871/
|
||||
PREPARE REMOVEDIR 8/87/
|
||||
PREPARE REMOVEFILE 8/86/86text0
|
||||
PREPARE REMOVEFILE 8/86/86text1
|
||||
PREPARE REMOVEDIR 8/86/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/83/
|
||||
PREPARE REMOVEDIR 8/82/
|
||||
PREPARE REMOVEDIR 8/81/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEFILE 7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/70/7xtext0
|
||||
PREPARE REMOVEFILE 7/70/7xtext1
|
||||
PREPARE REMOVEDIR 7/70/
|
||||
PREPARE REMOVEFILE 7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/71/7xtext0
|
||||
PREPARE REMOVEFILE 7/71/7xtext1
|
||||
PREPARE REMOVEDIR 7/71/
|
||||
PREPARE REMOVEFILE 7/7text0
|
||||
PREPARE REMOVEFILE 7/7text1
|
||||
PREPARE REMOVEDIR 7/
|
||||
PREPARE REMOVEDIR 6/
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5test.exe
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEDIR 5/
|
||||
PREPARE REMOVEFILE 4/4text1
|
||||
PREPARE REMOVEFILE 4/4text0
|
||||
PREPARE REMOVEDIR 4/
|
||||
PREPARE REMOVEFILE 3/3text1
|
||||
PREPARE REMOVEFILE 3/3text0
|
||||
EXECUTE REMOVEFILE searchplugins/searchpluginstext0
|
||||
EXECUTE REMOVEFILE searchplugins/searchpluginspng0.png
|
||||
EXECUTE REMOVEFILE removed-files
|
||||
EXECUTE REMOVEFILE precomplete
|
||||
EXECUTE REMOVEFILE exe0.exe
|
||||
EXECUTE REMOVEFILE 2/20/20text0
|
||||
EXECUTE REMOVEFILE 2/20/20png0.png
|
||||
EXECUTE REMOVEFILE 0/0exe0.exe
|
||||
EXECUTE REMOVEFILE 0/00/00text0
|
||||
EXECUTE REMOVEDIR searchplugins/
|
||||
EXECUTE REMOVEDIR defaults/pref/
|
||||
EXECUTE REMOVEDIR defaults/
|
||||
EXECUTE REMOVEDIR 2/20/
|
||||
EXECUTE REMOVEDIR 2/
|
||||
EXECUTE REMOVEDIR 0/00/
|
||||
EXECUTE REMOVEDIR 0/
|
||||
EXECUTE ADD searchplugins/searchpluginstext0
|
||||
EXECUTE ADD searchplugins/searchpluginspng1.png
|
||||
EXECUTE ADD searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD removed-files
|
||||
EXECUTE ADD precomplete
|
||||
EXECUTE ADD exe0.exe
|
||||
EXECUTE ADD distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE ADD distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE ADD distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE ADD distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE ADD distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE ADD 1/10/10text0
|
||||
EXECUTE ADD 0/0exe0.exe
|
||||
EXECUTE ADD 0/00/00text1
|
||||
EXECUTE ADD 0/00/00text0
|
||||
EXECUTE ADD 0/00/00png0.png
|
||||
EXECUTE REMOVEDIR 9/99/
|
||||
EXECUTE REMOVEDIR 9/99/
|
||||
EXECUTE REMOVEDIR 9/98/
|
||||
EXECUTE REMOVEFILE 9/97/970/97xtext0
|
||||
EXECUTE REMOVEFILE 9/97/970/97xtext1
|
||||
EXECUTE REMOVEDIR 9/97/970/
|
||||
EXECUTE REMOVEFILE 9/97/971/97xtext0
|
||||
EXECUTE REMOVEFILE 9/97/971/97xtext1
|
||||
EXECUTE REMOVEDIR 9/97/971/
|
||||
EXECUTE REMOVEDIR 9/97/
|
||||
EXECUTE REMOVEFILE 9/96/96text0
|
||||
EXECUTE REMOVEFILE 9/96/96text1
|
||||
EXECUTE REMOVEDIR 9/96/
|
||||
EXECUTE REMOVEDIR 9/95/
|
||||
EXECUTE REMOVEDIR 9/95/
|
||||
EXECUTE REMOVEDIR 9/94/
|
||||
EXECUTE REMOVEDIR 9/94/
|
||||
EXECUTE REMOVEDIR 9/93/
|
||||
EXECUTE REMOVEDIR 9/92/
|
||||
EXECUTE REMOVEDIR 9/91/
|
||||
EXECUTE REMOVEDIR 9/90/
|
||||
EXECUTE REMOVEDIR 9/90/
|
||||
EXECUTE REMOVEDIR 8/89/
|
||||
EXECUTE REMOVEDIR 8/89/
|
||||
EXECUTE REMOVEDIR 8/88/
|
||||
EXECUTE REMOVEFILE 8/87/870/87xtext0
|
||||
EXECUTE REMOVEFILE 8/87/870/87xtext1
|
||||
EXECUTE REMOVEDIR 8/87/870/
|
||||
EXECUTE REMOVEFILE 8/87/871/87xtext0
|
||||
EXECUTE REMOVEFILE 8/87/871/87xtext1
|
||||
EXECUTE REMOVEDIR 8/87/871/
|
||||
EXECUTE REMOVEDIR 8/87/
|
||||
EXECUTE REMOVEFILE 8/86/86text0
|
||||
EXECUTE REMOVEFILE 8/86/86text1
|
||||
EXECUTE REMOVEDIR 8/86/
|
||||
EXECUTE REMOVEDIR 8/85/
|
||||
EXECUTE REMOVEDIR 8/85/
|
||||
EXECUTE REMOVEDIR 8/84/
|
||||
EXECUTE REMOVEDIR 8/84/
|
||||
EXECUTE REMOVEDIR 8/83/
|
||||
EXECUTE REMOVEDIR 8/82/
|
||||
EXECUTE REMOVEDIR 8/81/
|
||||
EXECUTE REMOVEDIR 8/80/
|
||||
EXECUTE REMOVEDIR 8/80/
|
||||
EXECUTE REMOVEFILE 7/70/7xtest.exe
|
||||
EXECUTE REMOVEFILE 7/70/7xtext0
|
||||
EXECUTE REMOVEFILE 7/70/7xtext1
|
||||
EXECUTE REMOVEDIR 7/70/
|
||||
EXECUTE REMOVEFILE 7/71/7xtest.exe
|
||||
EXECUTE REMOVEFILE 7/71/7xtext0
|
||||
EXECUTE REMOVEFILE 7/71/7xtext1
|
||||
EXECUTE REMOVEDIR 7/71/
|
||||
EXECUTE REMOVEFILE 7/7text0
|
||||
EXECUTE REMOVEFILE 7/7text1
|
||||
EXECUTE REMOVEDIR 7/
|
||||
EXECUTE REMOVEDIR 6/
|
||||
EXECUTE REMOVEFILE 5/5text1
|
||||
EXECUTE REMOVEFILE 5/5text0
|
||||
EXECUTE REMOVEFILE 5/5test.exe
|
||||
EXECUTE REMOVEFILE 5/5text0
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEFILE 5/5text1
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEDIR 5/
|
||||
EXECUTE REMOVEFILE 4/4text1
|
||||
EXECUTE REMOVEFILE 4/4text0
|
||||
EXECUTE REMOVEDIR 4/
|
||||
EXECUTE REMOVEFILE 3/3text1
|
||||
EXECUTE REMOVEFILE 3/3text0
|
||||
FINISH REMOVEFILE searchplugins/searchpluginstext0
|
||||
FINISH REMOVEFILE searchplugins/searchpluginspng0.png
|
||||
FINISH REMOVEFILE removed-files
|
||||
FINISH REMOVEFILE precomplete
|
||||
FINISH REMOVEFILE exe0.exe
|
||||
FINISH REMOVEFILE 2/20/20text0
|
||||
FINISH REMOVEFILE 2/20/20png0.png
|
||||
FINISH REMOVEFILE 0/0exe0.exe
|
||||
FINISH REMOVEFILE 0/00/00text0
|
||||
FINISH REMOVEDIR searchplugins/
|
||||
removing directory: searchplugins/, rv: 0
|
||||
FINISH REMOVEDIR defaults/pref/
|
||||
removing directory: defaults/pref/, rv: 0
|
||||
FINISH REMOVEDIR defaults/
|
||||
removing directory: defaults/, rv: 0
|
||||
FINISH REMOVEDIR 2/20/
|
||||
FINISH REMOVEDIR 2/
|
||||
FINISH REMOVEDIR 0/00/
|
||||
removing directory: 0/00/, rv: 0
|
||||
FINISH REMOVEDIR 0/
|
||||
removing directory: 0/, rv: 0
|
||||
FINISH ADD searchplugins/searchpluginstext0
|
||||
FINISH ADD searchplugins/searchpluginspng1.png
|
||||
FINISH ADD searchplugins/searchpluginspng0.png
|
||||
FINISH ADD removed-files
|
||||
FINISH ADD precomplete
|
||||
FINISH ADD exe0.exe
|
||||
FINISH ADD distribution/extensions/extensions1/extensions1text0
|
||||
FINISH ADD distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH ADD distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD distribution/extensions/extensions0/extensions0text0
|
||||
FINISH ADD distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH ADD distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH ADD 1/10/10text0
|
||||
FINISH ADD 0/0exe0.exe
|
||||
FINISH ADD 0/00/00text1
|
||||
FINISH ADD 0/00/00text0
|
||||
FINISH ADD 0/00/00png0.png
|
||||
FINISH REMOVEDIR 9/99/
|
||||
FINISH REMOVEDIR 9/99/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/98/
|
||||
FINISH REMOVEFILE 9/97/970/97xtext0
|
||||
FINISH REMOVEFILE 9/97/970/97xtext1
|
||||
FINISH REMOVEDIR 9/97/970/
|
||||
FINISH REMOVEFILE 9/97/971/97xtext0
|
||||
FINISH REMOVEFILE 9/97/971/97xtext1
|
||||
FINISH REMOVEDIR 9/97/971/
|
||||
FINISH REMOVEDIR 9/97/
|
||||
FINISH REMOVEFILE 9/96/96text0
|
||||
FINISH REMOVEFILE 9/96/96text1
|
||||
FINISH REMOVEDIR 9/96/
|
||||
FINISH REMOVEDIR 9/95/
|
||||
FINISH REMOVEDIR 9/95/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/94/
|
||||
FINISH REMOVEDIR 9/94/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/93/
|
||||
FINISH REMOVEDIR 9/92/
|
||||
removing directory: 9/92/, rv: 0
|
||||
FINISH REMOVEDIR 9/91/
|
||||
removing directory: 9/91/, rv: 0
|
||||
FINISH REMOVEDIR 9/90/
|
||||
FINISH REMOVEDIR 9/90/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/89/
|
||||
FINISH REMOVEDIR 8/89/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/88/
|
||||
FINISH REMOVEFILE 8/87/870/87xtext0
|
||||
FINISH REMOVEFILE 8/87/870/87xtext1
|
||||
FINISH REMOVEDIR 8/87/870/
|
||||
FINISH REMOVEFILE 8/87/871/87xtext0
|
||||
FINISH REMOVEFILE 8/87/871/87xtext1
|
||||
FINISH REMOVEDIR 8/87/871/
|
||||
FINISH REMOVEDIR 8/87/
|
||||
FINISH REMOVEFILE 8/86/86text0
|
||||
FINISH REMOVEFILE 8/86/86text1
|
||||
FINISH REMOVEDIR 8/86/
|
||||
FINISH REMOVEDIR 8/85/
|
||||
FINISH REMOVEDIR 8/85/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/84/
|
||||
FINISH REMOVEDIR 8/84/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/83/
|
||||
FINISH REMOVEDIR 8/82/
|
||||
removing directory: 8/82/, rv: 0
|
||||
FINISH REMOVEDIR 8/81/
|
||||
removing directory: 8/81/, rv: 0
|
||||
FINISH REMOVEDIR 8/80/
|
||||
FINISH REMOVEDIR 8/80/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEFILE 7/70/7xtest.exe
|
||||
FINISH REMOVEFILE 7/70/7xtext0
|
||||
FINISH REMOVEFILE 7/70/7xtext1
|
||||
FINISH REMOVEDIR 7/70/
|
||||
FINISH REMOVEFILE 7/71/7xtest.exe
|
||||
FINISH REMOVEFILE 7/71/7xtext0
|
||||
FINISH REMOVEFILE 7/71/7xtext1
|
||||
FINISH REMOVEDIR 7/71/
|
||||
FINISH REMOVEFILE 7/7text0
|
||||
FINISH REMOVEFILE 7/7text1
|
||||
FINISH REMOVEDIR 7/
|
||||
FINISH REMOVEDIR 6/
|
||||
FINISH REMOVEFILE 5/5text1
|
||||
FINISH REMOVEFILE 5/5text0
|
||||
FINISH REMOVEFILE 5/5test.exe
|
||||
FINISH REMOVEDIR 5/
|
||||
FINISH REMOVEFILE 4/4text1
|
||||
FINISH REMOVEFILE 4/4text0
|
||||
FINISH REMOVEDIR 4/
|
||||
FINISH REMOVEFILE 3/3text1
|
||||
FINISH REMOVEFILE 3/3text0
|
||||
succeeded
|
||||
calling QuitProgressUI
|
||||
Binary file not shown.
|
|
@ -1,18 +0,0 @@
|
|||
remove "searchplugins/searchpluginstext0"
|
||||
remove "searchplugins/searchpluginspng1.png"
|
||||
remove "searchplugins/searchpluginspng0.png"
|
||||
remove "removed-files"
|
||||
remove "precomplete"
|
||||
remove "exe0.exe"
|
||||
remove "1/10/10text0"
|
||||
remove "0/0exe0.exe"
|
||||
remove "0/00/00text1"
|
||||
remove "0/00/00text0"
|
||||
remove "0/00/00png0.png"
|
||||
rmdir "searchplugins/"
|
||||
rmdir "defaults/pref/"
|
||||
rmdir "defaults/"
|
||||
rmdir "1/10/"
|
||||
rmdir "1/"
|
||||
rmdir "0/00/"
|
||||
rmdir "0/"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
remove "Contents/Resources/searchplugins/searchpluginstext0"
|
||||
remove "Contents/Resources/searchplugins/searchpluginspng1.png"
|
||||
remove "Contents/Resources/searchplugins/searchpluginspng0.png"
|
||||
remove "Contents/Resources/removed-files"
|
||||
remove "Contents/Resources/precomplete"
|
||||
remove "Contents/Resources/1/10/10text0"
|
||||
remove "Contents/Resources/0/0exe0.exe"
|
||||
remove "Contents/Resources/0/00/00text1"
|
||||
remove "Contents/Resources/0/00/00text0"
|
||||
remove "Contents/Resources/0/00/00png0.png"
|
||||
remove "Contents/MacOS/exe0.exe"
|
||||
rmdir "Contents/Resources/searchplugins/"
|
||||
rmdir "Contents/Resources/defaults/pref/"
|
||||
rmdir "Contents/Resources/defaults/"
|
||||
rmdir "Contents/Resources/1/10/"
|
||||
rmdir "Contents/Resources/1/"
|
||||
rmdir "Contents/Resources/0/00/"
|
||||
rmdir "Contents/Resources/0/"
|
||||
rmdir "Contents/Resources/"
|
||||
rmdir "Contents/MacOS/"
|
||||
rmdir "Contents/"
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
text0
|
||||
text1
|
||||
3/3text0
|
||||
3/3text1
|
||||
4/exe0.exe
|
||||
4/4text0
|
||||
4/4text1
|
||||
4/
|
||||
5/5text0
|
||||
5/5text1
|
||||
5/*
|
||||
6/
|
||||
7/*
|
||||
8/80/
|
||||
8/81/
|
||||
8/82/
|
||||
8/83/
|
||||
8/84/
|
||||
8/85/*
|
||||
8/86/*
|
||||
8/87/*
|
||||
8/88/*
|
||||
8/89/*
|
||||
8/80/
|
||||
8/84/*
|
||||
8/85/*
|
||||
8/89/
|
||||
9/90/
|
||||
9/91/
|
||||
9/92/
|
||||
9/93/
|
||||
9/94/
|
||||
9/95/*
|
||||
9/96/*
|
||||
9/97/*
|
||||
9/98/*
|
||||
9/99/*
|
||||
9/90/
|
||||
9/94/*
|
||||
9/95/*
|
||||
9/99/
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
Contents/Resources/text0
|
||||
Contents/Resources/text1
|
||||
Contents/Resources/3/3text0
|
||||
Contents/Resources/3/3text1
|
||||
Contents/Resources/4/exe0.exe
|
||||
Contents/Resources/4/4text0
|
||||
Contents/Resources/4/4text1
|
||||
Contents/Resources/4/
|
||||
Contents/Resources/5/5text0
|
||||
Contents/Resources/5/5text1
|
||||
Contents/Resources/5/*
|
||||
Contents/Resources/6/
|
||||
Contents/Resources/7/*
|
||||
Contents/Resources/8/80/
|
||||
Contents/Resources/8/81/
|
||||
Contents/Resources/8/82/
|
||||
Contents/Resources/8/83/
|
||||
Contents/Resources/8/84/
|
||||
Contents/Resources/8/85/*
|
||||
Contents/Resources/8/86/*
|
||||
Contents/Resources/8/87/*
|
||||
Contents/Resources/8/88/*
|
||||
Contents/Resources/8/89/*
|
||||
Contents/Resources/8/80/
|
||||
Contents/Resources/8/84/*
|
||||
Contents/Resources/8/85/*
|
||||
Contents/Resources/8/89/
|
||||
Contents/Resources/9/90/
|
||||
Contents/Resources/9/91/
|
||||
Contents/Resources/9/92/
|
||||
Contents/Resources/9/93/
|
||||
Contents/Resources/9/94/
|
||||
Contents/Resources/9/95/*
|
||||
Contents/Resources/9/96/*
|
||||
Contents/Resources/9/97/*
|
||||
Contents/Resources/9/98/*
|
||||
Contents/Resources/9/99/*
|
||||
Contents/Resources/9/90/
|
||||
Contents/Resources/9/94/*
|
||||
Contents/Resources/9/95/*
|
||||
Contents/Resources/9/99/
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
type "complete"
|
||||
add "precomplete"
|
||||
add "searchplugins/searchpluginstext0"
|
||||
add "searchplugins/searchpluginspng1.png"
|
||||
add "searchplugins/searchpluginspng0.png"
|
||||
add "removed-files"
|
||||
add-if "extensions/extensions1" "extensions/extensions1/extensions1text0"
|
||||
add-if "extensions/extensions1" "extensions/extensions1/extensions1png1.png"
|
||||
add-if "extensions/extensions1" "extensions/extensions1/extensions1png0.png"
|
||||
add-if "extensions/extensions0" "extensions/extensions0/extensions0text0"
|
||||
add-if "extensions/extensions0" "extensions/extensions0/extensions0png1.png"
|
||||
add-if "extensions/extensions0" "extensions/extensions0/extensions0png0.png"
|
||||
add "exe0.exe"
|
||||
add "1/10/10text0"
|
||||
add "0/0exe0.exe"
|
||||
add "0/00/00text1"
|
||||
add "0/00/00text0"
|
||||
add "0/00/00png0.png"
|
||||
remove "text1"
|
||||
remove "text0"
|
||||
rmrfdir "9/99/"
|
||||
rmdir "9/99/"
|
||||
rmrfdir "9/98/"
|
||||
rmrfdir "9/97/"
|
||||
rmrfdir "9/96/"
|
||||
rmrfdir "9/95/"
|
||||
rmrfdir "9/95/"
|
||||
rmrfdir "9/94/"
|
||||
rmdir "9/94/"
|
||||
rmdir "9/93/"
|
||||
rmdir "9/92/"
|
||||
rmdir "9/91/"
|
||||
rmdir "9/90/"
|
||||
rmdir "9/90/"
|
||||
rmrfdir "8/89/"
|
||||
rmdir "8/89/"
|
||||
rmrfdir "8/88/"
|
||||
rmrfdir "8/87/"
|
||||
rmrfdir "8/86/"
|
||||
rmrfdir "8/85/"
|
||||
rmrfdir "8/85/"
|
||||
rmrfdir "8/84/"
|
||||
rmdir "8/84/"
|
||||
rmdir "8/83/"
|
||||
rmdir "8/82/"
|
||||
rmdir "8/81/"
|
||||
rmdir "8/80/"
|
||||
rmdir "8/80/"
|
||||
rmrfdir "7/"
|
||||
rmdir "6/"
|
||||
remove "5/5text1"
|
||||
remove "5/5text0"
|
||||
rmrfdir "5/"
|
||||
remove "4/exe0.exe"
|
||||
remove "4/4text1"
|
||||
remove "4/4text0"
|
||||
rmdir "4/"
|
||||
remove "3/3text1"
|
||||
remove "3/3text0"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 776 B |
|
|
@ -1,192 +0,0 @@
|
|||
UPDATE TYPE partial
|
||||
PREPARE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
PREPARE PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
PREPARE PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD Contents/Resources/precomplete
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE PATCH Contents/Resources/0/0exe0.exe
|
||||
PREPARE ADD Contents/Resources/0/00/00text0
|
||||
PREPARE PATCH Contents/Resources/0/00/00png0.png
|
||||
PREPARE PATCH Contents/MacOS/exe0.exe
|
||||
PREPARE ADD Contents/Resources/2/20/20text0
|
||||
PREPARE ADD Contents/Resources/2/20/20png0.png
|
||||
PREPARE ADD Contents/Resources/0/00/00text2
|
||||
PREPARE REMOVEFILE Contents/Resources/1/10/10text0
|
||||
PREPARE REMOVEFILE Contents/Resources/0/00/00text1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/98/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/970/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/971/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/96/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/93/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/92/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/91/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/88/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/870/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/871/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/86/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/83/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/82/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/81/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/70/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/71/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/
|
||||
PREPARE REMOVEDIR Contents/Resources/6/
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5test.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEDIR Contents/Resources/5/
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text1
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text0
|
||||
PREPARE REMOVEDIR Contents/Resources/4/
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text1
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text0
|
||||
PREPARE REMOVEDIR Contents/Resources/1/10/
|
||||
PREPARE REMOVEDIR Contents/Resources/1/
|
||||
EXECUTE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
EXECUTE PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
EXECUTE PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD Contents/Resources/precomplete
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE PATCH Contents/Resources/0/0exe0.exe
|
||||
LoadSourceFile: destination file size 776 does not match expected size 79872
|
||||
LoadSourceFile failed
|
||||
### execution failed
|
||||
FINISH ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
FINISH PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
FINISH PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
FINISH ADD Contents/Resources/precomplete
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/distribution/extensions/extensions1/extensions1text0.moz-backup
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH PATCH Contents/Resources/0/0exe0.exe
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/0/0exe0.exe.moz-backup
|
||||
FINISH ADD Contents/Resources/0/00/00text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/0/00/00text0.moz-backup
|
||||
FINISH PATCH Contents/Resources/0/00/00png0.png
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/0/00/00png0.png.moz-backup
|
||||
FINISH PATCH Contents/MacOS/exe0.exe
|
||||
backup_restore: backup file doesn't exist: Contents/MacOS/exe0.exe.moz-backup
|
||||
FINISH ADD Contents/Resources/2/20/20text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/2/20/20text0.moz-backup
|
||||
FINISH ADD Contents/Resources/2/20/20png0.png
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/2/20/20png0.png.moz-backup
|
||||
FINISH ADD Contents/Resources/0/00/00text2
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/0/00/00text2.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/1/10/10text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/1/10/10text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/0/00/00text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/0/00/00text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/97/970/97xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/97/970/97xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/97/971/97xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/97/971/97xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/96/96text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/9/96/96text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/87/870/87xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/87/870/87xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/87/871/87xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/87/871/87xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/86/86text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/8/86/86text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/70/7xtest.exe.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/70/7xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/70/7xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/71/7xtest.exe.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/71/7xtext0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/71/7xtext1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/7text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/7/7text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/5/5text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/5/5text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/5/5test.exe
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/5/5test.exe.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/5/5text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/5/5text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/4/4text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/4/4text0.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text1
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/3/3text1.moz-backup
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text0
|
||||
backup_restore: backup file doesn't exist: Contents/Resources/3/3text0.moz-backup
|
||||
failed: 2
|
||||
calling QuitProgressUI
|
||||
|
|
@ -1,192 +0,0 @@
|
|||
UPDATE TYPE partial
|
||||
PREPARE ADD searchplugins/searchpluginstext0
|
||||
PREPARE PATCH searchplugins/searchpluginspng1.png
|
||||
PREPARE PATCH searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD precomplete
|
||||
PREPARE PATCH exe0.exe
|
||||
PREPARE ADD distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE PATCH 0/0exe0.exe
|
||||
PREPARE ADD 0/00/00text0
|
||||
PREPARE PATCH 0/00/00png0.png
|
||||
PREPARE ADD 2/20/20text0
|
||||
PREPARE ADD 2/20/20png0.png
|
||||
PREPARE ADD 0/00/00text2
|
||||
PREPARE REMOVEFILE 1/10/10text0
|
||||
PREPARE REMOVEFILE 0/00/00text1
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/98/
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/970/
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/971/
|
||||
PREPARE REMOVEDIR 9/97/
|
||||
PREPARE REMOVEFILE 9/96/96text0
|
||||
PREPARE REMOVEFILE 9/96/96text1
|
||||
PREPARE REMOVEDIR 9/96/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/93/
|
||||
PREPARE REMOVEDIR 9/92/
|
||||
PREPARE REMOVEDIR 9/91/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/88/
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/870/
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/871/
|
||||
PREPARE REMOVEDIR 8/87/
|
||||
PREPARE REMOVEFILE 8/86/86text0
|
||||
PREPARE REMOVEFILE 8/86/86text1
|
||||
PREPARE REMOVEDIR 8/86/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/83/
|
||||
PREPARE REMOVEDIR 8/82/
|
||||
PREPARE REMOVEDIR 8/81/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEFILE 7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/70/7xtext0
|
||||
PREPARE REMOVEFILE 7/70/7xtext1
|
||||
PREPARE REMOVEDIR 7/70/
|
||||
PREPARE REMOVEFILE 7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/71/7xtext0
|
||||
PREPARE REMOVEFILE 7/71/7xtext1
|
||||
PREPARE REMOVEDIR 7/71/
|
||||
PREPARE REMOVEFILE 7/7text0
|
||||
PREPARE REMOVEFILE 7/7text1
|
||||
PREPARE REMOVEDIR 7/
|
||||
PREPARE REMOVEDIR 6/
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5test.exe
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEDIR 5/
|
||||
PREPARE REMOVEFILE 4/4text1
|
||||
PREPARE REMOVEFILE 4/4text0
|
||||
PREPARE REMOVEDIR 4/
|
||||
PREPARE REMOVEFILE 3/3text1
|
||||
PREPARE REMOVEFILE 3/3text0
|
||||
PREPARE REMOVEDIR 1/10/
|
||||
PREPARE REMOVEDIR 1/
|
||||
EXECUTE ADD searchplugins/searchpluginstext0
|
||||
EXECUTE PATCH searchplugins/searchpluginspng1.png
|
||||
EXECUTE PATCH searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD precomplete
|
||||
EXECUTE PATCH exe0.exe
|
||||
EXECUTE ADD distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE PATCH 0/0exe0.exe
|
||||
LoadSourceFile: destination file size 776 does not match expected size 79872
|
||||
LoadSourceFile failed
|
||||
### execution failed
|
||||
FINISH ADD searchplugins/searchpluginstext0
|
||||
FINISH PATCH searchplugins/searchpluginspng1.png
|
||||
FINISH PATCH searchplugins/searchpluginspng0.png
|
||||
FINISH ADD precomplete
|
||||
FINISH PATCH exe0.exe
|
||||
FINISH ADD distribution/extensions/extensions1/extensions1text0
|
||||
backup_restore: backup file doesn't exist: distribution/extensions/extensions1/extensions1text0.moz-backup
|
||||
FINISH PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD distribution/extensions/extensions0/extensions0text0
|
||||
FINISH PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH PATCH 0/0exe0.exe
|
||||
backup_restore: backup file doesn't exist: 0/0exe0.exe.moz-backup
|
||||
FINISH ADD 0/00/00text0
|
||||
backup_restore: backup file doesn't exist: 0/00/00text0.moz-backup
|
||||
FINISH PATCH 0/00/00png0.png
|
||||
backup_restore: backup file doesn't exist: 0/00/00png0.png.moz-backup
|
||||
FINISH ADD 2/20/20text0
|
||||
backup_restore: backup file doesn't exist: 2/20/20text0.moz-backup
|
||||
FINISH ADD 2/20/20png0.png
|
||||
backup_restore: backup file doesn't exist: 2/20/20png0.png.moz-backup
|
||||
FINISH ADD 0/00/00text2
|
||||
backup_restore: backup file doesn't exist: 0/00/00text2.moz-backup
|
||||
FINISH REMOVEFILE 1/10/10text0
|
||||
backup_restore: backup file doesn't exist: 1/10/10text0.moz-backup
|
||||
FINISH REMOVEFILE 0/00/00text1
|
||||
backup_restore: backup file doesn't exist: 0/00/00text1.moz-backup
|
||||
FINISH REMOVEFILE 9/97/970/97xtext0
|
||||
backup_restore: backup file doesn't exist: 9/97/970/97xtext0.moz-backup
|
||||
FINISH REMOVEFILE 9/97/970/97xtext1
|
||||
backup_restore: backup file doesn't exist: 9/97/970/97xtext1.moz-backup
|
||||
FINISH REMOVEFILE 9/97/971/97xtext0
|
||||
backup_restore: backup file doesn't exist: 9/97/971/97xtext0.moz-backup
|
||||
FINISH REMOVEFILE 9/97/971/97xtext1
|
||||
backup_restore: backup file doesn't exist: 9/97/971/97xtext1.moz-backup
|
||||
FINISH REMOVEFILE 9/96/96text0
|
||||
backup_restore: backup file doesn't exist: 9/96/96text0.moz-backup
|
||||
FINISH REMOVEFILE 9/96/96text1
|
||||
backup_restore: backup file doesn't exist: 9/96/96text1.moz-backup
|
||||
FINISH REMOVEFILE 8/87/870/87xtext0
|
||||
backup_restore: backup file doesn't exist: 8/87/870/87xtext0.moz-backup
|
||||
FINISH REMOVEFILE 8/87/870/87xtext1
|
||||
backup_restore: backup file doesn't exist: 8/87/870/87xtext1.moz-backup
|
||||
FINISH REMOVEFILE 8/87/871/87xtext0
|
||||
backup_restore: backup file doesn't exist: 8/87/871/87xtext0.moz-backup
|
||||
FINISH REMOVEFILE 8/87/871/87xtext1
|
||||
backup_restore: backup file doesn't exist: 8/87/871/87xtext1.moz-backup
|
||||
FINISH REMOVEFILE 8/86/86text0
|
||||
backup_restore: backup file doesn't exist: 8/86/86text0.moz-backup
|
||||
FINISH REMOVEFILE 8/86/86text1
|
||||
backup_restore: backup file doesn't exist: 8/86/86text1.moz-backup
|
||||
FINISH REMOVEFILE 7/70/7xtest.exe
|
||||
backup_restore: backup file doesn't exist: 7/70/7xtest.exe.moz-backup
|
||||
FINISH REMOVEFILE 7/70/7xtext0
|
||||
backup_restore: backup file doesn't exist: 7/70/7xtext0.moz-backup
|
||||
FINISH REMOVEFILE 7/70/7xtext1
|
||||
backup_restore: backup file doesn't exist: 7/70/7xtext1.moz-backup
|
||||
FINISH REMOVEFILE 7/71/7xtest.exe
|
||||
backup_restore: backup file doesn't exist: 7/71/7xtest.exe.moz-backup
|
||||
FINISH REMOVEFILE 7/71/7xtext0
|
||||
backup_restore: backup file doesn't exist: 7/71/7xtext0.moz-backup
|
||||
FINISH REMOVEFILE 7/71/7xtext1
|
||||
backup_restore: backup file doesn't exist: 7/71/7xtext1.moz-backup
|
||||
FINISH REMOVEFILE 7/7text0
|
||||
backup_restore: backup file doesn't exist: 7/7text0.moz-backup
|
||||
FINISH REMOVEFILE 7/7text1
|
||||
backup_restore: backup file doesn't exist: 7/7text1.moz-backup
|
||||
FINISH REMOVEFILE 5/5text1
|
||||
backup_restore: backup file doesn't exist: 5/5text1.moz-backup
|
||||
FINISH REMOVEFILE 5/5text0
|
||||
backup_restore: backup file doesn't exist: 5/5text0.moz-backup
|
||||
FINISH REMOVEFILE 5/5test.exe
|
||||
backup_restore: backup file doesn't exist: 5/5test.exe.moz-backup
|
||||
FINISH REMOVEFILE 5/5text0
|
||||
backup_restore: backup file doesn't exist: 5/5text0.moz-backup
|
||||
FINISH REMOVEFILE 5/5text1
|
||||
backup_restore: backup file doesn't exist: 5/5text1.moz-backup
|
||||
FINISH REMOVEFILE 4/4text1
|
||||
backup_restore: backup file doesn't exist: 4/4text1.moz-backup
|
||||
FINISH REMOVEFILE 4/4text0
|
||||
backup_restore: backup file doesn't exist: 4/4text0.moz-backup
|
||||
FINISH REMOVEFILE 3/3text1
|
||||
backup_restore: backup file doesn't exist: 3/3text1.moz-backup
|
||||
FINISH REMOVEFILE 3/3text0
|
||||
backup_restore: backup file doesn't exist: 3/3text0.moz-backup
|
||||
failed: 2
|
||||
calling QuitProgressUI
|
||||
|
|
@ -1,279 +0,0 @@
|
|||
UPDATE TYPE partial
|
||||
PREPARE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
PREPARE PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
PREPARE PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD Contents/Resources/precomplete
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE PATCH Contents/Resources/0/0exe0.exe
|
||||
PREPARE ADD Contents/Resources/0/00/00text0
|
||||
PREPARE PATCH Contents/Resources/0/00/00png0.png
|
||||
PREPARE PATCH Contents/MacOS/exe0.exe
|
||||
PREPARE ADD Contents/Resources/2/20/20text0
|
||||
PREPARE ADD Contents/Resources/2/20/20png0.png
|
||||
PREPARE ADD Contents/Resources/0/00/00text2
|
||||
PREPARE REMOVEFILE Contents/Resources/1/10/10text0
|
||||
PREPARE REMOVEFILE Contents/Resources/0/00/00text1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/99/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/98/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/970/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/971/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/97/
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text0
|
||||
PREPARE REMOVEFILE Contents/Resources/9/96/96text1
|
||||
PREPARE REMOVEDIR Contents/Resources/9/96/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/95/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/94/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/93/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/92/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/91/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/9/90/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/89/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/88/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/870/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/871/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/87/
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text0
|
||||
PREPARE REMOVEFILE Contents/Resources/8/86/86text1
|
||||
PREPARE REMOVEDIR Contents/Resources/8/86/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/85/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/84/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/83/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/82/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/81/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEDIR Contents/Resources/8/80/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/70/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/71/
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text0
|
||||
PREPARE REMOVEFILE Contents/Resources/7/7text1
|
||||
PREPARE REMOVEDIR Contents/Resources/7/
|
||||
PREPARE REMOVEDIR Contents/Resources/6/
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5test.exe
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text0
|
||||
PREPARE REMOVEFILE Contents/Resources/5/5text1
|
||||
PREPARE REMOVEDIR Contents/Resources/5/
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text1
|
||||
PREPARE REMOVEFILE Contents/Resources/4/4text0
|
||||
PREPARE REMOVEDIR Contents/Resources/4/
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text1
|
||||
PREPARE REMOVEFILE Contents/Resources/3/3text0
|
||||
PREPARE REMOVEDIR Contents/Resources/1/10/
|
||||
PREPARE REMOVEDIR Contents/Resources/1/
|
||||
EXECUTE ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
EXECUTE PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
EXECUTE PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD Contents/Resources/precomplete
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE PATCH Contents/Resources/0/0exe0.exe
|
||||
EXECUTE ADD Contents/Resources/0/00/00text0
|
||||
EXECUTE PATCH Contents/Resources/0/00/00png0.png
|
||||
EXECUTE PATCH Contents/MacOS/exe0.exe
|
||||
EXECUTE ADD Contents/Resources/2/20/20text0
|
||||
EXECUTE ADD Contents/Resources/2/20/20png0.png
|
||||
EXECUTE ADD Contents/Resources/0/00/00text2
|
||||
EXECUTE REMOVEFILE Contents/Resources/1/10/10text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/0/00/00text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/99/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/99/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/98/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/970/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/971/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/97/
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/96/96text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/9/96/96text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/96/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/95/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/95/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/94/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/94/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/93/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/92/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/91/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/90/
|
||||
EXECUTE REMOVEDIR Contents/Resources/9/90/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/89/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/89/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/88/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/870/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/871/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/87/
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/86/86text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/8/86/86text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/86/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/85/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/85/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/84/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/84/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/83/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/82/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/81/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/80/
|
||||
EXECUTE REMOVEDIR Contents/Resources/8/80/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/70/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/71/
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/7text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/7/7text1
|
||||
EXECUTE REMOVEDIR Contents/Resources/7/
|
||||
EXECUTE REMOVEDIR Contents/Resources/6/
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text0
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5test.exe
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text0
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEFILE Contents/Resources/5/5text1
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEDIR Contents/Resources/5/
|
||||
EXECUTE REMOVEFILE Contents/Resources/4/4text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/4/4text0
|
||||
EXECUTE REMOVEDIR Contents/Resources/4/
|
||||
EXECUTE REMOVEFILE Contents/Resources/3/3text1
|
||||
EXECUTE REMOVEFILE Contents/Resources/3/3text0
|
||||
EXECUTE REMOVEDIR Contents/Resources/1/10/
|
||||
EXECUTE REMOVEDIR Contents/Resources/1/
|
||||
FINISH ADD Contents/Resources/searchplugins/searchpluginstext0
|
||||
FINISH PATCH Contents/Resources/searchplugins/searchpluginspng1.png
|
||||
FINISH PATCH Contents/Resources/searchplugins/searchpluginspng0.png
|
||||
FINISH ADD Contents/Resources/precomplete
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions1/extensions1text0
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD Contents/Resources/distribution/extensions/extensions0/extensions0text0
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH PATCH Contents/Resources/distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH PATCH Contents/Resources/0/0exe0.exe
|
||||
FINISH ADD Contents/Resources/0/00/00text0
|
||||
FINISH PATCH Contents/Resources/0/00/00png0.png
|
||||
FINISH PATCH Contents/MacOS/exe0.exe
|
||||
FINISH ADD Contents/Resources/2/20/20text0
|
||||
FINISH ADD Contents/Resources/2/20/20png0.png
|
||||
FINISH ADD Contents/Resources/0/00/00text2
|
||||
FINISH REMOVEFILE Contents/Resources/1/10/10text0
|
||||
FINISH REMOVEFILE Contents/Resources/0/00/00text1
|
||||
FINISH REMOVEDIR Contents/Resources/9/99/
|
||||
FINISH REMOVEDIR Contents/Resources/9/99/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/98/
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/970/97xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/970/
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/9/97/971/97xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/971/
|
||||
FINISH REMOVEDIR Contents/Resources/9/97/
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text0
|
||||
FINISH REMOVEFILE Contents/Resources/9/96/96text1
|
||||
FINISH REMOVEDIR Contents/Resources/9/96/
|
||||
FINISH REMOVEDIR Contents/Resources/9/95/
|
||||
FINISH REMOVEDIR Contents/Resources/9/95/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/94/
|
||||
FINISH REMOVEDIR Contents/Resources/9/94/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/9/93/
|
||||
FINISH REMOVEDIR Contents/Resources/9/92/
|
||||
removing directory: Contents/Resources/9/92/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/9/91/
|
||||
removing directory: Contents/Resources/9/91/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/9/90/
|
||||
FINISH REMOVEDIR Contents/Resources/9/90/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/89/
|
||||
FINISH REMOVEDIR Contents/Resources/8/89/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/88/
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/870/87xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/870/
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/8/87/871/87xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/871/
|
||||
FINISH REMOVEDIR Contents/Resources/8/87/
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text0
|
||||
FINISH REMOVEFILE Contents/Resources/8/86/86text1
|
||||
FINISH REMOVEDIR Contents/Resources/8/86/
|
||||
FINISH REMOVEDIR Contents/Resources/8/85/
|
||||
FINISH REMOVEDIR Contents/Resources/8/85/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/84/
|
||||
FINISH REMOVEDIR Contents/Resources/8/84/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR Contents/Resources/8/83/
|
||||
FINISH REMOVEDIR Contents/Resources/8/82/
|
||||
removing directory: Contents/Resources/8/82/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/8/81/
|
||||
removing directory: Contents/Resources/8/81/, rv: 0
|
||||
FINISH REMOVEDIR Contents/Resources/8/80/
|
||||
FINISH REMOVEDIR Contents/Resources/8/80/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtest.exe
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/7/70/7xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/7/70/
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtest.exe
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext0
|
||||
FINISH REMOVEFILE Contents/Resources/7/71/7xtext1
|
||||
FINISH REMOVEDIR Contents/Resources/7/71/
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text0
|
||||
FINISH REMOVEFILE Contents/Resources/7/7text1
|
||||
FINISH REMOVEDIR Contents/Resources/7/
|
||||
FINISH REMOVEDIR Contents/Resources/6/
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text1
|
||||
FINISH REMOVEFILE Contents/Resources/5/5text0
|
||||
FINISH REMOVEFILE Contents/Resources/5/5test.exe
|
||||
FINISH REMOVEDIR Contents/Resources/5/
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text1
|
||||
FINISH REMOVEFILE Contents/Resources/4/4text0
|
||||
FINISH REMOVEDIR Contents/Resources/4/
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text1
|
||||
FINISH REMOVEFILE Contents/Resources/3/3text0
|
||||
FINISH REMOVEDIR Contents/Resources/1/10/
|
||||
FINISH REMOVEDIR Contents/Resources/1/
|
||||
succeeded
|
||||
calling QuitProgressUI
|
||||
|
|
@ -1,279 +0,0 @@
|
|||
UPDATE TYPE partial
|
||||
PREPARE ADD searchplugins/searchpluginstext0
|
||||
PREPARE PATCH searchplugins/searchpluginspng1.png
|
||||
PREPARE PATCH searchplugins/searchpluginspng0.png
|
||||
PREPARE ADD precomplete
|
||||
PREPARE PATCH exe0.exe
|
||||
PREPARE ADD distribution/extensions/extensions1/extensions1text0
|
||||
PREPARE PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
PREPARE PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
PREPARE ADD distribution/extensions/extensions0/extensions0text0
|
||||
PREPARE PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
PREPARE PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
PREPARE PATCH 0/0exe0.exe
|
||||
PREPARE ADD 0/00/00text0
|
||||
PREPARE PATCH 0/00/00png0.png
|
||||
PREPARE ADD 2/20/20text0
|
||||
PREPARE ADD 2/20/20png0.png
|
||||
PREPARE ADD 0/00/00text2
|
||||
PREPARE REMOVEFILE 1/10/10text0
|
||||
PREPARE REMOVEFILE 0/00/00text1
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/99/
|
||||
PREPARE REMOVEDIR 9/98/
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/970/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/970/
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext0
|
||||
PREPARE REMOVEFILE 9/97/971/97xtext1
|
||||
PREPARE REMOVEDIR 9/97/971/
|
||||
PREPARE REMOVEDIR 9/97/
|
||||
PREPARE REMOVEFILE 9/96/96text0
|
||||
PREPARE REMOVEFILE 9/96/96text1
|
||||
PREPARE REMOVEDIR 9/96/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/95/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/94/
|
||||
PREPARE REMOVEDIR 9/93/
|
||||
PREPARE REMOVEDIR 9/92/
|
||||
PREPARE REMOVEDIR 9/91/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 9/90/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/89/
|
||||
PREPARE REMOVEDIR 8/88/
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/870/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/870/
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext0
|
||||
PREPARE REMOVEFILE 8/87/871/87xtext1
|
||||
PREPARE REMOVEDIR 8/87/871/
|
||||
PREPARE REMOVEDIR 8/87/
|
||||
PREPARE REMOVEFILE 8/86/86text0
|
||||
PREPARE REMOVEFILE 8/86/86text1
|
||||
PREPARE REMOVEDIR 8/86/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/85/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/84/
|
||||
PREPARE REMOVEDIR 8/83/
|
||||
PREPARE REMOVEDIR 8/82/
|
||||
PREPARE REMOVEDIR 8/81/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEDIR 8/80/
|
||||
PREPARE REMOVEFILE 7/70/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/70/7xtext0
|
||||
PREPARE REMOVEFILE 7/70/7xtext1
|
||||
PREPARE REMOVEDIR 7/70/
|
||||
PREPARE REMOVEFILE 7/71/7xtest.exe
|
||||
PREPARE REMOVEFILE 7/71/7xtext0
|
||||
PREPARE REMOVEFILE 7/71/7xtext1
|
||||
PREPARE REMOVEDIR 7/71/
|
||||
PREPARE REMOVEFILE 7/7text0
|
||||
PREPARE REMOVEFILE 7/7text1
|
||||
PREPARE REMOVEDIR 7/
|
||||
PREPARE REMOVEDIR 6/
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5test.exe
|
||||
PREPARE REMOVEFILE 5/5text0
|
||||
PREPARE REMOVEFILE 5/5text1
|
||||
PREPARE REMOVEDIR 5/
|
||||
PREPARE REMOVEFILE 4/4text1
|
||||
PREPARE REMOVEFILE 4/4text0
|
||||
PREPARE REMOVEDIR 4/
|
||||
PREPARE REMOVEFILE 3/3text1
|
||||
PREPARE REMOVEFILE 3/3text0
|
||||
PREPARE REMOVEDIR 1/10/
|
||||
PREPARE REMOVEDIR 1/
|
||||
EXECUTE ADD searchplugins/searchpluginstext0
|
||||
EXECUTE PATCH searchplugins/searchpluginspng1.png
|
||||
EXECUTE PATCH searchplugins/searchpluginspng0.png
|
||||
EXECUTE ADD precomplete
|
||||
EXECUTE PATCH exe0.exe
|
||||
EXECUTE ADD distribution/extensions/extensions1/extensions1text0
|
||||
EXECUTE PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
EXECUTE PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
EXECUTE ADD distribution/extensions/extensions0/extensions0text0
|
||||
EXECUTE PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
EXECUTE PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
EXECUTE PATCH 0/0exe0.exe
|
||||
EXECUTE ADD 0/00/00text0
|
||||
EXECUTE PATCH 0/00/00png0.png
|
||||
EXECUTE ADD 2/20/20text0
|
||||
EXECUTE ADD 2/20/20png0.png
|
||||
EXECUTE ADD 0/00/00text2
|
||||
EXECUTE REMOVEFILE 1/10/10text0
|
||||
EXECUTE REMOVEFILE 0/00/00text1
|
||||
EXECUTE REMOVEDIR 9/99/
|
||||
EXECUTE REMOVEDIR 9/99/
|
||||
EXECUTE REMOVEDIR 9/98/
|
||||
EXECUTE REMOVEFILE 9/97/970/97xtext0
|
||||
EXECUTE REMOVEFILE 9/97/970/97xtext1
|
||||
EXECUTE REMOVEDIR 9/97/970/
|
||||
EXECUTE REMOVEFILE 9/97/971/97xtext0
|
||||
EXECUTE REMOVEFILE 9/97/971/97xtext1
|
||||
EXECUTE REMOVEDIR 9/97/971/
|
||||
EXECUTE REMOVEDIR 9/97/
|
||||
EXECUTE REMOVEFILE 9/96/96text0
|
||||
EXECUTE REMOVEFILE 9/96/96text1
|
||||
EXECUTE REMOVEDIR 9/96/
|
||||
EXECUTE REMOVEDIR 9/95/
|
||||
EXECUTE REMOVEDIR 9/95/
|
||||
EXECUTE REMOVEDIR 9/94/
|
||||
EXECUTE REMOVEDIR 9/94/
|
||||
EXECUTE REMOVEDIR 9/93/
|
||||
EXECUTE REMOVEDIR 9/92/
|
||||
EXECUTE REMOVEDIR 9/91/
|
||||
EXECUTE REMOVEDIR 9/90/
|
||||
EXECUTE REMOVEDIR 9/90/
|
||||
EXECUTE REMOVEDIR 8/89/
|
||||
EXECUTE REMOVEDIR 8/89/
|
||||
EXECUTE REMOVEDIR 8/88/
|
||||
EXECUTE REMOVEFILE 8/87/870/87xtext0
|
||||
EXECUTE REMOVEFILE 8/87/870/87xtext1
|
||||
EXECUTE REMOVEDIR 8/87/870/
|
||||
EXECUTE REMOVEFILE 8/87/871/87xtext0
|
||||
EXECUTE REMOVEFILE 8/87/871/87xtext1
|
||||
EXECUTE REMOVEDIR 8/87/871/
|
||||
EXECUTE REMOVEDIR 8/87/
|
||||
EXECUTE REMOVEFILE 8/86/86text0
|
||||
EXECUTE REMOVEFILE 8/86/86text1
|
||||
EXECUTE REMOVEDIR 8/86/
|
||||
EXECUTE REMOVEDIR 8/85/
|
||||
EXECUTE REMOVEDIR 8/85/
|
||||
EXECUTE REMOVEDIR 8/84/
|
||||
EXECUTE REMOVEDIR 8/84/
|
||||
EXECUTE REMOVEDIR 8/83/
|
||||
EXECUTE REMOVEDIR 8/82/
|
||||
EXECUTE REMOVEDIR 8/81/
|
||||
EXECUTE REMOVEDIR 8/80/
|
||||
EXECUTE REMOVEDIR 8/80/
|
||||
EXECUTE REMOVEFILE 7/70/7xtest.exe
|
||||
EXECUTE REMOVEFILE 7/70/7xtext0
|
||||
EXECUTE REMOVEFILE 7/70/7xtext1
|
||||
EXECUTE REMOVEDIR 7/70/
|
||||
EXECUTE REMOVEFILE 7/71/7xtest.exe
|
||||
EXECUTE REMOVEFILE 7/71/7xtext0
|
||||
EXECUTE REMOVEFILE 7/71/7xtext1
|
||||
EXECUTE REMOVEDIR 7/71/
|
||||
EXECUTE REMOVEFILE 7/7text0
|
||||
EXECUTE REMOVEFILE 7/7text1
|
||||
EXECUTE REMOVEDIR 7/
|
||||
EXECUTE REMOVEDIR 6/
|
||||
EXECUTE REMOVEFILE 5/5text1
|
||||
EXECUTE REMOVEFILE 5/5text0
|
||||
EXECUTE REMOVEFILE 5/5test.exe
|
||||
EXECUTE REMOVEFILE 5/5text0
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEFILE 5/5text1
|
||||
file cannot be removed because it does not exist; skipping
|
||||
EXECUTE REMOVEDIR 5/
|
||||
EXECUTE REMOVEFILE 4/4text1
|
||||
EXECUTE REMOVEFILE 4/4text0
|
||||
EXECUTE REMOVEDIR 4/
|
||||
EXECUTE REMOVEFILE 3/3text1
|
||||
EXECUTE REMOVEFILE 3/3text0
|
||||
EXECUTE REMOVEDIR 1/10/
|
||||
EXECUTE REMOVEDIR 1/
|
||||
FINISH ADD searchplugins/searchpluginstext0
|
||||
FINISH PATCH searchplugins/searchpluginspng1.png
|
||||
FINISH PATCH searchplugins/searchpluginspng0.png
|
||||
FINISH ADD precomplete
|
||||
FINISH PATCH exe0.exe
|
||||
FINISH ADD distribution/extensions/extensions1/extensions1text0
|
||||
FINISH PATCH distribution/extensions/extensions1/extensions1png1.png
|
||||
FINISH PATCH distribution/extensions/extensions1/extensions1png0.png
|
||||
FINISH ADD distribution/extensions/extensions0/extensions0text0
|
||||
FINISH PATCH distribution/extensions/extensions0/extensions0png1.png
|
||||
FINISH PATCH distribution/extensions/extensions0/extensions0png0.png
|
||||
FINISH PATCH 0/0exe0.exe
|
||||
FINISH ADD 0/00/00text0
|
||||
FINISH PATCH 0/00/00png0.png
|
||||
FINISH ADD 2/20/20text0
|
||||
FINISH ADD 2/20/20png0.png
|
||||
FINISH ADD 0/00/00text2
|
||||
FINISH REMOVEFILE 1/10/10text0
|
||||
FINISH REMOVEFILE 0/00/00text1
|
||||
FINISH REMOVEDIR 9/99/
|
||||
FINISH REMOVEDIR 9/99/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/98/
|
||||
FINISH REMOVEFILE 9/97/970/97xtext0
|
||||
FINISH REMOVEFILE 9/97/970/97xtext1
|
||||
FINISH REMOVEDIR 9/97/970/
|
||||
FINISH REMOVEFILE 9/97/971/97xtext0
|
||||
FINISH REMOVEFILE 9/97/971/97xtext1
|
||||
FINISH REMOVEDIR 9/97/971/
|
||||
FINISH REMOVEDIR 9/97/
|
||||
FINISH REMOVEFILE 9/96/96text0
|
||||
FINISH REMOVEFILE 9/96/96text1
|
||||
FINISH REMOVEDIR 9/96/
|
||||
FINISH REMOVEDIR 9/95/
|
||||
FINISH REMOVEDIR 9/95/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/94/
|
||||
FINISH REMOVEDIR 9/94/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 9/93/
|
||||
FINISH REMOVEDIR 9/92/
|
||||
removing directory: 9/92/, rv: 0
|
||||
FINISH REMOVEDIR 9/91/
|
||||
removing directory: 9/91/, rv: 0
|
||||
FINISH REMOVEDIR 9/90/
|
||||
FINISH REMOVEDIR 9/90/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/89/
|
||||
FINISH REMOVEDIR 8/89/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/88/
|
||||
FINISH REMOVEFILE 8/87/870/87xtext0
|
||||
FINISH REMOVEFILE 8/87/870/87xtext1
|
||||
FINISH REMOVEDIR 8/87/870/
|
||||
FINISH REMOVEFILE 8/87/871/87xtext0
|
||||
FINISH REMOVEFILE 8/87/871/87xtext1
|
||||
FINISH REMOVEDIR 8/87/871/
|
||||
FINISH REMOVEDIR 8/87/
|
||||
FINISH REMOVEFILE 8/86/86text0
|
||||
FINISH REMOVEFILE 8/86/86text1
|
||||
FINISH REMOVEDIR 8/86/
|
||||
FINISH REMOVEDIR 8/85/
|
||||
FINISH REMOVEDIR 8/85/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/84/
|
||||
FINISH REMOVEDIR 8/84/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEDIR 8/83/
|
||||
FINISH REMOVEDIR 8/82/
|
||||
removing directory: 8/82/, rv: 0
|
||||
FINISH REMOVEDIR 8/81/
|
||||
removing directory: 8/81/, rv: 0
|
||||
FINISH REMOVEDIR 8/80/
|
||||
FINISH REMOVEDIR 8/80/
|
||||
directory no longer exists; skipping
|
||||
FINISH REMOVEFILE 7/70/7xtest.exe
|
||||
FINISH REMOVEFILE 7/70/7xtext0
|
||||
FINISH REMOVEFILE 7/70/7xtext1
|
||||
FINISH REMOVEDIR 7/70/
|
||||
FINISH REMOVEFILE 7/71/7xtest.exe
|
||||
FINISH REMOVEFILE 7/71/7xtext0
|
||||
FINISH REMOVEFILE 7/71/7xtext1
|
||||
FINISH REMOVEDIR 7/71/
|
||||
FINISH REMOVEFILE 7/7text0
|
||||
FINISH REMOVEFILE 7/7text1
|
||||
FINISH REMOVEDIR 7/
|
||||
FINISH REMOVEDIR 6/
|
||||
FINISH REMOVEFILE 5/5text1
|
||||
FINISH REMOVEFILE 5/5text0
|
||||
FINISH REMOVEFILE 5/5test.exe
|
||||
FINISH REMOVEDIR 5/
|
||||
FINISH REMOVEFILE 4/4text1
|
||||
FINISH REMOVEFILE 4/4text0
|
||||
FINISH REMOVEDIR 4/
|
||||
FINISH REMOVEFILE 3/3text1
|
||||
FINISH REMOVEFILE 3/3text0
|
||||
FINISH REMOVEDIR 1/10/
|
||||
FINISH REMOVEDIR 1/
|
||||
succeeded
|
||||
calling QuitProgressUI
|
||||
Binary file not shown.
|
|
@ -1,19 +0,0 @@
|
|||
remove "searchplugins/searchpluginstext0"
|
||||
remove "searchplugins/searchpluginspng1.png"
|
||||
remove "searchplugins/searchpluginspng0.png"
|
||||
remove "removed-files"
|
||||
remove "precomplete"
|
||||
remove "exe0.exe"
|
||||
remove "2/20/20text0"
|
||||
remove "2/20/20png0.png"
|
||||
remove "0/0exe0.exe"
|
||||
remove "0/00/00text2"
|
||||
remove "0/00/00text0"
|
||||
remove "0/00/00png0.png"
|
||||
rmdir "searchplugins/"
|
||||
rmdir "defaults/pref/"
|
||||
rmdir "defaults/"
|
||||
rmdir "2/20/"
|
||||
rmdir "2/"
|
||||
rmdir "0/00/"
|
||||
rmdir "0/"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
remove "Contents/Resources/searchplugins/searchpluginstext0"
|
||||
remove "Contents/Resources/searchplugins/searchpluginspng1.png"
|
||||
remove "Contents/Resources/searchplugins/searchpluginspng0.png"
|
||||
remove "Contents/Resources/removed-files"
|
||||
remove "Contents/Resources/precomplete"
|
||||
remove "Contents/Resources/2/20/20text0"
|
||||
remove "Contents/Resources/2/20/20png0.png"
|
||||
remove "Contents/Resources/0/0exe0.exe"
|
||||
remove "Contents/Resources/0/00/00text2"
|
||||
remove "Contents/Resources/0/00/00text0"
|
||||
remove "Contents/Resources/0/00/00png0.png"
|
||||
remove "Contents/MacOS/exe0.exe"
|
||||
rmdir "Contents/Resources/searchplugins/"
|
||||
rmdir "Contents/Resources/defaults/pref/"
|
||||
rmdir "Contents/Resources/defaults/"
|
||||
rmdir "Contents/Resources/2/20/"
|
||||
rmdir "Contents/Resources/2/"
|
||||
rmdir "Contents/Resources/0/00/"
|
||||
rmdir "Contents/Resources/0/"
|
||||
rmdir "Contents/Resources/"
|
||||
rmdir "Contents/MacOS/"
|
||||
rmdir "Contents/"
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
a/b/text0
|
||||
a/b/text1
|
||||
a/b/3/3text0
|
||||
a/b/3/3text1
|
||||
a/b/4/4exe0.exe
|
||||
a/b/4/4text0
|
||||
a/b/4/4text1
|
||||
a/b/4/
|
||||
a/b/5/5text0
|
||||
a/b/5/5text1
|
||||
a/b/5/*
|
||||
a/b/6/
|
||||
a/b/7/*
|
||||
a/b/8/80/
|
||||
a/b/8/81/
|
||||
a/b/8/82/
|
||||
a/b/8/83/
|
||||
a/b/8/84/
|
||||
a/b/8/85/*
|
||||
a/b/8/86/*
|
||||
a/b/8/87/*
|
||||
a/b/8/88/*
|
||||
a/b/8/89/*
|
||||
a/b/8/80/
|
||||
a/b/8/84/*
|
||||
a/b/8/85/*
|
||||
a/b/8/89/
|
||||
a/b/9/90/
|
||||
a/b/9/91/
|
||||
a/b/9/92/
|
||||
a/b/9/93/
|
||||
a/b/9/94/
|
||||
a/b/9/95/*
|
||||
a/b/9/96/*
|
||||
a/b/9/97/*
|
||||
a/b/9/98/*
|
||||
a/b/9/99/*
|
||||
a/b/9/90/
|
||||
a/b/9/94/*
|
||||
a/b/9/95/*
|
||||
a/b/9/99/
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
Contents/Resources/text0
|
||||
Contents/Resources/text1
|
||||
Contents/Resources/3/3text0
|
||||
Contents/Resources/3/3text1
|
||||
Contents/Resources/4/exe0.exe
|
||||
Contents/Resources/4/4text0
|
||||
Contents/Resources/4/4text1
|
||||
Contents/Resources/4/
|
||||
Contents/Resources/5/5text0
|
||||
Contents/Resources/5/5text1
|
||||
Contents/Resources/5/*
|
||||
Contents/Resources/6/
|
||||
Contents/Resources/7/*
|
||||
Contents/Resources/8/80/
|
||||
Contents/Resources/8/81/
|
||||
Contents/Resources/8/82/
|
||||
Contents/Resources/8/83/
|
||||
Contents/Resources/8/84/
|
||||
Contents/Resources/8/85/*
|
||||
Contents/Resources/8/86/*
|
||||
Contents/Resources/8/87/*
|
||||
Contents/Resources/8/88/*
|
||||
Contents/Resources/8/89/*
|
||||
Contents/Resources/8/80/
|
||||
Contents/Resources/8/84/*
|
||||
Contents/Resources/8/85/*
|
||||
Contents/Resources/8/89/
|
||||
Contents/Resources/9/90/
|
||||
Contents/Resources/9/91/
|
||||
Contents/Resources/9/92/
|
||||
Contents/Resources/9/93/
|
||||
Contents/Resources/9/94/
|
||||
Contents/Resources/9/95/*
|
||||
Contents/Resources/9/96/*
|
||||
Contents/Resources/9/97/*
|
||||
Contents/Resources/9/98/*
|
||||
Contents/Resources/9/99/*
|
||||
Contents/Resources/9/90/
|
||||
Contents/Resources/9/94/*
|
||||
Contents/Resources/9/95/*
|
||||
Contents/Resources/9/99/
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
type "partial"
|
||||
add "precomplete"
|
||||
add "a/b/searchplugins/searchpluginstext0"
|
||||
patch-if "a/b/searchplugins/searchpluginspng1.png" "a/b/searchplugins/searchpluginspng1.png.patch" "a/b/searchplugins/searchpluginspng1.png"
|
||||
patch-if "a/b/searchplugins/searchpluginspng0.png" "a/b/searchplugins/searchpluginspng0.png.patch" "a/b/searchplugins/searchpluginspng0.png"
|
||||
add-if "a/b/extensions/extensions1" "a/b/extensions/extensions1/extensions1text0"
|
||||
patch-if "a/b/extensions/extensions1" "a/b/extensions/extensions1/extensions1png1.png.patch" "a/b/extensions/extensions1/extensions1png1.png"
|
||||
patch-if "a/b/extensions/extensions1" "a/b/extensions/extensions1/extensions1png0.png.patch" "a/b/extensions/extensions1/extensions1png0.png"
|
||||
add-if "a/b/extensions/extensions0" "a/b/extensions/extensions0/extensions0text0"
|
||||
patch-if "a/b/extensions/extensions0" "a/b/extensions/extensions0/extensions0png1.png.patch" "a/b/extensions/extensions0/extensions0png1.png"
|
||||
patch-if "a/b/extensions/extensions0" "a/b/extensions/extensions0/extensions0png0.png.patch" "a/b/extensions/extensions0/extensions0png0.png"
|
||||
patch "a/b/exe0.exe.patch" "a/b/exe0.exe"
|
||||
patch "a/b/0/0exe0.exe.patch" "a/b/0/0exe0.exe"
|
||||
add "a/b/0/00/00text0"
|
||||
patch "a/b/0/00/00png0.png.patch" "a/b/0/00/00png0.png"
|
||||
add "a/b/2/20/20text0"
|
||||
add "a/b/2/20/20png0.png"
|
||||
add "a/b/0/00/00text2"
|
||||
remove "a/b/1/10/10text0"
|
||||
remove "a/b/0/00/00text1"
|
||||
remove "a/b/text1"
|
||||
remove "a/b/text0"
|
||||
rmrfdir "a/b/9/99/"
|
||||
rmdir "a/b/9/99/"
|
||||
rmrfdir "a/b/9/98/"
|
||||
rmrfdir "a/b/9/97/"
|
||||
rmrfdir "a/b/9/96/"
|
||||
rmrfdir "a/b/9/95/"
|
||||
rmrfdir "a/b/9/95/"
|
||||
rmrfdir "a/b/9/94/"
|
||||
rmdir "a/b/9/94/"
|
||||
rmdir "a/b/9/93/"
|
||||
rmdir "a/b/9/92/"
|
||||
rmdir "a/b/9/91/"
|
||||
rmdir "a/b/9/90/"
|
||||
rmdir "a/b/9/90/"
|
||||
rmrfdir "a/b/8/89/"
|
||||
rmdir "a/b/8/89/"
|
||||
rmrfdir "a/b/8/88/"
|
||||
rmrfdir "a/b/8/87/"
|
||||
rmrfdir "a/b/8/86/"
|
||||
rmrfdir "a/b/8/85/"
|
||||
rmrfdir "a/b/8/85/"
|
||||
rmrfdir "a/b/8/84/"
|
||||
rmdir "a/b/8/84/"
|
||||
rmdir "a/b/8/83/"
|
||||
rmdir "a/b/8/82/"
|
||||
rmdir "a/b/8/81/"
|
||||
rmdir "a/b/8/80/"
|
||||
rmdir "a/b/8/80/"
|
||||
rmrfdir "a/b/7/"
|
||||
rmdir "a/b/6/"
|
||||
remove "a/b/5/5text1"
|
||||
remove "a/b/5/5text0"
|
||||
rmrfdir "a/b/5/"
|
||||
remove "a/b/4/4text1"
|
||||
remove "a/b/4/4text0"
|
||||
remove "a/b/4/4exe0.exe"
|
||||
rmdir "a/b/4/"
|
||||
remove "a/b/3/3text1"
|
||||
remove "a/b/3/3text0"
|
||||
rmdir "a/b/1/10/"
|
||||
rmdir "a/b/1/"
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
Performing a replace request
|
||||
rename_file: proceeding to rename the directory
|
||||
rename_file: proceeding to rename the directory
|
||||
Now, remove the tmpDir
|
||||
succeeded
|
||||
calling QuitProgressUI
|
||||
|
|
@ -1,632 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/* Shared code for xpcshell and mochitests-chrome */
|
||||
/* eslint-disable no-undef */
|
||||
|
||||
Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
const PREF_APP_UPDATE_AUTO = "app.update.auto";
|
||||
const PREF_APP_UPDATE_BACKGROUNDERRORS = "app.update.backgroundErrors";
|
||||
const PREF_APP_UPDATE_BACKGROUNDMAXERRORS = "app.update.backgroundMaxErrors";
|
||||
const PREF_APP_UPDATE_CHANNEL = "app.update.channel";
|
||||
const PREF_APP_UPDATE_DOWNLOADBACKGROUNDINTERVAL = "app.update.download.backgroundInterval";
|
||||
const PREF_APP_UPDATE_ENABLED = "app.update.enabled";
|
||||
const PREF_APP_UPDATE_IDLETIME = "app.update.idletime";
|
||||
const PREF_APP_UPDATE_LOG = "app.update.log";
|
||||
const PREF_APP_UPDATE_NOTIFIEDUNSUPPORTED = "app.update.notifiedUnsupported";
|
||||
const PREF_APP_UPDATE_PROMPTWAITTIME = "app.update.promptWaitTime";
|
||||
const PREF_APP_UPDATE_RETRYTIMEOUT = "app.update.socket.retryTimeout";
|
||||
const PREF_APP_UPDATE_SERVICE_ENABLED = "app.update.service.enabled";
|
||||
const PREF_APP_UPDATE_SILENT = "app.update.silent";
|
||||
const PREF_APP_UPDATE_SOCKET_MAXERRORS = "app.update.socket.maxErrors";
|
||||
const PREF_APP_UPDATE_STAGING_ENABLED = "app.update.staging.enabled";
|
||||
const PREF_APP_UPDATE_URL = "app.update.url";
|
||||
const PREF_APP_UPDATE_URL_DETAILS = "app.update.url.details";
|
||||
|
||||
const PREFBRANCH_APP_UPDATE_NEVER = "app.update.never.";
|
||||
|
||||
const PREFBRANCH_APP_PARTNER = "app.partner.";
|
||||
const PREF_DISTRIBUTION_ID = "distribution.id";
|
||||
const PREF_DISTRIBUTION_VERSION = "distribution.version";
|
||||
const PREF_TOOLKIT_TELEMETRY_ENABLED = "toolkit.telemetry.enabled";
|
||||
|
||||
const NS_APP_PROFILE_DIR_STARTUP = "ProfDS";
|
||||
const NS_APP_USER_PROFILE_50_DIR = "ProfD";
|
||||
const NS_GRE_DIR = "GreD";
|
||||
const NS_GRE_BIN_DIR = "GreBinD";
|
||||
const NS_XPCOM_CURRENT_PROCESS_DIR = "XCurProcD";
|
||||
const XRE_EXECUTABLE_FILE = "XREExeF";
|
||||
const XRE_UPDATE_ROOT_DIR = "UpdRootD";
|
||||
|
||||
const DIR_PATCH = "0";
|
||||
const DIR_TOBEDELETED = "tobedeleted";
|
||||
const DIR_UPDATES = "updates";
|
||||
const DIR_UPDATED = IS_MACOSX ? "Updated.app" : "updated";
|
||||
|
||||
const FILE_ACTIVE_UPDATE_XML = "active-update.xml";
|
||||
const FILE_APPLICATION_INI = "application.ini";
|
||||
const FILE_BACKUP_UPDATE_LOG = "backup-update.log";
|
||||
const FILE_LAST_UPDATE_LOG = "last-update.log";
|
||||
const FILE_UPDATE_SETTINGS_INI = "update-settings.ini";
|
||||
const FILE_UPDATE_SETTINGS_INI_BAK = "update-settings.ini.bak";
|
||||
const FILE_UPDATER_INI = "updater.ini";
|
||||
const FILE_UPDATES_XML = "updates.xml";
|
||||
const FILE_UPDATE_LOG = "update.log";
|
||||
const FILE_UPDATE_MAR = "update.mar";
|
||||
const FILE_UPDATE_STATUS = "update.status";
|
||||
const FILE_UPDATE_TEST = "update.test";
|
||||
const FILE_UPDATE_VERSION = "update.version";
|
||||
|
||||
const UPDATE_SETTINGS_CONTENTS = "[Settings]\n" +
|
||||
"ACCEPTED_MAR_CHANNEL_IDS=xpcshell-test\n";
|
||||
|
||||
const PR_RDWR = 0x04;
|
||||
const PR_CREATE_FILE = 0x08;
|
||||
const PR_TRUNCATE = 0x20;
|
||||
|
||||
const DEFAULT_UPDATE_VERSION = "999999.0";
|
||||
|
||||
var gChannel;
|
||||
|
||||
/* import-globals-from ../data/sharedUpdateXML.js */
|
||||
Services.scriptloader.loadSubScript(DATA_URI_SPEC + "sharedUpdateXML.js", this);
|
||||
|
||||
const PERMS_FILE = FileUtils.PERMS_FILE;
|
||||
const PERMS_DIRECTORY = FileUtils.PERMS_DIRECTORY;
|
||||
|
||||
const MODE_WRONLY = FileUtils.MODE_WRONLY;
|
||||
const MODE_CREATE = FileUtils.MODE_CREATE;
|
||||
const MODE_APPEND = FileUtils.MODE_APPEND;
|
||||
const MODE_TRUNCATE = FileUtils.MODE_TRUNCATE;
|
||||
|
||||
const URI_UPDATES_PROPERTIES = "chrome://mozapps/locale/update/updates.properties";
|
||||
const gUpdateBundle = Services.strings.createBundle(URI_UPDATES_PROPERTIES);
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gAUS", function test_gAUS() {
|
||||
return Cc["@mozilla.org/updates/update-service;1"].
|
||||
getService(Ci.nsIApplicationUpdateService).
|
||||
QueryInterface(Ci.nsITimerCallback).
|
||||
QueryInterface(Ci.nsIObserver).
|
||||
QueryInterface(Ci.nsIUpdateCheckListener);
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "gUpdateManager",
|
||||
"@mozilla.org/updates/update-manager;1",
|
||||
"nsIUpdateManager");
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gUpdateChecker", function test_gUC() {
|
||||
return Cc["@mozilla.org/updates/update-checker;1"].
|
||||
createInstance(Ci.nsIUpdateChecker);
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gUP", function test_gUP() {
|
||||
return Cc["@mozilla.org/updates/update-prompt;1"].
|
||||
createInstance(Ci.nsIUpdatePrompt);
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gDefaultPrefBranch", function test_gDPB() {
|
||||
return Services.prefs.getDefaultBranch(null);
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gPrefRoot", function test_gPR() {
|
||||
return Services.prefs.getBranch(null);
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "gEnv",
|
||||
"@mozilla.org/process/environment;1",
|
||||
"nsIEnvironment");
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gZipW", function test_gZipW() {
|
||||
return Cc["@mozilla.org/zipwriter;1"].
|
||||
createInstance(Ci.nsIZipWriter);
|
||||
});
|
||||
|
||||
/* Triggers post-update processing */
|
||||
function testPostUpdateProcessing() {
|
||||
gAUS.observe(null, "test-post-update-processing", "");
|
||||
}
|
||||
|
||||
/* Initializes the update service stub */
|
||||
function initUpdateServiceStub() {
|
||||
Cc["@mozilla.org/updates/update-service-stub;1"].
|
||||
createInstance(Ci.nsISupports);
|
||||
}
|
||||
|
||||
/* Reloads the update metadata from disk */
|
||||
function reloadUpdateManagerData() {
|
||||
gUpdateManager.QueryInterface(Ci.nsIObserver).
|
||||
observe(null, "um-reload-update-data", "");
|
||||
}
|
||||
|
||||
const observer = {
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
if (aTopic == "nsPref:changed" && aData == PREF_APP_UPDATE_CHANNEL) {
|
||||
let channel = gDefaultPrefBranch.getCharPref(PREF_APP_UPDATE_CHANNEL);
|
||||
if (channel != gChannel) {
|
||||
debugDump("Changing channel from " + channel + " to " + gChannel);
|
||||
gDefaultPrefBranch.setCharPref(PREF_APP_UPDATE_CHANNEL, gChannel);
|
||||
}
|
||||
}
|
||||
},
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver])
|
||||
};
|
||||
|
||||
/**
|
||||
* Sets the app.update.channel preference.
|
||||
*
|
||||
* @param aChannel
|
||||
* The update channel.
|
||||
*/
|
||||
function setUpdateChannel(aChannel) {
|
||||
gChannel = aChannel;
|
||||
debugDump("setting default pref " + PREF_APP_UPDATE_CHANNEL + " to " + gChannel);
|
||||
gDefaultPrefBranch.setCharPref(PREF_APP_UPDATE_CHANNEL, gChannel);
|
||||
gPrefRoot.addObserver(PREF_APP_UPDATE_CHANNEL, observer, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the app.update.url default preference.
|
||||
*
|
||||
* @param aURL
|
||||
* The update url. If not specified 'URL_HOST + "/update.xml"' will be
|
||||
* used.
|
||||
*/
|
||||
function setUpdateURL(aURL) {
|
||||
let url = aURL ? aURL : URL_HOST + "/update.xml";
|
||||
debugDump("setting " + PREF_APP_UPDATE_URL + " to " + url);
|
||||
gDefaultPrefBranch.setCharPref(PREF_APP_UPDATE_URL, url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns either the active or regular update database XML file.
|
||||
*
|
||||
* @param isActiveUpdate
|
||||
* If true this will return the active-update.xml otherwise it will
|
||||
* return the updates.xml file.
|
||||
*/
|
||||
function getUpdatesXMLFile(aIsActiveUpdate) {
|
||||
let file = getUpdatesRootDir();
|
||||
file.append(aIsActiveUpdate ? FILE_ACTIVE_UPDATE_XML : FILE_UPDATES_XML);
|
||||
return file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the updates specified to either the active-update.xml or the
|
||||
* updates.xml.
|
||||
*
|
||||
* @param aContent
|
||||
* The updates represented as a string to write to the XML file.
|
||||
* @param isActiveUpdate
|
||||
* If true this will write to the active-update.xml otherwise it will
|
||||
* write to the updates.xml file.
|
||||
*/
|
||||
function writeUpdatesToXMLFile(aContent, aIsActiveUpdate) {
|
||||
writeFile(getUpdatesXMLFile(aIsActiveUpdate), aContent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the current update operation/state to a file in the patch
|
||||
* directory, indicating to the patching system that operations need
|
||||
* to be performed.
|
||||
*
|
||||
* @param aStatus
|
||||
* The status value to write.
|
||||
*/
|
||||
function writeStatusFile(aStatus) {
|
||||
let file = getUpdatesPatchDir();
|
||||
file.append(FILE_UPDATE_STATUS);
|
||||
writeFile(file, aStatus + "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the current update version to a file in the patch directory,
|
||||
* indicating to the patching system the version of the update.
|
||||
*
|
||||
* @param aVersion
|
||||
* The version value to write.
|
||||
*/
|
||||
function writeVersionFile(aVersion) {
|
||||
let file = getUpdatesPatchDir();
|
||||
file.append(FILE_UPDATE_VERSION);
|
||||
writeFile(file, aVersion + "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the root directory for the updates directory.
|
||||
*
|
||||
* @return nsIFile for the updates root directory.
|
||||
*/
|
||||
function getUpdatesRootDir() {
|
||||
return Services.dirsvc.get(XRE_UPDATE_ROOT_DIR, Ci.nsIFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the updates directory.
|
||||
*
|
||||
* @return nsIFile for the updates directory.
|
||||
*/
|
||||
function getUpdatesDir() {
|
||||
let dir = getUpdatesRootDir();
|
||||
dir.append(DIR_UPDATES);
|
||||
return dir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the directory for update patches.
|
||||
*
|
||||
* @return nsIFile for the updates directory.
|
||||
*/
|
||||
function getUpdatesPatchDir() {
|
||||
let dir = getUpdatesDir();
|
||||
dir.append(DIR_PATCH);
|
||||
return dir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes text to a file. This will replace existing text if the file exists
|
||||
* and create the file if it doesn't exist.
|
||||
*
|
||||
* @param aFile
|
||||
* The file to write to. Will be created if it doesn't exist.
|
||||
* @param aText
|
||||
* The text to write to the file. If there is existing text it will be
|
||||
* replaced.
|
||||
*/
|
||||
function writeFile(aFile, aText) {
|
||||
let fos = Cc["@mozilla.org/network/file-output-stream;1"].
|
||||
createInstance(Ci.nsIFileOutputStream);
|
||||
if (!aFile.exists()) {
|
||||
aFile.create(Ci.nsILocalFile.NORMAL_FILE_TYPE, PERMS_FILE);
|
||||
}
|
||||
fos.init(aFile, MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE, PERMS_FILE, 0);
|
||||
fos.write(aText, aText.length);
|
||||
fos.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the current update operation/state in the status file in the patch
|
||||
* directory including the error code if it is present.
|
||||
*
|
||||
* @return The status value.
|
||||
*/
|
||||
function readStatusFile() {
|
||||
let file = getUpdatesPatchDir();
|
||||
file.append(FILE_UPDATE_STATUS);
|
||||
|
||||
if (!file.exists()) {
|
||||
debugDump("update status file does not exists! Path: " + file.path);
|
||||
return STATE_NONE;
|
||||
}
|
||||
|
||||
return readFile(file).split("\n")[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the current update operation/state in the status file in the patch
|
||||
* directory without the error code if it is present.
|
||||
*
|
||||
* @return The state value.
|
||||
*/
|
||||
function readStatusState() {
|
||||
return readStatusFile().split(": ")[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the current update operation/state in the status file in the patch
|
||||
* directory with the error code.
|
||||
*
|
||||
* @return The state value.
|
||||
*/
|
||||
function readStatusFailedCode() {
|
||||
return readStatusFile().split(": ")[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads text from a file and returns the string.
|
||||
*
|
||||
* @param aFile
|
||||
* The file to read from.
|
||||
* @return The string of text read from the file.
|
||||
*/
|
||||
function readFile(aFile) {
|
||||
let fis = Cc["@mozilla.org/network/file-input-stream;1"].
|
||||
createInstance(Ci.nsIFileInputStream);
|
||||
if (!aFile.exists()) {
|
||||
return null;
|
||||
}
|
||||
// Specifying -1 for ioFlags will open the file with the default of PR_RDONLY.
|
||||
// Specifying -1 for perm will open the file with the default of 0.
|
||||
fis.init(aFile, -1, -1, Ci.nsIFileInputStream.CLOSE_ON_EOF);
|
||||
let sis = Cc["@mozilla.org/scriptableinputstream;1"].
|
||||
createInstance(Ci.nsIScriptableInputStream);
|
||||
sis.init(fis);
|
||||
let text = sis.read(sis.available());
|
||||
sis.close();
|
||||
return text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the binary contents of a file and returns it as a string.
|
||||
*
|
||||
* @param aFile
|
||||
* The file to read from.
|
||||
* @return The contents of the file as a string.
|
||||
*/
|
||||
function readFileBytes(aFile) {
|
||||
debugDump("attempting to read file, path: " + aFile.path);
|
||||
let fis = Cc["@mozilla.org/network/file-input-stream;1"].
|
||||
createInstance(Ci.nsIFileInputStream);
|
||||
// Specifying -1 for ioFlags will open the file with the default of PR_RDONLY.
|
||||
// Specifying -1 for perm will open the file with the default of 0.
|
||||
fis.init(aFile, -1, -1, Ci.nsIFileInputStream.CLOSE_ON_EOF);
|
||||
let bis = Cc["@mozilla.org/binaryinputstream;1"].
|
||||
createInstance(Ci.nsIBinaryInputStream);
|
||||
bis.setInputStream(fis);
|
||||
let data = [];
|
||||
let count = fis.available();
|
||||
while (count > 0) {
|
||||
let bytes = bis.readByteArray(Math.min(65535, count));
|
||||
data.push(String.fromCharCode.apply(null, bytes));
|
||||
count -= bytes.length;
|
||||
if (bytes.length == 0) {
|
||||
throw "Nothing read from input stream!";
|
||||
}
|
||||
}
|
||||
data.join('');
|
||||
fis.close();
|
||||
return data.toString();
|
||||
}
|
||||
|
||||
/* Returns human readable status text from the updates.properties bundle */
|
||||
function getStatusText(aErrCode) {
|
||||
return getString("check_error-" + aErrCode);
|
||||
}
|
||||
|
||||
/* Returns a string from the updates.properties bundle */
|
||||
function getString(aName) {
|
||||
try {
|
||||
return gUpdateBundle.GetStringFromName(aName);
|
||||
} catch (e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the file extension for an nsIFile.
|
||||
*
|
||||
* @param aFile
|
||||
* The file to get the file extension for.
|
||||
* @return The file extension.
|
||||
*/
|
||||
function getFileExtension(aFile) {
|
||||
return Services.io.newFileURI(aFile).QueryInterface(Ci.nsIURL).
|
||||
fileExtension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the updates.xml file, active-update.xml file, and all files and
|
||||
* sub-directories in the updates directory except for the "0" sub-directory.
|
||||
* This prevents some tests from failing due to files being left behind when the
|
||||
* tests are interrupted.
|
||||
*/
|
||||
function removeUpdateDirsAndFiles() {
|
||||
let file = getUpdatesXMLFile(true);
|
||||
try {
|
||||
if (file.exists()) {
|
||||
file.remove(false);
|
||||
}
|
||||
} catch (e) {
|
||||
logTestInfo("Unable to remove file. Path: " + file.path +
|
||||
", Exception: " + e);
|
||||
}
|
||||
|
||||
file = getUpdatesXMLFile(false);
|
||||
try {
|
||||
if (file.exists()) {
|
||||
file.remove(false);
|
||||
}
|
||||
} catch (e) {
|
||||
logTestInfo("Unable to remove file. Path: " + file.path +
|
||||
", Exception: " + e);
|
||||
}
|
||||
|
||||
// This fails sporadically on Mac OS X so wrap it in a try catch
|
||||
let updatesDir = getUpdatesDir();
|
||||
try {
|
||||
cleanUpdatesDir(updatesDir);
|
||||
} catch (e) {
|
||||
logTestInfo("Unable to remove files / directories from directory. Path: " +
|
||||
updatesDir.path + ", Exception: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all files and sub-directories in the updates directory except for
|
||||
* the "0" sub-directory.
|
||||
*
|
||||
* @param aDir
|
||||
* nsIFile for the directory to be deleted.
|
||||
*/
|
||||
function cleanUpdatesDir(aDir) {
|
||||
if (!aDir.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
let dirEntries = aDir.directoryEntries;
|
||||
while (dirEntries.hasMoreElements()) {
|
||||
let entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
if (entry.leafName == DIR_PATCH && entry.parent.leafName == DIR_UPDATES) {
|
||||
cleanUpdatesDir(entry);
|
||||
entry.permissions = PERMS_DIRECTORY;
|
||||
} else {
|
||||
try {
|
||||
entry.remove(true);
|
||||
return;
|
||||
} catch (e) {
|
||||
}
|
||||
cleanUpdatesDir(entry);
|
||||
entry.permissions = PERMS_DIRECTORY;
|
||||
try {
|
||||
entry.remove(true);
|
||||
} catch (e) {
|
||||
logTestInfo("cleanUpdatesDir: unable to remove directory. Path: " +
|
||||
entry.path + ", Exception: " + e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
entry.permissions = PERMS_FILE;
|
||||
try {
|
||||
entry.remove(false);
|
||||
} catch (e) {
|
||||
logTestInfo("cleanUpdatesDir: unable to remove file. Path: " +
|
||||
entry.path + ", Exception: " + e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a directory and its children. First it tries nsIFile::Remove(true).
|
||||
* If that fails it will fall back to recursing, setting the appropriate
|
||||
* permissions, and deleting the current entry.
|
||||
*
|
||||
* @param aDir
|
||||
* nsIFile for the directory to be deleted.
|
||||
*/
|
||||
function removeDirRecursive(aDir) {
|
||||
if (!aDir.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
debugDump("attempting to remove directory. Path: " + aDir.path);
|
||||
aDir.remove(true);
|
||||
return;
|
||||
} catch (e) {
|
||||
logTestInfo("non-fatal error removing directory. Exception: " + e);
|
||||
}
|
||||
|
||||
let dirEntries = aDir.directoryEntries;
|
||||
while (dirEntries.hasMoreElements()) {
|
||||
let entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
removeDirRecursive(entry);
|
||||
} else {
|
||||
entry.permissions = PERMS_FILE;
|
||||
try {
|
||||
debugDump("attempting to remove file. Path: " + entry.path);
|
||||
entry.remove(false);
|
||||
} catch (e) {
|
||||
logTestInfo("error removing file. Exception: " + e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aDir.permissions = PERMS_DIRECTORY;
|
||||
try {
|
||||
debugDump("attempting to remove directory. Path: " + aDir.path);
|
||||
aDir.remove(true);
|
||||
} catch (e) {
|
||||
logTestInfo("error removing directory. Exception: " + e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the directory for the currently running process. This is used to
|
||||
* clean up after the tests and to locate the active-update.xml and updates.xml
|
||||
* files.
|
||||
*
|
||||
* @return nsIFile for the current process directory.
|
||||
*/
|
||||
function getCurrentProcessDir() {
|
||||
return Services.dirsvc.get(NS_XPCOM_CURRENT_PROCESS_DIR, Ci.nsIFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the application base directory.
|
||||
*
|
||||
* @return nsIFile object for the application base directory.
|
||||
*/
|
||||
function getAppBaseDir() {
|
||||
return Services.dirsvc.get(XRE_EXECUTABLE_FILE, Ci.nsIFile).parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Gecko Runtime Engine directory where files other than executable
|
||||
* binaries are located. On Mac OS X this will be <bundle>/Contents/Resources/
|
||||
* and the installation directory on all other platforms.
|
||||
*
|
||||
* @return nsIFile for the Gecko Runtime Engine directory.
|
||||
*/
|
||||
function getGREDir() {
|
||||
return Services.dirsvc.get(NS_GRE_DIR, Ci.nsIFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Gecko Runtime Engine Binary directory where the executable
|
||||
* binaries are located such as the updater binary (Windows and Linux) or
|
||||
* updater package (Mac OS X). On Mac OS X this will be
|
||||
* <bundle>/Contents/MacOS/ and the installation directory on all other
|
||||
* platforms.
|
||||
*
|
||||
* @return nsIFile for the Gecko Runtime Engine Binary directory.
|
||||
*/
|
||||
function getGREBinDir() {
|
||||
return Services.dirsvc.get(NS_GRE_BIN_DIR, Ci.nsIFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs TEST-INFO messages.
|
||||
*
|
||||
* @param aText
|
||||
* The text to log.
|
||||
* @param aCaller (optional)
|
||||
* An optional Components.stack.caller. If not specified
|
||||
* Components.stack.caller will be used.
|
||||
*/
|
||||
function logTestInfo(aText, aCaller) {
|
||||
let caller = aCaller ? aCaller : Components.stack.caller;
|
||||
let now = new Date();
|
||||
let hh = now.getHours();
|
||||
let mm = now.getMinutes();
|
||||
let ss = now.getSeconds();
|
||||
let ms = now.getMilliseconds();
|
||||
let time = (hh < 10 ? "0" + hh : hh) + ":" +
|
||||
(mm < 10 ? "0" + mm : mm) + ":" +
|
||||
(ss < 10 ? "0" + ss : ss) + ":";
|
||||
if (ms < 10) {
|
||||
time += "00";
|
||||
} else if (ms < 100) {
|
||||
time += "0";
|
||||
}
|
||||
time += ms;
|
||||
let msg = time + " | TEST-INFO | " + caller.filename + " | [" + caller.name +
|
||||
" : " + caller.lineNumber + "] " + aText;
|
||||
LOG_FUNCTION(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs TEST-INFO messages when DEBUG_AUS_TEST evaluates to true.
|
||||
*
|
||||
* @param aText
|
||||
* The text to log.
|
||||
* @param aCaller (optional)
|
||||
* An optional Components.stack.caller. If not specified
|
||||
* Components.stack.caller will be used.
|
||||
*/
|
||||
function debugDump(aText, aCaller) {
|
||||
if (DEBUG_AUS_TEST) {
|
||||
let caller = aCaller ? aCaller : Components.stack.caller;
|
||||
logTestInfo(aText, caller);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,364 +0,0 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
/**
|
||||
* Helper functions for creating xml strings used by application update tests.
|
||||
*
|
||||
* !IMPORTANT - This file contains everything needed (along with dependencies)
|
||||
* by the updates.sjs file used by the mochitest-chrome tests. Since xpcshell
|
||||
* used by the http server is launched with -v 170 this file must not use
|
||||
* features greater than JavaScript 1.7.
|
||||
*/
|
||||
|
||||
/* eslint-disable no-undef */
|
||||
|
||||
const FILE_SIMPLE_MAR = "simple.mar";
|
||||
const SIZE_SIMPLE_MAR = "1031";
|
||||
const MD5_HASH_SIMPLE_MAR = "1f8c038577bb6845d94ccec4999113ee";
|
||||
const SHA1_HASH_SIMPLE_MAR = "5d49a672c87f10f31d7e326349564a11272a028b";
|
||||
const SHA256_HASH_SIMPLE_MAR = "1aabbed5b1dd6e16e139afc5b43d479e254e0c26" +
|
||||
"3c8fb9249c0a1bb93071c5fb";
|
||||
const SHA384_HASH_SIMPLE_MAR = "26615014ea034af32ef5651492d5f493f5a7a1a48522e" +
|
||||
"d24c366442a5ec21d5ef02e23fb58d79729b8ca2f9541" +
|
||||
"99dd53";
|
||||
const SHA512_HASH_SIMPLE_MAR = "922e5ae22081795f6e8d65a3c508715c9a314054179a8" +
|
||||
"bbfe5f50dc23919ad89888291bc0a07586ab17dd0304a" +
|
||||
"b5347473601127571c66f61f5080348e05c36b";
|
||||
|
||||
const STATE_NONE = "null";
|
||||
const STATE_DOWNLOADING = "downloading";
|
||||
const STATE_PENDING = "pending";
|
||||
const STATE_PENDING_SVC = "pending-service";
|
||||
const STATE_APPLYING = "applying";
|
||||
const STATE_APPLIED = "applied";
|
||||
const STATE_APPLIED_SVC = "applied-service";
|
||||
const STATE_SUCCEEDED = "succeeded";
|
||||
const STATE_DOWNLOAD_FAILED = "download-failed";
|
||||
const STATE_FAILED = "failed";
|
||||
|
||||
const LOADSOURCE_ERROR_WRONG_SIZE = 2;
|
||||
const CRC_ERROR = 4;
|
||||
const READ_ERROR = 6;
|
||||
const WRITE_ERROR = 7;
|
||||
const MAR_CHANNEL_MISMATCH_ERROR = 22;
|
||||
const VERSION_DOWNGRADE_ERROR = 23;
|
||||
const SERVICE_COULD_NOT_COPY_UPDATER = 49;
|
||||
const SERVICE_INVALID_APPLYTO_DIR_STAGED_ERROR = 52;
|
||||
const SERVICE_INVALID_APPLYTO_DIR_ERROR = 54;
|
||||
const SERVICE_INVALID_INSTALL_DIR_PATH_ERROR = 55;
|
||||
const SERVICE_INVALID_WORKING_DIR_PATH_ERROR = 56;
|
||||
const INVALID_APPLYTO_DIR_STAGED_ERROR = 72;
|
||||
const INVALID_APPLYTO_DIR_ERROR = 74;
|
||||
const INVALID_INSTALL_DIR_PATH_ERROR = 75;
|
||||
const INVALID_WORKING_DIR_PATH_ERROR = 76;
|
||||
const INVALID_CALLBACK_PATH_ERROR = 77;
|
||||
const INVALID_CALLBACK_DIR_ERROR = 78;
|
||||
|
||||
const STATE_FAILED_DELIMETER = ": ";
|
||||
|
||||
const STATE_FAILED_LOADSOURCE_ERROR_WRONG_SIZE =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + LOADSOURCE_ERROR_WRONG_SIZE;
|
||||
const STATE_FAILED_CRC_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + CRC_ERROR;
|
||||
const STATE_FAILED_READ_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + READ_ERROR;
|
||||
const STATE_FAILED_WRITE_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + WRITE_ERROR;
|
||||
const STATE_FAILED_MAR_CHANNEL_MISMATCH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + MAR_CHANNEL_MISMATCH_ERROR;
|
||||
const STATE_FAILED_VERSION_DOWNGRADE_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + VERSION_DOWNGRADE_ERROR;
|
||||
const STATE_FAILED_SERVICE_COULD_NOT_COPY_UPDATER =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + SERVICE_COULD_NOT_COPY_UPDATER
|
||||
const STATE_FAILED_SERVICE_INVALID_APPLYTO_DIR_STAGED_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + SERVICE_INVALID_APPLYTO_DIR_STAGED_ERROR;
|
||||
const STATE_FAILED_SERVICE_INVALID_APPLYTO_DIR_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + SERVICE_INVALID_APPLYTO_DIR_ERROR;
|
||||
const STATE_FAILED_SERVICE_INVALID_INSTALL_DIR_PATH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + SERVICE_INVALID_INSTALL_DIR_PATH_ERROR;
|
||||
const STATE_FAILED_SERVICE_INVALID_WORKING_DIR_PATH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + SERVICE_INVALID_WORKING_DIR_PATH_ERROR;
|
||||
const STATE_FAILED_INVALID_APPLYTO_DIR_STAGED_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_APPLYTO_DIR_STAGED_ERROR;
|
||||
const STATE_FAILED_INVALID_APPLYTO_DIR_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_APPLYTO_DIR_ERROR;
|
||||
const STATE_FAILED_INVALID_INSTALL_DIR_PATH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_INSTALL_DIR_PATH_ERROR;
|
||||
const STATE_FAILED_INVALID_WORKING_DIR_PATH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_WORKING_DIR_PATH_ERROR;
|
||||
const STATE_FAILED_INVALID_CALLBACK_PATH_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_CALLBACK_PATH_ERROR;
|
||||
const STATE_FAILED_INVALID_CALLBACK_DIR_ERROR =
|
||||
STATE_FAILED + STATE_FAILED_DELIMETER + INVALID_CALLBACK_DIR_ERROR;
|
||||
|
||||
/**
|
||||
* Constructs a string representing a remote update xml file.
|
||||
*
|
||||
* @param aUpdates
|
||||
* The string representing the update elements.
|
||||
* @return The string representing a remote update xml file.
|
||||
*/
|
||||
function getRemoteUpdatesXMLString(aUpdates) {
|
||||
return "<?xml version=\"1.0\"?>\n" +
|
||||
"<updates>\n" +
|
||||
aUpdates +
|
||||
"</updates>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing an update element for a remote update xml
|
||||
* file. See getUpdateString for parameter information not provided below.
|
||||
*
|
||||
* @param aPatches
|
||||
* String representing the application update patches.
|
||||
* @return The string representing an update element for an update xml file.
|
||||
*/
|
||||
function getRemoteUpdateString(aPatches, aType, aName, aDisplayVersion,
|
||||
aAppVersion, aBuildID, aDetailsURL, aShowPrompt,
|
||||
aShowNeverForVersion, aPromptWaitTime,
|
||||
aBackgroundInterval, aCustom1, aCustom2) {
|
||||
return getUpdateString(aType, aName, aDisplayVersion, aAppVersion,
|
||||
aBuildID, aDetailsURL, aShowPrompt,
|
||||
aShowNeverForVersion, aPromptWaitTime,
|
||||
aBackgroundInterval, aCustom1, aCustom2) + ">\n" +
|
||||
aPatches +
|
||||
" </update>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing a patch element for a remote update xml
|
||||
* file. See getPatchString for parameter information not provided below.
|
||||
*
|
||||
* @return The string representing a patch element for a remote update xml file.
|
||||
*/
|
||||
function getRemotePatchString(aType, aURL, aHashFunction, aHashValue, aSize) {
|
||||
return getPatchString(aType, aURL, aHashFunction, aHashValue, aSize) +
|
||||
"/>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing a local update xml file.
|
||||
*
|
||||
* @param aUpdates
|
||||
* The string representing the update elements.
|
||||
* @return The string representing a local update xml file.
|
||||
*/
|
||||
function getLocalUpdatesXMLString(aUpdates) {
|
||||
if (!aUpdates || aUpdates == "") {
|
||||
return "<updates xmlns=\"http://www.mozilla.org/2005/app-update\"/>";
|
||||
}
|
||||
return ("<updates xmlns=\"http://www.mozilla.org/2005/app-update\">" +
|
||||
aUpdates +
|
||||
"</updates>").replace(/>\s+\n*</g, '><');
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing an update element for a local update xml
|
||||
* file. See getUpdateString for parameter information not provided below.
|
||||
*
|
||||
* @param aPatches
|
||||
* String representing the application update patches.
|
||||
* @param aServiceURL (optional)
|
||||
* The update's xml url.
|
||||
* If not specified it will default to 'http://test_service/'.
|
||||
* @param aIsCompleteUpdate (optional)
|
||||
* The string 'true' if this update was a complete update or the string
|
||||
* 'false' if this update was a partial update.
|
||||
* If not specified it will default to 'true'.
|
||||
* @param aChannel (optional)
|
||||
* The update channel name.
|
||||
* If not specified it will default to the default preference value of
|
||||
* app.update.channel.
|
||||
* @param aForegroundDownload (optional)
|
||||
* The string 'true' if this update was manually downloaded or the
|
||||
* string 'false' if this update was automatically downloaded.
|
||||
* If not specified it will default to 'true'.
|
||||
* @param aPreviousAppVersion (optional)
|
||||
* The application version prior to applying the update.
|
||||
* If not specified it will not be present.
|
||||
* @return The string representing an update element for an update xml file.
|
||||
*/
|
||||
function getLocalUpdateString(aPatches, aType, aName, aDisplayVersion,
|
||||
aAppVersion, aBuildID, aDetailsURL, aServiceURL,
|
||||
aInstallDate, aStatusText, aIsCompleteUpdate,
|
||||
aChannel, aForegroundDownload, aShowPrompt,
|
||||
aShowNeverForVersion, aPromptWaitTime,
|
||||
aBackgroundInterval, aPreviousAppVersion,
|
||||
aCustom1, aCustom2) {
|
||||
let serviceURL = aServiceURL ? aServiceURL : "http://test_service/";
|
||||
let installDate = aInstallDate ? aInstallDate : "1238441400314";
|
||||
let statusText = aStatusText ? aStatusText : "Install Pending";
|
||||
let isCompleteUpdate =
|
||||
typeof aIsCompleteUpdate == "string" ? aIsCompleteUpdate : "true";
|
||||
let channel = aChannel ? aChannel
|
||||
: gDefaultPrefBranch.getCharPref(PREF_APP_UPDATE_CHANNEL);
|
||||
let foregroundDownload =
|
||||
typeof aForegroundDownload == "string" ? aForegroundDownload : "true";
|
||||
let previousAppVersion = aPreviousAppVersion ? "previousAppVersion=\"" +
|
||||
aPreviousAppVersion + "\" "
|
||||
: "";
|
||||
return getUpdateString(aType, aName, aDisplayVersion, aAppVersion, aBuildID,
|
||||
aDetailsURL, aShowPrompt, aShowNeverForVersion,
|
||||
aPromptWaitTime, aBackgroundInterval, aCustom1, aCustom2) +
|
||||
" " +
|
||||
previousAppVersion +
|
||||
"serviceURL=\"" + serviceURL + "\" " +
|
||||
"installDate=\"" + installDate + "\" " +
|
||||
"statusText=\"" + statusText + "\" " +
|
||||
"isCompleteUpdate=\"" + isCompleteUpdate + "\" " +
|
||||
"channel=\"" + channel + "\" " +
|
||||
"foregroundDownload=\"" + foregroundDownload + "\">" +
|
||||
aPatches +
|
||||
" </update>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing a patch element for a local update xml file.
|
||||
* See getPatchString for parameter information not provided below.
|
||||
*
|
||||
* @param aSelected (optional)
|
||||
* Whether this patch is selected represented or not. The string 'true'
|
||||
* denotes selected and the string 'false' denotes not selected.
|
||||
* If not specified it will default to the string 'true'.
|
||||
* @param aState (optional)
|
||||
* The patch's state.
|
||||
* If not specified it will default to STATE_SUCCEEDED.
|
||||
* @return The string representing a patch element for a local update xml file.
|
||||
*/
|
||||
function getLocalPatchString(aType, aURL, aHashFunction, aHashValue, aSize,
|
||||
aSelected, aState) {
|
||||
let selected = typeof aSelected == "string" ? aSelected : "true";
|
||||
let state = aState ? aState : STATE_SUCCEEDED;
|
||||
return getPatchString(aType, aURL, aHashFunction, aHashValue, aSize) + " " +
|
||||
"selected=\"" + selected + "\" " +
|
||||
"state=\"" + state + "\"/>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing an update element for a remote update xml
|
||||
* file.
|
||||
*
|
||||
* @param aType (optional)
|
||||
* The update's type which should be major or minor. If not specified it
|
||||
* will default to 'major'.
|
||||
* @param aName (optional)
|
||||
* The update's name.
|
||||
* If not specified it will default to 'App Update Test'.
|
||||
* @param aDisplayVersion (optional)
|
||||
* The update's display version.
|
||||
* If not specified it will default to 'version #' where # is the value
|
||||
* of DEFAULT_UPDATE_VERSION.
|
||||
* @param aAppVersion (optional)
|
||||
* The update's application version.
|
||||
* If not specified it will default to the value of
|
||||
* DEFAULT_UPDATE_VERSION.
|
||||
* @param aBuildID (optional)
|
||||
* The update's build id.
|
||||
* If not specified it will default to '20080811053724'.
|
||||
* @param aDetailsURL (optional)
|
||||
* The update's details url.
|
||||
* If not specified it will default to 'http://test_details/' due to due
|
||||
* to bug 470244.
|
||||
* @param aShowPrompt (optional)
|
||||
* Whether to show the prompt for the update when auto update is
|
||||
* enabled.
|
||||
* If not specified it will not be present and the update service will
|
||||
* default to false.
|
||||
* @param aShowNeverForVersion (optional)
|
||||
* Whether to show the 'No Thanks' button in the update prompt.
|
||||
* If not specified it will not be present and the update service will
|
||||
* default to false.
|
||||
* @param aPromptWaitTime (optional)
|
||||
* Override for the app.update.promptWaitTime preference.
|
||||
* @param aBackgroundInterval (optional)
|
||||
* Override for the app.update.download.backgroundInterval preference.
|
||||
* @param aCustom1 (optional)
|
||||
* A custom attribute name and attribute value to add to the xml.
|
||||
* Example: custom1_attribute="custom1 value"
|
||||
* If not specified it will not be present.
|
||||
* @param aCustom2 (optional)
|
||||
* A custom attribute name and attribute value to add to the xml.
|
||||
* Example: custom2_attribute="custom2 value"
|
||||
* If not specified it will not be present.
|
||||
* @return The string representing an update element for an update xml file.
|
||||
*/
|
||||
function getUpdateString(aType, aName, aDisplayVersion, aAppVersion, aBuildID,
|
||||
aDetailsURL, aShowPrompt, aShowNeverForVersion,
|
||||
aPromptWaitTime, aBackgroundInterval, aCustom1,
|
||||
aCustom2) {
|
||||
let type = aType ? aType : "major";
|
||||
let name = aName ? aName : "App Update Test";
|
||||
let displayVersion = aDisplayVersion ? "displayVersion=\"" +
|
||||
aDisplayVersion + "\" "
|
||||
: "";
|
||||
let appVersion = "appVersion=\"" +
|
||||
(aAppVersion ? aAppVersion : DEFAULT_UPDATE_VERSION) +
|
||||
"\" ";
|
||||
let buildID = aBuildID ? aBuildID : "20080811053724";
|
||||
// XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
|
||||
// let detailsURL = aDetailsURL ? "detailsURL=\"" + aDetailsURL + "\" " : "";
|
||||
let detailsURL = "detailsURL=\"" +
|
||||
(aDetailsURL ? aDetailsURL
|
||||
: "http://test_details/") + "\" ";
|
||||
let showPrompt = aShowPrompt ? "showPrompt=\"" + aShowPrompt + "\" " : "";
|
||||
let showNeverForVersion = aShowNeverForVersion ? "showNeverForVersion=\"" +
|
||||
aShowNeverForVersion + "\" "
|
||||
: "";
|
||||
let promptWaitTime = aPromptWaitTime ? "promptWaitTime=\"" + aPromptWaitTime +
|
||||
"\" "
|
||||
: "";
|
||||
let backgroundInterval = aBackgroundInterval ? "backgroundInterval=\"" +
|
||||
aBackgroundInterval + "\" "
|
||||
: "";
|
||||
let custom1 = aCustom1 ? aCustom1 + " " : "";
|
||||
let custom2 = aCustom2 ? aCustom2 + " " : "";
|
||||
return " <update type=\"" + type + "\" " +
|
||||
"name=\"" + name + "\" " +
|
||||
displayVersion +
|
||||
appVersion +
|
||||
detailsURL +
|
||||
showPrompt +
|
||||
showNeverForVersion +
|
||||
promptWaitTime +
|
||||
backgroundInterval +
|
||||
custom1 +
|
||||
custom2 +
|
||||
"buildID=\"" + buildID + "\"";
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representing a patch element for an update xml file.
|
||||
*
|
||||
* @param aType (optional)
|
||||
* The patch's type which should be complete or partial.
|
||||
* If not specified it will default to 'complete'.
|
||||
* @param aURL (optional)
|
||||
* The patch's url to the mar file.
|
||||
* If not specified it will default to the value of:
|
||||
* gURLData + FILE_SIMPLE_MAR
|
||||
* @param aHashFunction (optional)
|
||||
* The patch's hash function used to verify the mar file.
|
||||
* If not specified it will default to 'MD5'.
|
||||
* @param aHashValue (optional)
|
||||
* The patch's hash value used to verify the mar file.
|
||||
* If not specified it will default to the value of MD5_HASH_SIMPLE_MAR
|
||||
* which is the MD5 hash value for the file specified by FILE_SIMPLE_MAR.
|
||||
* @param aSize (optional)
|
||||
* The patch's file size for the mar file.
|
||||
* If not specified it will default to the file size for FILE_SIMPLE_MAR
|
||||
* specified by SIZE_SIMPLE_MAR.
|
||||
* @return The string representing a patch element for an update xml file.
|
||||
*/
|
||||
function getPatchString(aType, aURL, aHashFunction, aHashValue, aSize) {
|
||||
let type = aType ? aType : "complete";
|
||||
let url = aURL ? aURL : gURLData + FILE_SIMPLE_MAR;
|
||||
let hashFunction = aHashFunction ? aHashFunction : "MD5";
|
||||
let hashValue = aHashValue ? aHashValue : MD5_HASH_SIMPLE_MAR;
|
||||
let size = aSize ? aSize : SIZE_SIMPLE_MAR;
|
||||
return " <patch type=\"" + type + "\" " +
|
||||
"URL=\"" + url + "\" " +
|
||||
"hashFunction=\"" + hashFunction + "\" " +
|
||||
"hashValue=\"" + hashValue + "\" " +
|
||||
"size=\"" + size + "\"";
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,53 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/* Preprocessed constants used by xpcshell tests */
|
||||
|
||||
const INSTALL_LOCALE = "@AB_CD@";
|
||||
const MOZ_APP_NAME = "@MOZ_APP_NAME@";
|
||||
const BIN_SUFFIX = "@BIN_SUFFIX@";
|
||||
|
||||
// MOZ_APP_VENDOR is optional.
|
||||
#ifdef MOZ_APP_VENDOR
|
||||
const MOZ_APP_VENDOR = "@MOZ_APP_VENDOR@";
|
||||
#else
|
||||
const MOZ_APP_VENDOR = "";
|
||||
#endif
|
||||
|
||||
// MOZ_APP_BASENAME is not optional for tests.
|
||||
const MOZ_APP_BASENAME = "@MOZ_APP_BASENAME@";
|
||||
const APP_BIN_SUFFIX = "@BIN_SUFFIX@";
|
||||
|
||||
const APP_INFO_NAME = "XPCShell";
|
||||
const APP_INFO_VENDOR = "Mozilla";
|
||||
|
||||
#ifdef XP_WIN
|
||||
const IS_WIN = true;
|
||||
#else
|
||||
const IS_WIN = false;
|
||||
#endif
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
const IS_MACOSX = true;
|
||||
#else
|
||||
const IS_MACOSX = false;
|
||||
#endif
|
||||
|
||||
#ifdef XP_UNIX
|
||||
const IS_UNIX = true;
|
||||
#else
|
||||
const IS_UNIX = false;
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_VERIFY_MAR_SIGNATURE
|
||||
const MOZ_VERIFY_MAR_SIGNATURE = true;
|
||||
#else
|
||||
const MOZ_VERIFY_MAR_SIGNATURE = false;
|
||||
#endif
|
||||
|
||||
#ifdef DISABLE_UPDATER_AUTHENTICODE_CHECK
|
||||
const IS_AUTHENTICODE_CHECK_ENABLED = false;
|
||||
#else
|
||||
const IS_AUTHENTICODE_CHECK_ENABLED = true;
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,95 +0,0 @@
|
|||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
HAS_MISC_RULE = True
|
||||
|
||||
FINAL_TARGET = '_tests/xpcshell/toolkit/mozapps/update/tests/data'
|
||||
|
||||
MOCHITEST_CHROME_MANIFESTS += ['chrome/chrome.ini']
|
||||
|
||||
XPCSHELL_TESTS_MANIFESTS += [
|
||||
'unit_aus_update/xpcshell.ini',
|
||||
'unit_base_updater/xpcshell.ini'
|
||||
]
|
||||
|
||||
SimplePrograms([
|
||||
'TestAUSHelper',
|
||||
'TestAUSReadStrings',
|
||||
])
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/toolkit/mozapps/update',
|
||||
'/toolkit/mozapps/update/common',
|
||||
]
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
USE_LIBS += [
|
||||
'updatecommon-standalone',
|
||||
]
|
||||
|
||||
OS_LIBS += [
|
||||
'shlwapi',
|
||||
]
|
||||
else:
|
||||
USE_LIBS += [
|
||||
'updatecommon',
|
||||
]
|
||||
|
||||
for var in ('MOZ_APP_NAME', 'MOZ_APP_BASENAME', 'MOZ_APP_DISPLAYNAME',
|
||||
'MOZ_APP_VENDOR', 'BIN_SUFFIX', 'MOZ_DEBUG'):
|
||||
DEFINES[var] = CONFIG[var]
|
||||
|
||||
DEFINES['NS_NO_XPCOM'] = True
|
||||
|
||||
# For debugging purposes only
|
||||
#DEFINES['DISABLE_UPDATER_AUTHENTICODE_CHECK'] = True
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
DEFINES['UNICODE'] = True
|
||||
DEFINES['_UNICODE'] = True
|
||||
USE_STATIC_LIBS = True
|
||||
if CONFIG['GNU_CC']:
|
||||
WIN32_EXE_LDFLAGS += ['-municode']
|
||||
|
||||
TEST_HARNESS_FILES.testing.mochitest.chrome.toolkit.mozapps.update.tests.data += [
|
||||
'data/shared.js',
|
||||
'data/sharedUpdateXML.js',
|
||||
'data/simple.mar',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES += [
|
||||
'data/complete.exe',
|
||||
'data/complete.mar',
|
||||
'data/complete.png',
|
||||
'data/complete_log_success_mac',
|
||||
'data/complete_log_success_win',
|
||||
'data/complete_mac.mar',
|
||||
'data/complete_precomplete',
|
||||
'data/complete_precomplete_mac',
|
||||
'data/complete_removed-files',
|
||||
'data/complete_removed-files_mac',
|
||||
'data/complete_update_manifest',
|
||||
'data/old_version.mar',
|
||||
'data/partial.exe',
|
||||
'data/partial.mar',
|
||||
'data/partial.png',
|
||||
'data/partial_log_failure_mac',
|
||||
'data/partial_log_failure_win',
|
||||
'data/partial_log_success_mac',
|
||||
'data/partial_log_success_win',
|
||||
'data/partial_mac.mar',
|
||||
'data/partial_precomplete',
|
||||
'data/partial_precomplete_mac',
|
||||
'data/partial_removed-files',
|
||||
'data/partial_removed-files_mac',
|
||||
'data/partial_update_manifest',
|
||||
'data/replace_log_success',
|
||||
'data/shared.js',
|
||||
'data/sharedUpdateXML.js',
|
||||
'data/simple.mar',
|
||||
'data/wrong_product_channel.mar',
|
||||
'data/xpcshellUtilsAUS.js',
|
||||
]
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue