Move all banners to GitHub. Adds library phpspreadsheet to JCB. Adds import item example to demo component. Updates the Superpower class with the GetRemote class in the plugin. Ensures the super power autoloader triggers the correct repositories.
61 lines
2.2 KiB
PHP
61 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace ZipStream\Test;
|
|
|
|
use DateTimeImmutable;
|
|
use PHPUnit\Framework\TestCase;
|
|
use ZipStream\CentralDirectoryFileHeader;
|
|
use ZipStream\CompressionMethod;
|
|
|
|
class CentralDirectoryFileHeaderTest extends TestCase
|
|
{
|
|
public function testSerializesCorrectly(): void
|
|
{
|
|
$dateTime = new DateTimeImmutable('2022-01-01 01:01:01Z');
|
|
|
|
$header = CentralDirectoryFileHeader::generate(
|
|
versionMadeBy: 0x603,
|
|
versionNeededToExtract: 0x002D,
|
|
generalPurposeBitFlag: 0x2222,
|
|
compressionMethod: CompressionMethod::DEFLATE,
|
|
lastModificationDateTime: $dateTime,
|
|
crc32: 0x11111111,
|
|
compressedSize: 0x77777777,
|
|
uncompressedSize: 0x99999999,
|
|
fileName: 'test.png',
|
|
extraField: 'some content',
|
|
fileComment: 'some comment',
|
|
diskNumberStart: 0,
|
|
internalFileAttributes: 0,
|
|
externalFileAttributes: 32,
|
|
relativeOffsetOfLocalHeader: 0x1234,
|
|
);
|
|
|
|
$this->assertSame(
|
|
bin2hex($header),
|
|
'504b0102' . // 4 bytes; central file header signature
|
|
'0306' . // 2 bytes; version made by
|
|
'2d00' . // 2 bytes; version needed to extract
|
|
'2222' . // 2 bytes; general purpose bit flag
|
|
'0800' . // 2 bytes; compression method
|
|
'2008' . // 2 bytes; last mod file time
|
|
'2154' . // 2 bytes; last mod file date
|
|
'11111111' . // 4 bytes; crc-32
|
|
'77777777' . // 4 bytes; compressed size
|
|
'99999999' . // 4 bytes; uncompressed size
|
|
'0800' . // 2 bytes; file name length (n)
|
|
'0c00' . // 2 bytes; extra field length (m)
|
|
'0c00' . // 2 bytes; file comment length (o)
|
|
'0000' . // 2 bytes; disk number start
|
|
'0000' . // 2 bytes; internal file attributes
|
|
'20000000' . // 4 bytes; external file attributes
|
|
'34120000' . // 4 bytes; relative offset of local header
|
|
'746573742e706e67' . // n bytes; file name
|
|
'736f6d6520636f6e74656e74' . // m bytes; extra field
|
|
'736f6d6520636f6d6d656e74' // o bytes; file comment
|
|
);
|
|
}
|
|
}
|