Passed
Push — develop ( e3fb16...4c09d4 )
by Adrien
28:18
created

FreezePaneTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 67
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A providerFormats() 0 5 1
A testFreezePane() 0 17 1
A testFreezePaneWithInvalidSelectedCells() 0 21 1
A providerFormatsInvalidSelectedCells() 0 4 1
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Functional;
4
5
use PhpOffice\PhpSpreadsheet\Spreadsheet;
6
7
class FreezePaneTest extends AbstractFunctional
8
{
9
    public function providerFormats()
10
    {
11
        return [
12
            ['Xls'],
13
            ['Xlsx'],
14
        ];
15
    }
16
17
    /**
18
     * @dataProvider providerFormats
19
     *
20
     * @param string $format
21
     */
22
    public function testFreezePane($format)
23
    {
24
        $cellSplit = 'B4';
25
        $topLeftCell = 'E7';
26
27
        $spreadsheet = new Spreadsheet();
28
        $spreadsheet->getActiveSheet()->freezePane($cellSplit, $topLeftCell);
29
30
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
31
32
        // Read written file
33
        $reloadedActive = $reloadedSpreadsheet->getActiveSheet();
34
        $actualCellSplit = $reloadedActive->getFreezePane();
35
        $actualTopLeftCell = $reloadedActive->getTopLeftCell();
36
37
        self::assertSame($cellSplit, $actualCellSplit, 'should be able to set freeze pane');
38
        self::assertSame($topLeftCell, $actualTopLeftCell, 'should be able to set the top left cell');
39
    }
40
41
    public function providerFormatsInvalidSelectedCells()
42
    {
43
        return [
44
            ['Xlsx'],
45
        ];
46
    }
47
48
    /**
49
     * @dataProvider providerFormatsInvalidSelectedCells
50
     *
51
     * @param string $format
52
     */
53
    public function testFreezePaneWithInvalidSelectedCells($format)
54
    {
55
        $cellSplit = 'A7';
56
        $topLeftCell = 'A24';
57
58
        $spreadsheet = new Spreadsheet();
59
        $worksheet = $spreadsheet->getActiveSheet();
60
61
        $worksheet->freezePane('A7', 'A24');
62
        $worksheet->setSelectedCells('F5');
63
64
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
65
66
        // Read written file
67
        $reloadedActive = $reloadedSpreadsheet->getActiveSheet();
68
        $actualCellSplit = $reloadedActive->getFreezePane();
69
        $actualTopLeftCell = $reloadedActive->getTopLeftCell();
70
71
        self::assertSame($cellSplit, $actualCellSplit, 'should be able to set freeze pane');
72
        self::assertSame($topLeftCell, $actualTopLeftCell, 'should be able to set the top left cell');
73
        self::assertSame('A24', $reloadedActive->getSelectedCells(), 'selected cell should default to be first cell after the freeze pane');
74
    }
75
}
76