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