File "LocalFileHeaderTest.php"
Full Path: /var/www/html/back/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php
File size: 1.7 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare(strict_types=1);
namespace ZipStream\Test;
use DateTimeImmutable;
use PHPUnit\Framework\TestCase;
use ZipStream\CompressionMethod;
use ZipStream\LocalFileHeader;
class LocalFileHeaderTest extends TestCase
{
public function testSerializesCorrectly(): void
{
$dateTime = new DateTimeImmutable('2022-01-01 01:01:01Z');
$header = LocalFileHeader::generate(
versionNeededToExtract: 0x002D,
generalPurposeBitFlag: 0x2222,
compressionMethod: CompressionMethod::DEFLATE,
lastModificationDateTime: $dateTime,
crc32UncompressedData: 0x11111111,
compressedSize: 0x77777777,
uncompressedSize: 0x99999999,
fileName: 'test.png',
extraField: 'some content'
);
$this->assertSame(
bin2hex((string) $header),
'504b0304' // 4 bytes; Local file header signature
. '2d00' // 2 bytes; Version needed to extract (minimum)
. '2222' // 2 bytes; General purpose bit flag
. '0800' // 2 bytes; Compression method; e.g. none = 0, DEFLATE = 8
. '2008' // 2 bytes; File last modification time
. '2154' // 2 bytes; File last modification date
. '11111111' // 4 bytes; CRC-32 of uncompressed data
. '77777777' // 4 bytes; Compressed size (or 0xffffffff for ZIP64)
. '99999999' // 4 bytes; Uncompressed size (or 0xffffffff for ZIP64)
. '0800' // 2 bytes; File name length (n)
. '0c00' // 2 bytes; Extra field length (m)
. '746573742e706e67' // n bytes; File name
. '736f6d6520636f6e74656e74' // m bytes; Extra field
);
}
}