1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/wappush/tests/test_sl_pdu_helper.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,105 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +let SL = {}; 1.8 +subscriptLoader.loadSubScript("resource://gre/modules/SlPduHelper.jsm", SL); 1.9 +SL.debug = do_print; 1.10 + 1.11 +function run_test() { 1.12 + run_next_test(); 1.13 +} 1.14 + 1.15 +/** 1.16 + * SL in plain text 1.17 + */ 1.18 +add_test(function test_sl_parse_plain_text() { 1.19 + let contentType = ""; 1.20 + let data = {}; 1.21 + 1.22 + contentType = "text/vnd.wap.sl"; 1.23 + data.array = new Uint8Array([ 1.24 + 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 1.25 + 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x27, 0x31, 1.26 + 0x2E, 0x30, 0x27, 0x3F, 0x3E, 0x0A, 0x3C, 0x73, 1.27 + 0x6C, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 0x27, 1.28 + 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 1.29 + 0x77, 0x77, 0x2E, 0x6F, 0x72, 0x65, 0x69, 0x6C, 1.30 + 0x6C, 0x79, 0x2E, 0x63, 0x6F, 0x6D, 0x27, 0x2F, 1.31 + 0x3E 1.32 + ]); 1.33 + data.offset = 0; 1.34 + let result = "<?xml version='1.0'?>\n<sl href='http://www.oreilly.com'/>"; 1.35 + let msg = SL.PduHelper.parse(data, contentType); 1.36 + do_check_eq(msg.content, result); 1.37 + 1.38 + run_next_test(); 1.39 +}); 1.40 + 1.41 +/** 1.42 + * SL compressed by WBXML 1.43 + */ 1.44 +add_test(function test_sl_parse_wbxml() { 1.45 + let msg = {}; 1.46 + let contentType = ""; 1.47 + let data = {}; 1.48 + 1.49 + contentType = "application/vnd.wap.slc"; 1.50 + data.array = new Uint8Array([ 1.51 + 0x03, 0x06, 0x6A, 0x00, 0x85, 0x0A, 0x03, 0x6F, 1.52 + 0x72, 0x65, 0x69, 0x6C, 0x6C, 0x79, 0x00, 0x85, 1.53 + 0x01 1.54 + ]); 1.55 + data.offset = 0; 1.56 + let result = "<sl href=\"http://www.oreilly.com/\"/>"; 1.57 + let msg = SL.PduHelper.parse(data, contentType); 1.58 + do_check_eq(msg.content, result); 1.59 + 1.60 + run_next_test(); 1.61 +}); 1.62 + 1.63 +/** 1.64 + * SL compressed by WBXML, with public ID stored in string table 1.65 + */ 1.66 +add_test(function test_sl_parse_wbxml_public_id_string_table() { 1.67 + let msg = {}; 1.68 + let contentType = ""; 1.69 + let data = {}; 1.70 + 1.71 + contentType = "application/vnd.wap.slc"; 1.72 + data.array = new Uint8Array([ 1.73 + 0x03, 0x00, 0x00, 0x6A, 0x1C, 0x2D, 0x2F, 0x2F, 1.74 + 0x57, 0x41, 0x50, 0x46, 0x4F, 0x52, 0x55, 0x4D, 1.75 + 0x2F, 0x2F, 0x44, 0x54, 0x44, 0x20, 0x53, 0x4C, 1.76 + 0x20, 0x31, 0x2E, 0x30, 0x2F, 0x2F, 0x45, 0x4E, 1.77 + 0x00, 0x85, 0x0A, 0x03, 0x6F, 0x72, 0x65, 0x69, 1.78 + 0x6C, 0x6C, 0x79, 0x00, 0x85, 0x01 1.79 + ]); 1.80 + data.offset = 0; 1.81 + let result = "<sl href=\"http://www.oreilly.com/\"/>"; 1.82 + let msg = SL.PduHelper.parse(data, contentType); 1.83 + do_check_eq(msg.content, result); 1.84 + 1.85 + run_next_test(); 1.86 +}); 1.87 + 1.88 +/** 1.89 + * SL compressed by WBXML with string table 1.90 + */ 1.91 +add_test(function test_sl_parse_wbxml_with_string_table() { 1.92 + let msg = {}; 1.93 + let contentType = ""; 1.94 + let data = {}; 1.95 + 1.96 + contentType = "application/vnd.wap.slc"; 1.97 + data.array = new Uint8Array([ 1.98 + 0x03, 0x06, 0x6A, 0x08, 0x6F, 0x72, 0x65, 0x69, 1.99 + 0x6C, 0x6C, 0x79, 0x00, 0x85, 0x0A, 0x83, 0x00, 1.100 + 0x85, 0x01 1.101 + ]); 1.102 + data.offset = 0; 1.103 + let result = "<sl href=\"http://www.oreilly.com/\"/>"; 1.104 + let msg = SL.PduHelper.parse(data, contentType); 1.105 + do_check_eq(msg.content, result); 1.106 + 1.107 + run_next_test(); 1.108 +});