1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/apps/tests/test_bug_795164.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,105 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<!-- 1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=795164 1.8 +--> 1.9 +<head> 1.10 + <meta charset="utf-8"> 1.11 + <title>Test for Bug 795164</title> 1.12 + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.13 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.14 + <script type="application/javascript;version=1.7"> 1.15 + 1.16 + /** Test for Bug 795164 **/ 1.17 + 1.18 + SimpleTest.waitForExplicitFinish(); 1.19 + 1.20 + var url1 = 'http://test1.example.com/tests/dom/apps/tests/file_app.sjs?apptype=hosted&getmanifest=true'; 1.21 + var url2 = 'http://test2.example.com/tests/dom/apps/tests/file_app.sjs?apptype=hosted&getmanifest=true'; 1.22 + 1.23 + var gGenerator = runTest(); 1.24 + 1.25 + function go() { 1.26 + SpecialPowers.pushPermissions( 1.27 + [{ "type": "webapps-manage", "allow": 1, "context": document }], 1.28 + function() { gGenerator.next() }); 1.29 + } 1.30 + 1.31 + function continueTest() { 1.32 + try { 1.33 + gGenerator.next(); 1.34 + } catch (e if e instanceof StopIteration) { 1.35 + SimpleTest.finish(); 1.36 + } 1.37 + } 1.38 + 1.39 + function mozAppsError() { 1.40 + ok(false, "mozApps error: " + this.error.name); 1.41 + SimpleTest.finish(); 1.42 + } 1.43 + 1.44 + function runTest() { 1.45 + // Set up. 1.46 + SpecialPowers.setAllAppsLaunchable(true); 1.47 + SpecialPowers.autoConfirmAppInstall(continueTest); 1.48 + yield undefined; 1.49 + 1.50 + // Keeping track of the number of times `mozApps.mgmt.onuninstall` gets triggered 1.51 + let uninstallCount = 0; 1.52 + 1.53 + navigator.mozApps.mgmt.onuninstall = function() { 1.54 + uninstallCount++; 1.55 + }; 1.56 + 1.57 + let request = navigator.mozApps.install(url1); 1.58 + request.onerror = mozAppsError; 1.59 + request.onsuccess = continueTest; 1.60 + yield undefined; 1.61 + let app1 = request.result; 1.62 + ok(app1, "App1 is non-null"); 1.63 + 1.64 + request = navigator.mozApps.install(url2); 1.65 + request.onerror = mozAppsError; 1.66 + request.onsuccess = continueTest; 1.67 + yield undefined; 1.68 + let app2 = request.result; 1.69 + ok(app2, "App2 is non-null"); 1.70 + 1.71 + request = navigator.mozApps.mgmt.uninstall(app1); 1.72 + request.onsuccess = function() { 1.73 + ok(true, "Succeed to uninstall the app1 as expected"); 1.74 + continueTest(); 1.75 + }; 1.76 + request.onerror = function() { 1.77 + ok(false, "Fail to uninstall the app1"); 1.78 + continueTest(); 1.79 + }; 1.80 + yield undefined; 1.81 + 1.82 + request = navigator.mozApps.mgmt.uninstall(app2); 1.83 + request.onsuccess = function() { 1.84 + ok(true, "Succeed to uninstall the app2 as expected"); 1.85 + continueTest(); 1.86 + }; 1.87 + request.onerror = function() { 1.88 + ok(false, "Fail to uninstall the app2"); 1.89 + continueTest(); 1.90 + }; 1.91 + yield undefined; 1.92 + 1.93 + is(uninstallCount, 2, "mgmt.onuninstall got triggered only twice"); 1.94 + 1.95 + navigator.mozApps.mgmt.onuninstall = null; 1.96 + } 1.97 + </script> 1.98 +</head> 1.99 +<body onload="go()"> 1.100 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=795164">Mozilla Bug 795164</a> 1.101 +<p id="display"></p> 1.102 +<div id="content" style="display: none"> 1.103 + 1.104 +</div> 1.105 +<pre id="test"> 1.106 +</pre> 1.107 +</body> 1.108 +</html>