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());
 | 
						|
    }
 | 
						|
}
 |