diff options
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.js | 771 |
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(); +}); |