Bug 882985 - 0002. Test case for CDMA information record decoder. r=vicamo

This commit is contained in:
Chuck Lee 2013-09-09 23:19:51 +08:00
Родитель af3c11d608
Коммит 75da4fb1b8
2 изменённых файлов: 120 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,119 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
subscriptLoader.loadSubScript("resource://gre/modules/ril_consts.js", this);
function run_test() {
run_next_test();
}
/**
* Helper function.
*/
function newWorkerWithParcel(parcelBuf) {
let worker = newWorker({
postRILMessage: function fakePostRILMessage(data) {
// Do nothing
},
postMessage: function fakePostMessage(message) {
// Do nothing
}
});
let index = 0; // index for read
let buf = parcelBuf;
worker.Buf.readUint8 = function () {
return buf[index++];
};
worker.Buf.readUint16 = function () {
return buf[index++];
};
worker.Buf.readUint32 = function () {
return buf[index++];
};
return worker;
}
// Test CDMA information record decoder.
/**
* Verify decoder for type DISPLAY
*/
add_test(function test_display() {
let worker = newWorkerWithParcel([
0x01, // one inforemation record
0x00, // type: display
0x09, // length: 9
0x54, 0x65, 0x73, 0x74, 0x20, 0x49, 0x6E, 0x66,
0x6F, 0x00]);
let helper = worker.CdmaPDUHelper;
let record = helper.decodeInformationRecord();
do_check_eq(record.display, "Test Info");
run_next_test();
});
/**
* Verify decoder for type EXTENDED DISPLAY
*/
add_test(function test_extended_display() {
let worker = newWorkerWithParcel([
0x01, // one inforemation record
0x07, // type: extended display
0x0E, // length: 14
0x80, // header byte
0x80, // Blank
0x81, // Skip
0x9B, // Text
0x09, 0x54, 0x65, 0x73, 0x74, 0x20, 0x49, 0x6E,
0x66, 0x6F, 0x00]);
let helper = worker.CdmaPDUHelper;
let record = helper.decodeInformationRecord();
do_check_eq(record.extendedDisplay.indicator, 1);
do_check_eq(record.extendedDisplay.type, 0);
do_check_eq(record.extendedDisplay.records.length, 3);
do_check_eq(record.extendedDisplay.records[0].tag, 0x80);
do_check_eq(record.extendedDisplay.records[1].tag, 0x81);
do_check_eq(record.extendedDisplay.records[2].tag, 0x9B);
do_check_eq(record.extendedDisplay.records[2].content, "Test Info");
run_next_test();
});
/**
* Verify decoder for mixed type
*/
add_test(function test_mixed() {
let worker = newWorkerWithParcel([
0x02, // two inforemation record
0x00, // type: display
0x09, // length: 9
0x54, 0x65, 0x73, 0x74, 0x20, 0x49, 0x6E, 0x66,
0x6F, 0x00,
0x07, // type: extended display
0x0E, // length: 14
0x80, // header byte
0x80, // Blank
0x81, // Skip
0x9B, // Text
0x09, 0x54, 0x65, 0x73, 0x74, 0x20, 0x49, 0x6E,
0x66, 0x6F, 0x00]);
let helper = worker.CdmaPDUHelper;
let record = helper.decodeInformationRecord();
do_check_eq(record.display, "Test Info");
do_check_eq(record.extendedDisplay.indicator, 1);
do_check_eq(record.extendedDisplay.type, 0);
do_check_eq(record.extendedDisplay.records.length, 3);
do_check_eq(record.extendedDisplay.records[0].tag, 0x80);
do_check_eq(record.extendedDisplay.records[1].tag, 0x81);
do_check_eq(record.extendedDisplay.records[2].tag, 0x9B);
do_check_eq(record.extendedDisplay.records[2].content, "Test Info");
run_next_test();
});

Просмотреть файл

@ -18,3 +18,4 @@ tail =
[test_ril_worker_ecm.js]
[test_ril_worker_stk.js]
[test_ril_worker_barring_password.js]
[test_ril_worker_cdma_info_rec.js]