diff options
Diffstat (limited to 'dom/system/gonk/tests/test_ril_worker_sms_nl_tables.js')
-rw-r--r-- | dom/system/gonk/tests/test_ril_worker_sms_nl_tables.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/dom/system/gonk/tests/test_ril_worker_sms_nl_tables.js b/dom/system/gonk/tests/test_ril_worker_sms_nl_tables.js new file mode 100644 index 000000000..32bc5dc2a --- /dev/null +++ b/dom/system/gonk/tests/test_ril_worker_sms_nl_tables.js @@ -0,0 +1,77 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +subscriptLoader.loadSubScript("resource://gre/modules/ril_consts.js", this); + +const ESCAPE = "\uffff"; +const RESCTL = "\ufffe"; +const LF = "\n"; +const CR = "\r"; +const SP = " "; +const FF = "\u000c"; + +function run_test() { + run_next_test(); +} + +/** + * Verify validity of the national language tables + */ +add_test(function test_nl_locking_shift_tables_validity() { + for (let lst = 0; lst < PDU_NL_LOCKING_SHIFT_TABLES.length; lst++) { + do_print("Verifying PDU_NL_LOCKING_SHIFT_TABLES[" + lst + "]"); + + let table = PDU_NL_LOCKING_SHIFT_TABLES[lst]; + + // Make sure table length is 128, or it will break table lookup algorithm. + equal(table.length, 128); + + // Make sure special values are preserved. + equal(table[PDU_NL_EXTENDED_ESCAPE], ESCAPE); + equal(table[PDU_NL_LINE_FEED], LF); + equal(table[PDU_NL_CARRIAGE_RETURN], CR); + equal(table[PDU_NL_SPACE], SP); + } + + run_next_test(); +}); + +add_test(function test_nl_single_shift_tables_validity() { + for (let sst = 0; sst < PDU_NL_SINGLE_SHIFT_TABLES.length; sst++) { + do_print("Verifying PDU_NL_SINGLE_SHIFT_TABLES[" + sst + "]"); + + let table = PDU_NL_SINGLE_SHIFT_TABLES[sst]; + + // Make sure table length is 128, or it will break table lookup algorithm. + equal(table.length, 128); + + // Make sure special values are preserved. + equal(table[PDU_NL_EXTENDED_ESCAPE], ESCAPE); + equal(table[PDU_NL_PAGE_BREAK], FF); + equal(table[PDU_NL_RESERVED_CONTROL], RESCTL); + } + + run_next_test(); +}); + +add_test(function test_gsm_sms_strict_7bit_charmap_validity() { + let defaultTable = PDU_NL_LOCKING_SHIFT_TABLES[PDU_NL_IDENTIFIER_DEFAULT]; + let defaultShiftTable = PDU_NL_SINGLE_SHIFT_TABLES[PDU_NL_IDENTIFIER_DEFAULT]; + for (let from in GSM_SMS_STRICT_7BIT_CHARMAP) { + let to = GSM_SMS_STRICT_7BIT_CHARMAP[from]; + do_print("Verifying GSM_SMS_STRICT_7BIT_CHARMAP[\"\\u0x" + + from.charCodeAt(0).toString(16) + "\"] => \"\\u" + + to.charCodeAt(0).toString(16) + "\""); + + // Make sure "from" is not in default table + equal(defaultTable.indexOf(from), -1); + equal(defaultShiftTable.indexOf(from), -1); + // Make sure "to" is in default table + if ((defaultTable.indexOf(to) < 0) + && (defaultShiftTable.indexOf(to) < 0)) { + equal(false, true); + } + } + + run_next_test(); +}); |