You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.9 KiB
108 lines
3.9 KiB
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Style;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Style\Font;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class FontTest extends TestCase
|
|
{
|
|
public function testSuperSubScript(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$cell = $sheet->getCell('A1');
|
|
$cell->setValue('Cell A1');
|
|
$font = $cell->getStyle()->getFont();
|
|
$font->setSuperscript(true);
|
|
$font->setSubscript(true);
|
|
self::assertFalse($font->getSuperscript(), 'Earlier set true loses');
|
|
self::assertTrue($font->getSubscript(), 'Last set true wins');
|
|
$font->setSubscript(true);
|
|
$font->setSuperscript(true);
|
|
self::assertTrue($font->getSuperscript(), 'Last set true wins');
|
|
self::assertFalse($font->getSubscript(), 'Earlier set true loses');
|
|
$font->setSuperscript(false);
|
|
$font->setSubscript(false);
|
|
self::assertFalse($font->getSuperscript(), 'False remains unchanged');
|
|
self::assertFalse($font->getSubscript(), 'False remains unchanged');
|
|
$font->setSubscript(false);
|
|
$font->setSuperscript(false);
|
|
self::assertFalse($font->getSuperscript(), 'False remains unchanged');
|
|
self::assertFalse($font->getSubscript(), 'False remains unchanged');
|
|
$font->setSubscript(true);
|
|
$font->setSuperscript(false);
|
|
self::assertFalse($font->getSuperscript(), 'False remains unchanged');
|
|
self::assertTrue($font->getSubscript(), 'True remains unchanged');
|
|
$font->setSubscript(false);
|
|
$font->setSuperscript(true);
|
|
self::assertTrue($font->getSuperscript());
|
|
self::assertFalse($font->getSubscript(), 'False remains unchanged');
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
|
|
public function testSize(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$cell = $sheet->getCell('A1');
|
|
$cell->setValue('Cell A1');
|
|
$font = $cell->getStyle()->getFont();
|
|
|
|
self::assertEquals(11, $font->getSize(), 'The default is 11');
|
|
|
|
$font->setSize(12);
|
|
self::assertEquals(12, $font->getSize(), 'Accepted new font size');
|
|
|
|
$invalidFontSizeValues = [
|
|
'',
|
|
false,
|
|
true,
|
|
'non_numeric_string',
|
|
'-1.0',
|
|
-1.0,
|
|
0,
|
|
[],
|
|
(object) [],
|
|
null,
|
|
];
|
|
foreach ($invalidFontSizeValues as $invalidFontSizeValue) {
|
|
$font->setSize(12);
|
|
$font->setSize($invalidFontSizeValue);
|
|
self::assertEquals(10, $font->getSize(), 'Set to 10 after trying to set an invalid value.');
|
|
}
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
|
|
public function testName(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$cell = $sheet->getCell('A1');
|
|
$cell->setValue('Cell A1');
|
|
$font = $cell->getStyle()->getFont();
|
|
self::assertEquals('Calibri', $font->getName(), 'The default is Calibri');
|
|
$font->setName('whatever');
|
|
self::assertEquals('whatever', $font->getName(), 'The default is Calibri');
|
|
$font->setName('');
|
|
self::assertEquals('Calibri', $font->getName(), 'Null string changed to default');
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
|
|
public function testUnderlineHash(): void
|
|
{
|
|
$font1 = new Font();
|
|
$font2 = new Font();
|
|
$font2aHash = $font2->getHashCode();
|
|
self::assertSame($font1->getHashCode(), $font2aHash);
|
|
$font2->setUnderlineColor(
|
|
[
|
|
'type' => 'srgbClr',
|
|
'value' => 'FF0000',
|
|
]
|
|
);
|
|
$font2bHash = $font2->getHashCode();
|
|
self::assertNotEquals($font1->getHashCode(), $font2bHash);
|
|
}
|
|
}
|
|
|