dom/mobilemessage/tests/marionette/test_getmessage_notfound.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:a8eca0cb5cf5
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 MARIONETTE_TIMEOUT = 60000;
5
6 SpecialPowers.setBoolPref("dom.sms.enabled", true);
7 SpecialPowers.addPermission("sms", true, document);
8
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;
14
15 function verifyInitialState() {
16 log("Verifying initial state.");
17 ok(manager instanceof MozMobileMessageManager,
18 "manager is instance of " + manager.constructor);
19 simulateIncomingSms();
20 }
21
22 function simulateIncomingSms() {
23 log("Simulating incoming SMS.");
24
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 }
41
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");
47
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 };
56
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 }
65
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");
71
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 };
81
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 }
90
91 function deleteMsg() {
92 log("Deleting SMS (id: " + inSmsId + ").");
93 let requestRet = manager.delete(inSmsId);
94 ok(requestRet,"smsrequest obj returned");
95
96 requestRet.onsuccess = function(event) {
97 log("Received 'onsuccess' smsrequest event.");
98 if(event.target.result){
99 cleanUp();
100 }
101 };
102
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 }
111
112 function cleanUp() {
113 manager.onreceived = null;
114 SpecialPowers.removePermission("sms", document);
115 SpecialPowers.setBoolPref("dom.sms.enabled", false);
116 finish();
117 }
118
119 // Start the test
120 verifyInitialState();

mercurial