summaryrefslogtreecommitdiff
path: root/image/test/reftest/ico
diff options
context:
space:
mode:
Diffstat (limited to 'image/test/reftest/ico')
-rw-r--r--image/test/reftest/ico/cur/pointer.curbin0 -> 4286 bytes
-rw-r--r--image/test/reftest/ico/cur/pointer.pngbin0 -> 453 bytes
-rw-r--r--image/test/reftest/ico/cur/reftest-stylo.list5
-rw-r--r--image/test/reftest/ico/cur/reftest.list4
-rw-r--r--image/test/reftest/ico/cur/wrapper.html27
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.icobin0 -> 182 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.pngbin0 -> 241 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.icobin0 -> 326 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.pngbin0 -> 410 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.icobin0 -> 190 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.pngbin0 -> 220 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.icobin0 -> 198 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.pngbin0 -> 242 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.icobin0 -> 206 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.pngbin0 -> 247 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.icobin0 -> 78 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.pngbin0 -> 120 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.icobin0 -> 16454 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.pngbin0 -> 7673 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.pngbin0 -> 126 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.icobin0 -> 318 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.pngbin0 -> 447 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.icobin0 -> 326 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.pngbin0 -> 455 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.icobin0 -> 598 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.pngbin0 -> 489 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.icobin0 -> 94 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.pngbin0 -> 132 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.icobin0 -> 102 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.pngbin0 -> 135 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.icobin0 -> 110 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.pngbin0 -> 146 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.icobin0 -> 118 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.pngbin0 -> 149 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.icobin0 -> 126 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.pngbin0 -> 156 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.icobin0 -> 134 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.pngbin0 -> 161 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.icobin0 -> 142 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.pngbin0 -> 171 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.pngbin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/reftest-stylo.list25
-rw-r--r--image/test/reftest/ico/ico-bmp-1bpp/reftest.list23
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.icobin0 -> 1126 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.pngbin0 -> 514 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.pngbin0 -> 1028 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.icobin0 -> 842 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.pngbin0 -> 809 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.icobin0 -> 894 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.pngbin0 -> 879 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.icobin0 -> 1014 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.pngbin0 -> 1000 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.icobin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.pngbin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.icobin0 -> 204862 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.pngbin0 -> 5480 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.pngbin0 -> 83 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.icobin0 -> 3162 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.pngbin0 -> 2936 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.pngbin0 -> 3106 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.icobin0 -> 3626 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.pngbin0 -> 3303 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.icobin0 -> 110 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.pngbin0 -> 107 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.icobin0 -> 126 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.pngbin0 -> 136 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.icobin0 -> 162 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.pngbin0 -> 173 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.icobin0 -> 206 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.pngbin0 -> 218 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.icobin0 -> 258 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.pngbin0 -> 271 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.icobin0 -> 286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.pngbin0 -> 313 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.icobin0 -> 350 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.pngbin0 -> 368 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.pngbin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/reftest-stylo.list24
-rw-r--r--image/test/reftest/ico/ico-bmp-24bpp/reftest.list23
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.icobin0 -> 1462 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.pngbin0 -> 533 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.icobin0 -> 4286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.pngbin0 -> 1028 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.icobin0 -> 1022 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.pngbin0 -> 809 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.icobin0 -> 1150 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.pngbin0 -> 879 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.icobin0 -> 1286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.pngbin0 -> 1000 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.icobin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.pngbin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.icobin0 -> 270398 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.pngbin0 -> 5480 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.pngbin0 -> 83 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.icobin0 -> 4030 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.pngbin0 -> 2936 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.icobin0 -> 4286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.pngbin0 -> 3106 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.icobin0 -> 4682 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.pngbin0 -> 3303 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.icobin0 -> 110 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.pngbin0 -> 107 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.icobin0 -> 142 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.pngbin0 -> 136 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.icobin0 -> 182 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.pngbin0 -> 173 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.icobin0 -> 230 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.pngbin0 -> 218 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.icobin0 -> 286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.pngbin0 -> 271 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.icobin0 -> 350 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.pngbin0 -> 313 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.icobin0 -> 422 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.pngbin0 -> 368 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.icobin0 -> 4286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.pngbin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/reftest-stylo.list23
-rw-r--r--image/test/reftest/ico/ico-bmp-32bpp/reftest.list22
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.icobin0 -> 350 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.pngbin0 -> 315 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.icobin0 -> 766 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.pngbin0 -> 556 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.icobin0 -> 306 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.pngbin0 -> 304 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.icobin0 -> 318 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.pngbin0 -> 323 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.icobin0 -> 398 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.pngbin0 -> 337 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.icobin0 -> 134 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.pngbin0 -> 120 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.icobin0 -> 41086 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.pngbin0 -> 16944 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.icobin0 -> 142 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.pngbin0 -> 128 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.icobin0 -> 746 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.pngbin0 -> 700 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.icobin0 -> 766 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.pngbin0 -> 763 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.icobin0 -> 1050 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.pngbin0 -> 778 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.icobin0 -> 150 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.pngbin0 -> 139 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.icobin0 -> 158 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.pngbin0 -> 147 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.icobin0 -> 166 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.pngbin0 -> 156 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.icobin0 -> 174 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.pngbin0 -> 163 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.icobin0 -> 182 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.pngbin0 -> 172 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.icobin0 -> 190 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.pngbin0 -> 188 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.icobin0 -> 234 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.pngbin0 -> 198 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.pngbin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/reftest-stylo.list24
-rw-r--r--image/test/reftest/ico/ico-bmp-4bpp/reftest.list23
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.icobin0 -> 1478 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.pngbin0 -> 514 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.icobin0 -> 2238 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.pngbin0 -> 983 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.icobin0 -> 1386 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.pngbin0 -> 809 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.icobin0 -> 1406 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.pngbin0 -> 903 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.icobin0 -> 1494 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.pngbin0 -> 964 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.icobin0 -> 1094 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.pngbin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.icobin0 -> 74814 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.pngbin0 -> 22443 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.icobin0 -> 1102 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.pngbin0 -> 83 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.icobin0 -> 2238 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.pngbin0 -> 1546 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.icobin0 -> 2238 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.pngbin0 -> 1530 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.icobin0 -> 2538 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.pngbin0 -> 1632 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.icobin0 -> 1110 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.pngbin0 -> 107 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.icobin0 -> 1118 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.pngbin0 -> 136 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.icobin0 -> 1146 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.pngbin0 -> 173 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.icobin0 -> 1158 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.pngbin0 -> 218 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.icobin0 -> 1170 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.pngbin0 -> 271 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.icobin0 -> 286 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.pngbin0 -> 313 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.icobin0 -> 1230 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.pngbin0 -> 368 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.icobin0 -> 3262 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.pngbin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/reftest-stylo.list25
-rw-r--r--image/test/reftest/ico/ico-bmp-8bpp/reftest.list23
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/16x16.pngbin0 -> 879 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/invalid-bpp.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE4.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE8.icobin0 -> 86 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/invalid-compression.icobin0 -> 830 bytes
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/reftest-stylo.list11
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/reftest.list10
-rw-r--r--image/test/reftest/ico/ico-bmp-corrupted/wrapper.html80
-rw-r--r--image/test/reftest/ico/ico-mixed/mixed-bmp-png.icobin0 -> 17542 bytes
-rw-r--r--image/test/reftest/ico/ico-mixed/mixed-bmp-png.pngbin0 -> 629 bytes
-rw-r--r--image/test/reftest/ico/ico-mixed/mixed-bmp-png32.pngbin0 -> 940 bytes
-rw-r--r--image/test/reftest/ico/ico-mixed/mixed-bmp-png48.pngbin0 -> 1332 bytes
-rw-r--r--image/test/reftest/ico/ico-mixed/reftest-stylo.list4
-rw-r--r--image/test/reftest/ico/ico-mixed/reftest.list3
-rw-r--r--image/test/reftest/ico/ico-png/corrupted_x00n0g01.icobin0 -> 71 bytes
-rw-r--r--image/test/reftest/ico/ico-png/corrupted_xxcrn0g04.icobin0 -> 283 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-15x15-png.icobin0 -> 831 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-15x15-png.pngbin0 -> 809 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-16x16-png.icobin0 -> 901 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-16x16-png.pngbin0 -> 879 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-17x17-png.icobin0 -> 1022 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-17x17-png.pngbin0 -> 1000 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-1x1-png.icobin0 -> 92 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-1x1-png.pngbin0 -> 70 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-256x256-png.icobin0 -> 5934 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-256x256-png.pngbin0 -> 5912 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-2x2-png.icobin0 -> 105 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-2x2-png.pngbin0 -> 83 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-31x31-png.icobin0 -> 2958 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-31x31-png.pngbin0 -> 2936 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-32x32-png.icobin0 -> 3128 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-32x32-png.pngbin0 -> 3106 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-33x33-png.icobin0 -> 3325 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-33x33-png.pngbin0 -> 3303 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-3x3-png.icobin0 -> 129 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-3x3-png.pngbin0 -> 107 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-4x4-png.icobin0 -> 158 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-4x4-png.pngbin0 -> 136 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-5x5-png.icobin0 -> 195 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-5x5-png.pngbin0 -> 173 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-6x6-png.icobin0 -> 240 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-6x6-png.pngbin0 -> 218 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-7x7-png.icobin0 -> 293 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-7x7-png.pngbin0 -> 271 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-8x8-png.icobin0 -> 335 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-8x8-png.pngbin0 -> 313 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-9x9-png.icobin0 -> 390 bytes
-rw-r--r--image/test/reftest/ico/ico-png/ico-size-9x9-png.pngbin0 -> 368 bytes
-rw-r--r--image/test/reftest/ico/ico-png/reftest-stylo.list30
-rw-r--r--image/test/reftest/ico/ico-png/reftest.list29
-rw-r--r--image/test/reftest/ico/ico-png/tmp.icobin0 -> 1150 bytes
-rw-r--r--image/test/reftest/ico/ico-png/transparent-png.icobin0 -> 1150 bytes
-rw-r--r--image/test/reftest/ico/ico-png/transparent-png.pngbin0 -> 699 bytes
-rw-r--r--image/test/reftest/ico/ico-png/wrapper.html28
-rw-r--r--image/test/reftest/ico/ico-png/x00n0g01.pngbin0 -> 49 bytes
-rw-r--r--image/test/reftest/ico/ico-png/xcrn0g04.pngbin0 -> 261 bytes
-rw-r--r--image/test/reftest/ico/reftest-stylo.list13
-rw-r--r--image/test/reftest/ico/reftest.list11
263 files changed, 490 insertions, 0 deletions
diff --git a/image/test/reftest/ico/cur/pointer.cur b/image/test/reftest/ico/cur/pointer.cur
new file mode 100644
index 0000000000..025ebaed1f
--- /dev/null
+++ b/image/test/reftest/ico/cur/pointer.cur
Binary files differ
diff --git a/image/test/reftest/ico/cur/pointer.png b/image/test/reftest/ico/cur/pointer.png
new file mode 100644
index 0000000000..84ad8f3fbd
--- /dev/null
+++ b/image/test/reftest/ico/cur/pointer.png
Binary files differ
diff --git a/image/test/reftest/ico/cur/reftest-stylo.list b/image/test/reftest/ico/cur/reftest-stylo.list
new file mode 100644
index 0000000000..b59c26dc59
--- /dev/null
+++ b/image/test/reftest/ico/cur/reftest-stylo.list
@@ -0,0 +1,5 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP and PNG mixed tests
+
+skip == wrapper.html?pointer.cur wrapper.html?pointer.cur
+
diff --git a/image/test/reftest/ico/cur/reftest.list b/image/test/reftest/ico/cur/reftest.list
new file mode 100644
index 0000000000..635136506b
--- /dev/null
+++ b/image/test/reftest/ico/cur/reftest.list
@@ -0,0 +1,4 @@
+# ICO BMP and PNG mixed tests
+
+== wrapper.html?pointer.cur wrapper.html?pointer.png
+
diff --git a/image/test/reftest/ico/cur/wrapper.html b/image/test/reftest/ico/cur/wrapper.html
new file mode 100644
index 0000000000..5bbe75e01c
--- /dev/null
+++ b/image/test/reftest/ico/cur/wrapper.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+ #image1 { background-color: rgb(10, 100, 250); }
+</style>
+<script>
+ // The image is loaded async after the page loads
+ // wait for it to finish loading
+ function onImageLoad() {
+ document.documentElement.removeAttribute("class");
+ };
+</script>
+</head>
+<body>
+<img id="image1">
+<script>
+ // Use as "wrapper.html?image.png
+ var imgURL = document.location.search.substr(1);
+ document.images[0].onload = onImageLoad;
+ document.images[0].onerror = onImageLoad;
+ document.images[0].src = imgURL;
+</script>
+</body>
+</html>
+
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.ico
new file mode 100644
index 0000000000..0f51d504af
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.png
new file mode 100644
index 0000000000..152b30d716
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-not-square-transparent-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.ico
new file mode 100644
index 0000000000..def2a4ece7
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.png
new file mode 100644
index 0000000000..064a68bb2e
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-partial-transparent-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.ico
new file mode 100644
index 0000000000..b68cf0ef0d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.png
new file mode 100644
index 0000000000..956c78ece6
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-15x15-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.ico
new file mode 100644
index 0000000000..d96a4a0e1d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.png
new file mode 100644
index 0000000000..90088351fa
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-16x16-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.ico
new file mode 100644
index 0000000000..4f10ad13c0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.png
new file mode 100644
index 0000000000..9a294696c4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-17x17-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.ico
new file mode 100644
index 0000000000..5af8bef61a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.png
new file mode 100644
index 0000000000..7a07a124ea
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-1x1-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.ico
new file mode 100644
index 0000000000..63d95e3b7c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.png
new file mode 100644
index 0000000000..0a23d8c8ee
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-256x256-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.ico
new file mode 100644
index 0000000000..09c140f1b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.png
new file mode 100644
index 0000000000..3b09f80769
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-2x2-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.ico
new file mode 100644
index 0000000000..bbfc3165ab
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.png
new file mode 100644
index 0000000000..d1fe6ddeee
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-31x31-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.ico
new file mode 100644
index 0000000000..279ecb8358
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.png
new file mode 100644
index 0000000000..078d3dc5d0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-32x32-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.ico
new file mode 100644
index 0000000000..fa1862c1ca
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.png
new file mode 100644
index 0000000000..e64e12b2aa
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-33x33-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.ico
new file mode 100644
index 0000000000..733b1f12bc
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.png
new file mode 100644
index 0000000000..b8519a8749
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-3x3-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.ico
new file mode 100644
index 0000000000..ba3097cecd
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.png
new file mode 100644
index 0000000000..3977b54548
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-4x4-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.ico
new file mode 100644
index 0000000000..52e32df27b
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.png
new file mode 100644
index 0000000000..caa9246b67
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-5x5-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.ico
new file mode 100644
index 0000000000..c29651400f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.png
new file mode 100644
index 0000000000..30e1b0249d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-6x6-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.ico
new file mode 100644
index 0000000000..8ce9915c44
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.png
new file mode 100644
index 0000000000..9dbaae84cb
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-7x7-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.ico
new file mode 100644
index 0000000000..485dff028a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.png
new file mode 100644
index 0000000000..2201388408
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-8x8-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.ico
new file mode 100644
index 0000000000..38f34ec50a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.png
new file mode 100644
index 0000000000..7fe1b548b8
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-size-9x9-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.ico b/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.ico
new file mode 100644
index 0000000000..8e361306c5
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.png b/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.png
new file mode 100644
index 0000000000..062152e3b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/ico-transparent-1bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-1bpp/reftest-stylo.list
new file mode 100644
index 0000000000..43a597e78c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/reftest-stylo.list
@@ -0,0 +1,25 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP 1BPP tests
+
+# Images of various sizes
+== ico-size-1x1-1bpp.ico ico-size-1x1-1bpp.ico
+== ico-size-2x2-1bpp.ico ico-size-2x2-1bpp.ico
+== ico-size-3x3-1bpp.ico ico-size-3x3-1bpp.ico
+== ico-size-4x4-1bpp.ico ico-size-4x4-1bpp.ico
+== ico-size-5x5-1bpp.ico ico-size-5x5-1bpp.ico
+== ico-size-6x6-1bpp.ico ico-size-6x6-1bpp.ico
+== ico-size-7x7-1bpp.ico ico-size-7x7-1bpp.ico
+== ico-size-8x8-1bpp.ico ico-size-8x8-1bpp.ico
+== ico-size-9x9-1bpp.ico ico-size-9x9-1bpp.ico
+== ico-size-15x15-1bpp.ico ico-size-15x15-1bpp.ico
+== ico-size-16x16-1bpp.ico ico-size-16x16-1bpp.ico
+== ico-size-17x17-1bpp.ico ico-size-17x17-1bpp.ico
+== ico-size-31x31-1bpp.ico ico-size-31x31-1bpp.ico
+== ico-size-32x32-1bpp.ico ico-size-32x32-1bpp.ico
+== ico-size-33x33-1bpp.ico ico-size-33x33-1bpp.ico
+skip-if(B2G) == ico-size-256x256-1bpp.ico ico-size-256x256-1bpp.ico
+# bug 773482
+== ico-partial-transparent-1bpp.ico ico-partial-transparent-1bpp.ico
+== ico-transparent-1bpp.ico ico-transparent-1bpp.ico
+== ico-not-square-transparent-1bpp.ico ico-not-square-transparent-1bpp.ico
+
diff --git a/image/test/reftest/ico/ico-bmp-1bpp/reftest.list b/image/test/reftest/ico/ico-bmp-1bpp/reftest.list
new file mode 100644
index 0000000000..1b9ca1348a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-1bpp/reftest.list
@@ -0,0 +1,23 @@
+# ICO BMP 1BPP tests
+
+# Images of various sizes
+== ico-size-1x1-1bpp.ico ico-size-1x1-1bpp.png
+== ico-size-2x2-1bpp.ico ico-size-2x2-1bpp.png
+== ico-size-3x3-1bpp.ico ico-size-3x3-1bpp.png
+== ico-size-4x4-1bpp.ico ico-size-4x4-1bpp.png
+== ico-size-5x5-1bpp.ico ico-size-5x5-1bpp.png
+== ico-size-6x6-1bpp.ico ico-size-6x6-1bpp.png
+== ico-size-7x7-1bpp.ico ico-size-7x7-1bpp.png
+== ico-size-8x8-1bpp.ico ico-size-8x8-1bpp.png
+== ico-size-9x9-1bpp.ico ico-size-9x9-1bpp.png
+== ico-size-15x15-1bpp.ico ico-size-15x15-1bpp.png
+== ico-size-16x16-1bpp.ico ico-size-16x16-1bpp.png
+== ico-size-17x17-1bpp.ico ico-size-17x17-1bpp.png
+== ico-size-31x31-1bpp.ico ico-size-31x31-1bpp.png
+== ico-size-32x32-1bpp.ico ico-size-32x32-1bpp.png
+== ico-size-33x33-1bpp.ico ico-size-33x33-1bpp.png
+== ico-size-256x256-1bpp.ico ico-size-256x256-1bpp.png
+== ico-partial-transparent-1bpp.ico ico-partial-transparent-1bpp.png
+== ico-transparent-1bpp.ico ico-transparent-1bpp.png
+== ico-not-square-transparent-1bpp.ico ico-not-square-transparent-1bpp.png
+
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.ico
new file mode 100644
index 0000000000..16d6584ef8
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.png
new file mode 100644
index 0000000000..a881048b96
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-not-square-transparent-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.ico
new file mode 100644
index 0000000000..ab0dc4bce1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.png
new file mode 100644
index 0000000000..0363210c74
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-partial-transparent-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.ico
new file mode 100644
index 0000000000..8721b0d169
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.png
new file mode 100644
index 0000000000..e1287430d0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-15x15-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.ico
new file mode 100644
index 0000000000..04e4736189
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.png
new file mode 100644
index 0000000000..c04869e728
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-16x16-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.ico
new file mode 100644
index 0000000000..308ccb7a61
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.png
new file mode 100644
index 0000000000..00fb8e4f37
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-17x17-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.ico
new file mode 100644
index 0000000000..e2bf90c093
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.png
new file mode 100644
index 0000000000..c05f5fef89
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-1x1-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.ico
new file mode 100644
index 0000000000..c3977400a4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.png
new file mode 100644
index 0000000000..84bfada761
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-256x256-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.ico
new file mode 100644
index 0000000000..dba180a07a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.png
new file mode 100644
index 0000000000..e512d3f9b4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-2x2-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.ico
new file mode 100644
index 0000000000..aa67502f61
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.png
new file mode 100644
index 0000000000..e4a8642514
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-31x31-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.ico
new file mode 100644
index 0000000000..a85b871c5e
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.png
new file mode 100644
index 0000000000..3a6fbe8ee9
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-32x32-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.ico
new file mode 100644
index 0000000000..a5c49374de
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.png
new file mode 100644
index 0000000000..72ef7eb636
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-33x33-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.ico
new file mode 100644
index 0000000000..8a0b9433f4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.png
new file mode 100644
index 0000000000..cb42ec4f87
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-3x3-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.ico
new file mode 100644
index 0000000000..feb3f11e16
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.png
new file mode 100644
index 0000000000..e6afafd89a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-4x4-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.ico
new file mode 100644
index 0000000000..d607ca5724
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.png
new file mode 100644
index 0000000000..a844aff76d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-5x5-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.ico
new file mode 100644
index 0000000000..62a231602c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.png
new file mode 100644
index 0000000000..415c2d9c6a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-6x6-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.ico
new file mode 100644
index 0000000000..d884ecfd77
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.png
new file mode 100644
index 0000000000..ab2f892747
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-7x7-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.ico
new file mode 100644
index 0000000000..782ae220df
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.png
new file mode 100644
index 0000000000..fe2ff40a1d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-8x8-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.ico
new file mode 100644
index 0000000000..97992643b6
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.png
new file mode 100644
index 0000000000..18ab4b25de
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-size-9x9-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.ico b/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.ico
new file mode 100644
index 0000000000..8e361306c5
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.png b/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.png
new file mode 100644
index 0000000000..062152e3b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/ico-transparent-24bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-24bpp/reftest-stylo.list
new file mode 100644
index 0000000000..54d8521dc3
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/reftest-stylo.list
@@ -0,0 +1,24 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP 24BPP tests
+
+# Images of various sizes
+== ico-size-1x1-24bpp.ico ico-size-1x1-24bpp.ico
+== ico-size-2x2-24bpp.ico ico-size-2x2-24bpp.ico
+== ico-size-3x3-24bpp.ico ico-size-3x3-24bpp.ico
+== ico-size-4x4-24bpp.ico ico-size-4x4-24bpp.ico
+skip == ico-size-5x5-24bpp.ico ico-size-5x5-24bpp.ico
+== ico-size-6x6-24bpp.ico ico-size-6x6-24bpp.ico
+== ico-size-7x7-24bpp.ico ico-size-7x7-24bpp.ico
+== ico-size-8x8-24bpp.ico ico-size-8x8-24bpp.ico
+== ico-size-9x9-24bpp.ico ico-size-9x9-24bpp.ico
+== ico-size-15x15-24bpp.ico ico-size-15x15-24bpp.ico
+== ico-size-16x16-24bpp.ico ico-size-16x16-24bpp.ico
+== ico-size-17x17-24bpp.ico ico-size-17x17-24bpp.ico
+== ico-size-31x31-24bpp.ico ico-size-31x31-24bpp.ico
+fails == ico-size-32x32-24bpp.ico ico-size-32x32-24bpp.ico
+== ico-size-33x33-24bpp.ico ico-size-33x33-24bpp.ico
+== ico-size-256x256-24bpp.ico ico-size-256x256-24bpp.ico
+== ico-partial-transparent-24bpp.ico ico-partial-transparent-24bpp.ico
+== ico-transparent-24bpp.ico ico-transparent-24bpp.ico
+== ico-not-square-transparent-24bpp.ico ico-not-square-transparent-24bpp.ico
+
diff --git a/image/test/reftest/ico/ico-bmp-24bpp/reftest.list b/image/test/reftest/ico/ico-bmp-24bpp/reftest.list
new file mode 100644
index 0000000000..8772936603
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-24bpp/reftest.list
@@ -0,0 +1,23 @@
+# ICO BMP 24BPP tests
+
+# Images of various sizes
+== ico-size-1x1-24bpp.ico ico-size-1x1-24bpp.png
+== ico-size-2x2-24bpp.ico ico-size-2x2-24bpp.png
+== ico-size-3x3-24bpp.ico ico-size-3x3-24bpp.png
+== ico-size-4x4-24bpp.ico ico-size-4x4-24bpp.png
+== ico-size-5x5-24bpp.ico ico-size-5x5-24bpp.png
+== ico-size-6x6-24bpp.ico ico-size-6x6-24bpp.png
+== ico-size-7x7-24bpp.ico ico-size-7x7-24bpp.png
+== ico-size-8x8-24bpp.ico ico-size-8x8-24bpp.png
+== ico-size-9x9-24bpp.ico ico-size-9x9-24bpp.png
+== ico-size-15x15-24bpp.ico ico-size-15x15-24bpp.png
+== ico-size-16x16-24bpp.ico ico-size-16x16-24bpp.png
+== ico-size-17x17-24bpp.ico ico-size-17x17-24bpp.png
+== ico-size-31x31-24bpp.ico ico-size-31x31-24bpp.png
+== ico-size-32x32-24bpp.ico ico-size-32x32-24bpp.png
+== ico-size-33x33-24bpp.ico ico-size-33x33-24bpp.png
+== ico-size-256x256-24bpp.ico ico-size-256x256-24bpp.png
+== ico-partial-transparent-24bpp.ico ico-partial-transparent-24bpp.png
+== ico-transparent-24bpp.ico ico-transparent-24bpp.png
+== ico-not-square-transparent-24bpp.ico ico-not-square-transparent-24bpp.png
+
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.ico
new file mode 100644
index 0000000000..dd0299c413
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.png
new file mode 100644
index 0000000000..befc665552
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-not-square-transparent-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.ico
new file mode 100644
index 0000000000..8ad62f7d0e
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.png
new file mode 100644
index 0000000000..226ad6494f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-partial-transparent-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.ico
new file mode 100644
index 0000000000..1f1b6b51ce
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.png
new file mode 100644
index 0000000000..e1287430d0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-15x15-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.ico
new file mode 100644
index 0000000000..7a8f01529d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.png
new file mode 100644
index 0000000000..c04869e728
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-16x16-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.ico
new file mode 100644
index 0000000000..b92860be4f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.png
new file mode 100644
index 0000000000..00fb8e4f37
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-17x17-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.ico
new file mode 100644
index 0000000000..5ad60c575c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.png
new file mode 100644
index 0000000000..c05f5fef89
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-1x1-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.ico
new file mode 100644
index 0000000000..f8b530ef0b
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.png
new file mode 100644
index 0000000000..84bfada761
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-256x256-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.ico
new file mode 100644
index 0000000000..e5b2bf7e76
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.png
new file mode 100644
index 0000000000..e512d3f9b4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-2x2-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.ico
new file mode 100644
index 0000000000..ddcbde85f4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.png
new file mode 100644
index 0000000000..e4a8642514
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-31x31-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.ico
new file mode 100644
index 0000000000..a89c016485
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.png
new file mode 100644
index 0000000000..3a6fbe8ee9
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-32x32-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.ico
new file mode 100644
index 0000000000..cda9133f8b
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.png
new file mode 100644
index 0000000000..72ef7eb636
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-33x33-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.ico
new file mode 100644
index 0000000000..3894ccf212
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.png
new file mode 100644
index 0000000000..cb42ec4f87
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-3x3-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.ico
new file mode 100644
index 0000000000..828494c668
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.png
new file mode 100644
index 0000000000..e6afafd89a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-4x4-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.ico
new file mode 100644
index 0000000000..4f0a2bcc72
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.png
new file mode 100644
index 0000000000..a844aff76d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-5x5-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.ico
new file mode 100644
index 0000000000..5524769e60
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.png
new file mode 100644
index 0000000000..415c2d9c6a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-6x6-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.ico
new file mode 100644
index 0000000000..6aeebb898d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.png
new file mode 100644
index 0000000000..ab2f892747
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-7x7-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.ico
new file mode 100644
index 0000000000..824c744a20
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.png
new file mode 100644
index 0000000000..fe2ff40a1d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-8x8-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.ico
new file mode 100644
index 0000000000..cf1f6e9c88
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.png
new file mode 100644
index 0000000000..18ab4b25de
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-size-9x9-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.ico b/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.ico
new file mode 100644
index 0000000000..151b7cb361
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.png b/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.png
new file mode 100644
index 0000000000..062152e3b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/ico-transparent-32bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-32bpp/reftest-stylo.list
new file mode 100644
index 0000000000..3ee7e7b001
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/reftest-stylo.list
@@ -0,0 +1,23 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP 32BPP tests
+
+# Images of various sizes
+== ico-size-1x1-32bpp.ico ico-size-1x1-32bpp.ico
+== ico-size-2x2-32bpp.ico ico-size-2x2-32bpp.ico
+== ico-size-3x3-32bpp.ico ico-size-3x3-32bpp.ico
+== ico-size-4x4-32bpp.ico ico-size-4x4-32bpp.ico
+== ico-size-5x5-32bpp.ico ico-size-5x5-32bpp.ico
+== ico-size-6x6-32bpp.ico ico-size-6x6-32bpp.ico
+== ico-size-7x7-32bpp.ico ico-size-7x7-32bpp.ico
+== ico-size-8x8-32bpp.ico ico-size-8x8-32bpp.ico
+== ico-size-9x9-32bpp.ico ico-size-9x9-32bpp.ico
+== ico-size-15x15-32bpp.ico ico-size-15x15-32bpp.ico
+== ico-size-16x16-32bpp.ico ico-size-16x16-32bpp.ico
+== ico-size-17x17-32bpp.ico ico-size-17x17-32bpp.ico
+== ico-size-31x31-32bpp.ico ico-size-31x31-32bpp.ico
+== ico-size-32x32-32bpp.ico ico-size-32x32-32bpp.ico
+== ico-size-33x33-32bpp.ico ico-size-33x33-32bpp.ico
+== ico-size-256x256-32bpp.ico ico-size-256x256-32bpp.ico
+== ico-partial-transparent-32bpp.ico ico-partial-transparent-32bpp.ico
+== ico-transparent-32bpp.ico ico-transparent-32bpp.ico
+== ico-not-square-transparent-32bpp.ico ico-not-square-transparent-32bpp.ico
diff --git a/image/test/reftest/ico/ico-bmp-32bpp/reftest.list b/image/test/reftest/ico/ico-bmp-32bpp/reftest.list
new file mode 100644
index 0000000000..e05355a2bf
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-32bpp/reftest.list
@@ -0,0 +1,22 @@
+# ICO BMP 32BPP tests
+
+# Images of various sizes
+== ico-size-1x1-32bpp.ico ico-size-1x1-32bpp.png
+== ico-size-2x2-32bpp.ico ico-size-2x2-32bpp.png
+== ico-size-3x3-32bpp.ico ico-size-3x3-32bpp.png
+== ico-size-4x4-32bpp.ico ico-size-4x4-32bpp.png
+== ico-size-5x5-32bpp.ico ico-size-5x5-32bpp.png
+== ico-size-6x6-32bpp.ico ico-size-6x6-32bpp.png
+== ico-size-7x7-32bpp.ico ico-size-7x7-32bpp.png
+== ico-size-8x8-32bpp.ico ico-size-8x8-32bpp.png
+== ico-size-9x9-32bpp.ico ico-size-9x9-32bpp.png
+== ico-size-15x15-32bpp.ico ico-size-15x15-32bpp.png
+== ico-size-16x16-32bpp.ico ico-size-16x16-32bpp.png
+== ico-size-17x17-32bpp.ico ico-size-17x17-32bpp.png
+== ico-size-31x31-32bpp.ico ico-size-31x31-32bpp.png
+== ico-size-32x32-32bpp.ico ico-size-32x32-32bpp.png
+== ico-size-33x33-32bpp.ico ico-size-33x33-32bpp.png
+== ico-size-256x256-32bpp.ico ico-size-256x256-32bpp.png
+== ico-partial-transparent-32bpp.ico ico-partial-transparent-32bpp.png
+== ico-transparent-32bpp.ico ico-transparent-32bpp.png
+== ico-not-square-transparent-32bpp.ico ico-not-square-transparent-32bpp.png
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.ico
new file mode 100644
index 0000000000..d502d2ef6b
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.png
new file mode 100644
index 0000000000..3e556ad293
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-not-square-transparent-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.ico
new file mode 100644
index 0000000000..7bd3b8a69f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.png
new file mode 100644
index 0000000000..9ff0ce41f7
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-partial-transparent-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.ico
new file mode 100644
index 0000000000..de5c49e2a6
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.png
new file mode 100644
index 0000000000..5d4a3f9534
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-15x15-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.ico
new file mode 100644
index 0000000000..b856b3f376
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.png
new file mode 100644
index 0000000000..d45d63f539
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-16x16-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.ico
new file mode 100644
index 0000000000..44e055d2f7
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.png
new file mode 100644
index 0000000000..bf48903299
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-17x17-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.ico
new file mode 100644
index 0000000000..fd46c328d5
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.png
new file mode 100644
index 0000000000..d41dd645b7
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-1x1-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.ico
new file mode 100644
index 0000000000..6d28edaa8f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.png
new file mode 100644
index 0000000000..3acdef8303
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-256x256-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.ico
new file mode 100644
index 0000000000..7dc4afde68
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.png
new file mode 100644
index 0000000000..b2d6050415
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-2x2-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.ico
new file mode 100644
index 0000000000..0471332d6b
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.png
new file mode 100644
index 0000000000..cb12a3448d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-31x31-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.ico
new file mode 100644
index 0000000000..ef005dc5bf
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.png
new file mode 100644
index 0000000000..58d867d120
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-32x32-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.ico
new file mode 100644
index 0000000000..4c71963a49
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.png
new file mode 100644
index 0000000000..064fde198c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-33x33-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.ico
new file mode 100644
index 0000000000..aaa6350e96
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.png
new file mode 100644
index 0000000000..e34114d5c9
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-3x3-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.ico
new file mode 100644
index 0000000000..767bebed41
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.png
new file mode 100644
index 0000000000..3efa555620
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-4x4-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.ico
new file mode 100644
index 0000000000..309b6fe5b0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.png
new file mode 100644
index 0000000000..02ebf57a51
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-5x5-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.ico
new file mode 100644
index 0000000000..255fda6a84
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.png
new file mode 100644
index 0000000000..1f5769d09c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-6x6-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.ico
new file mode 100644
index 0000000000..1a39634526
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.png
new file mode 100644
index 0000000000..59a1b98b52
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-7x7-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.ico
new file mode 100644
index 0000000000..40bc9f8937
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.png
new file mode 100644
index 0000000000..cf44f59676
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-8x8-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.ico
new file mode 100644
index 0000000000..bda12f32b9
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.png
new file mode 100644
index 0000000000..2e07364135
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-size-9x9-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.ico b/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.ico
new file mode 100644
index 0000000000..8e361306c5
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.png b/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.png
new file mode 100644
index 0000000000..062152e3b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/ico-transparent-4bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-4bpp/reftest-stylo.list
new file mode 100644
index 0000000000..073755a4b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/reftest-stylo.list
@@ -0,0 +1,24 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP 4BPP tests
+
+# Images of various sizes
+== ico-size-1x1-4bpp.ico ico-size-1x1-4bpp.ico
+== ico-size-2x2-4bpp.ico ico-size-2x2-4bpp.ico
+== ico-size-3x3-4bpp.ico ico-size-3x3-4bpp.ico
+== ico-size-4x4-4bpp.ico ico-size-4x4-4bpp.ico
+== ico-size-5x5-4bpp.ico ico-size-5x5-4bpp.ico
+== ico-size-6x6-4bpp.ico ico-size-6x6-4bpp.ico
+== ico-size-7x7-4bpp.ico ico-size-7x7-4bpp.ico
+== ico-size-8x8-4bpp.ico ico-size-8x8-4bpp.ico
+== ico-size-9x9-4bpp.ico ico-size-9x9-4bpp.ico
+== ico-size-15x15-4bpp.ico ico-size-15x15-4bpp.ico
+== ico-size-16x16-4bpp.ico ico-size-16x16-4bpp.ico
+== ico-size-17x17-4bpp.ico ico-size-17x17-4bpp.ico
+== ico-size-31x31-4bpp.ico ico-size-31x31-4bpp.ico
+== ico-size-32x32-4bpp.ico ico-size-32x32-4bpp.ico
+== ico-size-33x33-4bpp.ico ico-size-33x33-4bpp.ico
+== ico-size-256x256-4bpp.ico ico-size-256x256-4bpp.ico
+== ico-partial-transparent-4bpp.ico ico-partial-transparent-4bpp.ico
+== ico-transparent-4bpp.ico ico-transparent-4bpp.ico
+== ico-not-square-transparent-4bpp.ico ico-not-square-transparent-4bpp.ico
+
diff --git a/image/test/reftest/ico/ico-bmp-4bpp/reftest.list b/image/test/reftest/ico/ico-bmp-4bpp/reftest.list
new file mode 100644
index 0000000000..6caac4ac86
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-4bpp/reftest.list
@@ -0,0 +1,23 @@
+# ICO BMP 4BPP tests
+
+# Images of various sizes
+== ico-size-1x1-4bpp.ico ico-size-1x1-4bpp.png
+== ico-size-2x2-4bpp.ico ico-size-2x2-4bpp.png
+== ico-size-3x3-4bpp.ico ico-size-3x3-4bpp.png
+== ico-size-4x4-4bpp.ico ico-size-4x4-4bpp.png
+== ico-size-5x5-4bpp.ico ico-size-5x5-4bpp.png
+== ico-size-6x6-4bpp.ico ico-size-6x6-4bpp.png
+== ico-size-7x7-4bpp.ico ico-size-7x7-4bpp.png
+== ico-size-8x8-4bpp.ico ico-size-8x8-4bpp.png
+== ico-size-9x9-4bpp.ico ico-size-9x9-4bpp.png
+== ico-size-15x15-4bpp.ico ico-size-15x15-4bpp.png
+== ico-size-16x16-4bpp.ico ico-size-16x16-4bpp.png
+== ico-size-17x17-4bpp.ico ico-size-17x17-4bpp.png
+== ico-size-31x31-4bpp.ico ico-size-31x31-4bpp.png
+== ico-size-32x32-4bpp.ico ico-size-32x32-4bpp.png
+== ico-size-33x33-4bpp.ico ico-size-33x33-4bpp.png
+== ico-size-256x256-4bpp.ico ico-size-256x256-4bpp.png
+== ico-partial-transparent-4bpp.ico ico-partial-transparent-4bpp.png
+== ico-transparent-4bpp.ico ico-transparent-4bpp.png
+== ico-not-square-transparent-4bpp.ico ico-not-square-transparent-4bpp.png
+
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.ico
new file mode 100644
index 0000000000..d28b9a04ec
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.png
new file mode 100644
index 0000000000..36a4eb5122
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-not-square-transparent-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.ico
new file mode 100644
index 0000000000..9074caa401
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.png
new file mode 100644
index 0000000000..6f990f2572
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-partial-transparent-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.ico
new file mode 100644
index 0000000000..f3f3a13530
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.png
new file mode 100644
index 0000000000..e1287430d0
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-15x15-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.ico
new file mode 100644
index 0000000000..24c20e23ec
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.png
new file mode 100644
index 0000000000..2e66b2e5f9
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-16x16-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.ico
new file mode 100644
index 0000000000..7fa66b9b21
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.png
new file mode 100644
index 0000000000..4d11d7561c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-17x17-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.ico
new file mode 100644
index 0000000000..3cf3320eae
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.png
new file mode 100644
index 0000000000..c05f5fef89
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-1x1-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.ico
new file mode 100644
index 0000000000..524b6f7c8e
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.png
new file mode 100644
index 0000000000..f367468c95
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-256x256-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.ico
new file mode 100644
index 0000000000..95d8375a00
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.png
new file mode 100644
index 0000000000..e512d3f9b4
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-2x2-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.ico
new file mode 100644
index 0000000000..7806754474
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.png
new file mode 100644
index 0000000000..84bf61078c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-31x31-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.ico
new file mode 100644
index 0000000000..d21cc5b967
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.png
new file mode 100644
index 0000000000..349fd4df24
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-32x32-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.ico
new file mode 100644
index 0000000000..1b419b2632
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.png
new file mode 100644
index 0000000000..a4c100649a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-33x33-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.ico
new file mode 100644
index 0000000000..869f74fcdc
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.png
new file mode 100644
index 0000000000..cb42ec4f87
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-3x3-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.ico
new file mode 100644
index 0000000000..3967563727
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.png
new file mode 100644
index 0000000000..e6afafd89a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-4x4-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.ico
new file mode 100644
index 0000000000..92814e3661
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.png
new file mode 100644
index 0000000000..a844aff76d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-5x5-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.ico
new file mode 100644
index 0000000000..1af478a8a8
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.png
new file mode 100644
index 0000000000..415c2d9c6a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-6x6-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.ico
new file mode 100644
index 0000000000..1c70820ebd
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.png
new file mode 100644
index 0000000000..ab2f892747
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-7x7-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.ico
new file mode 100644
index 0000000000..782ae220df
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.png
new file mode 100644
index 0000000000..fe2ff40a1d
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-8x8-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.ico
new file mode 100644
index 0000000000..6825372b4a
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.png
new file mode 100644
index 0000000000..18ab4b25de
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-size-9x9-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.ico b/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.ico
new file mode 100644
index 0000000000..8e361306c5
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.png b/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.png
new file mode 100644
index 0000000000..062152e3b1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/ico-transparent-8bpp.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-8bpp/reftest-stylo.list
new file mode 100644
index 0000000000..c5269d3c81
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/reftest-stylo.list
@@ -0,0 +1,25 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP 8BPP tests
+
+# Images of various sizes
+== ico-size-1x1-8bpp.ico ico-size-1x1-8bpp.ico
+== ico-size-2x2-8bpp.ico ico-size-2x2-8bpp.ico
+== ico-size-3x3-8bpp.ico ico-size-3x3-8bpp.ico
+== ico-size-4x4-8bpp.ico ico-size-4x4-8bpp.ico
+== ico-size-5x5-8bpp.ico ico-size-5x5-8bpp.ico
+skip == ico-size-6x6-8bpp.ico ico-size-6x6-8bpp.ico
+== ico-size-7x7-8bpp.ico ico-size-7x7-8bpp.ico
+== ico-size-8x8-8bpp.ico ico-size-8x8-8bpp.ico
+== ico-size-9x9-8bpp.ico ico-size-9x9-8bpp.ico
+== ico-size-15x15-8bpp.ico ico-size-15x15-8bpp.ico
+== ico-size-16x16-8bpp.ico ico-size-16x16-8bpp.ico
+== ico-size-17x17-8bpp.ico ico-size-17x17-8bpp.ico
+== ico-size-31x31-8bpp.ico ico-size-31x31-8bpp.ico
+== ico-size-32x32-8bpp.ico ico-size-32x32-8bpp.ico
+== ico-size-33x33-8bpp.ico ico-size-33x33-8bpp.ico
+skip-if(B2G) == ico-size-256x256-8bpp.ico ico-size-256x256-8bpp.ico
+# bug 773482
+== ico-partial-transparent-8bpp.ico ico-partial-transparent-8bpp.ico
+== ico-transparent-8bpp.ico ico-transparent-8bpp.ico
+== ico-not-square-transparent-8bpp.ico ico-not-square-transparent-8bpp.ico
+
diff --git a/image/test/reftest/ico/ico-bmp-8bpp/reftest.list b/image/test/reftest/ico/ico-bmp-8bpp/reftest.list
new file mode 100644
index 0000000000..5a6b543238
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-8bpp/reftest.list
@@ -0,0 +1,23 @@
+# ICO BMP 8BPP tests
+
+# Images of various sizes
+== ico-size-1x1-8bpp.ico ico-size-1x1-8bpp.png
+== ico-size-2x2-8bpp.ico ico-size-2x2-8bpp.png
+== ico-size-3x3-8bpp.ico ico-size-3x3-8bpp.png
+== ico-size-4x4-8bpp.ico ico-size-4x4-8bpp.png
+== ico-size-5x5-8bpp.ico ico-size-5x5-8bpp.png
+== ico-size-6x6-8bpp.ico ico-size-6x6-8bpp.png
+== ico-size-7x7-8bpp.ico ico-size-7x7-8bpp.png
+== ico-size-8x8-8bpp.ico ico-size-8x8-8bpp.png
+== ico-size-9x9-8bpp.ico ico-size-9x9-8bpp.png
+== ico-size-15x15-8bpp.ico ico-size-15x15-8bpp.png
+== ico-size-16x16-8bpp.ico ico-size-16x16-8bpp.png
+== ico-size-17x17-8bpp.ico ico-size-17x17-8bpp.png
+== ico-size-31x31-8bpp.ico ico-size-31x31-8bpp.png
+== ico-size-32x32-8bpp.ico ico-size-32x32-8bpp.png
+== ico-size-33x33-8bpp.ico ico-size-33x33-8bpp.png
+== ico-size-256x256-8bpp.ico ico-size-256x256-8bpp.png
+== ico-partial-transparent-8bpp.ico ico-partial-transparent-8bpp.png
+== ico-transparent-8bpp.ico ico-transparent-8bpp.png
+== ico-not-square-transparent-8bpp.ico ico-not-square-transparent-8bpp.png
+
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/16x16.png b/image/test/reftest/ico/ico-bmp-corrupted/16x16.png
new file mode 100644
index 0000000000..c04869e728
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/16x16.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/invalid-bpp.ico b/image/test/reftest/ico/ico-bmp-corrupted/invalid-bpp.ico
new file mode 100644
index 0000000000..1189e4c040
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/invalid-bpp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE4.ico b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE4.ico
new file mode 100644
index 0000000000..8fd0a5d658
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE4.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE8.ico b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE8.ico
new file mode 100644
index 0000000000..1f185ca620
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression-RLE8.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression.ico b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression.ico
new file mode 100644
index 0000000000..a49a783c5f
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/invalid-compression.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/reftest-stylo.list b/image/test/reftest/ico/ico-bmp-corrupted/reftest-stylo.list
new file mode 100644
index 0000000000..1dd1a43ae1
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/reftest-stylo.list
@@ -0,0 +1,11 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICOs containing corrupted BMP tests
+
+# Invalid value for bits per pixel (BPP) - detected when decoding the header.
+skip == wrapper.html?invalid-bpp.ico wrapper.html?invalid-bpp.ico
+# Invalid BPP values for RLE4 - detected when decoding the image data.
+skip == wrapper.html?invalid-compression-RLE4.ico wrapper.html?invalid-compression-RLE4.ico
+# Invalid BPP values for RLE8 - detected when decoding the image data.
+skip == wrapper.html?invalid-compression-RLE8.ico wrapper.html?invalid-compression-RLE8.ico
+# Invalid compression value - detected when decoding the image data.
+skip == wrapper.html?invalid-compression.ico wrapper.html?invalid-compression.ico
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/reftest.list b/image/test/reftest/ico/ico-bmp-corrupted/reftest.list
new file mode 100644
index 0000000000..2467b1323e
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/reftest.list
@@ -0,0 +1,10 @@
+# ICOs containing corrupted BMP tests
+
+# Invalid value for bits per pixel (BPP) - detected when decoding the header.
+== wrapper.html?invalid-bpp.ico about:blank
+# Invalid BPP values for RLE4 - detected when decoding the image data.
+== wrapper.html?invalid-compression-RLE4.ico about:blank
+# Invalid BPP values for RLE8 - detected when decoding the image data.
+== wrapper.html?invalid-compression-RLE8.ico about:blank
+# Invalid compression value - detected when decoding the image data.
+== wrapper.html?invalid-compression.ico about:blank
diff --git a/image/test/reftest/ico/ico-bmp-corrupted/wrapper.html b/image/test/reftest/ico/ico-bmp-corrupted/wrapper.html
new file mode 100644
index 0000000000..5935f3763c
--- /dev/null
+++ b/image/test/reftest/ico/ico-bmp-corrupted/wrapper.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+ #image1 { background-color: rgb(10, 100, 250); }
+</style>
+<script>
+ var gImg;
+
+ function runAfterAsyncEvents(aCallback) {
+ function handlePostMessage(aEvent) {
+ if (aEvent.data == 'next') {
+ window.removeEventListener('message', handlePostMessage, false);
+ aCallback();
+ }
+ }
+
+ window.addEventListener('message', handlePostMessage, false);
+
+ // We'll receive the 'message' event after everything else that's currently in
+ // the event queue (which is a stronger guarantee than setTimeout, because
+ // setTimeout events may be coalesced). This lets us ensure that we run
+ // aCallback *after* any asynchronous events are delivered.
+ window.postMessage('next', '*');
+ }
+
+ // The image is loaded async after the page loads
+ // wait for it to finish loading
+ function onImageLoad() {
+ // Use a canvas to force the image to get sync decoded.
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+
+ try {
+ ctx.drawImage(gImg, 0, 0);
+ } catch (e) {
+ }
+
+ // Continue after pumping the event loop.
+ runAfterAsyncEvents(step2);
+ }
+
+ function step2() {
+ // Only now, once the image has already been sync decoded, do we load it in
+ // the <img> element we're going to snapshot. That's because for some of the
+ // tests that use wrapper.html, an error is only detected when decoding the
+ // actual image data - i.e., the error isn't detected in the header. The
+ // precise time when we detect the error, unfortunately, affects how we draw
+ // the image. This will be fixed in bug 1182531, and then we can simplify this
+ // code.
+
+ var finalImg = document.getElementById('image1');
+ finalImg.alt = "";
+ finalImg.onload = finalImg.onerror = step3;
+ finalImg.src = gImg.src;
+ }
+
+ function step3() {
+ // We're ready to take the snapshot, but pump the event loop first just to
+ // be sure that everything has settled down.
+ runAfterAsyncEvents(takeSnapshot);
+ }
+
+ function takeSnapshot() {
+ document.documentElement.removeAttribute("class");
+ }
+</script>
+</head>
+<body>
+<img id="image1">
+<script>
+ // Use as "wrapper.html?image.png
+ gImg = document.createElement('img');
+ gImg.onload = gImg.onerror = onImageLoad;
+ gImg.src = document.location.search.substr(1);
+</script>
+</body>
+</html>
+
diff --git a/image/test/reftest/ico/ico-mixed/mixed-bmp-png.ico b/image/test/reftest/ico/ico-mixed/mixed-bmp-png.ico
new file mode 100644
index 0000000000..32e2c4995c
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/mixed-bmp-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-mixed/mixed-bmp-png.png b/image/test/reftest/ico/ico-mixed/mixed-bmp-png.png
new file mode 100644
index 0000000000..b6aee74092
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/mixed-bmp-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-mixed/mixed-bmp-png32.png b/image/test/reftest/ico/ico-mixed/mixed-bmp-png32.png
new file mode 100644
index 0000000000..a058991272
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/mixed-bmp-png32.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-mixed/mixed-bmp-png48.png b/image/test/reftest/ico/ico-mixed/mixed-bmp-png48.png
new file mode 100644
index 0000000000..61bea5c804
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/mixed-bmp-png48.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-mixed/reftest-stylo.list b/image/test/reftest/ico/ico-mixed/reftest-stylo.list
new file mode 100644
index 0000000000..a095c24813
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/reftest-stylo.list
@@ -0,0 +1,4 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO BMP and PNG mixed tests
+
+skip == mixed-bmp-png.ico mixed-bmp-png.ico
diff --git a/image/test/reftest/ico/ico-mixed/reftest.list b/image/test/reftest/ico/ico-mixed/reftest.list
new file mode 100644
index 0000000000..36134e40ab
--- /dev/null
+++ b/image/test/reftest/ico/ico-mixed/reftest.list
@@ -0,0 +1,3 @@
+# ICO BMP and PNG mixed tests
+
+== mixed-bmp-png.ico mixed-bmp-png48.png
diff --git a/image/test/reftest/ico/ico-png/corrupted_x00n0g01.ico b/image/test/reftest/ico/ico-png/corrupted_x00n0g01.ico
new file mode 100644
index 0000000000..18b97b0b7e
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/corrupted_x00n0g01.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/corrupted_xxcrn0g04.ico b/image/test/reftest/ico/ico-png/corrupted_xxcrn0g04.ico
new file mode 100644
index 0000000000..3fa5285c5b
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/corrupted_xxcrn0g04.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-15x15-png.ico b/image/test/reftest/ico/ico-png/ico-size-15x15-png.ico
new file mode 100644
index 0000000000..e67644a890
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-15x15-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-15x15-png.png b/image/test/reftest/ico/ico-png/ico-size-15x15-png.png
new file mode 100644
index 0000000000..e1287430d0
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-15x15-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-16x16-png.ico b/image/test/reftest/ico/ico-png/ico-size-16x16-png.ico
new file mode 100644
index 0000000000..442ab4dc80
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-16x16-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-16x16-png.png b/image/test/reftest/ico/ico-png/ico-size-16x16-png.png
new file mode 100644
index 0000000000..c04869e728
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-16x16-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-17x17-png.ico b/image/test/reftest/ico/ico-png/ico-size-17x17-png.ico
new file mode 100644
index 0000000000..f135385d7e
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-17x17-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-17x17-png.png b/image/test/reftest/ico/ico-png/ico-size-17x17-png.png
new file mode 100644
index 0000000000..00fb8e4f37
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-17x17-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-1x1-png.ico b/image/test/reftest/ico/ico-png/ico-size-1x1-png.ico
new file mode 100644
index 0000000000..8eb80c7db2
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-1x1-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-1x1-png.png b/image/test/reftest/ico/ico-png/ico-size-1x1-png.png
new file mode 100644
index 0000000000..c05f5fef89
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-1x1-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-256x256-png.ico b/image/test/reftest/ico/ico-png/ico-size-256x256-png.ico
new file mode 100644
index 0000000000..ecb88edf3c
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-256x256-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-256x256-png.png b/image/test/reftest/ico/ico-png/ico-size-256x256-png.png
new file mode 100644
index 0000000000..2d2f52d6c1
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-256x256-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-2x2-png.ico b/image/test/reftest/ico/ico-png/ico-size-2x2-png.ico
new file mode 100644
index 0000000000..5799953c98
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-2x2-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-2x2-png.png b/image/test/reftest/ico/ico-png/ico-size-2x2-png.png
new file mode 100644
index 0000000000..e512d3f9b4
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-2x2-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-31x31-png.ico b/image/test/reftest/ico/ico-png/ico-size-31x31-png.ico
new file mode 100644
index 0000000000..2e9fbd8f9c
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-31x31-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-31x31-png.png b/image/test/reftest/ico/ico-png/ico-size-31x31-png.png
new file mode 100644
index 0000000000..e4a8642514
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-31x31-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-32x32-png.ico b/image/test/reftest/ico/ico-png/ico-size-32x32-png.ico
new file mode 100644
index 0000000000..af97a86630
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-32x32-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-32x32-png.png b/image/test/reftest/ico/ico-png/ico-size-32x32-png.png
new file mode 100644
index 0000000000..3a6fbe8ee9
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-32x32-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-33x33-png.ico b/image/test/reftest/ico/ico-png/ico-size-33x33-png.ico
new file mode 100644
index 0000000000..2509c8c1f2
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-33x33-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-33x33-png.png b/image/test/reftest/ico/ico-png/ico-size-33x33-png.png
new file mode 100644
index 0000000000..72ef7eb636
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-33x33-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-3x3-png.ico b/image/test/reftest/ico/ico-png/ico-size-3x3-png.ico
new file mode 100644
index 0000000000..d2cd649c84
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-3x3-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-3x3-png.png b/image/test/reftest/ico/ico-png/ico-size-3x3-png.png
new file mode 100644
index 0000000000..cb42ec4f87
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-3x3-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-4x4-png.ico b/image/test/reftest/ico/ico-png/ico-size-4x4-png.ico
new file mode 100644
index 0000000000..60180aad5e
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-4x4-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-4x4-png.png b/image/test/reftest/ico/ico-png/ico-size-4x4-png.png
new file mode 100644
index 0000000000..e6afafd89a
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-4x4-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-5x5-png.ico b/image/test/reftest/ico/ico-png/ico-size-5x5-png.ico
new file mode 100644
index 0000000000..089c0c8858
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-5x5-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-5x5-png.png b/image/test/reftest/ico/ico-png/ico-size-5x5-png.png
new file mode 100644
index 0000000000..a844aff76d
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-5x5-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-6x6-png.ico b/image/test/reftest/ico/ico-png/ico-size-6x6-png.ico
new file mode 100644
index 0000000000..2ee75d25ab
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-6x6-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-6x6-png.png b/image/test/reftest/ico/ico-png/ico-size-6x6-png.png
new file mode 100644
index 0000000000..415c2d9c6a
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-6x6-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-7x7-png.ico b/image/test/reftest/ico/ico-png/ico-size-7x7-png.ico
new file mode 100644
index 0000000000..ade9a3ecde
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-7x7-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-7x7-png.png b/image/test/reftest/ico/ico-png/ico-size-7x7-png.png
new file mode 100644
index 0000000000..ab2f892747
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-7x7-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-8x8-png.ico b/image/test/reftest/ico/ico-png/ico-size-8x8-png.ico
new file mode 100644
index 0000000000..a0a150bad6
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-8x8-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-8x8-png.png b/image/test/reftest/ico/ico-png/ico-size-8x8-png.png
new file mode 100644
index 0000000000..fe2ff40a1d
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-8x8-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-9x9-png.ico b/image/test/reftest/ico/ico-png/ico-size-9x9-png.ico
new file mode 100644
index 0000000000..a53357b449
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-9x9-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/ico-size-9x9-png.png b/image/test/reftest/ico/ico-png/ico-size-9x9-png.png
new file mode 100644
index 0000000000..18ab4b25de
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/ico-size-9x9-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/reftest-stylo.list b/image/test/reftest/ico/ico-png/reftest-stylo.list
new file mode 100644
index 0000000000..1fd990c89f
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/reftest-stylo.list
@@ -0,0 +1,30 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO PNG tests
+
+# Images of various sizes
+skip == ico-size-1x1-png.ico ico-size-1x1-png.ico
+== ico-size-2x2-png.ico ico-size-2x2-png.ico
+skip == ico-size-3x3-png.ico ico-size-3x3-png.ico
+skip == ico-size-4x4-png.ico ico-size-4x4-png.ico
+skip == ico-size-5x5-png.ico ico-size-5x5-png.ico
+skip == ico-size-6x6-png.ico ico-size-6x6-png.ico
+== ico-size-7x7-png.ico ico-size-7x7-png.ico
+fails skip == ico-size-8x8-png.ico ico-size-8x8-png.ico
+skip == ico-size-9x9-png.ico ico-size-9x9-png.ico
+skip == ico-size-15x15-png.ico ico-size-15x15-png.ico
+skip == ico-size-16x16-png.ico ico-size-16x16-png.ico
+skip == ico-size-17x17-png.ico ico-size-17x17-png.ico
+skip == ico-size-31x31-png.ico ico-size-31x31-png.ico
+skip == ico-size-32x32-png.ico ico-size-32x32-png.ico
+skip == ico-size-33x33-png.ico ico-size-33x33-png.ico
+# skip == ico-size-256x256-png.ico ico-size-256x256-png.ico
+
+# Corrupted files so no image should be loaded
+# x00n0g01 - empty 0x0 grayscale file
+skip == wrapper.html?x00n0g01.ico wrapper.html?x00n0g01.ico
+# xcrn0g04 - added cr bytes
+skip == wrapper.html?xcrn0g04.ico wrapper.html?xcrn0g04.ico
+
+# Test ICO PNG transparency
+== transparent-png.ico transparent-png.ico
+
diff --git a/image/test/reftest/ico/ico-png/reftest.list b/image/test/reftest/ico/ico-png/reftest.list
new file mode 100644
index 0000000000..002d0e4f32
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/reftest.list
@@ -0,0 +1,29 @@
+# ICO PNG tests
+
+# Images of various sizes
+== ico-size-1x1-png.ico ico-size-1x1-png.png
+== ico-size-2x2-png.ico ico-size-2x2-png.png
+== ico-size-3x3-png.ico ico-size-3x3-png.png
+== ico-size-4x4-png.ico ico-size-4x4-png.png
+== ico-size-5x5-png.ico ico-size-5x5-png.png
+== ico-size-6x6-png.ico ico-size-6x6-png.png
+== ico-size-7x7-png.ico ico-size-7x7-png.png
+== ico-size-8x8-png.ico ico-size-8x8-png.png
+== ico-size-9x9-png.ico ico-size-9x9-png.png
+== ico-size-15x15-png.ico ico-size-15x15-png.png
+== ico-size-16x16-png.ico ico-size-16x16-png.png
+== ico-size-17x17-png.ico ico-size-17x17-png.png
+== ico-size-31x31-png.ico ico-size-31x31-png.png
+== ico-size-32x32-png.ico ico-size-32x32-png.png
+== ico-size-33x33-png.ico ico-size-33x33-png.png
+== ico-size-256x256-png.ico ico-size-256x256-png.png
+
+# Corrupted files so no image should be loaded
+# x00n0g01 - empty 0x0 grayscale file
+== wrapper.html?x00n0g01.ico about:blank
+# xcrn0g04 - added cr bytes
+== wrapper.html?xcrn0g04.ico about:blank
+
+# Test ICO PNG transparency
+== transparent-png.ico transparent-png.png
+
diff --git a/image/test/reftest/ico/ico-png/tmp.ico b/image/test/reftest/ico/ico-png/tmp.ico
new file mode 100644
index 0000000000..5723a2e776
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/tmp.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/transparent-png.ico b/image/test/reftest/ico/ico-png/transparent-png.ico
new file mode 100644
index 0000000000..cc8a4a31db
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/transparent-png.ico
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/transparent-png.png b/image/test/reftest/ico/ico-png/transparent-png.png
new file mode 100644
index 0000000000..29e3a24359
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/transparent-png.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/wrapper.html b/image/test/reftest/ico/ico-png/wrapper.html
new file mode 100644
index 0000000000..0015856dfe
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/wrapper.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+ #image1 { background-color: rgb(10, 100, 250); }
+</style>
+<script>
+ // The image is loaded async after the page loads
+ // wait for it to finish loading
+ function onImageLoad() {
+ document.documentElement.removeAttribute("class");
+ };
+</script>
+</head>
+<body>
+<img id="image1">
+<script>
+ // Use as "wrapper.html?image.png
+ var imgURL = document.location.search.substr(1);
+ document.images[0].onload = onImageLoad;
+ document.images[0].onerror = onImageLoad;
+ document.images[0].alt = "";
+ document.images[0].src = imgURL;
+</script>
+</body>
+</html>
+
diff --git a/image/test/reftest/ico/ico-png/x00n0g01.png b/image/test/reftest/ico/ico-png/x00n0g01.png
new file mode 100644
index 0000000000..db3a5fda7e
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/x00n0g01.png
Binary files differ
diff --git a/image/test/reftest/ico/ico-png/xcrn0g04.png b/image/test/reftest/ico/ico-png/xcrn0g04.png
new file mode 100644
index 0000000000..5bce9f3ada
--- /dev/null
+++ b/image/test/reftest/ico/ico-png/xcrn0g04.png
Binary files differ
diff --git a/image/test/reftest/ico/reftest-stylo.list b/image/test/reftest/ico/reftest-stylo.list
new file mode 100644
index 0000000000..52cb9bc6c4
--- /dev/null
+++ b/image/test/reftest/ico/reftest-stylo.list
@@ -0,0 +1,13 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+# ICO tests
+
+# bmp tests cause lots of intermittents
+# include ico-bmp-1bpp/reftest-stylo.list
+# include ico-bmp-4bpp/reftest-stylo.list
+# include ico-bmp-8bpp/reftest-stylo.list
+# include ico-bmp-24bpp/reftest-stylo.list
+# include ico-bmp-32bpp/reftest-stylo.list
+# include ico-bmp-corrupted/reftest-stylo.list
+include ico-png/reftest-stylo.list
+include ico-mixed/reftest-stylo.list
+include cur/reftest-stylo.list
diff --git a/image/test/reftest/ico/reftest.list b/image/test/reftest/ico/reftest.list
new file mode 100644
index 0000000000..22ed9b4fe7
--- /dev/null
+++ b/image/test/reftest/ico/reftest.list
@@ -0,0 +1,11 @@
+# ICO tests
+
+include ico-bmp-1bpp/reftest.list
+include ico-bmp-4bpp/reftest.list
+include ico-bmp-8bpp/reftest.list
+include ico-bmp-24bpp/reftest.list
+include ico-bmp-32bpp/reftest.list
+include ico-bmp-corrupted/reftest.list
+include ico-png/reftest.list
+include ico-mixed/reftest.list
+include cur/reftest.list