Passed
Push — master ( 51b1d1...408838 )
by Owen
14:42
created

NavigationBadTitleTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A testNavigationTitle() 0 21 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
6
7
use PhpOffice\PhpSpreadsheet\Spreadsheet;
8
use PhpOffice\PhpSpreadsheet\Writer\Html as HtmlWriter;
9
use PHPUnit\Framework\TestCase;
10
11
class NavigationBadTitleTest extends TestCase
12
{
13
    public function testNavigationTitle(): void
14
    {
15
        $spreadsheet = new Spreadsheet();
16
        $sheet = $spreadsheet->getActiveSheet();
17
        $sheet->getCell('A1')->setValue(1);
18
        $sheet2 = $spreadsheet->createSheet();
19
        $sheet2->setTitle('<img src=x onerror=alert(1)>');
20
        $sheet2->getCell('A2')->setValue(2);
21
22
        $writer = new HtmlWriter($spreadsheet);
23
        $writer->writeAllSheets();
24
        $html = $writer->generateHTMLAll();
25
        $expected = '<ul class="navigation">'
26
            . PHP_EOL
27
            . '  <li class="sheet0"><a href="#sheet0">Worksheet</a></li>'
28
            . PHP_EOL
29
            . '  <li class="sheet1"><a href="#sheet1">&lt;img src=x onerror=alert(1)&gt;</a></li>'
30
            . PHP_EOL
31
            . '</ul>';
32
        self::assertStringContainsString($expected, $html, 'appropriate characters are escaped');
33
        $spreadsheet->disconnectWorksheets();
34
    }
35
}
36