Passed
Pull Request — master (#4142)
by Owen
16:30 queued 03:39
created

TransparentDrawingsTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testOneCellAnchorTransparent() 0 32 1
A testTwoCellAnchorTransparent() 0 42 1
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\Drawing;
9
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
10
11
class TransparentDrawingsTest extends AbstractFunctional
12
{
13
    /**
14
     * Save and load XLSX with 2-cell anchor drawing with transparency.
15
     */
16
    public function testTwoCellAnchorTransparent(): void
17
    {
18
        $spreadsheet = new Spreadsheet();
19
        $sheet = $spreadsheet->getActiveSheet();
20
21
        // Add gif image that coordinates is two cell anchor.
22
        $drawing = new Drawing();
23
        $drawing->setName('Blue Square');
24
        $drawing->setPath('tests/data/Writer/XLSX/blue_square.png');
25
        self::assertEquals($drawing->getWidth(), 100);
26
        self::assertEquals($drawing->getHeight(), 100);
27
        $drawing->setCoordinates('A1');
28
        $drawing->setOffsetX(30);
29
        $drawing->setOffsetY(10);
30
        $drawing->setCoordinates2('E8');
31
        $drawing->setOffsetX2(-50);
32
        $drawing->setOffsetY2(-20);
33
        $drawing->setOpacity(40000);
34
        $drawing->setWorksheet($sheet);
35
36
        // Write file
37
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx');
38
        $spreadsheet->disconnectWorksheets();
39
        $rsheet = $reloadedSpreadsheet->getActiveSheet();
40
41
        // Check image coordinates.
42
        $drawingCollection = $rsheet->getDrawingCollection();
43
        self::assertCount(1, $drawingCollection);
44
        $drawing = $drawingCollection[0];
45
        self::assertNotNull($drawing);
46
47
        self::assertSame(100, $drawing->getWidth());
48
        self::assertSame(100, $drawing->getHeight());
49
        self::assertSame('A1', $drawing->getCoordinates());
50
        self::assertSame(30, $drawing->getOffsetX());
51
        self::assertSame(10, $drawing->getOffsetY());
52
        self::assertSame('E8', $drawing->getCoordinates2());
53
        self::assertSame(-50, $drawing->getOffsetX2());
54
        self::assertSame(-20, $drawing->getOffsetY2());
55
        self::assertSame(40000, $drawing->getOpacity());
56
        self::assertSame($rsheet, $drawing->getWorksheet());
57
        $reloadedSpreadsheet->disconnectWorksheets();
58
    }
59
60
    /**
61
     * Save and load XLSX with 1-cell anchor drawing with transparency.
62
     */
63
    public function testOneCellAnchorTransparent(): void
64
    {
65
        $spreadsheet = new Spreadsheet();
66
        $sheet = $spreadsheet->getActiveSheet();
67
68
        // Add gif image that coordinates is two cell anchor.
69
        $drawing = new Drawing();
70
        $drawing->setName('Blue Square');
71
        $drawing->setPath('tests/data/Writer/XLSX/blue_square.png');
72
        //self::assertEquals($drawing->getWidth(), 100);
73
        //self::assertEquals($drawing->getHeight(), 100);
74
        $drawing->setCoordinates('A1');
75
        $drawing->setOpacity(40000);
76
        $drawing->setWorksheet($sheet);
77
78
        // Write file
79
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx');
80
        $spreadsheet->disconnectWorksheets();
81
        $rsheet = $reloadedSpreadsheet->getActiveSheet();
82
83
        // Check image coordinates.
84
        $drawingCollection = $rsheet->getDrawingCollection();
85
        self::assertCount(1, $drawingCollection);
86
        $drawing = $drawingCollection[0];
87
        self::assertNotNull($drawing);
88
89
        self::assertSame(100, $drawing->getWidth());
90
        self::assertSame(100, $drawing->getHeight());
91
        self::assertSame('A1', $drawing->getCoordinates());
92
        self::assertSame(40000, $drawing->getOpacity());
93
        self::assertSame($rsheet, $drawing->getWorksheet());
94
        $reloadedSpreadsheet->disconnectWorksheets();
95
    }
96
}
97