Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
4 MARIONETTE_TIMEOUT = 60000;
6 SpecialPowers.setBoolPref("dom.sms.enabled", true);
7 SpecialPowers.addPermission("sms", true, document);
9 let manager = window.navigator.mozMobileMessage;
10 let myNumber = "15555215554";
11 let inText = "Incoming SMS message. Mozilla Firefox OS!";
12 let remoteNumber = "5559997777";
13 let inSmsId = 0;
15 function verifyInitialState() {
16 log("Verifying initial state.");
17 ok(manager instanceof MozMobileMessageManager,
18 "manager is instance of " + manager.constructor);
19 simulateIncomingSms();
20 }
22 function simulateIncomingSms() {
23 log("Simulating incoming SMS.");
25 manager.onreceived = function onreceived(event) {
26 log("Received 'onreceived' event.");
27 let incomingSms = event.message;
28 ok(incomingSms, "incoming sms");
29 ok(incomingSms.id, "sms id");
30 inSmsId = incomingSms.id;
31 log("Received SMS (id: " + inSmsId + ").");
32 is(incomingSms.body, inText, "msg body");
33 is(incomingSms.delivery, "received", "delivery");
34 getNonExistentMsg();
35 };
36 // Simulate incoming sms sent from remoteNumber to our emulator
37 runEmulatorCmd("sms send " + remoteNumber + " " + inText, function(result) {
38 is(result[0], "OK", "emulator output");
39 });
40 }
42 function getNonExistentMsg() {
43 let msgIdNoExist = inSmsId + 1;
44 log("Attempting to get non-existent message (id: " + msgIdNoExist + ").");
45 let requestRet = manager.getMessage(msgIdNoExist);
46 ok(requestRet, "smsrequest obj returned");
48 requestRet.onsuccess = function(event) {
49 log("Received 'onsuccess' smsrequest event.");
50 ok(event.target.result, "smsrequest event.target.result");
51 let foundSms = event.target.result;
52 log("Got SMS (id: " + foundSms.id + ") but should not have.");
53 ok(false, "Smsrequest successful when tried to get non-existent sms");
54 getMsgInvalidId();
55 };
57 requestRet.onerror = function(event) {
58 log("Received 'onerror' smsrequest event.");
59 ok(event.target.error, "domerror obj");
60 is(event.target.error.name, "NotFoundError", "error returned");
61 log("Could not get SMS (id: " + msgIdNoExist + ") as expected.");
62 getMsgInvalidId();
63 };
64 }
66 function getMsgInvalidId() {
67 invalidId = -1;
68 log("Attempting to get sms with invalid id (id: " + invalidId + ").");
69 let requestRet = manager.getMessage(invalidId);
70 ok(requestRet, "smsrequest obj returned");
72 requestRet.onsuccess = function(event) {
73 log("Received 'onsuccess' smsrequest event.");
74 ok(event.target.result, "smsrequest event.target.result");
75 let foundSms = event.target.result;
76 log("Got SMS (id: " + foundSms.id + ") but should not have.");
77 ok(false, "Smsrequest successful when tried to get message with " +
78 "invalid id (id: " + invalidId + ").");
79 deleteMsg();
80 };
82 requestRet.onerror = function(event) {
83 log("Received 'onerror' smsrequest event.");
84 ok(event.target.error, "domerror obj");
85 is(event.target.error.name, "NotFoundError", "error returned");
86 log("Could not get SMS (id: -1) as expected.");
87 deleteMsg();
88 };
89 }
91 function deleteMsg() {
92 log("Deleting SMS (id: " + inSmsId + ").");
93 let requestRet = manager.delete(inSmsId);
94 ok(requestRet,"smsrequest obj returned");
96 requestRet.onsuccess = function(event) {
97 log("Received 'onsuccess' smsrequest event.");
98 if(event.target.result){
99 cleanUp();
100 }
101 };
103 requestRet.onerror = function(event) {
104 log("Received 'onerror' smsrequest event.");
105 ok(event.target.error, "domerror obj");
106 ok(false, "manager.delete request returned unexpected error: "
107 + event.target.error.name );
108 cleanUp();
109 };
110 }
112 function cleanUp() {
113 manager.onreceived = null;
114 SpecialPowers.removePermission("sms", document);
115 SpecialPowers.setBoolPref("dom.sms.enabled", false);
116 finish();
117 }
119 // Start the test
120 verifyInitialState();