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 const SENDER = "5555552368"; // the remote number
10 const RECEIVER = "15555215554"; // the emulator's number
12 let manager = window.navigator.mozMobileMessage;
14 function verifyInitialState() {
15 log("Verifying initial state.");
16 ok(manager instanceof MozMobileMessageManager,
17 "manager is instance of " + manager.constructor);
18 simulateIncomingSms();
19 }
21 function simulateIncomingSms() {
22 let msgText = "";
24 log("Simulating incoming SMS.");
26 // Have message text > max SMS size (160 char) so will be a multi-part SMS
27 for (var x = 1; x <= 24; x++) {
28 msgText += 'FirefoxOS ';
29 }
31 manager.onreceived = function onreceived(event) {
32 log("Received 'onreceived' event.");
33 let incomingSms = event.message;
34 ok(incomingSms, "incoming sms");
35 ok(incomingSms.id, "sms id");
36 log("Received SMS (id: " + incomingSms.id + ").");
37 ok(incomingSms.threadId, "thread id");
38 is(incomingSms.body, msgText, "msg body");
39 is(incomingSms.delivery, "received", "delivery");
40 is(incomingSms.read, false, "read");
41 is(incomingSms.receiver, RECEIVER, "receiver");
42 is(incomingSms.sender, SENDER, "sender");
43 is(incomingSms.deliveryTimestamp, 0, "deliveryTimestamp is 0");
45 verifySmsExists(incomingSms);
46 };
47 runEmulatorCmd("sms send " + SENDER + " " + msgText, function(result) {
48 is(result[0], "OK", "emulator output");
49 });
50 }
52 function verifySmsExists(incomingSms) {
53 log("Getting SMS (id: " + incomingSms.id + ").");
54 let requestRet = manager.getMessage(incomingSms.id);
55 ok(requestRet, "smsrequest obj returned");
57 requestRet.onsuccess = function(event) {
58 log("Received 'onsuccess' smsrequest event.");
59 ok(event.target.result, "smsrequest event.target.result");
60 let foundSms = event.target.result;
61 is(foundSms.id, incomingSms.id, "found SMS id matches");
62 is(foundSms.threadId, incomingSms.threadId, "found SMS thread id matches");
63 is(foundSms.body, incomingSms.body, "found SMS msg text matches");
64 is(foundSms.delivery, "received", "delivery");
65 is(foundSms.read, false, "read");
66 is(foundSms.receiver, RECEIVER, "receiver");
67 is(foundSms.sender, SENDER, "sender");
68 log("Got SMS (id: " + foundSms.id + ") as expected.");
69 deleteSms(incomingSms);
70 };
72 requestRet.onerror = function(event) {
73 log("Received 'onerror' smsrequest event.");
74 ok(event.target.error, "domerror obj");
75 is(event.target.error.name, "NotFoundError", "error returned");
76 log("Could not get SMS (id: " + incomingSms.id + ") but should have.");
77 ok(false,"SMS was not found");
78 cleanUp();
79 };
80 }
82 function deleteSms(smsMsgObj){
83 log("Deleting SMS (id: " + smsMsgObj.id + ") using smsmsg obj parameter.");
84 let requestRet = manager.delete(smsMsgObj);
85 ok(requestRet,"smsrequest obj returned");
87 requestRet.onsuccess = function(event) {
88 log("Received 'onsuccess' smsrequest event.");
89 if(event.target.result){
90 cleanUp();
91 } else {
92 log("smsrequest returned false for manager.delete");
93 ok(false,"SMS delete failed");
94 cleanUp();
95 }
96 };
98 requestRet.onerror = function(event) {
99 log("Received 'onerror' smsrequest event.");
100 ok(event.target.error, "domerror obj");
101 ok(false, "manager.delete request returned unexpected error: "
102 + event.target.error.name );
103 cleanUp();
104 };
105 }
107 function cleanUp() {
108 manager.onreceived = null;
109 SpecialPowers.removePermission("sms", document);
110 SpecialPowers.clearUserPref("dom.sms.enabled");
111 finish();
112 }
114 // Start the test
115 verifyInitialState();