michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function testForceCheck() { michael@0: addChromeEventListener("update-available", function(evt) { michael@0: let update = evt.detail; michael@0: is(update.displayVersion, "99.0"); michael@0: is(update.isOSUpdate, false); michael@0: statusSettingIs("check-complete", testDownload); michael@0: return true; michael@0: }); michael@0: sendContentEvent("force-update-check"); michael@0: } michael@0: michael@0: function testDownload() { michael@0: let gotStarted = false, gotProgress = false, gotStopped = false; michael@0: let progress = 0, total = 0; michael@0: michael@0: addChromeEventListener("update-download-started", function(evt) { michael@0: gotStarted = true; michael@0: return true; michael@0: }); michael@0: addChromeEventListener("update-download-progress", function(evt) { michael@0: progress = evt.detail.progress; michael@0: total = evt.detail.total; michael@0: gotProgress = true; michael@0: if (total == progress) { michael@0: ok(gotStarted); michael@0: return true; michael@0: } michael@0: return false; michael@0: }); michael@0: addChromeEventListener("update-download-stopped", function(evt) { michael@0: is(evt.detail.paused, false); michael@0: gotStopped = true; michael@0: ok(gotStarted); michael@0: ok(gotProgress); michael@0: return true; michael@0: }); michael@0: addChromeEventListener("update-downloaded", function(evt) { michael@0: ok(gotStarted); michael@0: ok(gotProgress); michael@0: ok(gotStopped); michael@0: is(progress, total); michael@0: return true; michael@0: }); michael@0: addChromeEventListener("update-prompt-apply", function(evt) { michael@0: let update = evt.detail; michael@0: is(update.displayVersion, "99.0"); michael@0: is(update.isOSUpdate, false); michael@0: cleanUp(); michael@0: }); michael@0: sendContentEvent("update-available-result", { michael@0: result: "download" michael@0: }); michael@0: } michael@0: michael@0: function testApplied() { michael@0: let updateFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); michael@0: updateFile.initWithPath("/system/b2g/update_test/UpdateTestAddFile"); michael@0: ok(updateFile.exists()); michael@0: cleanUp(); michael@0: } michael@0: michael@0: // Update lifecycle callbacks michael@0: function preUpdate() { michael@0: testForceCheck(); michael@0: } michael@0: michael@0: function postUpdate() { michael@0: testApplied(); michael@0: }