summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/ajax/offline/test_lowDeviceStorageDuringUpdate.html
blob: 88a0b4eaee64d43ade4404f3c6203ff18cebcdee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/simpleManifest.cacheManifest">
<head>
<title>Low device storage during update</title>

<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />

<script type="text/javascript">

/**
 * This test checks that an offline cache update is canceled when a low device
 * storage condition is detected during the update.
 */

var updateService = Cc['@mozilla.org/offlinecacheupdate-service;1']
                    .getService(Ci.nsIOfflineCacheUpdateService);

var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
                       .getService(SpecialPowers.Ci.nsIObserverService);

function finish() {
  obs.notifyObservers(updateService, "disk-space-watcher", "free");

  OfflineTest.teardownAndFinish();
}

function onError() {
  OfflineTest.ok(true, "Expected error: Update canceled");
  finish();
}

function onUnexpectedEvent() {
  OfflineTest.ok(false, "The update was supposed to be canceled");
  finish();
}

function onChecking() {
  obs.notifyObservers(updateService, "disk-space-watcher", "full");
}

if (OfflineTest.setup()) {
  applicationCache.onerror = OfflineTest.priv(onError);
  applicationCache.onprogress = OfflineTest.priv(onUnexpectedEvent);
  applicationCache.oncached = OfflineTest.priv(onUnexpectedEvent);
  applicationCache.onchecking = OfflineTest.priv(onChecking);
}

SimpleTest.waitForExplicitFinish();

</script>

</head>

<body>

</body>
</html>