Completed
Push — master ( 4f6d4a...97a80f )
by Adrien
11:15 queued 03:45
created

VisibilityTest::testDefaultRowHeight()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 35
Code Lines 31

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 31
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 35
rs 9.424
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
4
5
use PhpOffice\PhpSpreadsheet\Spreadsheet;
6
use PhpOffice\PhpSpreadsheet\Style\Font;
7
use PhpOffice\PhpSpreadsheet\Writer\Html;
8
use PhpOffice\PhpSpreadsheetTests\Functional;
9
10
class VisibilityTest extends Functional\AbstractFunctional
11
{
12
    public function testVisibility1()
13
    {
14
        $spreadsheet = new Spreadsheet();
15
        $sheet = $spreadsheet->getActiveSheet();
16
        $sheet->setCellValue('A1', 1);
17
        $sheet->setCellValue('A2', 2);
18
        $sheet->setCellValue('A3', 3);
19
        $sheet->setCellValue('B1', 4);
20
        $sheet->setCellValue('B2', 5);
21
        $sheet->setCellValue('B3', 6);
22
        $sheet->setCellValue('C1', 7);
23
        $sheet->setCellValue('C2', 8);
24
        $sheet->setCellValue('C3', 9);
25
        $sheet->getColumnDimension('B')->setVisible(false);
26
        $sheet->getRowDimension(2)->setVisible(false);
27
        $writer = new Html($spreadsheet);
28
        $html = $writer->generateHTMLAll();
29
        $reg = '/^\\s*table[.]sheet0 tr { display:none; visibility:hidden }\\s*$/m';
30
        $rowsrch = preg_match($reg, $html);
31
        self::assertEquals($rowsrch, 0);
32
        $reg = '/^\\s*table[.]sheet0 tr[.]row1 { display:none; visibility:hidden }\\s*$/m';
33
        $rowsrch = preg_match($reg, $html);
34
        self::assertEquals($rowsrch, 1);
35
        $reg = '/^\\s*table[.]sheet0 [.]column1 [{] display:none [}]\\s*$/m';
36
        $colsrch = preg_match($reg, $html);
37
        self::assertEquals($colsrch, 1);
38
39
        $this->writeAndReload($spreadsheet, 'Html');
40
    }
41
42
    public function testVisibility2()
43
    {
44
        $spreadsheet = new Spreadsheet();
45
        $sheet = $spreadsheet->getActiveSheet();
46
        $sheet->setCellValue('A1', 1);
47
        $sheet->setCellValue('A2', 2);
48
        $sheet->setCellValue('A3', 3);
49
        $sheet->setCellValue('B1', 4);
50
        $sheet->setCellValue('B2', 5);
51
        $sheet->setCellValue('B3', 6);
52
        $sheet->setCellValue('C1', 7);
53
        $sheet->setCellValue('C2', 8);
54
        $sheet->setCellValue('C3', 9);
55
        $sheet->getDefaultRowDimension()->setVisible(false);
56
        $sheet->getColumnDimension('B')->setVisible(false);
57
        $sheet->getRowDimension(1)->setVisible(true);
58
        $sheet->getRowDimension(3)->setVisible(true);
59
60
        $writer = new Html($spreadsheet);
61
        $html = $writer->generateHTMLAll();
62
        $reg = '/^\\s*table[.]sheet0 tr { height:15pt; display:none; visibility:hidden }\\s*$/m';
63
        $rowsrch = preg_match($reg, $html);
64
        self::assertEquals($rowsrch, 1);
65
        $reg = '/^\\s*table[.]sheet0 tr[.]row1 { display:none; visibility:hidden }\\s*$/m';
66
        $rowsrch = preg_match($reg, $html);
67
        self::assertEquals($rowsrch, 0);
68
        $reg = '/^\\s*table[.]sheet0 [.]column1 [{] display:none [}]\\s*$/m';
69
        $colsrch = preg_match($reg, $html);
70
        self::assertEquals($colsrch, 1);
71
72
        $this->writeAndReload($spreadsheet, 'Html');
73
    }
74
75
    public function testDefaultRowHeight()
76
    {
77
        $spreadsheet = new Spreadsheet();
78
        $sheet = $spreadsheet->getActiveSheet();
79
        $sheet->setCellValue('A1', 1);
80
        $sheet->getStyle('A1')->getFont()->setStrikethrough(true);
81
        $sheet->setCellValue('A2', 2);
82
        $sheet->setCellValue('A3', 3);
83
        $sheet->getStyle('A3')->getFont()->setStrikethrough(true)->setUnderline(Font::UNDERLINE_SINGLE);
84
        $sheet->setCellValue('B1', 4);
85
        $sheet->setCellValue('B2', 5);
86
        $sheet->setCellValue('B3', 6);
87
        $sheet->setCellValue('C1', 7);
88
        $sheet->setCellValue('C2', 8);
89
        $sheet->setCellValue('C3', 9);
90
        $sheet->getStyle('C3')->getFont()->setUnderline(Font::UNDERLINE_SINGLE);
91
        $sheet->getDefaultRowDimension()->setRowHeight(20);
92
        $sheet->getRowDimension(2)->setRowHeight(25);
93
94
        $writer = new Html($spreadsheet);
95
        $html = $writer->generateHTMLAll();
96
        self::assertEquals(1, substr_count($html, 'height:20pt'));
97
        self::assertEquals(1, substr_count($html, 'height:25pt'));
98
        $rowsrch = preg_match('/^\\s*table[.]sheet0 tr [{] height:20pt [}]\\s*$/m', $html);
99
        self::assertEquals(1, $rowsrch);
100
        $rowsrch = preg_match('/^\\s*table[.]sheet0 tr[.]row1 [{] height:25pt [}]\\s*$/m', $html);
101
        self::assertEquals(1, $rowsrch);
102
        $rowsrch = preg_match('/^\\s*td[.]style1 [{].*text-decoration:line-through;.*[}]\\s*$/m', $html);
103
        self::assertEquals(1, $rowsrch);
104
        $rowsrch = preg_match('/^\\s*td[.]style2 [{].*text-decoration:underline line-through;.*[}]\\s*$/m', $html);
105
        self::assertEquals(1, $rowsrch);
106
        $rowsrch = preg_match('/^\\s*td[.]style3 [{].*text-decoration:underline;.*[}]\\s*$/m', $html);
107
        self::assertEquals(1, $rowsrch);
108
109
        $this->writeAndReload($spreadsheet, 'Html');
110
    }
111
}
112