dom/tests/mochitest/ajax/offline/test_bug744719-cancel.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/tests/mochitest/ajax/offline/test_bug744719-cancel.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,83 @@
     1.4 +<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/744719-cancel.cacheManifest">
     1.5 +<head>
     1.6 +<title>parallel load canceled</title>
     1.7 +
     1.8 +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     1.9 +<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script>
    1.10 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    1.11 +
    1.12 +<script type="text/javascript">
    1.13 +
    1.14 +/*
    1.15 +  Manifest refers a large number of resource to load.  The 10th item however is a reference to a non-existing
    1.16 +  resource that cancels the load.  This test checks we cancel all loads and don't leak any of the other resources
    1.17 +  after cancelation.
    1.18 +*/
    1.19 +
    1.20 +if (SpecialPowers.isMainProcess()) {
    1.21 +  ok(applicationCache.mozItems.length == 0,
    1.22 +     "applicationCache.mozItems should be available and empty before associating with a cache.");
    1.23 +}
    1.24 +
    1.25 +function updateCanceled()
    1.26 +{
    1.27 +  OfflineTest.checkCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/744719-cancel.cacheManifest", false, null);
    1.28 +  OfflineTest.checkCache("http://mochi.test:8888/tests/SimpleTest/SimpleTest.js", false, null);
    1.29 +  OfflineTest.checkCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/offlineTests.js", false, null);
    1.30 +
    1.31 +  OfflineTest.checkCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/nonexistent744719?010", false, null);
    1.32 +
    1.33 +  var URL = "http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/subresource744719.html?";
    1.34 +  OfflineTest.checkCache(URL + "001", false, null);
    1.35 +  OfflineTest.checkCache(URL + "002", false, null);
    1.36 +  OfflineTest.checkCache(URL + "003", false, null);
    1.37 +  OfflineTest.checkCache(URL + "004", false, null);
    1.38 +  OfflineTest.checkCache(URL + "005", false, null);
    1.39 +  OfflineTest.checkCache(URL + "006", false, null);
    1.40 +  OfflineTest.checkCache(URL + "007", false, null);
    1.41 +  OfflineTest.checkCache(URL + "008", false, null);
    1.42 +  OfflineTest.checkCache(URL + "009", false, null);
    1.43 +  OfflineTest.checkCache(URL + "011", false, null);
    1.44 +  OfflineTest.checkCache(URL + "012", false, null);
    1.45 +  OfflineTest.checkCache(URL + "013", false, null);
    1.46 +  OfflineTest.checkCache(URL + "014", false, null);
    1.47 +  OfflineTest.checkCache(URL + "015", false, null);
    1.48 +  OfflineTest.checkCache(URL + "016", false, null);
    1.49 +  OfflineTest.checkCache(URL + "017", false, null);
    1.50 +  OfflineTest.checkCache(URL + "018", false, null);
    1.51 +  OfflineTest.checkCache(URL + "019", false, null);
    1.52 +  OfflineTest.checkCache(URL + "020", false, null);
    1.53 +  OfflineTest.checkCache(URL + "021", false, null);
    1.54 +  OfflineTest.checkCache(URL + "022", false, null);
    1.55 +  OfflineTest.checkCache(URL + "023", false, null);
    1.56 +  OfflineTest.checkCache(URL + "024", false, null);
    1.57 +  OfflineTest.checkCache(URL + "025", false, null);
    1.58 +  OfflineTest.checkCache(URL + "026", false, null);
    1.59 +  OfflineTest.checkCache(URL + "027", false, null);
    1.60 +  OfflineTest.checkCache(URL + "028", false, null);
    1.61 +  OfflineTest.checkCache(URL + "029", false, null);
    1.62 +  OfflineTest.checkCache(URL + "030", false, null);
    1.63 +
    1.64 +  OfflineTest.teardownAndFinish();
    1.65 +}
    1.66 +
    1.67 +if (OfflineTest.setup()) {
    1.68 +  // Wait some time after the update has been canceled to catch potential leaks of channels that would cause
    1.69 +  // unwanted items to be cached regardless the update has been canceled with a failure.
    1.70 +  var privUpdateCanceled = OfflineTest.priv(updateCanceled);
    1.71 +  applicationCache.onerror = function() {window.setTimeout(privUpdateCanceled, 1000)};
    1.72 +
    1.73 +  // We don't expect this update to finish correctly.
    1.74 +  applicationCache.oncached = OfflineTest.failEvent;
    1.75 +}
    1.76 +
    1.77 +SimpleTest.waitForExplicitFinish();
    1.78 +
    1.79 +</script>
    1.80 +
    1.81 +</head>
    1.82 +
    1.83 +<body>
    1.84 +
    1.85 +</body>
    1.86 +</html>

mercurial