setReadOnly(true); $buffer->setOrder(Buffer::LITTLE_ENDIAN); // ico header $this->assertEquals($buffer->getShort(), 0); // reserved $type = $buffer->getShort(); $this->assertTrue($type === 1 || $type === 2); // type icon $count = $buffer->getShort(); $this->assertTrue($count > 0); // count images // image directory for ($i = 0; $i < $count; $i++) { $width = $buffer->getByte(); $height = $buffer->getByte(); $colors = $buffer->getByte(); $this->assertEquals($buffer->getByte(), 0); // reserved $planes = $buffer->getShort(); $bpp = $buffer->getShort(); $size = $buffer->getInt(); $offset = $buffer->getInt(); $buffer->setPosition($offset + $size); $this->assertFalse($buffer->hasRemaining()); $this->assertEquals($width, 16); $this->assertEquals($height, 16); $this->assertEquals($colors, 0); $this->assertEquals($planes, 1); $this->assertEquals($bpp, 32); } $buffer->close(); } }