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