Add unit tests for files with true/false (LibreOffice) in DataValidation boolean values and those with 1/0 (Excel, GoogleSheets)

This commit is contained in:
James Lucas 2021-07-17 14:44:58 +10:00 committed by oleibman
parent a818ce0c19
commit a9533b77ec
3 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,57 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PHPUnit\Framework\TestCase;
class DataValidationBooleanValue extends TestCase
{
public static function testPr2225_truefalse(): void
{
//This file is created with LibreOffice
$xlsxFile = 'tests/data/Reader/XLSX/pr2225-datavalidation-truefalse.xlsx';
$reader = new Xlsx();
$spreadsheet = $reader->load($xlsxFile);
$a1 = $spreadsheet->getActiveSheet()->getDataValidation('A1');
$a2 = $spreadsheet->getActiveSheet()->getDataValidation('A2');
//<dataValidation allowBlank="false" showDropDown="false" showErrorMessage="true" showInputMessage="true" sqref="A1" type="list">
//<dataValidation allowBlank="true" showDropDown="true" showErrorMessage="false" showInputMessage="false" sqref="A2" type="list">
self::assertFalse($a1->getAllowBlank(), 'A1 validation does not allow blanks, flag should be false');
self::assertTrue($a1->getShowDropDown(), 'A1 is set to show the drop down in Excel, which is false in the file');
self::assertTrue($a1->getShowErrorMessage(), 'A1 Shows error message, flag should be true');
self::assertTrue($a1->getShowInputMessage(), 'A1 Shows input message, flag should be true');
self::assertTrue($a2->getAllowBlank(), 'A2 validation allows blanks, flag should be true');
self::assertFalse($a2->getShowDropDown(), 'A2 is set to not show the drop down in Excel, which is true in the file');
self::assertFalse($a2->getShowErrorMessage(), 'A2 does not show error message, flag should be false');
self::assertFalse($a2->getShowInputMessage(), 'A2 does not show input message, flag should be false');
}
//This file was created with Google Sheets export to XLSX
public static function testPr2225_onezero(): void
{
$xlsxFile = 'tests/data/Reader/XLSX/pr2225-datavalidation-onezero.xlsx';
$reader = new Xlsx();
$spreadsheet = $reader->load($xlsxFile);
$a1 = $spreadsheet->getActiveSheet()->getDataValidation('A1');
$a2 = $spreadsheet->getActiveSheet()->getDataValidation('A2');
//<dataValidation allowBlank="1" showErrorMessage="1" showInputMessage="1" sqref="A1" type="list">
//<dataValidation allowBlank="1" showDropDown="0" sqref="A2" type="list">
self::assertTrue($a1->getAllowBlank(), 'A1 validation allows blanks, flag should be true');
self::assertTrue($a1->getShowDropDown(), 'A1 is set to show the drop down in Excel, which is false in the file');
self::assertTrue($a1->getShowErrorMessage(), 'A1 Shows error message, flag should be true');
self::assertTrue($a1->getShowInputMessage(), 'A1 Shows input message, flag should be true');
self::assertTrue($a2->getAllowBlank(), 'A2 validation allows blanks, flag should be true');
self::assertFalse($a2->getShowDropDown(), 'A2 is set to not show the drop down in Excel, which is true in the file');
self::assertFalse($a2->getShowErrorMessage(), 'A2 does not show error message, flag should be false');
self::assertFalse($a2->getShowInputMessage(), 'A2 does not show input message, flag should be false');
}
}