mediawiki-extensions-Cite/tests/phpunit/unit/Parsoid/ReferencesTest.php
C. Scott Ananian 7df30e0651 Use dependency injection for References/RefProcessor
This avoids the use of Parsoid's SiteConfig::getMWConfigValue() method,
which is unnecessary when the extension has direct access to MediaWiki
services itself.

This also fixes the omission of CiteResponsiveReferencesThreshold from
the extension.json.

Change-Id: I01b43136b0827f185523f1318253372b09750de4
2024-09-12 11:57:28 -04:00

38 lines
1 KiB
PHP

<?php
namespace Cite\Tests\Unit;
use Cite\Parsoid\References;
use MediaWiki\Config\Config;
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\References
* @license GPL-2.0-or-later
*/
class ReferencesTest extends MediaWikiUnitTestCase {
public function testProcessAttributeEmbeddedHTML() {
$doc = DOMUtils::parseHTML( '' );
DOMDataUtils::prepareDoc( $doc );
$elt = $doc->createElement( 'a' );
DOMDataUtils::setDataMw( $elt, new DataMw( [ 'body' => (object)[ 'html' => 'old' ] ] ) );
$refs = new References( $this->createNoOpMock( Config::class ) );
$refs->processAttributeEmbeddedHTML(
$this->createNoOpMock( ParsoidExtensionAPI::class ),
$elt,
fn () => 'new'
);
$this->assertSame( 'new', DOMDataUtils::getDataMw( $elt )->body->html );
}
// TODO: Incomplete, there are many more static and non-static methods to test
}