private static function _initializeMaps() { if (!isset(self::$_charMap)) { self::$_charMap = array(); for ($byte = 0; $byte < 256; ++$byte) { self::$_charMap[$byte] = chr($byte); } self::$_byteMap = array_flip(self::$_charMap); } }
public function testAlgorithmWithFixedWidthCharsets() { $reader = $this->_getReader(); $factory = $this->_getFactory($reader); $seq = $this->_mockery()->sequence('read-chars'); $this->_checking(Expectations::create()->ignoring($reader)->getInitialByteSize()->returns(2)->one($reader)->validateByteSequence(array(0xd1, 0x8d), 2)->inSequence($seq)->one($reader)->validateByteSequence(array(0xd0, 0xbb), 2)->inSequence($seq)->one($reader)->validateByteSequence(array(0xd0, 0xb0), 2)->inSequence($seq)); $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); $stream->importString(pack('C*', 0xd1, 0x8d, 0xd0, 0xbb, 0xd0, 0xb0)); $this->assertIdenticalBinary(pack('C*', 0xd1, 0x8d), $stream->read(1)); $this->assertIdenticalBinary(pack('C*', 0xd0, 0xbb), $stream->read(1)); $this->assertIdenticalBinary(pack('C*', 0xd0, 0xb0), $stream->read(1)); $this->assertIdentical(false, $stream->read(1)); }
public function testAlgorithmWithFixedWidthCharsets() { $reader = $this->_getReader(); $factory = $this->_getFactory($reader); $reader->shouldReceive('getInitialByteSize')->zeroOrMoreTimes()->andReturn(2); $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd1, 0x8d), 2); $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd0, 0xbb), 2); $reader->shouldReceive('validateByteSequence')->once()->with(array(0xd0, 0xb0), 2); $stream = new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'); $stream->importString(pack('C*', 0xd1, 0x8d, 0xd0, 0xbb, 0xd0, 0xb0)); $this->assertIdenticalBinary(pack('C*', 0xd1, 0x8d), $stream->read(1)); $this->assertIdenticalBinary(pack('C*', 0xd0, 0xbb), $stream->read(1)); $this->assertIdenticalBinary(pack('C*', 0xd0, 0xb0), $stream->read(1)); $this->assertSame(false, $stream->read(1)); }