mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-02 21:48:11 +00:00
ec773bbed9
This will be the biggest of these changes. It takes care of all of the remaining problems in tests. I will handle the problems in src more slowly.
71 lines
2.3 KiB
PHP
71 lines
2.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Helper;
|
|
|
|
use DOMElement;
|
|
use PhpOffice\PhpSpreadsheet\Helper\Html;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class HtmlTest extends TestCase
|
|
{
|
|
#[\PHPUnit\Framework\Attributes\DataProvider('providerUtf8EncodingSupport')]
|
|
public function testUtf8EncodingSupport(string $expected, string $input): void
|
|
{
|
|
$html = new Html();
|
|
$actual = $html->toRichTextObject($input);
|
|
|
|
self::assertSame($expected, $actual->getPlainText());
|
|
}
|
|
|
|
public static function providerUtf8EncodingSupport(): array
|
|
{
|
|
return [
|
|
['foo', 'foo'],
|
|
['können', 'können'],
|
|
['русский', 'русский'],
|
|
["foo\nbar", '<p>foo</p><p>bar</p>'],
|
|
'issue2810' => ['0', '0'],
|
|
["Hello\nItem 1Item 2Goodbye", 'Hello<ul><li>Item 1</li><li>Item 2</li></ul>Goodbye'],
|
|
];
|
|
}
|
|
|
|
public function testLiTag(): void
|
|
{
|
|
$html = new Html();
|
|
$htmlBreakTag = $html->breakTag(...);
|
|
$html->addStartTagCallback('li', function (DOMElement $tag, Html $object): void {
|
|
$object->stringData .= "\u{00A0}\u{2022} \u{00A0}";
|
|
});
|
|
$html->addEndTagCallback('li', $htmlBreakTag);
|
|
$input = 'Hello<ul><li>Item 1</li><li>Item 2</li></ul>Goodbye';
|
|
$expected = "Hello\n\u{00A0}\u{2022} \u{00A0}Item 1\n\u{00A0}\u{2022} \u{00A0}Item 2\nGoodbye";
|
|
$actual = $html->toRichTextObject($input);
|
|
|
|
self::assertSame($expected, $actual->getPlainText());
|
|
}
|
|
|
|
public function testSTag(): void
|
|
{
|
|
$html = new Html();
|
|
$input = 'Hello <s>test</s>world';
|
|
$richText = $html->toRichTextObject($input);
|
|
$elements = $richText->getRichTextElements();
|
|
|
|
self::assertSame(count($elements), 3);
|
|
|
|
self::assertSame($elements[0]->getText(), 'Hello ');
|
|
self::assertNotNull($elements[0]->getFont());
|
|
self::assertFalse($elements[0]->getFont()->getStrikethrough());
|
|
|
|
self::assertSame($elements[1]->getText(), 'test');
|
|
self::assertNotNull($elements[1]->getFont());
|
|
self::assertTrue($elements[1]->getFont()->getStrikethrough());
|
|
|
|
self::assertSame($elements[2]->getText(), 'world');
|
|
self::assertNotNull($elements[2]->getFont());
|
|
self::assertFalse($elements[2]->getFont()->getStrikethrough());
|
|
}
|
|
}
|