|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 let SL = {}; |
|
5 subscriptLoader.loadSubScript("resource://gre/modules/SlPduHelper.jsm", SL); |
|
6 SL.debug = do_print; |
|
7 |
|
8 function run_test() { |
|
9 run_next_test(); |
|
10 } |
|
11 |
|
12 /** |
|
13 * SL in plain text |
|
14 */ |
|
15 add_test(function test_sl_parse_plain_text() { |
|
16 let contentType = ""; |
|
17 let data = {}; |
|
18 |
|
19 contentType = "text/vnd.wap.sl"; |
|
20 data.array = new Uint8Array([ |
|
21 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, |
|
22 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x27, 0x31, |
|
23 0x2E, 0x30, 0x27, 0x3F, 0x3E, 0x0A, 0x3C, 0x73, |
|
24 0x6C, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x27, |
|
25 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, |
|
26 0x77, 0x77, 0x2E, 0x6F, 0x72, 0x65, 0x69, 0x6C, |
|
27 0x6C, 0x79, 0x2E, 0x63, 0x6F, 0x6D, 0x27, 0x2F, |
|
28 0x3E |
|
29 ]); |
|
30 data.offset = 0; |
|
31 let result = "<?xml version='1.0'?>\n<sl href='http://www.oreilly.com'/>"; |
|
32 let msg = SL.PduHelper.parse(data, contentType); |
|
33 do_check_eq(msg.content, result); |
|
34 |
|
35 run_next_test(); |
|
36 }); |
|
37 |
|
38 /** |
|
39 * SL compressed by WBXML |
|
40 */ |
|
41 add_test(function test_sl_parse_wbxml() { |
|
42 let msg = {}; |
|
43 let contentType = ""; |
|
44 let data = {}; |
|
45 |
|
46 contentType = "application/vnd.wap.slc"; |
|
47 data.array = new Uint8Array([ |
|
48 0x03, 0x06, 0x6A, 0x00, 0x85, 0x0A, 0x03, 0x6F, |
|
49 0x72, 0x65, 0x69, 0x6C, 0x6C, 0x79, 0x00, 0x85, |
|
50 0x01 |
|
51 ]); |
|
52 data.offset = 0; |
|
53 let result = "<sl href=\"http://www.oreilly.com/\"/>"; |
|
54 let msg = SL.PduHelper.parse(data, contentType); |
|
55 do_check_eq(msg.content, result); |
|
56 |
|
57 run_next_test(); |
|
58 }); |
|
59 |
|
60 /** |
|
61 * SL compressed by WBXML, with public ID stored in string table |
|
62 */ |
|
63 add_test(function test_sl_parse_wbxml_public_id_string_table() { |
|
64 let msg = {}; |
|
65 let contentType = ""; |
|
66 let data = {}; |
|
67 |
|
68 contentType = "application/vnd.wap.slc"; |
|
69 data.array = new Uint8Array([ |
|
70 0x03, 0x00, 0x00, 0x6A, 0x1C, 0x2D, 0x2F, 0x2F, |
|
71 0x57, 0x41, 0x50, 0x46, 0x4F, 0x52, 0x55, 0x4D, |
|
72 0x2F, 0x2F, 0x44, 0x54, 0x44, 0x20, 0x53, 0x4C, |
|
73 0x20, 0x31, 0x2E, 0x30, 0x2F, 0x2F, 0x45, 0x4E, |
|
74 0x00, 0x85, 0x0A, 0x03, 0x6F, 0x72, 0x65, 0x69, |
|
75 0x6C, 0x6C, 0x79, 0x00, 0x85, 0x01 |
|
76 ]); |
|
77 data.offset = 0; |
|
78 let result = "<sl href=\"http://www.oreilly.com/\"/>"; |
|
79 let msg = SL.PduHelper.parse(data, contentType); |
|
80 do_check_eq(msg.content, result); |
|
81 |
|
82 run_next_test(); |
|
83 }); |
|
84 |
|
85 /** |
|
86 * SL compressed by WBXML with string table |
|
87 */ |
|
88 add_test(function test_sl_parse_wbxml_with_string_table() { |
|
89 let msg = {}; |
|
90 let contentType = ""; |
|
91 let data = {}; |
|
92 |
|
93 contentType = "application/vnd.wap.slc"; |
|
94 data.array = new Uint8Array([ |
|
95 0x03, 0x06, 0x6A, 0x08, 0x6F, 0x72, 0x65, 0x69, |
|
96 0x6C, 0x6C, 0x79, 0x00, 0x85, 0x0A, 0x83, 0x00, |
|
97 0x85, 0x01 |
|
98 ]); |
|
99 data.offset = 0; |
|
100 let result = "<sl href=\"http://www.oreilly.com/\"/>"; |
|
101 let msg = SL.PduHelper.parse(data, contentType); |
|
102 do_check_eq(msg.content, result); |
|
103 |
|
104 run_next_test(); |
|
105 }); |