mediawiki-extensions-Cite/tests/phpunit/unit/Parsoid/RefTest.php
thiemowmde 650d2c296d Add basic PHPUnit tests for Parsoid implementation
There is much more to test, but it's a start.

Intentionally build as pure unit tests to make them as fast as
possible.

Bug: T354215
Bug: T358652
Change-Id: Iae1a8086b8f2b9e5b11e0117bd3f19fdaa087df0
2024-03-12 09:06:16 +00:00

37 lines
919 B
PHP

<?php
namespace Cite\Tests\Unit;
use Cite\Parsoid\Ref;
use MediaWikiUnitTestCase;
use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI;
use Wikimedia\Parsoid\NodeData\DataMw;
use Wikimedia\Parsoid\Utils\DOMDataUtils;
use Wikimedia\Parsoid\Utils\DOMUtils;
/**
* @covers \Cite\Parsoid\Ref
* @license GPL-2.0-or-later
*/
class RefTest extends MediaWikiUnitTestCase {
public function testProcessAttributeEmbeddedHTML() {
$doc = DOMUtils::parseHTML( '' );
DOMDataUtils::prepareDoc( $doc );
$elt = $doc->createElement( 'a' );
DOMDataUtils::setDataMw( $elt, new DataMw( [ 'body' => (object)[ 'html' => 'old' ] ] ) );
$group = new Ref();
$group->processAttributeEmbeddedHTML(
$this->createNoOpMock( ParsoidExtensionAPI::class ),
$elt,
fn () => 'new'
);
$this->assertSame( 'new', DOMDataUtils::getDataMw( $elt )->body->html );
}
// TODO: Incomplete, there are a few more public methods to test
}