Passed
Pull Request — master (#4581)
by Owen
11:44
created

ColumnDimension3Test   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 53
c 1
b 0
f 0
dl 0
loc 68
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testXls() 0 19 1
A testXlsxDefault() 0 19 1
A restrictWidth() 0 3 1
A testXlsxRestrict() 0 19 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Worksheet;
6
7
use PhpOffice\PhpSpreadsheet\Spreadsheet;
8
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
9
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
10
11
class ColumnDimension3Test extends AbstractFunctional
12
{
13
    public function testXlsxDefault(): void
14
    {
15
        $spreadsheet = new Spreadsheet();
16
        $sheet = $spreadsheet->getActiveSheet();
17
        $sheet->getCell('B1')->setValue('hello');
18
        $sheet->getCell('C1')->setValue(2);
19
        $sheet->getCell('A1')->setValue('=REPT("ABCDEFGHIJKLMNOPQRS*",13)');
20
        $sheet->getStyle('A1')->getFont()
21
            ->setSize(11)
22
            ->setName('Courier New');
23
        $sheet->getColumnDimension('A')->setAutoSize(true);
24
        $sheet->getColumnDimension('B')->setAutoSize(true);
25
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx');
26
        $spreadsheet->disconnectWorksheets();
27
        $sheet = $reloadedSpreadsheet->getActiveSheet();
28
        self::assertGreaterThan(255.0, $sheet->getColumnDimension('A')->getWidth());
29
        self::assertLessThan(255.0, $sheet->getColumnDimension('B')->getWidth());
30
        self::assertSame(-1.0, $sheet->getColumnDimension('C')->getWidth());
31
        $reloadedSpreadsheet->disconnectWorksheets();
32
    }
33
34
    public function testXlsxRestrict(): void
35
    {
36
        $spreadsheet = new Spreadsheet();
37
        $sheet = $spreadsheet->getActiveSheet();
38
        $sheet->getCell('B1')->setValue('hello');
39
        $sheet->getCell('C1')->setValue(2);
40
        $sheet->getCell('A1')->setValue('=REPT("ABCDEFGHIJKLMNOPQRS*",13)');
41
        $sheet->getStyle('A1')->getFont()
42
            ->setSize(11)
43
            ->setName('Courier New');
44
        $sheet->getColumnDimension('A')->setAutoSize(true);
45
        $sheet->getColumnDimension('B')->setAutoSize(true);
46
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', null, [self::class, 'restrictWidth']);
47
        $spreadsheet->disconnectWorksheets();
48
        $sheet = $reloadedSpreadsheet->getActiveSheet();
49
        self::assertSame(255.0, $sheet->getColumnDimension('A')->getWidth());
50
        self::assertLessThan(255.0, $sheet->getColumnDimension('B')->getWidth());
51
        self::assertSame(-1.0, $sheet->getColumnDimension('C')->getWidth());
52
        $reloadedSpreadsheet->disconnectWorksheets();
53
    }
54
55
    public function testXls(): void
56
    {
57
        $spreadsheet = new Spreadsheet();
58
        $sheet = $spreadsheet->getActiveSheet();
59
        $sheet->getCell('B1')->setValue('hello');
60
        $sheet->getCell('C1')->setValue(2);
61
        $sheet->getCell('A1')->setValue('=REPT("ABCDEFGHIJKLMNOPQRS*",13)');
62
        $sheet->getStyle('A1')->getFont()
63
            ->setSize(11)
64
            ->setName('Courier New');
65
        $sheet->getColumnDimension('A')->setAutoSize(true);
66
        $sheet->getColumnDimension('B')->setAutoSize(true);
67
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xls');
68
        $spreadsheet->disconnectWorksheets();
69
        $sheet = $reloadedSpreadsheet->getActiveSheet();
70
        self::assertSame(255.0, $sheet->getColumnDimension('A')->getWidth());
71
        self::assertLessThan(255.0, $sheet->getColumnDimension('B')->getWidth());
72
        self::assertLessThan(255.0, $sheet->getColumnDimension('C')->getWidth());
73
        $reloadedSpreadsheet->disconnectWorksheets();
74
    }
75
76
    public static function restrictWidth(XlsxWriter $writer): void
77
    {
78
        $writer->setRestrictMaxColumnWidth(true);
79
    }
80
}
81