/** * @dataProvider flagsProvider */ public function testSetFlags($flags, $tagUpdate, $crcData, $tagRestrictions) { $this->extendedHeader->setFlags($flags); $this->assertSame($flags, $this->extendedHeader->getFlags()); $this->assertSame($tagUpdate, $this->extendedHeader->hasTagUpdate()); $this->assertSame($crcData, $this->extendedHeader->hasCrcData()); $this->assertSame($tagRestrictions, $this->extendedHeader->hasTagRestrictions()); }
/** * @return ExtendedHeader */ private function readExtendedHeader() { $extendedHeader = new ExtendedHeader(); $extendedHeader->setSize($this->getBinaryReader()->readUInt8WithDiscardedMsb(4)); $extendedHeader->setFlagBytesNumber($this->getBinaryReader()->readUInt8()); $extendedHeader->setFlags($this->getBinaryReader()->readBytes($extendedHeader->getFlagBytesNumber())); if ($extendedHeader->hasTagUpdate()) { $tagUpdateFlagDataLength = $this->getBinaryReader()->readUInt8(); if ($tagUpdateFlagDataLength) { //left if this flag will get ever data attached to it } } if ($extendedHeader->hasCrcData()) { $crcDataFlagDataLength = $this->getBinaryReader()->readUInt8(); if ($crcDataFlagDataLength) { $extendedHeader->setCrcData($this->getBinaryReader()->readUInt8WithDiscardedMsb($crcDataFlagDataLength)); } } if ($extendedHeader->hasTagRestrictions()) { $tagRestrictionsFlagDataLength = $this->getBinaryReader()->readUInt8(); if ($tagRestrictionsFlagDataLength) { $extendedHeader->getTagRestrictions()->setFlags($this->getBinaryReader()->readUInt8()); } } return $extendedHeader; }