40 lines
865 B
PHP
40 lines
865 B
PHP
|
<?php
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace BugHonorFileTimeTest;
|
||
|
|
||
|
use DateTime;
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
use ZipStream\Option\{
|
||
|
Archive,
|
||
|
File
|
||
|
};
|
||
|
use ZipStream\ZipStream;
|
||
|
|
||
|
use function fopen;
|
||
|
|
||
|
/**
|
||
|
* Asserts that specified last-modified timestamps are not overwritten when a
|
||
|
* file is added
|
||
|
*/
|
||
|
class BugHonorFileTimeTest extends TestCase
|
||
|
{
|
||
|
public function testHonorsFileTime(): void
|
||
|
{
|
||
|
$archiveOpt = new Archive();
|
||
|
$fileOpt = new File();
|
||
|
$expectedTime = new DateTime('2019-04-21T19:25:00-0800');
|
||
|
|
||
|
$archiveOpt->setOutputStream(fopen('php://memory', 'wb'));
|
||
|
$fileOpt->setTime(clone $expectedTime);
|
||
|
|
||
|
$zip = new ZipStream(null, $archiveOpt);
|
||
|
|
||
|
$zip->addFile('sample.txt', 'Sample', $fileOpt);
|
||
|
|
||
|
$zip->finish();
|
||
|
|
||
|
$this->assertEquals($expectedTime, $fileOpt->getTime());
|
||
|
}
|
||
|
}
|