85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace PhpOffice\PhpSpreadsheetTests\Writer\Xls; | ||
|  | 
 | ||
|  | use PhpOffice\PhpSpreadsheet\Spreadsheet; | ||
|  | use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; | ||
|  | use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing; | ||
|  | use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional; | ||
|  | 
 | ||
|  | class XlsGifBmpTest extends AbstractFunctional | ||
|  | { | ||
|  |     private $filename = ''; | ||
|  | 
 | ||
|  |     protected function tearDown(): void | ||
|  |     { | ||
|  |         if ($this->filename) { | ||
|  |             unlink($this->filename); | ||
|  |         } | ||
|  |         $this->filename = ''; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testBmp(): void | ||
|  |     { | ||
|  |         $pgmstart = time(); | ||
|  |         $spreadsheet = new Spreadsheet(); | ||
|  |         $filstart = $spreadsheet->getProperties()->getModified(); | ||
|  |         self::assertLessThanOrEqual($filstart, $pgmstart); | ||
|  | 
 | ||
|  |         // Add a drawing to the worksheet
 | ||
|  |         $drawing = new Drawing(); | ||
|  |         $drawing->setName('Letters B, M, and P'); | ||
|  |         $drawing->setDescription('Handwritten B, M, and P'); | ||
|  |         $drawing->setPath(__DIR__ . '/../../../../samples/images/bmp.bmp'); | ||
|  |         $drawing->setHeight(36); | ||
|  |         $drawing->setWorksheet($spreadsheet->getActiveSheet()); | ||
|  |         $drawing->setCoordinates('A1'); | ||
|  | 
 | ||
|  |         $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xls'); | ||
|  |         $creationDatestamp = $reloadedSpreadsheet->getProperties()->getCreated(); | ||
|  |         $filstart = $creationDatestamp; | ||
|  |         $pSheet = $reloadedSpreadsheet->getActiveSheet(); | ||
|  |         $drawings = $pSheet->getDrawingCollection(); | ||
|  |         self::assertCount(1, $drawings); | ||
|  |         foreach ($pSheet->getDrawingCollection() as $drawing) { | ||
|  |             // See if Scrutinizer approves this
 | ||
|  |             $mimeType = ($drawing instanceof MemoryDrawing) ? $drawing->getMimeType() : 'notmemorydrawing'; | ||
|  |             self::assertEquals('image/png', $mimeType); | ||
|  |         } | ||
|  |         $pgmend = time(); | ||
|  | 
 | ||
|  |         self::assertLessThanOrEqual($pgmend, $pgmstart); | ||
|  |         self::assertLessThanOrEqual($pgmend, $filstart); | ||
|  |         self::assertLessThanOrEqual($filstart, $pgmstart); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testGif(): void | ||
|  |     { | ||
|  |         $spreadsheet = new Spreadsheet(); | ||
|  | 
 | ||
|  |         // Add a drawing to the worksheet
 | ||
|  |         $drawing = new Drawing(); | ||
|  |         $drawing->setName('Letters G, I, and G'); | ||
|  |         $drawing->setDescription('Handwritten G, I, and F'); | ||
|  |         $drawing->setPath(__DIR__ . '/../../../../samples/images/gif.gif'); | ||
|  |         $drawing->setHeight(36); | ||
|  |         $drawing->setWorksheet($spreadsheet->getActiveSheet()); | ||
|  |         $drawing->setCoordinates('A1'); | ||
|  | 
 | ||
|  |         $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xls'); | ||
|  |         $pSheet = $reloadedSpreadsheet->getActiveSheet(); | ||
|  |         $drawings = $pSheet->getDrawingCollection(); | ||
|  |         self::assertCount(1, $drawings); | ||
|  |         foreach ($pSheet->getDrawingCollection() as $drawing) { | ||
|  |             $mimeType = ($drawing instanceof MemoryDrawing) ? $drawing->getMimeType() : 'notmemorydrawing'; | ||
|  |             self::assertEquals('image/png', $mimeType); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testInvalidTimestamp(): void | ||
|  |     { | ||
|  |         $this->expectException(\PhpOffice\PhpSpreadsheet\Reader\Exception::class); | ||
|  |         \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE2LocalDate(' '); | ||
|  |     } | ||
|  | } |