summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js')
-rw-r--r--dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js771
1 files changed, 771 insertions, 0 deletions
diff --git a/dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js b/dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js
new file mode 100644
index 000000000..8bcd26ffe
--- /dev/null
+++ b/dom/system/gonk/tests/test_ril_worker_icc_IconLoader.js
@@ -0,0 +1,771 @@
+/* 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();
+}
+
+/**
+ * Verify IconLoader.loadIcons with recordNumbers array length being 1.
+ * Query images of one record at a time.
+ */
+add_test(function test_load_icon_basic() {
+ let worker = newUint8Worker();
+ let context = worker.ContextPool._contexts[0];
+ let ril = context.RIL;
+ let iconLoader = context.IconLoader;
+ let simRecordHelper = context.SimRecordHelper;
+
+ let test_data = [
+ {rawData: [
+ {codingScheme: ICC_IMG_CODING_SCHEME_BASIC,
+ width: 0x10,
+ height: 0x10,
+ body: [0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x9d, 0xe9, 0xa1, 0x2d, 0xa1, 0x2d, 0xa1, 0x2b,
+ 0xa1, 0x2b, 0x9d, 0xe9, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0xff, 0xff]}],
+ expected: [
+ {width: 0x10,
+ height: 0x10,
+ pixels: [/* 1st byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 2nd byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 3rd byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 4th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 5th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 6th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 7th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 8th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 9th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 10th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 11th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 12th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 13th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 14th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 15th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 16th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 17th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 18th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 19th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 20th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 21th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 22th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 23th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 24th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 25th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 26th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 27th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 28th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 29th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 30th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 31th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 32th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff]}]},
+ {rawData: [
+ {codingScheme: ICC_IMG_CODING_SCHEME_COLOR,
+ width: 0x10,
+ height: 0x10,
+ bitsPerImgPoint: 0x04,
+ numOfClutEntries: 0x10,
+ body: [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xcf, 0xfc, 0xcc, 0xfc, 0xcc,
+ 0xcf, 0xcf, 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf,
+ 0xcc, 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcc,
+ 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcf, 0xcc,
+ 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcf, 0xcc, 0xcf,
+ 0xfc, 0xcc, 0xfc, 0xcc, 0xcf, 0xcf, 0xfc, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x99],
+ clut: [0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80,
+ 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80,
+ 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff,
+ 0xff, 0xff, 0xff]}],
+ expected: [
+ {width: 0x10,
+ height: 0x10,
+ pixels: [0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0x0000ffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff]}]},
+ {rawData: [
+ {codingScheme: ICC_IMG_CODING_SCHEME_COLOR,
+ width: 0x03,
+ height: 0x03,
+ bitsPerImgPoint: 0x05,
+ numOfClutEntries: 0x20,
+ body: [0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88],
+ clut: [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
+ 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
+ 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
+ 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
+ 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
+ 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
+ 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
+ 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f]},
+ {codingScheme: ICC_IMG_CODING_SCHEME_BASIC,
+ width: 0x10,
+ height: 0x10,
+ body: [0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x9d, 0xe9, 0xa1, 0x2d, 0xa1, 0x2d, 0xa1, 0x2b,
+ 0xa1, 0x2b, 0x9d, 0xe9, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0xff, 0xff]}],
+ expected: [
+ {width: 0x03,
+ height: 0x03,
+ pixels: [0x000102ff, 0x060708ff, 0x0c0d0eff, 0x121314ff, 0x18191aff,
+ 0x1e1f20ff, 0x242526ff, 0x2a2b2cff, 0x333435ff]},
+ {width: 0x10,
+ height: 0x10,
+ pixels: [/* 1st byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 2nd byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 3rd byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 4th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 5th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 6th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 7th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 8th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 9th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 10th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 11th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 12th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 13th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 14th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 15th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 16th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 17th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 18th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 19th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 20th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 21th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 22th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 23th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 24th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 25th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 26th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 27th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 28th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 29th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 30th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 31th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 32th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff]}]},
+ {rawData: [
+ {codingScheme: ICC_IMG_CODING_SCHEME_COLOR_TRANSPARENCY,
+ width: 0x04,
+ height: 0x04,
+ bitsPerImgPoint: 0x04,
+ numOfClutEntries: 0x10,
+ body: [0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88],
+ clut: [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
+ 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
+ 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
+ 0x2d, 0x2e, 0x2f]}],
+ expected: [
+ {width: 0x04,
+ height: 0x04,
+ pixels: [0x00000000, 0x00000000, 0x2a2b2cff, 0x2a2b2cff, 0x272829ff,
+ 0x272829ff, 0x242526ff, 0x242526ff, 0x212223ff, 0x212223ff,
+ 0x1e1f20ff, 0x1e1f20ff, 0x1b1c1dff, 0x1b1c1dff, 0x18191aff,
+ 0x18191aff]}]}];
+
+ function do_test(test_data, expected) {
+ simRecordHelper.readIMG = function fakeReadIMG(recordNumber, onsuccess, onerror) {
+ onsuccess(test_data);
+ };
+
+ let onsuccess = function(icons) {
+ // Query one record at a time.
+ equal(icons.length, 1);
+ equal(icons[0].length, expected.length);
+ for (let i = 0; i < icons[0].length; i++) {
+ // Read the i_th image of the record.
+ let icon = icons[0][i];
+ let exp = expected[i];
+ equal(icon.width, exp.width);
+ equal(icon.height, exp.height);
+ equal(icon.pixels.length, exp.pixels.length);
+ for (let j = 0; j < icon.pixels.length; j++) {
+ equal(icon.pixels[j], exp.pixels[j]);
+ }
+ }
+ };
+
+ iconLoader.loadIcons([0], onsuccess);
+ }
+
+ for (let i = 0; i < test_data.length; i++) {
+ do_test(test_data[i].rawData, test_data[i].expected);
+ }
+
+ run_next_test();
+});
+
+/**
+ * Verify IconLoader.loadIcons.
+ */
+add_test(function test_load_icons() {
+ let worker = newUint8Worker();
+ let context = worker.ContextPool._contexts[0];
+ let ril = context.RIL;
+ let iconLoader = context.IconLoader;
+ let simRecordHelper = context.SimRecordHelper;
+
+ let test_data = {
+ rawData: [
+ // Record 1.
+ [{codingScheme: ICC_IMG_CODING_SCHEME_BASIC,
+ width: 0x10,
+ height: 0x10,
+ body: [0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x9d, 0xe9, 0xa1, 0x2d, 0xa1, 0x2d, 0xa1, 0x2b,
+ 0xa1, 0x2b, 0x9d, 0xe9, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0xff, 0xff]}],
+ // Record 2.
+ [{codingScheme: ICC_IMG_CODING_SCHEME_COLOR,
+ width: 0x10,
+ height: 0x10,
+ bitsPerImgPoint: 0x04,
+ numOfClutEntries: 0x10,
+ body: [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xcf, 0xfc, 0xcc, 0xfc, 0xcc,
+ 0xcf, 0xcf, 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf,
+ 0xcc, 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcc,
+ 0xfc, 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcf, 0xcc,
+ 0xcf, 0xcf, 0xff, 0xfc, 0xff, 0xcf, 0xcf, 0xcc, 0xcf,
+ 0xfc, 0xcc, 0xfc, 0xcc, 0xcf, 0xcf, 0xfc, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x99],
+ clut: [0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80,
+ 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80,
+ 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff,
+ 0xff, 0xff, 0xff]}],
+ // Record 3.
+ [{codingScheme: ICC_IMG_CODING_SCHEME_COLOR,
+ width: 0x03,
+ height: 0x03,
+ bitsPerImgPoint: 0x05,
+ numOfClutEntries: 0x20,
+ body: [0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88],
+ clut: [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
+ 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
+ 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
+ 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
+ 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e,
+ 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
+ 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
+ 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f]},
+ {codingScheme: ICC_IMG_CODING_SCHEME_BASIC,
+ width: 0x10,
+ height: 0x10,
+ body: [0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x9d, 0xe9, 0xa1, 0x2d, 0xa1, 0x2d, 0xa1, 0x2b,
+ 0xa1, 0x2b, 0x9d, 0xe9, 0x00, 0x00, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0xff, 0xff]}],
+ // Record 4.
+ [{codingScheme: ICC_IMG_CODING_SCHEME_COLOR_TRANSPARENCY,
+ width: 0x04,
+ height: 0x04,
+ bitsPerImgPoint: 0x04,
+ numOfClutEntries: 0x10,
+ body: [0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88],
+ clut: [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
+ 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
+ 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c,
+ 0x2d, 0x2e, 0x2f]}]],
+ expected: [
+ // Record 1.
+ [{width: 0x10,
+ height: 0x10,
+ pixels: [/* 1st byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 2nd byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 3rd byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 4th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 5th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 6th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 7th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 8th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 9th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 10th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 11th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 12th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 13th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 14th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 15th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 16th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 17th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 18th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 19th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 20th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 21th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 22th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 23th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 24th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 25th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 26th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 27th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 28th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 29th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 30th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 31th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 32th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff]}],
+ // Record 2.
+ [{width: 0x10,
+ height: 0x10,
+ pixels: [0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0x0000ffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff,
+ 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0x0000ffff, 0x0000ffff,
+ 0x0000ffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff,
+ 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff,
+ 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff, 0xff0000ff,
+ 0xff0000ff]}],
+ // Record 3.
+ [{width: 0x03,
+ height: 0x03,
+ pixels: [0x000102ff, 0x060708ff, 0x0c0d0eff, 0x121314ff, 0x18191aff,
+ 0x1e1f20ff, 0x242526ff, 0x2a2b2cff, 0x333435ff]},
+ {width: 0x10,
+ height: 0x10,
+ pixels: [/* 1st byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 2nd byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 3rd byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 4th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 5th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 6th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 7th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 8th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 9th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 10th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 11th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 12th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 13th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 14th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 15th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 16th byte of body: 0x2d */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 17th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 18th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 19th byte of body: 0xa1 */
+ 0xffffffff, 0x000000ff, 0xffffffff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 20th byte of body: 0x2b */
+ 0x000000ff, 0x000000ff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0xffffffff, 0xffffffff,
+ /* 21th byte of body: 0x9d */
+ 0xffffffff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0x000000ff, 0xffffffff,
+ /* 22th byte of body: 0xe9 */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0x000000ff, 0xffffffff,
+ 0x000000ff, 0x000000ff, 0xffffffff,
+ /* 23th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 24th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 25th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 26th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 27th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 28th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 29th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 30th byte of body: 0x00 */
+ 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff, 0x000000ff,
+ 0x000000ff, 0x000000ff, 0x000000ff,
+ /* 31th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff,
+ /* 32th byte of body: 0xff */
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff]}],
+ // Record 4.
+ [{width: 0x04,
+ height: 0x04,
+ pixels: [0x00000000, 0x00000000, 0x2a2b2cff, 0x2a2b2cff, 0x272829ff,
+ 0x272829ff, 0x242526ff, 0x242526ff, 0x212223ff, 0x212223ff,
+ 0x1e1f20ff, 0x1e1f20ff, 0x1b1c1dff, 0x1b1c1dff, 0x18191aff,
+ 0x18191aff]}]]};
+
+ function do_test() {
+ simRecordHelper.readIMG = function fakeReadIMG(recordNumber, onsuccess, onerror) {
+ onsuccess(test_data.rawData[recordNumber]);
+ };
+
+ let onsuccess = function(icons) {
+ equal(icons.length, test_data.expected.length);
+ for (let i = 0; i < icons.length; i++) {
+ for (let j = 0; j < icons[i].length; j++) {
+ // Read the j_th image from the i_th record.
+ let icon = icons[i][j];
+ let expected = test_data.expected[i][j];
+ equal(icon.width, expected.width);
+ equal(icon.height, expected.height);
+ equal(icon.pixels.length, expected.pixels.length);
+ for (let k = 0; k < icon.pixels.length; k++) {
+ equal(icon.pixels[k], expected.pixels[k]);
+ }
+ }
+ }
+ };
+
+ let recordNumbers = [0, 1, 2, 3];
+ iconLoader.loadIcons(recordNumbers, onsuccess);
+ }
+
+ do_test();
+ run_next_test();
+});