 585409a949
			
		
	
	
		585409a949
		
			
		
	
	
	
	
		
			
			No code changes. The tests in all of these scripts write to at least one temporary file, which is then read and not used again. The file should be deleted to avoid filling up the disk system.
		
			
				
	
	
		
			118 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace PhpOffice\PhpSpreadsheetTests\Reader;
 | |
| 
 | |
| use PhpOffice\PhpSpreadsheet\IOFactory;
 | |
| use PhpOffice\PhpSpreadsheet\Shared\File;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Color;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Conditional;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Fill;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| class Xlsx2Test extends TestCase
 | |
| {
 | |
|     public function testLoadXlsxConditionalFormatting2(): void
 | |
|     {
 | |
|         // Make sure Conditionals are read correctly from existing file
 | |
|         $filename = 'tests/data/Reader/XLSX/conditionalFormatting2Test.xlsx';
 | |
|         $reader = IOFactory::createReader('Xlsx');
 | |
|         $spreadsheet = $reader->load($filename);
 | |
|         $worksheet = $spreadsheet->getActiveSheet();
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('A2:A8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_NOTCONTAINSBLANKS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals('LEN(TRIM(A2))>0', $conditions[0]);
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('B2:B8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_CONTAINSBLANKS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals('LEN(TRIM(B2))=0', $conditions[0]);
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('C2:C8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_CELLIS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals(Conditional::OPERATOR_GREATERTHAN, $conditionalRule->getOperatorType());
 | |
|         self::assertEquals('5', $conditions[0]);
 | |
|     }
 | |
| 
 | |
|     public function testReloadXlsxConditionalFormatting2(): void
 | |
|     {
 | |
|         // Make sure conditionals from existing file are maintained across save
 | |
|         $filename = 'tests/data/Reader/XLSX/conditionalFormatting2Test.xlsx';
 | |
|         $outfile = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test');
 | |
|         $reader = IOFactory::createReader('Xlsx');
 | |
|         $spreadshee1 = $reader->load($filename);
 | |
|         $writer = IOFactory::createWriter($spreadshee1, 'Xlsx');
 | |
|         $writer->save($outfile);
 | |
|         $spreadsheet = $reader->load($outfile);
 | |
|         unlink($outfile);
 | |
|         $worksheet = $spreadsheet->getActiveSheet();
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('A2:A8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_NOTCONTAINSBLANKS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals('LEN(TRIM(A2:A8))>0', $conditions[0]);
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('B2:B8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_CONTAINSBLANKS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals('LEN(TRIM(B2:B8))=0', $conditions[0]);
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('C2:C8');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_CELLIS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals(Conditional::OPERATOR_GREATERTHAN, $conditionalRule->getOperatorType());
 | |
|         self::assertEquals('5', $conditions[0]);
 | |
|     }
 | |
| 
 | |
|     public function testNewXlsxConditionalFormatting2(): void
 | |
|     {
 | |
|         // Make sure blanks/non-blanks added by PhpSpreadsheet are handled correctly
 | |
|         $outfile = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test');
 | |
|         $spreadshee1 = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
 | |
|         $sheet = $spreadshee1->getActiveSheet();
 | |
|         $sheet->setCellValue('A2', 'a2');
 | |
|         $sheet->setCellValue('A4', 'a4');
 | |
|         $sheet->setCellValue('A6', 'a6');
 | |
|         $cond1 = new Conditional();
 | |
|         $cond1->setConditionType(Conditional::CONDITION_CONTAINSBLANKS);
 | |
|         $cond1->getStyle()->getFill()->setFillType(Fill::FILL_SOLID);
 | |
|         $cond1->getStyle()->getFill()->getEndColor()->setARGB(Color::COLOR_RED);
 | |
|         $cond = [$cond1];
 | |
|         $sheet->getStyle('A1:A6')->setConditionalStyles($cond);
 | |
|         $writer = IOFactory::createWriter($spreadshee1, 'Xlsx');
 | |
|         $writer->save($outfile);
 | |
|         $reader = IOFactory::createReader('Xlsx');
 | |
|         $spreadsheet = $reader->load($outfile);
 | |
|         unlink($outfile);
 | |
|         $worksheet = $spreadsheet->getActiveSheet();
 | |
| 
 | |
|         $conditionalStyle = $worksheet->getConditionalStyles('A1:A6');
 | |
|         self::assertNotEmpty($conditionalStyle);
 | |
|         $conditionalRule = $conditionalStyle[0];
 | |
|         $conditions = $conditionalRule->getConditions();
 | |
|         self::assertNotEmpty($conditions);
 | |
|         self::assertEquals(Conditional::CONDITION_CONTAINSBLANKS, $conditionalRule->getConditionType());
 | |
|         self::assertEquals('LEN(TRIM(A1:A6))=0', $conditions[0]);
 | |
|     }
 | |
| }
 |