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

HtmlCommentsTest::providerCommentRichText()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 28
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 20
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 28
rs 9.6
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
4
5
use PhpOffice\PhpSpreadsheet\RichText\RichText;
6
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
use PhpOffice\PhpSpreadsheetTests\Functional;
8
9
class HtmlCommentsTest extends Functional\AbstractFunctional
10
{
11
    private $spreadsheet;
12
13
    public function providerCommentRichText()
14
    {
15
        $valueSingle = 'I am comment.';
16
        $valueMulti = 'I am ' . PHP_EOL . 'multi-line' . PHP_EOL . 'comment.';
17
18
        $plainSingle = new RichText();
19
        $plainSingle->createText($valueSingle);
20
21
        $plainMulti = new RichText();
22
        $plainMulti->createText($valueMulti);
23
24
        $richSingle = new RichText();
25
        $richSingle->createTextRun($valueSingle)->getFont()->setBold(true);
26
27
        $richMultiSimple = new RichText();
28
        $richMultiSimple->createTextRun($valueMulti)->getFont()->setBold(true);
29
30
        $richMultiMixed = new RichText();
31
        $richMultiMixed->createText('I am' . PHP_EOL);
32
        $richMultiMixed->createTextRun('multi-line')->getFont()->setBold(true);
33
        $richMultiMixed->createText(PHP_EOL . 'comment!');
34
35
        return [
36
            'single line plain text' => [$plainSingle],
37
            'multi-line plain text' => [$plainMulti],
38
            'single line simple rich text' => [$richSingle],
39
            'multi-line simple rich text' => [$richMultiSimple],
40
            'multi-line mixed rich text' => [$richMultiMixed],
41
        ];
42
    }
43
44
    /**
45
     * @dataProvider providerCommentRichText
46
     *
47
     * @param mixed $richText
48
     */
49
    public function testComments($richText)
50
    {
51
        $this->spreadsheet = new Spreadsheet();
52
53
        $this->spreadsheet->getActiveSheet()->getCell('A1')->setValue('Comment');
54
55
        $this->spreadsheet->getActiveSheet()
56
            ->getComment('A1')
57
            ->setText($richText);
58
59
        $reloadedSpreadsheet = $this->writeAndReload($this->spreadsheet, 'Html');
60
61
        $actual = $reloadedSpreadsheet->getActiveSheet()->getComment('A1')->getText()->getPlainText();
62
        self::assertSame($richText->getPlainText(), $actual);
63
    }
64
}
65