toolkit/mozapps/update/tests/unit_base_updater/marAppInUseSuccessComplete.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/mozapps/update/tests/unit_base_updater/marAppInUseSuccessComplete.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,61 @@
     1.4 +/* Any copyright is dedicated to the Public Domain.
     1.5 + * http://creativecommons.org/publicdomain/zero/1.0/
     1.6 + */
     1.7 +
     1.8 +/* Application in use complete MAR file patch apply success test */
     1.9 +
    1.10 +function run_test() {
    1.11 +  setupTestCommon();
    1.12 +  gTestFiles = gTestFilesCompleteSuccess;
    1.13 +  gTestDirs = gTestDirsCompleteSuccess;
    1.14 +  setupUpdaterTest(FILE_COMPLETE_MAR, false, false);
    1.15 +
    1.16 +  // Launch the callback helper application so it is in use during the update.
    1.17 +  let callbackApp = getApplyDirFile("a/b/" + gCallbackBinFile);
    1.18 +  callbackApp.permissions = PERMS_DIRECTORY;
    1.19 +  let args = [getApplyDirPath() + "a/b/", "input", "output", "-s",
    1.20 +              HELPER_SLEEP_TIMEOUT];
    1.21 +  let callbackAppProcess = AUS_Cc["@mozilla.org/process/util;1"].
    1.22 +                           createInstance(AUS_Ci.nsIProcess);
    1.23 +  callbackAppProcess.init(callbackApp);
    1.24 +  callbackAppProcess.run(false, args, args.length);
    1.25 +
    1.26 +  do_timeout(TEST_HELPER_TIMEOUT, waitForHelperSleep);
    1.27 +}
    1.28 +
    1.29 +function doUpdate() {
    1.30 +  // For Mac OS X set the last modified time for the root directory to a date in
    1.31 +  // the past to test that the last modified time is updated on a successful
    1.32 +  // update (bug 600098).
    1.33 +  if (IS_MACOSX) {
    1.34 +    let applyToDir = getApplyDirFile();
    1.35 +    let now = Date.now();
    1.36 +    let yesterday = now - (1000 * 60 * 60 * 24);
    1.37 +    applyToDir.lastModifiedTime = yesterday;
    1.38 +  }
    1.39 +
    1.40 +  runUpdate(0, STATE_SUCCEEDED);
    1.41 +}
    1.42 +
    1.43 +function checkUpdateApplied() {
    1.44 +  setupHelperFinish();
    1.45 +}
    1.46 +
    1.47 +function checkUpdate() {
    1.48 +  if (IS_MACOSX) {
    1.49 +    logTestInfo("testing last modified time on the apply to directory has " +
    1.50 +                "changed after a successful update (bug 600098)");
    1.51 +    let now = Date.now();
    1.52 +    let applyToDir = getApplyDirFile();
    1.53 +    let timeDiff = Math.abs(applyToDir.lastModifiedTime - now);
    1.54 +    do_check_true(timeDiff < MAC_MAX_TIME_DIFFERENCE);
    1.55 +  }
    1.56 +
    1.57 +  checkFilesAfterUpdateSuccess();
    1.58 +  // Sorting on Linux is different so skip this check for now.
    1.59 +  if (!IS_UNIX) {
    1.60 +    checkUpdateLogContents(LOG_COMPLETE_SUCCESS);
    1.61 +  }
    1.62 +
    1.63 +  checkCallbackAppLog();
    1.64 +}

mercurial