HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/spion/vendor/maennchen/zipstream-php/test/Zip64/ExtendedInformationExtraFieldTest.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
        );
    }
}