Passed
Push — master ( 216db0...8d8bc2 )
by
unknown
15:58 queued 08:00
created

Issue484Test   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 31
c 1
b 0
f 0
dl 0
loc 42
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A testHeaderFooter() 0 40 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx;
6
7
use PhpOffice\PhpSpreadsheet\Spreadsheet;
8
use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooter;
9
use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing;
10
use PhpOffice\PhpSpreadsheet\Worksheet\SheetView;
11
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
12
13
class Issue484Test extends AbstractFunctional
14
{
15
    public function testHeaderFooter(): void
16
    {
17
        $spreadsheet = new Spreadsheet();
18
        $headerImage = new HeaderFooterDrawing();
19
        $headerImage->setName('Header Logo');
20
        $headerImage->setPath('samples/images/blue_square.png');
21
        $headerImage->setHeight(12);
22
        $footerImage = new HeaderFooterDrawing();
23
        $footerImage->setName('Footer Logo');
24
        $footerImage->setPath('samples/images/paid.png');
25
        $footerImage->setHeight(12);
26
27
        $worksheet = $spreadsheet->getActiveSheet();
28
        $worksheet->getSheetView()
29
            ->setView(SheetView::SHEETVIEW_PAGE_LAYOUT);
30
31
        $worksheet->getHeaderFooter()->setDifferentFirst(true);
32
        $worksheet->getHeaderFooter()->setFirstHeader('&C&G&R&D');
33
        $worksheet->getHeaderFooter()->addImage($headerImage, HeaderFooter::IMAGE_HEADER_CENTER_FIRST);
34
35
        $worksheet->getHeaderFooter()->setDifferentOddEven(true);
36
        $worksheet->getHeaderFooter()->setEvenHeader('&L&G&R&D');
37
        $worksheet->getHeaderFooter()->addImage($headerImage, HeaderFooter::IMAGE_HEADER_LEFT_EVEN);
38
        $worksheet->getHeaderFooter()->setEvenFooter('&C&G&R&D');
39
        $worksheet->getHeaderFooter()->addImage($footerImage, HeaderFooter::IMAGE_FOOTER_CENTER_EVEN);
40
41
        $worksheet->getHeaderFooter()->setOddHeader('&C&D');
42
43
        for ($currentRow = 1; $currentRow < 130; ++$currentRow) {
44
            $worksheet->setCellValue("A$currentRow", 'Bill');
45
            $worksheet->setCellValue("B$currentRow", 'Smith');
46
        }
47
48
        // Save spreadsheet to file and read it back
49
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx');
50
        $spreadsheet->disconnectWorksheets();
51
        $sheet = $reloadedSpreadsheet->getActiveSheet();
52
        $images = $sheet->getHeaderFooter()->getImages();
53
        self::assertSame(['LHEVEN', 'CHFIRST', 'CFEVEN'], array_keys($images));
54
        $reloadedSpreadsheet->disconnectWorksheets();
55
    }
56
}
57