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

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
     4  */
     6 function run_test() {
     7   setupTestCommon();
     9   logTestInfo("testing addition of a successful update to " + FILE_UPDATES_DB +
    10               " and verification of update properties including the format " +
    11               "prior to bug 530872");
    13   setUpdateChannel("test_channel");
    15   var patch, patches, update, updates;
    16   // XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
    17   // and until bug 470244 is fixed this will not test the value for detailsURL 
    18   // when it isn't specified in the update xml.
    19   patches = getLocalPatchString("partial", "http://partial/", "SHA256", "cd43",
    20                                 "86", "true", STATE_PENDING);
    21   updates = getLocalUpdateString(patches, "major", "New", "version 4", "4.0",
    22                                  "4.0", "20070811053724", "http://details1/",
    23                                  "http://billboard1/", "http://license1/",
    24                                  "http://service1/", "1238441300314",
    25                                  "test status text", "false", "test_channel",
    26                                  "true", "true", "true", "345600", "true",
    27                                  "test version", "3.0", "3.0",
    28                                  "custom1_attr=\"custom1 value\"",
    29                                  "custom2_attr=\"custom2 value\"");
    31   writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
    32   writeStatusFile(STATE_SUCCEEDED);
    34   patches = getLocalPatchString("complete", "http://complete/", "SHA1", "6232",
    35                                 "75", "true", STATE_FAILED);
    36   updates = getLocalUpdateString(patches, "major", "Existing", null, null,
    37                                  "3.0", null, "http://details2/", null, null,
    38                                  "http://service2/", null,
    39                                  getString("patchApplyFailure"), "true",
    40                                  "test_channel", "false", null, null, "691200",
    41                                  null, "version 3", "3.0", null,
    42                                  "custom3_attr=\"custom3 value\"",
    43                                  "custom4_attr=\"custom4 value\"");
    44   writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), false);
    46   standardInit();
    48   do_check_eq(gUpdateManager.activeUpdate, null);
    49   do_check_eq(gUpdateManager.updateCount, 2);
    51   update = gUpdateManager.getUpdateAt(0).QueryInterface(AUS_Ci.nsIPropertyBag);
    52   do_check_eq(update.state, STATE_SUCCEEDED);
    53   do_check_eq(update.type, "major");
    54   do_check_eq(update.name, "New");
    55   do_check_eq(update.displayVersion, "version 4");
    56   do_check_eq(update.appVersion, "4.0");
    57   do_check_eq(update.platformVersion, "4.0");
    58   do_check_eq(update.buildID, "20070811053724");
    59   do_check_eq(update.detailsURL, "http://details1/");
    60   do_check_eq(update.billboardURL, "http://billboard1/");
    61   do_check_eq(update.licenseURL, "http://license1/");
    62   do_check_eq(update.serviceURL, "http://service1/");
    63   do_check_eq(update.installDate, "1238441300314");
    64   // statusText is updated
    65   do_check_eq(update.statusText, getString("installSuccess"));
    66   do_check_false(update.isCompleteUpdate);
    67   do_check_eq(update.channel, "test_channel");
    68   do_check_true(update.showPrompt);
    69   do_check_true(update.showNeverForVersion);
    70   do_check_eq(update.promptWaitTime, "345600");
    71   do_check_eq(update.previousAppVersion, "3.0");
    72   // Custom attributes
    73   do_check_eq(update.getProperty("custom1_attr"), "custom1 value");
    74   do_check_eq(update.getProperty("custom2_attr"), "custom2 value");
    76   patch = update.selectedPatch;
    77   do_check_eq(patch.type, "partial");
    78   do_check_eq(patch.URL, "http://partial/");
    79   do_check_eq(patch.hashFunction, "SHA256");
    80   do_check_eq(patch.hashValue, "cd43");
    81   do_check_eq(patch.size, "86");
    82   do_check_true(patch.selected);
    83   do_check_eq(patch.state, STATE_SUCCEEDED);
    85   update = gUpdateManager.getUpdateAt(1).QueryInterface(AUS_Ci.nsIPropertyBag);
    86   do_check_eq(update.state, STATE_FAILED);
    87   do_check_eq(update.name, "Existing");
    88   do_check_eq(update.type, "major");
    89   do_check_eq(update.displayVersion, "version 3");
    90   do_check_eq(update.appVersion, "3.0");
    91   do_check_eq(update.platformVersion, "3.0");
    92   do_check_eq(update.detailsURL, "http://details2/");
    93   do_check_eq(update.billboardURL, "http://details2/");
    94   do_check_eq(update.licenseURL, null);
    95   do_check_eq(update.serviceURL, "http://service2/");
    96   do_check_eq(update.installDate, "1238441400314");
    97   do_check_eq(update.statusText, getString("patchApplyFailure"));
    98   do_check_eq(update.buildID, "20080811053724");
    99   do_check_true(update.isCompleteUpdate);
   100   do_check_eq(update.channel, "test_channel");
   101   do_check_true(update.showPrompt);
   102   do_check_true(update.showNeverForVersion);
   103   do_check_eq(update.promptWaitTime, "691200");
   104   do_check_eq(update.previousAppVersion, null);
   105   // Custom attributes
   106   do_check_eq(update.getProperty("custom3_attr"), "custom3 value");
   107   do_check_eq(update.getProperty("custom4_attr"), "custom4 value");
   109   patch = update.selectedPatch;
   110   do_check_eq(patch.type, "complete");
   111   do_check_eq(patch.URL, "http://complete/");
   112   do_check_eq(patch.hashFunction, "SHA1");
   113   do_check_eq(patch.hashValue, "6232");
   114   do_check_eq(patch.size, "75");
   115   do_check_true(patch.selected);
   116   do_check_eq(patch.state, STATE_FAILED);
   118   removeUpdateDirsAndFiles();
   120   // XXXrstrong - not specifying a detailsURL will cause a leak due to bug 470244
   121   // and until this is fixed this will not test the value for detailsURL when it
   122   // isn't specified in the update xml.
   123   patches = getLocalPatchString(null, null, null, null, null, null,
   124                                 STATE_PENDING);
   125   updates = getLocalUpdateString(patches, "major", "New", null, null, "4.0",
   126                                  null, "http://details/", "http://billboard/",
   127                                  "http://license/", "http://service/",
   128                                  "1238441400314", "test status text", null,
   129                                  "test_channel", "true", "true", "true", "100",
   130                                  "true", "version 4.0", "4.0", "3.0");
   132   writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), true);
   133   writeStatusFile(STATE_SUCCEEDED);
   135   patches = getLocalPatchString(null, null, null, null, null, null,
   136                                 STATE_FAILED);
   137   updates = getLocalUpdateString(patches, "major", "Existing", "version 3.0",
   138                                  "3.0", "3.0", null, "http://details/", null,
   139                                  null, "http://service/", null,
   140                                  getString("patchApplyFailure"), null,
   141                                  "test_channel", "false", null, null, "200",
   142                                  null, "version 3", null, null);
   143   writeUpdatesToXMLFile(getLocalUpdatesXMLString(updates), false);
   145   reloadUpdateManagerData();
   146   initUpdateServiceStub();
   148   do_check_eq(gUpdateManager.activeUpdate, null);
   149   do_check_eq(gUpdateManager.updateCount, 2);
   151   update = gUpdateManager.getUpdateAt(0);
   152   do_check_eq(update.state, STATE_SUCCEEDED);
   153   do_check_eq(update.type, "major");
   154   do_check_eq(update.name, "New");
   155   do_check_eq(update.displayVersion, "version 4.0");
   156   do_check_eq(update.appVersion, "4.0");
   157   do_check_eq(update.platformVersion, "4.0");
   158   do_check_eq(update.detailsURL, "http://details/");
   159   do_check_eq(update.billboardURL, "http://billboard/");
   160   do_check_eq(update.licenseURL, "http://license/");
   161   do_check_eq(update.serviceURL, "http://service/");
   162   do_check_eq(update.installDate, "1238441400314");
   163   do_check_eq(update.statusText, getString("installSuccess"));
   164   do_check_eq(update.buildID, "20080811053724");
   165   do_check_true(update.isCompleteUpdate);
   166   do_check_eq(update.channel, "test_channel");
   167   do_check_true(update.showPrompt);
   168   do_check_true(update.showNeverForVersion);
   169   do_check_eq(update.promptWaitTime, "100");
   170   do_check_eq(update.previousAppVersion, "3.0");
   172   patch = update.selectedPatch;
   173   do_check_eq(patch.type, "complete");
   174   do_check_eq(patch.URL, URL_HOST + "/" + FILE_SIMPLE_MAR);
   175   do_check_eq(patch.hashFunction, "MD5");
   176   do_check_eq(patch.hashValue, MD5_HASH_SIMPLE_MAR);
   177   do_check_eq(patch.size, SIZE_SIMPLE_MAR);
   178   do_check_true(patch.selected);
   179   do_check_eq(patch.state, STATE_SUCCEEDED);
   181   update = gUpdateManager.getUpdateAt(1);
   182   do_check_eq(update.state, STATE_FAILED);
   183   do_check_eq(update.name, "Existing");
   184   do_check_eq(update.type, "major");
   185   do_check_eq(update.displayVersion, "version 3.0");
   186   do_check_eq(update.appVersion, "3.0");
   187   do_check_eq(update.platformVersion, "3.0");
   188   do_check_eq(update.detailsURL, "http://details/");
   189   do_check_eq(update.billboardURL, null);
   190   do_check_eq(update.licenseURL, null);
   191   do_check_eq(update.serviceURL, "http://service/");
   192   do_check_eq(update.installDate, "1238441400314");
   193   do_check_eq(update.statusText, getString("patchApplyFailure"));
   194   do_check_eq(update.buildID, "20080811053724");
   195   do_check_true(update.isCompleteUpdate);
   196   do_check_eq(update.channel, "test_channel");
   197   do_check_false(update.showPrompt);
   198   do_check_false(update.showNeverForVersion);
   199   do_check_eq(update.promptWaitTime, "200");
   200   do_check_eq(update.previousAppVersion, null);
   202   patch = update.selectedPatch;
   203   do_check_eq(patch.type, "complete");
   204   do_check_eq(patch.URL, URL_HOST + "/" + FILE_SIMPLE_MAR);
   205   do_check_eq(patch.hashFunction, "MD5");
   206   do_check_eq(patch.hashValue, MD5_HASH_SIMPLE_MAR);
   207   do_check_eq(patch.size, SIZE_SIMPLE_MAR);
   208   do_check_true(patch.selected);
   209   do_check_eq(patch.state, STATE_FAILED);
   211   doTestFinish();
   212 }

mercurial