diff options
Diffstat (limited to 'vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php')
-rw-r--r-- | vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php b/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php new file mode 100644 index 000000000..196dd0fe3 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php @@ -0,0 +1,47 @@ +<?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 + ); + } +} |