mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Tests for Bug 470979 and Bug 512994 and Buf. r=dtownsend
This commit is contained in:
parent
19722bb3b8
commit
23f56141a5
@ -45,7 +45,7 @@ const AUS_Cr = Components.results;
|
||||
const NS_APP_PROFILE_DIR_STARTUP = "ProfDS";
|
||||
const NS_APP_USER_PROFILE_50_DIR = "ProfD";
|
||||
const NS_GRE_DIR = "GreD";
|
||||
const NS_XPCOM_CURRENT_PROCESS_DIR = "XCurProcD"
|
||||
const NS_XPCOM_CURRENT_PROCESS_DIR = "XCurProcD";
|
||||
const XRE_UPDATE_ROOT_DIR = "UpdRootD";
|
||||
|
||||
const PREF_APP_UPDATE_URL_OVERRIDE = "app.update.url.override";
|
||||
@ -66,6 +66,9 @@ const STATE_FAILED = "failed";
|
||||
|
||||
const FILE_UPDATES_DB = "updates.xml";
|
||||
const FILE_UPDATE_ACTIVE = "active-update.xml";
|
||||
const FILE_UPDATE_LOG = "update.log"
|
||||
const FILE_LAST_LOG = "last-update.log";
|
||||
const FILE_BACKUP_LOG = "backup-update.log";
|
||||
|
||||
const MODE_RDONLY = 0x01;
|
||||
const MODE_WRONLY = 0x02;
|
||||
@ -416,14 +419,23 @@ function writeUpdatesToXMLFile(aContent, aIsActiveUpdate) {
|
||||
* The status value to write.
|
||||
*/
|
||||
function writeStatusFile(aStatus) {
|
||||
var file = getCurrentProcessDir();
|
||||
file.append("updates");
|
||||
var file = getUpdatesDir();
|
||||
file.append("0");
|
||||
file.append("update.status");
|
||||
aStatus += "\n";
|
||||
writeFile(file, aStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the updates directory.
|
||||
* @returns The updates directory.
|
||||
*/
|
||||
function getUpdatesDir() {
|
||||
var dir = getCurrentProcessDir();
|
||||
dir.append("updates");
|
||||
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.
|
||||
@ -704,7 +716,19 @@ function removeUpdateDirsAndFiles() {
|
||||
|
||||
file = appDir.clone();
|
||||
file.append("updates");
|
||||
file.append("last-update.log");
|
||||
file.append(FILE_LAST_LOG);
|
||||
try {
|
||||
if (file.exists())
|
||||
file.remove(false);
|
||||
}
|
||||
catch (e) {
|
||||
dump("Unable to remove file\npath: " + file.path +
|
||||
"\nException: " + e + "\n");
|
||||
}
|
||||
|
||||
file = appDir.clone();
|
||||
file.append("updates");
|
||||
file.append(FILE_BACKUP_LOG);
|
||||
try {
|
||||
if (file.exists())
|
||||
file.remove(false);
|
||||
|
@ -0,0 +1,83 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Application Update Service.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Robert Strong <robert.bugzilla@gmail.com>.
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 2009
|
||||
* the Mozilla Foundation <http://www.mozilla.org/>. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/* General Update Directory Cleanup Tests */
|
||||
|
||||
function run_test() {
|
||||
removeUpdateDirsAndFiles();
|
||||
var defaults = getPrefBranch().QueryInterface(AUS_Ci.nsIPrefService).
|
||||
getDefaultBranch(null);
|
||||
defaults.setCharPref("app.update.channel", "bogus_channel");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
var patches = getLocalPatchString(null, null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
var updates = getLocalUpdateString(patches);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
var dir = getUpdatesDir();
|
||||
var log = dir.clone();
|
||||
log.append("0");
|
||||
log.append(FILE_UPDATE_LOG);
|
||||
writeFile(log, "Last Update Log");
|
||||
|
||||
startAUS();
|
||||
|
||||
dump("Testing: " + FILE_UPDATE_LOG + " doesn't exist\n");
|
||||
do_check_false(log.exists());
|
||||
|
||||
dump("Testing: " + FILE_LAST_LOG + " exists\n");
|
||||
log = dir.clone();
|
||||
log.append(FILE_LAST_LOG);
|
||||
do_check_true(log.exists());
|
||||
|
||||
dump("Testing: " + FILE_LAST_LOG + " contents\n");
|
||||
do_check_eq(readFile(log), "Last Update Log");
|
||||
|
||||
dump("Testing: " + FILE_BACKUP_LOG + " doesn't exist\n");
|
||||
log = dir.clone();
|
||||
log.append(FILE_BACKUP_LOG);
|
||||
do_check_false(log.exists());
|
||||
|
||||
dump("Testing: " + dir.path + " exists (bug 512994)\n");
|
||||
dir.append("0");
|
||||
do_check_true(dir.exists());
|
||||
|
||||
cleanUp();
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Application Update Service.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Robert Strong <robert.bugzilla@gmail.com>.
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 2009
|
||||
* the Mozilla Foundation <http://www.mozilla.org/>. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/* General Update Directory Cleanup Tests */
|
||||
|
||||
function run_test() {
|
||||
removeUpdateDirsAndFiles();
|
||||
var defaults = getPrefBranch().QueryInterface(AUS_Ci.nsIPrefService).
|
||||
getDefaultBranch(null);
|
||||
defaults.setCharPref("app.update.channel", "bogus_channel");
|
||||
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(""), false);
|
||||
var patches = getLocalPatchString(null, null, null, null, null, null,
|
||||
STATE_PENDING);
|
||||
var updates = getLocalUpdateString(patches);
|
||||
writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
|
||||
writeStatusFile(STATE_SUCCEEDED);
|
||||
|
||||
var dir = getUpdatesDir();
|
||||
var log = dir.clone();
|
||||
log.append(FILE_LAST_LOG);
|
||||
writeFile(log, "Backup Update Log");
|
||||
|
||||
log = dir.clone();
|
||||
log.append(FILE_BACKUP_LOG);
|
||||
writeFile(log, "To Be Deleted Backup Update Log");
|
||||
|
||||
log = dir.clone();
|
||||
log.append("0");
|
||||
log.append(FILE_UPDATE_LOG);
|
||||
writeFile(log, "Last Update Log");
|
||||
|
||||
startAUS();
|
||||
|
||||
dump("Testing: " + FILE_UPDATE_LOG + " doesn't exist\n");
|
||||
do_check_false(log.exists());
|
||||
|
||||
dump("Testing: " + FILE_LAST_LOG + " exists\n");
|
||||
log = dir.clone();
|
||||
log.append(FILE_LAST_LOG);
|
||||
do_check_true(log.exists());
|
||||
|
||||
dump("Testing: " + FILE_LAST_LOG + " contents\n");
|
||||
do_check_eq(readFile(log), "Last Update Log");
|
||||
|
||||
dump("Testing: " + FILE_BACKUP_LOG + " exists\n");
|
||||
log = dir.clone();
|
||||
log.append(FILE_BACKUP_LOG);
|
||||
do_check_true(log.exists());
|
||||
|
||||
dump("Testing: " + FILE_BACKUP_LOG + " contents (bug 470979)\n");
|
||||
do_check_eq(readFile(log), "Backup Update Log");
|
||||
|
||||
dump("Testing: " + dir.path + " exists (bug 512994)\n");
|
||||
dir.append("0");
|
||||
do_check_true(dir.exists());
|
||||
|
||||
cleanUp();
|
||||
}
|
Loading…
Reference in New Issue
Block a user