|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 MARIONETTE_TIMEOUT = 60000; |
|
5 |
|
6 const SELF = "5554"; |
|
7 |
|
8 SpecialPowers.setBoolPref("dom.sms.enabled", true); |
|
9 SpecialPowers.addPermission("sms", true, document); |
|
10 |
|
11 function cleanUp() { |
|
12 SpecialPowers.removePermission("sms", document); |
|
13 SpecialPowers.clearUserPref("dom.sms.enabled"); |
|
14 finish(); |
|
15 } |
|
16 |
|
17 let manager = window.navigator.mozMobileMessage; |
|
18 ok(manager instanceof MozMobileMessageManager, |
|
19 "manager is instance of " + manager.constructor); |
|
20 |
|
21 function randomString16() { |
|
22 return Math.random().toString(36).substr(2, 16); |
|
23 } |
|
24 |
|
25 function times(str, n) { |
|
26 return (new Array(n + 1)).join(str); |
|
27 } |
|
28 |
|
29 function repeat(func, array, oncomplete) { |
|
30 (function do_call(index) { |
|
31 let next = index < (array.length - 1) ? do_call.bind(null, index + 1) : oncomplete; |
|
32 func.apply(null, [array[index], next]); |
|
33 })(0); |
|
34 } |
|
35 |
|
36 function doTest(body, callback) { |
|
37 manager.addEventListener("received", function onReceived(event) { |
|
38 event.target.removeEventListener(event.type, arguments.callee); |
|
39 |
|
40 let message = event.message; |
|
41 is(message.body, body, "message.body"); |
|
42 |
|
43 window.setTimeout(callback, 0); |
|
44 }); |
|
45 |
|
46 let request = manager.send(SELF, body); |
|
47 request.onerror = function onerror() { |
|
48 ok(false, "failed to send message '" + body + "' to '" + SELF + "'"); |
|
49 }; |
|
50 } |
|
51 |
|
52 repeat(doTest, [ |
|
53 // Random alphanumeric string of 16 characters. |
|
54 randomString16(), |
|
55 // Long long text message for multipart messages. |
|
56 times(randomString16(), 100), |
|
57 |
|
58 // UCS2 string for the first sentence of "The Cooing", Classic of Poetry. |
|
59 "\u95dc\u95dc\u96ce\u9ce9\uff0c\u5728\u6cb3\u4e4b\u6d32\u3002", |
|
60 // Long long UCS2 text message for multipart messages. |
|
61 times("\u95dc\u95dc\u96ce\u9ce9\uff0c\u5728\u6cb3\u4e4b\u6d32\u3002", 100), |
|
62 |
|
63 // Test case from Bug 809553 |
|
64 "zertuuuppzuzyeueieieyeieoeiejeheejrueufjfjfjjfjfkxifjfjfufjjfjfufujdjduxxjdu" |
|
65 + "djdjdjdudhdjdhdjdbddhbfjfjxbuwjdjdudjddjdhdhdvdyudusjdudhdjjfjdvdudbddjdbd" |
|
66 + "usjfbjdfudjdhdjbzuuzyzehdjjdjwybwudjvwywuxjdbfudsbwuwbwjdjdbwywhdbddudbdjd" |
|
67 + "uejdhdudbdduwjdbjddudjdjdjdudjdbdjdhdhdjjdjbxudjdbxufjudbdjhdjdisjsjzusbzh" |
|
68 + "xbdudksksuqjgdjdb jeudi jeudis duhebevzcevevsvs DVD suscite eh du d des jv" |
|
69 + " y b Dj. Du wh. Hu Deb wh. Du web h w show d DVD h w v. Th\u00e9 \u00e9c" |
|
70 + "hec d whdvdj. Wh d'h\u00f4tel DVD. IMAX eusjw ii ce", |
|
71 |
|
72 // Android Emulator specific problems: |
|
73 // 1) wrong default 7Bit alphabet character for "Ň"(U+0147). |
|
74 "\u0147", |
|
75 // 2) problem in decoding strings encoded with GSM 7Bit Alphabets and |
|
76 // containing characters on extension tables. |
|
77 "\u20ac****", |
|
78 ], cleanUp); |