1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/mozapps/update/tests/marionette/update_test_status.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,56 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +const TEST_URL = "http://localhost"; 1.8 + 1.9 +setPref("b2g.update.apply-idle-timeout", 0); 1.10 +setPref("app.update.backgroundErrors", 0); 1.11 +setPref("app.update.backgroundMaxErrors", 100); 1.12 + 1.13 +function forceCheckAndTestStatus(status, next) { 1.14 + let mozSettings = window.navigator.mozSettings; 1.15 + let forceSent = false; 1.16 + 1.17 + mozSettings.addObserver("gecko.updateStatus", function statusObserver(setting) { 1.18 + if (!forceSent) { 1.19 + return; 1.20 + } 1.21 + 1.22 + mozSettings.removeObserver("gecko.updateStatus", statusObserver); 1.23 + is(setting.settingValue, status, "gecko.updateStatus"); 1.24 + next(); 1.25 + }); 1.26 + 1.27 + sendContentEvent("force-update-check"); 1.28 + forceSent = true; 1.29 +} 1.30 + 1.31 +function testBadXml() { 1.32 + setPref("app.update.url.override", TEST_URL + "/bad.xml"); 1.33 + forceCheckAndTestStatus("check-error-http-200", testAccessDenied); 1.34 +} 1.35 + 1.36 +function testAccessDenied() { 1.37 + setPref("app.update.url.override", TEST_URL + "/cgi-bin/err.cgi?403"); 1.38 + forceCheckAndTestStatus("check-error-http-403", testNoUpdateXml); 1.39 +} 1.40 + 1.41 +function testNoUpdateXml() { 1.42 + setPref("app.update.url.override", TEST_URL + "/none.html"); 1.43 + forceCheckAndTestStatus("check-error-http-404", testInternalServerError); 1.44 +} 1.45 + 1.46 +function testInternalServerError() { 1.47 + setPref("app.update.url.override", TEST_URL + "/cgi-bin/err.cgi?500"); 1.48 + forceCheckAndTestStatus("check-error-http-500", testBadHostStatus); 1.49 +} 1.50 + 1.51 +function testBadHostStatus() { 1.52 + setPref("app.update.url.override", "http://bad-host-doesnt-exist-sorry.com"); 1.53 + forceCheckAndTestStatus("check-error-" + Cr.NS_ERROR_UNKNOWN_HOST, cleanUp); 1.54 +} 1.55 + 1.56 +// Update test functions 1.57 +function preUpdate() { 1.58 + testBadXml(); 1.59 +}