Passed
Pull Request — master (#4360)
by Owen
20:43
created

Issue4356Test   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
eloc 21
c 1
b 0
f 0
dl 0
loc 30
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A testIssue4356() 0 28 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xls;
6
7
use PhpOffice\PhpSpreadsheet\NamedRange;
8
use PhpOffice\PhpSpreadsheet\Spreadsheet;
9
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
10
11
class Issue4356Test extends AbstractFunctional
12
{
13
    public function testIssue4356(): void
14
    {
15
        // Reader couldn't handle sheet title with apostrophe for defined name.
16
        // Issue was reported against Xlsx - see how Xls does.
17
        $originalSpreadsheet = new Spreadsheet();
18
        $originalSheet = $originalSpreadsheet->getActiveSheet();
19
        $originalSheet->setTitle("Goodn't sheet name");
20
        $originalSpreadsheet->addNamedRange(
21
            new NamedRange('CELLNAME', $originalSheet, '$A$1')
22
        );
23
        $originalSheet->setCellValue('A1', 'This is a named cell.');
24
        $originalSheet->getStyle('A1')->getFont()->setItalic(true);
25
        $spreadsheet = $this->writeAndReload($originalSpreadsheet, 'Xls');
26
        $originalSpreadsheet->disconnectWorksheets();
27
28
        $sheet = $spreadsheet->getActiveSheet();
29
        $sheet->setCellValue('C1', '=CELLNAME');
30
        self::assertSame('This is a named cell.', $sheet->getCell('C1')->getCalculatedValue());
31
        $namedRange2 = $spreadsheet->getNamedRange('CELLNAME');
32
        self::assertNotNull($namedRange2);
33
        $sheetx = $namedRange2->getWorksheet();
34
        self::assertNotNull($sheetx);
35
        $style = $sheetx->getStyle($namedRange2->getRange());
36
        //$style = $sheetx->getStyle('CELLNAME'); // no exception but doesn't work
37
        self::assertTrue($style->getFont()->getItalic());
38
        $style->getFont()->setItalic(false);
39
40
        $spreadsheet->disconnectWorksheets();
41
    }
42
}
43