toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,212 @@
     1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.7 + */
     1.8 +
     1.9 +function run_test() {
    1.10 +  setupTestCommon();
    1.11 +
    1.12 +  logTestInfo("testing addition of a successful update to " + FILE_UPDATES_DB +
    1.13 +              " and verification of update properties including the format " +
    1.14 +              "prior to bug 530872");
    1.15 +
    1.16 +  setUpdateChannel("test_channel");
    1.17 +
    1.18 +  var patch, patches, update, updates;
    1.19 +  // XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
    1.20 +  // and until bug 470244 is fixed this will not test the value for detailsURL 
    1.21 +  // when it isn't specified in the update xml.
    1.22 +  patches = getLocalPatchString("partial", "http://partial/", "SHA256", "cd43",
    1.23 +                                "86", "true", STATE_PENDING);
    1.24 +  updates = getLocalUpdateString(patches, "major", "New", "version 4", "4.0",
    1.25 +                                 "4.0", "20070811053724", "http://details1/",
    1.26 +                                 "http://billboard1/", "http://license1/",
    1.27 +                                 "http://service1/", "1238441300314",
    1.28 +                                 "test status text", "false", "test_channel",
    1.29 +                                 "true", "true", "true", "345600", "true",
    1.30 +                                 "test version", "3.0", "3.0",
    1.31 +                                 "custom1_attr=\"custom1 value\"",
    1.32 +                                 "custom2_attr=\"custom2 value\"");
    1.33 +
    1.34 +  writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
    1.35 +  writeStatusFile(STATE_SUCCEEDED);
    1.36 +
    1.37 +  patches = getLocalPatchString("complete", "http://complete/", "SHA1", "6232",
    1.38 +                                "75", "true", STATE_FAILED);
    1.39 +  updates = getLocalUpdateString(patches, "major", "Existing", null, null,
    1.40 +                                 "3.0", null, "http://details2/", null, null,
    1.41 +                                 "http://service2/", null,
    1.42 +                                 getString("patchApplyFailure"), "true",
    1.43 +                                 "test_channel", "false", null, null, "691200",
    1.44 +                                 null, "version 3", "3.0", null,
    1.45 +                                 "custom3_attr=\"custom3 value\"",
    1.46 +                                 "custom4_attr=\"custom4 value\"");
    1.47 +  writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), false);
    1.48 +
    1.49 +  standardInit();
    1.50 +
    1.51 +  do_check_eq(gUpdateManager.activeUpdate, null);
    1.52 +  do_check_eq(gUpdateManager.updateCount, 2);
    1.53 +
    1.54 +  update = gUpdateManager.getUpdateAt(0).QueryInterface(AUS_Ci.nsIPropertyBag);
    1.55 +  do_check_eq(update.state, STATE_SUCCEEDED);
    1.56 +  do_check_eq(update.type, "major");
    1.57 +  do_check_eq(update.name, "New");
    1.58 +  do_check_eq(update.displayVersion, "version 4");
    1.59 +  do_check_eq(update.appVersion, "4.0");
    1.60 +  do_check_eq(update.platformVersion, "4.0");
    1.61 +  do_check_eq(update.buildID, "20070811053724");
    1.62 +  do_check_eq(update.detailsURL, "http://details1/");
    1.63 +  do_check_eq(update.billboardURL, "http://billboard1/");
    1.64 +  do_check_eq(update.licenseURL, "http://license1/");
    1.65 +  do_check_eq(update.serviceURL, "http://service1/");
    1.66 +  do_check_eq(update.installDate, "1238441300314");
    1.67 +  // statusText is updated
    1.68 +  do_check_eq(update.statusText, getString("installSuccess"));
    1.69 +  do_check_false(update.isCompleteUpdate);
    1.70 +  do_check_eq(update.channel, "test_channel");
    1.71 +  do_check_true(update.showPrompt);
    1.72 +  do_check_true(update.showNeverForVersion);
    1.73 +  do_check_eq(update.promptWaitTime, "345600");
    1.74 +  do_check_eq(update.previousAppVersion, "3.0");
    1.75 +  // Custom attributes
    1.76 +  do_check_eq(update.getProperty("custom1_attr"), "custom1 value");
    1.77 +  do_check_eq(update.getProperty("custom2_attr"), "custom2 value");
    1.78 +
    1.79 +  patch = update.selectedPatch;
    1.80 +  do_check_eq(patch.type, "partial");
    1.81 +  do_check_eq(patch.URL, "http://partial/");
    1.82 +  do_check_eq(patch.hashFunction, "SHA256");
    1.83 +  do_check_eq(patch.hashValue, "cd43");
    1.84 +  do_check_eq(patch.size, "86");
    1.85 +  do_check_true(patch.selected);
    1.86 +  do_check_eq(patch.state, STATE_SUCCEEDED);
    1.87 +
    1.88 +  update = gUpdateManager.getUpdateAt(1).QueryInterface(AUS_Ci.nsIPropertyBag);
    1.89 +  do_check_eq(update.state, STATE_FAILED);
    1.90 +  do_check_eq(update.name, "Existing");
    1.91 +  do_check_eq(update.type, "major");
    1.92 +  do_check_eq(update.displayVersion, "version 3");
    1.93 +  do_check_eq(update.appVersion, "3.0");
    1.94 +  do_check_eq(update.platformVersion, "3.0");
    1.95 +  do_check_eq(update.detailsURL, "http://details2/");
    1.96 +  do_check_eq(update.billboardURL, "http://details2/");
    1.97 +  do_check_eq(update.licenseURL, null);
    1.98 +  do_check_eq(update.serviceURL, "http://service2/");
    1.99 +  do_check_eq(update.installDate, "1238441400314");
   1.100 +  do_check_eq(update.statusText, getString("patchApplyFailure"));
   1.101 +  do_check_eq(update.buildID, "20080811053724");
   1.102 +  do_check_true(update.isCompleteUpdate);
   1.103 +  do_check_eq(update.channel, "test_channel");
   1.104 +  do_check_true(update.showPrompt);
   1.105 +  do_check_true(update.showNeverForVersion);
   1.106 +  do_check_eq(update.promptWaitTime, "691200");
   1.107 +  do_check_eq(update.previousAppVersion, null);
   1.108 +  // Custom attributes
   1.109 +  do_check_eq(update.getProperty("custom3_attr"), "custom3 value");
   1.110 +  do_check_eq(update.getProperty("custom4_attr"), "custom4 value");
   1.111 +
   1.112 +  patch = update.selectedPatch;
   1.113 +  do_check_eq(patch.type, "complete");
   1.114 +  do_check_eq(patch.URL, "http://complete/");
   1.115 +  do_check_eq(patch.hashFunction, "SHA1");
   1.116 +  do_check_eq(patch.hashValue, "6232");
   1.117 +  do_check_eq(patch.size, "75");
   1.118 +  do_check_true(patch.selected);
   1.119 +  do_check_eq(patch.state, STATE_FAILED);
   1.120 +
   1.121 +  removeUpdateDirsAndFiles();
   1.122 +
   1.123 +  // XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
   1.124 +  // and until this is fixed this will not test the value for detailsURL when it
   1.125 +  // isn't specified in the update xml.
   1.126 +  patches = getLocalPatchString(null, null, null, null, null, null,
   1.127 +                                STATE_PENDING);
   1.128 +  updates = getLocalUpdateString(patches, "major", "New", null, null, "4.0",
   1.129 +                                 null, "http://details/", "http://billboard/",
   1.130 +                                 "http://license/", "http://service/",
   1.131 +                                 "1238441400314", "test status text", null,
   1.132 +                                 "test_channel", "true", "true", "true", "100",
   1.133 +                                 "true", "version 4.0", "4.0", "3.0");
   1.134 +
   1.135 +  writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
   1.136 +  writeStatusFile(STATE_SUCCEEDED);
   1.137 +
   1.138 +  patches = getLocalPatchString(null, null, null, null, null, null,
   1.139 +                                STATE_FAILED);
   1.140 +  updates = getLocalUpdateString(patches, "major", "Existing", "version 3.0",
   1.141 +                                 "3.0", "3.0", null, "http://details/", null,
   1.142 +                                 null, "http://service/", null,
   1.143 +                                 getString("patchApplyFailure"), null,
   1.144 +                                 "test_channel", "false", null, null, "200",
   1.145 +                                 null, "version 3", null, null);
   1.146 +  writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), false);
   1.147 +
   1.148 +  reloadUpdateManagerData();
   1.149 +  initUpdateServiceStub();
   1.150 +
   1.151 +  do_check_eq(gUpdateManager.activeUpdate, null);
   1.152 +  do_check_eq(gUpdateManager.updateCount, 2);
   1.153 +
   1.154 +  update = gUpdateManager.getUpdateAt(0);
   1.155 +  do_check_eq(update.state, STATE_SUCCEEDED);
   1.156 +  do_check_eq(update.type, "major");
   1.157 +  do_check_eq(update.name, "New");
   1.158 +  do_check_eq(update.displayVersion, "version 4.0");
   1.159 +  do_check_eq(update.appVersion, "4.0");
   1.160 +  do_check_eq(update.platformVersion, "4.0");
   1.161 +  do_check_eq(update.detailsURL, "http://details/");
   1.162 +  do_check_eq(update.billboardURL, "http://billboard/");
   1.163 +  do_check_eq(update.licenseURL, "http://license/");
   1.164 +  do_check_eq(update.serviceURL, "http://service/");
   1.165 +  do_check_eq(update.installDate, "1238441400314");
   1.166 +  do_check_eq(update.statusText, getString("installSuccess"));
   1.167 +  do_check_eq(update.buildID, "20080811053724");
   1.168 +  do_check_true(update.isCompleteUpdate);
   1.169 +  do_check_eq(update.channel, "test_channel");
   1.170 +  do_check_true(update.showPrompt);
   1.171 +  do_check_true(update.showNeverForVersion);
   1.172 +  do_check_eq(update.promptWaitTime, "100");
   1.173 +  do_check_eq(update.previousAppVersion, "3.0");
   1.174 +
   1.175 +  patch = update.selectedPatch;
   1.176 +  do_check_eq(patch.type, "complete");
   1.177 +  do_check_eq(patch.URL, URL_HOST + "/" + FILE_SIMPLE_MAR);
   1.178 +  do_check_eq(patch.hashFunction, "MD5");
   1.179 +  do_check_eq(patch.hashValue, MD5_HASH_SIMPLE_MAR);
   1.180 +  do_check_eq(patch.size, SIZE_SIMPLE_MAR);
   1.181 +  do_check_true(patch.selected);
   1.182 +  do_check_eq(patch.state, STATE_SUCCEEDED);
   1.183 +
   1.184 +  update = gUpdateManager.getUpdateAt(1);
   1.185 +  do_check_eq(update.state, STATE_FAILED);
   1.186 +  do_check_eq(update.name, "Existing");
   1.187 +  do_check_eq(update.type, "major");
   1.188 +  do_check_eq(update.displayVersion, "version 3.0");
   1.189 +  do_check_eq(update.appVersion, "3.0");
   1.190 +  do_check_eq(update.platformVersion, "3.0");
   1.191 +  do_check_eq(update.detailsURL, "http://details/");
   1.192 +  do_check_eq(update.billboardURL, null);
   1.193 +  do_check_eq(update.licenseURL, null);
   1.194 +  do_check_eq(update.serviceURL, "http://service/");
   1.195 +  do_check_eq(update.installDate, "1238441400314");
   1.196 +  do_check_eq(update.statusText, getString("patchApplyFailure"));
   1.197 +  do_check_eq(update.buildID, "20080811053724");
   1.198 +  do_check_true(update.isCompleteUpdate);
   1.199 +  do_check_eq(update.channel, "test_channel");
   1.200 +  do_check_false(update.showPrompt);
   1.201 +  do_check_false(update.showNeverForVersion);
   1.202 +  do_check_eq(update.promptWaitTime, "200");
   1.203 +  do_check_eq(update.previousAppVersion, null);
   1.204 +
   1.205 +  patch = update.selectedPatch;
   1.206 +  do_check_eq(patch.type, "complete");
   1.207 +  do_check_eq(patch.URL, URL_HOST + "/" + FILE_SIMPLE_MAR);
   1.208 +  do_check_eq(patch.hashFunction, "MD5");
   1.209 +  do_check_eq(patch.hashValue, MD5_HASH_SIMPLE_MAR);
   1.210 +  do_check_eq(patch.size, SIZE_SIMPLE_MAR);
   1.211 +  do_check_true(patch.selected);
   1.212 +  do_check_eq(patch.state, STATE_FAILED);
   1.213 +
   1.214 +  doTestFinish();
   1.215 +}

mercurial