43 lines
1.4 KiB
PHP
43 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace ZipStream\Test\Zip64;
|
||
|
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
use ZipStream\Zip64\ExtendedInformationExtraField;
|
||
|
|
||
|
class ExtendedInformationExtraFieldTest extends TestCase
|
||
|
{
|
||
|
public function testSerializesCorrectly(): void
|
||
|
{
|
||
|
$extraField = ExtendedInformationExtraField::generate(
|
||
|
originalSize: (0x77777777 << 32) + 0x66666666,
|
||
|
compressedSize: (0x99999999 << 32) + 0x88888888,
|
||
|
relativeHeaderOffset: (0x22222222 << 32) + 0x11111111,
|
||
|
diskStartNumber: 0x33333333,
|
||
|
);
|
||
|
|
||
|
$this->assertSame(
|
||
|
bin2hex($extraField),
|
||
|
'0100' . // 2 bytes; Tag for this "extra" block type
|
||
|
'1c00' . // 2 bytes; Size of this "extra" block
|
||
|
'6666666677777777' . // 8 bytes; Original uncompressed file size
|
||
|
'8888888899999999' . // 8 bytes; Size of compressed data
|
||
|
'1111111122222222' . // 8 bytes; Offset of local header record
|
||
|
'33333333' // 4 bytes; Number of the disk on which this file starts
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function testSerializesEmptyCorrectly(): void
|
||
|
{
|
||
|
$extraField = ExtendedInformationExtraField::generate();
|
||
|
|
||
|
$this->assertSame(
|
||
|
bin2hex($extraField),
|
||
|
'0100' . // 2 bytes; Tag for this "extra" block type
|
||
|
'0000' // 2 bytes; Size of this "extra" block
|
||
|
);
|
||
|
}
|
||
|
}
|