|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 const TEST_URL = "http://localhost"; |
|
5 |
|
6 setPref("b2g.update.apply-idle-timeout", 0); |
|
7 setPref("app.update.backgroundErrors", 0); |
|
8 setPref("app.update.backgroundMaxErrors", 100); |
|
9 |
|
10 function forceCheckAndTestStatus(status, next) { |
|
11 let mozSettings = window.navigator.mozSettings; |
|
12 let forceSent = false; |
|
13 |
|
14 mozSettings.addObserver("gecko.updateStatus", function statusObserver(setting) { |
|
15 if (!forceSent) { |
|
16 return; |
|
17 } |
|
18 |
|
19 mozSettings.removeObserver("gecko.updateStatus", statusObserver); |
|
20 is(setting.settingValue, status, "gecko.updateStatus"); |
|
21 next(); |
|
22 }); |
|
23 |
|
24 sendContentEvent("force-update-check"); |
|
25 forceSent = true; |
|
26 } |
|
27 |
|
28 function testBadXml() { |
|
29 setPref("app.update.url.override", TEST_URL + "/bad.xml"); |
|
30 forceCheckAndTestStatus("check-error-http-200", testAccessDenied); |
|
31 } |
|
32 |
|
33 function testAccessDenied() { |
|
34 setPref("app.update.url.override", TEST_URL + "/cgi-bin/err.cgi?403"); |
|
35 forceCheckAndTestStatus("check-error-http-403", testNoUpdateXml); |
|
36 } |
|
37 |
|
38 function testNoUpdateXml() { |
|
39 setPref("app.update.url.override", TEST_URL + "/none.html"); |
|
40 forceCheckAndTestStatus("check-error-http-404", testInternalServerError); |
|
41 } |
|
42 |
|
43 function testInternalServerError() { |
|
44 setPref("app.update.url.override", TEST_URL + "/cgi-bin/err.cgi?500"); |
|
45 forceCheckAndTestStatus("check-error-http-500", testBadHostStatus); |
|
46 } |
|
47 |
|
48 function testBadHostStatus() { |
|
49 setPref("app.update.url.override", "http://bad-host-doesnt-exist-sorry.com"); |
|
50 forceCheckAndTestStatus("check-error-" + Cr.NS_ERROR_UNKNOWN_HOST, cleanUp); |
|
51 } |
|
52 |
|
53 // Update test functions |
|
54 function preUpdate() { |
|
55 testBadXml(); |
|
56 } |