|
1 <!DOCTYPE HTML> |
|
2 <html> |
|
3 <head> |
|
4 <meta charset="utf-8"> |
|
5 <title>Test data Paramter of Alarm API for Bug 1015540</title> |
|
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> |
|
7 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> |
|
8 </head> |
|
9 <body> |
|
10 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015540">Bug 1015540</a> |
|
11 <p id="display"></p> |
|
12 <div id="content" style="display: none"></div> |
|
13 <pre id="test"> |
|
14 <script type="application/javascript"> |
|
15 |
|
16 "use strict"; |
|
17 |
|
18 // Verify passing a cross-origin object for the data paramter |
|
19 function testCrossOriginObject() { |
|
20 var tomorrow = new Date(); |
|
21 tomorrow.setDate(tomorrow.getDate() + 1); |
|
22 |
|
23 var data = document.getElementById('ifr').contentWindow; |
|
24 |
|
25 try { |
|
26 navigator.mozAlarms.add(tomorrow, "honorTimezone", data); |
|
27 ok(false, "Adding alarms for cross-origin objects should be prohibited."); |
|
28 } catch (e) { |
|
29 ok(true, "Adding alarms for cross-origin objects is prohibited."); |
|
30 } |
|
31 |
|
32 SimpleTest.finish(); |
|
33 } |
|
34 |
|
35 function startTests() { |
|
36 SpecialPowers.pushPrefEnv({ |
|
37 "set": [["dom.mozAlarms.enabled", true]] |
|
38 }, function() { |
|
39 SpecialPowers.addPermission("alarms", true, document); |
|
40 var isAllowedToTest = true; |
|
41 |
|
42 if (navigator.appVersion.indexOf("Android") !== -1) { |
|
43 ok(true, "mozAlarms is not allowed on Android for now. " + |
|
44 "TODO Bug 863557."); |
|
45 isAllowedToTest = false; |
|
46 } else if (SpecialPowers.wrap(document).nodePrincipal.appStatus == |
|
47 SpecialPowers.Ci.nsIPrincipal.APP_STATUS_NOT_INSTALLED) { |
|
48 ok(true, "mozAlarms is not allowed for non-installed apps. " + |
|
49 "TODO Bug 876981."); |
|
50 isAllowedToTest = false; |
|
51 } |
|
52 |
|
53 if (isAllowedToTest) { |
|
54 ok(true, "Start to test..."); |
|
55 testCrossOriginObject(); |
|
56 } else { |
|
57 // A sanity check to make sure we must run tests on Firefox OS (B2G). |
|
58 if (navigator.userAgent.indexOf("Mobile") != -1 && |
|
59 navigator.appVersion.indexOf("Android") == -1) { |
|
60 ok(false, "Should run the test on Firefox OS (B2G)!"); |
|
61 } |
|
62 |
|
63 SimpleTest.finish(); |
|
64 } |
|
65 }); |
|
66 } |
|
67 |
|
68 SimpleTest.waitForExplicitFinish(); |
|
69 </script> |
|
70 </pre> |
|
71 <iframe id="ifr" onload="startTests()" src="http://example.org/tests/dom/alarm/test/file_empty.html"></iframe> |
|
72 </body> |
|
73 </html> |