Passed
Push — master ( f9b1b7...3922d9 )
by
unknown
18:56 queued 11:14
created

HyperlinkTest::testHyperlink()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 22
c 1
b 0
f 0
dl 0
loc 25
rs 9.568
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Writer\Xls;
6
7
use PhpOffice\PhpSpreadsheet\Spreadsheet;
8
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
9
10
class HyperlinkTest extends AbstractFunctional
11
{
12
    public function testHyperlink(): void
13
    {
14
        $spreadsheet = new Spreadsheet();
15
        $sheet1 = $spreadsheet->getActiveSheet();
16
        $sheet1->setTitle('First');
17
        $sheet2 = $spreadsheet->createSheet();
18
        $sheet2->setTitle('Second');
19
        $sheet2->setCellValue('A100', 'other sheet');
20
        $sheet1->setCellValue('A100', 'this sheet');
21
        $sheet1->setCellValue('A1', '=HYPERLINK("#A100", "here")');
22
        $sheet1->setCellValue('A2', '=HYPERLINK("#Second!A100", "there")');
23
        $sheet1->setCellValue('A3', '=HYPERLINK("http://example.com", "external")');
24
        $sheet1->setCellValue('A4', 'gotoA101');
25
        $sheet1->getCell('A4')
26
            ->getHyperlink()
27
            ->setUrl('#A101');
28
29
        $robj = $this->writeAndReload($spreadsheet, 'Xls');
30
        $spreadsheet->disconnectWorksheets();
31
        $sheet0 = $robj->setActiveSheetIndex(0);
32
        self::assertSame('sheet://#A100', $sheet0->getCell('A1')->getHyperlink()->getUrl());
33
        self::assertSame('sheet://#Second!A100', $sheet0->getCell('A2')->getHyperlink()->getUrl());
34
        self::assertSame('http://example.com', $sheet0->getCell('A3')->getHyperlink()->getUrl());
35
        self::assertSame('sheet://#A101', $sheet0->getCell('A4')->getHyperlink()->getUrl());
36
        $robj->disconnectWorksheets();
37
    }
38
}
39