Rename HTMLTransform to HtmlToContentTransform

* We will have several kinds of HTML transformations.
Rename HTMLTransform to indicate that its for converting HTML to Content
objects.

* Using Naming Convention 'Html' instead of 'HTML'

Change-Id: I506f3303ae8f9e4db17299211366bef1558f142c
This commit is contained in:
daniel 2022-10-16 23:44:53 +02:00
parent 1e2112436b
commit f545d5efeb
18 changed files with 130 additions and 130 deletions

View file

@ -100,7 +100,7 @@ use MediaWiki\Page\UndeletePageFactory;
use MediaWiki\Page\WikiPageFactory;
use MediaWiki\Parser\ParserCacheFactory;
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Permissions\GrantsInfo;
use MediaWiki\Permissions\GrantsLocalization;
@ -1065,11 +1065,11 @@ class MediaWikiServices extends ServiceContainer {
}
/**
* @return HTMLTransformFactory
* @return HtmlTransformFactory
* @since 1.39
*/
public function getHTMLTransformFactory(): HTMLTransformFactory {
return $this->getService( 'HTMLTransformFactory' );
public function getHtmlTransformFactory(): HtmlTransformFactory {
return $this->getService( 'HtmlTransformFactory' );
}
/**

View file

@ -29,8 +29,8 @@ use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use MediaWiki\Edit\ParsoidOutputStash;
use MediaWiki\MainConfigNames;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Parser\Parsoid\HTMLTransform;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlToContentTransform;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\PageBundleParserOutputConverter;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Parser\Parsoid\ParsoidRenderID;
@ -66,7 +66,7 @@ class HtmlInputTransformHelper {
MainConfigNames::ParsoidCacheConfig
];
/** @var HTMLTransformFactory */
/** @var HtmlTransformFactory */
private $htmlTransformFactory;
/** @var PageIdentity|null */
@ -79,7 +79,7 @@ class HtmlInputTransformHelper {
private $parameters = null;
/**
* @var HTMLTransform
* @var HtmlToContentTransform
*/
private $transform;
@ -100,14 +100,14 @@ class HtmlInputTransformHelper {
/**
* @param StatsdDataFactoryInterface $statsDataFactory
* @param HTMLTransformFactory $htmlTransformFactory
* @param HtmlTransformFactory $htmlTransformFactory
* @param ParsoidOutputStash $parsoidOutputStash
* @param ParsoidOutputAccess $parsoidOutputAccess
* @param array $envOptions
*/
public function __construct(
StatsdDataFactoryInterface $statsDataFactory,
HTMLTransformFactory $htmlTransformFactory,
HtmlTransformFactory $htmlTransformFactory,
ParsoidOutputStash $parsoidOutputStash,
ParsoidOutputAccess $parsoidOutputAccess,
array $envOptions = []
@ -304,7 +304,7 @@ class HtmlInputTransformHelper {
$html = is_array( $body['html'] ) ? $body['html']['body'] : $body['html'];
// TODO: validate $body against a proper schema.
$this->transform = $this->htmlTransformFactory->getHTMLTransform(
$this->transform = $this->htmlTransformFactory->getHtmlToContentTransform(
$html,
$this->page
);

View file

@ -29,7 +29,7 @@ use MediaWiki\Edit\ParsoidOutputStash;
use MediaWiki\MainConfigNames;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Page\PageRecord;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\PageBundleParserOutputConverter;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Parser\Parsoid\ParsoidRenderID;
@ -98,7 +98,7 @@ class HtmlOutputRendererHelper {
/** @var ParserOutput */
private $processedParserOutput;
/** @var HTMLTransformFactory */
/** @var HtmlTransformFactory */
private $htmlTransformFactory;
/** @var string|null */
@ -111,13 +111,13 @@ class HtmlOutputRendererHelper {
* @param ParsoidOutputStash $parsoidOutputStash
* @param IBufferingStatsdDataFactory $statsDataFactory
* @param ParsoidOutputAccess $parsoidOutputAccess
* @param HTMLTransformFactory $htmlTransformFactory
* @param HtmlTransformFactory $htmlTransformFactory
*/
public function __construct(
ParsoidOutputStash $parsoidOutputStash,
IBufferingStatsdDataFactory $statsDataFactory,
ParsoidOutputAccess $parsoidOutputAccess,
HTMLTransformFactory $htmlTransformFactory
HtmlTransformFactory $htmlTransformFactory
) {
$this->parsoidOutputStash = $parsoidOutputStash;
$this->stats = $statsDataFactory;

View file

@ -8,7 +8,7 @@ use LogicException;
use MediaWiki\Edit\ParsoidOutputStash;
use MediaWiki\MediaWikiServices;
use MediaWiki\Page\PageLookup;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Rest\LocalizedHttpException;
use MediaWiki\Rest\Response;
@ -41,7 +41,7 @@ class PageHTMLHandler extends SimpleHandler {
ParsoidOutputStash $parsoidOutputStash,
IBufferingStatsdDataFactory $statsDataFactory,
ParsoidOutputAccess $parsoidOutputAccess,
HTMLTransformFactory $htmlTransformFactory
HtmlTransformFactory $htmlTransformFactory
) {
$this->contentHelper = new PageContentHelper(
$config,

View file

@ -307,7 +307,7 @@ abstract class ParsoidHandler extends Handler {
$helper = new HtmlInputTransformHelper(
$this->siteConfig->metrics() ?: $services->getStatsdDataFactory(),
$services->getHTMLTransformFactory(),
$services->getHtmlTransformFactory(),
$services->getParsoidOutputStash(),
$services->getParsoidOutputAccess(),
$attribs['envOptions']
@ -891,7 +891,7 @@ abstract class ParsoidHandler extends Handler {
) {
if ( $page instanceof PageConfig ) {
// TODO: Deprecate passing a PageConfig.
// Ideally, callers would use HTMLTransform directly.
// Ideally, callers would use HtmlToContentTransform directly.
// XXX: This is slow, and we already have the parsed title and ID inside the PageConfig...
$page = Title::newFromTextThrow( $page->getTitle() );
}
@ -1085,7 +1085,7 @@ abstract class ParsoidHandler extends Handler {
);
$languageVariantConverter = MediaWikiServices::getInstance()
->getHTMLTransformFactory()
->getHtmlTransformFactory()
->getLanguageVariantConverter( $pageIdentity );
$languageVariantConverter->setPageConfig( $pageConfig );
$httpContentLanguage = $attribs['pagelanguage' ] ?? null;

View file

@ -8,7 +8,7 @@ use LogicException;
use MediaWiki\Edit\ParsoidOutputStash;
use MediaWiki\MediaWikiServices;
use MediaWiki\Page\PageLookup;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Rest\LocalizedHttpException;
use MediaWiki\Rest\Response;
@ -42,7 +42,7 @@ class RevisionHTMLHandler extends SimpleHandler {
ParsoidOutputStash $parsoidOutputStash,
IBufferingStatsdDataFactory $statsDataFactory,
ParsoidOutputAccess $parsoidOutputAccess,
HTMLTransformFactory $htmlTransformFactory
HtmlTransformFactory $htmlTransformFactory
) {
$this->contentHelper = new RevisionContentHelper(
$config,

View file

@ -54,7 +54,7 @@
"ParsoidOutputStash",
"StatsdDataFactory",
"ParsoidOutputAccess",
"HTMLTransformFactory"
"HtmlTransformFactory"
],
"format": "html"
},
@ -69,7 +69,7 @@
"ParsoidOutputStash",
"StatsdDataFactory",
"ParsoidOutputAccess",
"HTMLTransformFactory"
"HtmlTransformFactory"
],
"format": "with_html"
},
@ -158,7 +158,7 @@
"ParsoidOutputStash",
"StatsdDataFactory",
"ParsoidOutputAccess",
"HTMLTransformFactory"
"HtmlTransformFactory"
],
"format": "html"
},
@ -173,7 +173,7 @@
"ParsoidOutputStash",
"StatsdDataFactory",
"ParsoidOutputAccess",
"HTMLTransformFactory"
"HtmlTransformFactory"
],
"format": "with_html"
},

View file

@ -119,7 +119,7 @@ use MediaWiki\Parser\ParserObserver;
use MediaWiki\Parser\Parsoid\Config\DataAccess as MWDataAccess;
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory as MWPageConfigFactory;
use MediaWiki\Parser\Parsoid\Config\SiteConfig as MWSiteConfig;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidOutputAccess;
use MediaWiki\Permissions\GrantsInfo;
use MediaWiki\Permissions\GrantsLocalization;
@ -736,8 +736,8 @@ return [
);
},
'HTMLTransformFactory' => static function ( MediaWikiServices $services ): HTMLTransformFactory {
return new HTMLTransformFactory(
'HtmlTransformFactory' => static function ( MediaWikiServices $services ): HtmlTransformFactory {
return new HtmlTransformFactory(
$services->getService( '_Parsoid' ),
$services->getMainConfig()->get( MainConfigNames::ParsoidSettings ),
$services->getParsoidPageConfigFactory(),

View file

@ -34,7 +34,7 @@ use Wikimedia\Parsoid\Utils\Timing;
* @since 1.40
* @unstable should be stable before 1.40 release
*/
class HTMLTransform {
class HtmlToContentTransform {
/** @var array */
private $options = [];

View file

@ -14,7 +14,7 @@ use Wikimedia\Parsoid\Parsoid;
* @since 1.40
* @unstable should be marked stable before 1.40 release
*/
class HTMLTransformFactory {
class HtmlTransformFactory {
/** @var Parsoid */
private $parsoid;
@ -71,10 +71,10 @@ class HTMLTransformFactory {
* @param string $modifiedHTML
* @param PageIdentity $page
*
* @return HTMLTransform
* @return HtmlToContentTransform
*/
public function getHTMLTransform( string $modifiedHTML, PageIdentity $page ) {
return new HTMLTransform(
public function getHtmlToContentTransform( string $modifiedHTML, PageIdentity $page ) {
return new HtmlToContentTransform(
$modifiedHTML,
$page,
$this->parsoid,

View file

@ -8,8 +8,8 @@ use MediaWiki\MainConfigSchema;
use MediaWiki\Message\Converter;
use MediaWiki\Message\TextFormatter;
use MediaWiki\Page\PageIdentityValue;
use MediaWiki\Parser\Parsoid\HTMLTransform;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlToContentTransform;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Parser\Parsoid\ParsoidRenderID;
use MediaWiki\Rest\Handler\HtmlInputTransformHelper;
use MediaWiki\Rest\Handler\ParsoidFormatHelper;
@ -54,14 +54,14 @@ class HtmlInputTransformHelperTest extends MediaWikiIntegrationTestCase {
/**
* @param array $methodOverrides
*
* @return MockObject|HTMLTransformFactory
* @return MockObject|HtmlTransformFactory
*/
public function newMockHTMLTransformFactory( $methodOverrides = [] ): HTMLTransformFactory {
$factory = $this->createNoOpMock( HTMLTransformFactory::class, [ 'getHTMLTransform' ] );
public function newMockHtmlTransformFactory( $methodOverrides = [] ): HtmlTransformFactory {
$factory = $this->createNoOpMock( HtmlTransformFactory::class, [ 'getHtmlToContentTransform' ] );
$factory->method( 'getHTMLTransform' )->willReturnCallback(
$factory->method( 'getHtmlToContentTransform' )->willReturnCallback(
function ( $html ) use ( $methodOverrides ) {
return $this->newHTMLTransform( $html, $methodOverrides );
return $this->newHtmlToContentTransform( $html, $methodOverrides );
}
);
@ -80,7 +80,7 @@ class HtmlInputTransformHelperTest extends MediaWikiIntegrationTestCase {
$helper = new HtmlInputTransformHelper(
new NullStatsdDataFactory(),
$this->newMockHTMLTransformFactory( $transformMethodOverrides ),
$this->newMockHtmlTransformFactory( $transformMethodOverrides ),
$this->getServiceContainer()->getParsoidOutputStash(),
$this->getServiceContainer()->getParsoidOutputAccess()
);
@ -666,7 +666,7 @@ class HtmlInputTransformHelperTest extends MediaWikiIntegrationTestCase {
/**
* @dataProvider provideResponse()
* @covers \MediaWiki\Rest\Handler\HtmlInputTransformHelper
* @covers \MediaWiki\Parser\Parsoid\HTMLTransform
* @covers \MediaWiki\Parser\Parsoid\HtmlToContentTransform
*/
public function testResponse( $body, $params, $expectedText, array $expectedHeaders = [] ) {
if ( !empty( $params['oldid'] ) ) {
@ -699,7 +699,7 @@ class HtmlInputTransformHelperTest extends MediaWikiIntegrationTestCase {
/**
* @covers \MediaWiki\Rest\Handler\HtmlInputTransformHelper
* @covers \MediaWiki\Parser\Parsoid\HTMLTransform
* @covers \MediaWiki\Parser\Parsoid\HtmlToContentTransform
*/
public function testResponseForFakeRevision() {
$wikitext = 'Unsaved Revision Content';
@ -931,8 +931,8 @@ class HtmlInputTransformHelperTest extends MediaWikiIntegrationTestCase {
$helper->getContent();
}
private function newHTMLTransform( $html, $methodOverrides = [] ): HTMLTransform {
$transform = $this->getMockBuilder( HTMLTransform::class )
private function newHtmlToContentTransform( $html, $methodOverrides = [] ): HtmlToContentTransform {
$transform = $this->getMockBuilder( HtmlToContentTransform::class )
->onlyMethods( array_keys( $methodOverrides ) )
->setConstructorArgs( [
$html,

View file

@ -227,7 +227,7 @@ class HtmlOutputRendererHelperTest extends MediaWikiIntegrationTestCase {
$stash,
new NullStatsdDataFactory(),
$access ?? $this->newMockParsoidOutputAccess(),
$this->getServiceContainer()->getHTMLTransformFactory()
$this->getServiceContainer()->getHtmlTransformFactory()
);
return $helper;

View file

@ -117,7 +117,7 @@ class PageHTMLHandlerTest extends MediaWikiIntegrationTestCase {
$this->getParsoidOutputStash(),
$services->getStatsdDataFactory(),
$parsoidOutputAccess,
$services->getHTMLTransformFactory()
$services->getHtmlTransformFactory()
);
return $handler;

View file

@ -8,8 +8,8 @@ use MediaWiki\MainConfigNames;
use MediaWiki\MainConfigSchema;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory;
use MediaWiki\Parser\Parsoid\HTMLTransform;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWiki\Parser\Parsoid\HtmlToContentTransform;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWiki\Permissions\UltimateAuthority;
use MediaWiki\Rest\Handler\HtmlInputTransformHelper;
use MediaWiki\Rest\Handler\ParsoidFormatHelper;
@ -39,7 +39,7 @@ use Wikimedia\Parsoid\Parsoid;
/**
* @group Database
* @covers \MediaWiki\Rest\Handler\ParsoidHandler
* @covers \MediaWiki\Parser\Parsoid\HTMLTransform
* @covers \MediaWiki\Parser\Parsoid\HtmlToContentTransform
*/
class ParsoidHandlerTest extends MediaWikiIntegrationTestCase {
use RestTestTrait;
@ -1325,10 +1325,10 @@ class ParsoidHandlerTest extends MediaWikiIntegrationTestCase {
$parsoid = $this->createNoOpMock( Parsoid::class, [ 'dom2wikitext' ] );
$parsoid->method( 'dom2wikitext' )->willThrowException( $throw );
// Make a fake HTMLTransformFactory that returns an HTMLTransform that uses the fake Parsoid.
/** @var HTMLTransformFactory|MockObject $factory */
$factory = $this->createNoOpMock( HTMLTransformFactory::class, [ 'getHTMLTransform' ] );
$factory->method( 'getHTMLTransform' )->willReturn( new HTMLTransform(
// Make a fake HtmlTransformFactory that returns an HtmlToContentTransform that uses the fake Parsoid.
/** @var HtmlTransformFactory|MockObject $factory */
$factory = $this->createNoOpMock( HtmlTransformFactory::class, [ 'getHtmlToContentTransform' ] );
$factory->method( 'getHtmlToContentTransform' )->willReturn( new HtmlToContentTransform(
$html,
$page,
$parsoid,
@ -1337,8 +1337,8 @@ class ParsoidHandlerTest extends MediaWikiIntegrationTestCase {
$this->getServiceContainer()->getContentHandlerFactory()
) );
// Use an HtmlInputTransformHelper that uses the fake HTMLTransformFactory, so it ends up
// using the HTMLTransform that has the fake Parsoid which throws an exception.
// Use an HtmlInputTransformHelper that uses the fake HtmlTransformFactory, so it ends up
// using the HtmlToContentTransform that has the fake Parsoid which throws an exception.
$handler = $this->newParsoidHandler( [
'getHtmlInputHelper' => function () use ( $factory, $page, $html ) {
$helper = new HtmlInputTransformHelper(

View file

@ -129,7 +129,7 @@ class RevisionHTMLHandlerTest extends MediaWikiIntegrationTestCase {
$this->getParsoidOutputStash(),
$services->getStatsdDataFactory(),
$parsoidOutputAccess,
$services->getHTMLTransformFactory()
$services->getHtmlTransformFactory()
);
return $handler;

View file

@ -1,42 +0,0 @@
<?php
namespace MediaWiki\Tests\Parser\Parsoid;
use MediaWiki\Page\PageIdentityValue;
use MediaWiki\Parser\Parsoid\HTMLTransform;
use MediaWiki\Parser\Parsoid\HTMLTransformFactory;
use MediaWikiIntegrationTestCase;
use Wikimedia\Parsoid\Utils\ContentUtils;
use Wikimedia\Parsoid\Utils\DOMCompat;
/**
* @coversDefaultClass \MediaWiki\Parser\Parsoid\HTMLTransformFactory
*/
class HTMLTransformFactoryTest extends MediaWikiIntegrationTestCase {
/**
* @covers ::__construct
*/
public function testGetContentTransformFactory() {
$factory = $this->getServiceContainer()->getHTMLTransformFactory();
$this->assertInstanceOf( HTMLTransformFactory::class, $factory );
}
/**
* @covers ::getHTMLTransform
*/
public function testGetHTMLTransform() {
$factory = $this->getServiceContainer()->getHTMLTransformFactory();
$modifiedHTML = '<p>Hello World</p>';
$transform = $factory->getHTMLTransform(
$modifiedHTML,
PageIdentityValue::localIdentity( 0, NS_MAIN, 'Test' )
);
$this->assertInstanceOf( HTMLTransform::class, $transform );
$actualHTML = ContentUtils::toXML( DOMCompat::getBody( $transform->getModifiedDocument() ) );
$this->assertStringContainsString( $modifiedHTML, $actualHTML );
}
}

View file

@ -8,7 +8,7 @@ use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use LogicException;
use MediaWiki\Page\PageIdentityValue;
use MediaWiki\Parser\Parsoid\Config\PageConfigFactory;
use MediaWiki\Parser\Parsoid\HTMLTransform;
use MediaWiki\Parser\Parsoid\HtmlToContentTransform;
use MediaWiki\Revision\MutableRevisionRecord;
use MediaWikiIntegrationTestCase;
use PHPUnit\Framework\MockObject\MockObject;
@ -19,9 +19,9 @@ use Wikimedia\Parsoid\Utils\ContentUtils;
use WikitextContent;
/**
* @covers \MediaWiki\Parser\Parsoid\HTMLTransform
* @covers \MediaWiki\Parser\Parsoid\HtmlToContentTransform
*/
class HTMLTransformTest extends MediaWikiIntegrationTestCase {
class HtmlToContentTransformTest extends MediaWikiIntegrationTestCase {
private const MODIFIED_HTML = '<html><head>' .
'<meta charset="utf-8"/><meta property="mw:htmlVersion" content="2.4.0"/></head>' .
'<body>Modified HTML</body></html>';
@ -40,7 +40,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
] ]
] ] ];
private function setOriginalData( HTMLTransform $transform ) {
private function setOriginalData( HtmlToContentTransform $transform ) {
$transform->setOriginalRevisionId( 1 );
$transform->setOriginalSchemaVersion( '2.4.0' );
$transform->setOriginalHtml( self::ORIG_HTML );
@ -48,12 +48,12 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
$transform->setOriginalDataParsoid( self::ORIG_DATA_PARSOID );
}
private function createHTMLTransform( $html = '' ) {
private function createHtmlToContentTransform( $html = '' ) {
/** @var PageConfigFactory|MockObject $pageConfigFactory */
$pageConfigFactory = $this->createNoOpMock( PageConfigFactory::class, [ 'create' ] );
$pageConfigFactory->method( 'create' )->willReturn( new MockPageConfig( [], null ) );
return new HTMLTransform(
return new HtmlToContentTransform(
$html ?? self::ORIG_HTML,
PageIdentityValue::localIdentity( 7, NS_MAIN, 'Test' ),
new Parsoid(
@ -66,8 +66,8 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
);
}
private function createHTMLTransformWithOriginalData( $html = '' ) {
$transform = $this->createHTMLTransform( $html );
private function createHtmlToContentTransformWithOriginalData( $html = '' ) {
$transform = $this->createHtmlToContentTransform( $html );
// Set some options to assert on $transform object.
$transform->setOptions( [
@ -81,7 +81,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testGetOriginalBodyRequiresValidDataParsoid() {
$transform = $this->createHTMLTransform( self::ORIG_HTML );
$transform = $this->createHtmlToContentTransform( self::ORIG_HTML );
$transform->setOriginalSchemaVersion( '2.4.0' );
$transform->setOriginalHtml( self::ORIG_HTML );
@ -100,7 +100,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testHasOriginalHtml() {
$transform = $this->createHTMLTransform( self::MODIFIED_HTML );
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML );
$this->assertFalse( $transform->hasOriginalHtml() );
$transform->setOriginalDataParsoid( self::ORIG_DATA_PARSOID );
@ -111,10 +111,10 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testGetOriginalSchemaVersion() {
$transform = $this->createHTMLTransform( self::ORIG_HTML ); // no version inline
$transform = $this->createHtmlToContentTransform( self::ORIG_HTML ); // no version inline
$this->assertSame( Parsoid::defaultHTMLVersion(), $transform->getOriginalSchemaVersion() );
$transform = $this->createHTMLTransform( self::MODIFIED_HTML ); // has version inline
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML ); // has version inline
$this->assertSame( '2.4.0', $transform->getOriginalSchemaVersion() );
$transform->setOriginalSchemaVersion( '2.3.0' );
@ -122,14 +122,14 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testGetSchemaVersion() {
$transform = $this->createHTMLTransform( self::ORIG_HTML ); // no version inline
$transform = $this->createHtmlToContentTransform( self::ORIG_HTML ); // no version inline
$this->assertSame( Parsoid::defaultHTMLVersion(), $transform->getSchemaVersion() );
// Should have an effect, since the HTML has no version specified inline
$transform->setOriginalSchemaVersion( '2.3.0' );
$this->assertSame( '2.3.0', $transform->getSchemaVersion() );
$transform = $this->createHTMLTransform( self::MODIFIED_HTML ); // has version inline
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML ); // has version inline
$this->assertSame( '2.4.0', $transform->getSchemaVersion() );
// Should have no impact, since the HTML has a version specified inline
@ -138,7 +138,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testHasOriginalDataParsoid() {
$transform = $this->createHTMLTransform( self::MODIFIED_HTML );
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML );
$this->assertFalse( $transform->hasOriginalDataParsoid() );
$transform->setOriginalDataParsoid( self::ORIG_DATA_PARSOID );
@ -146,7 +146,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testGetOriginalHtml() {
$transform = $this->createHTMLTransform( self::MODIFIED_HTML );
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML );
$this->assertFalse( $transform->hasOriginalHtml() );
@ -158,7 +158,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testGetOriginalBody() {
$transform = $this->createHTMLTransform( self::MODIFIED_HTML );
$transform = $this->createHtmlToContentTransform( self::MODIFIED_HTML );
$transform->setOriginalSchemaVersion( '2.4.0' );
$transform->setOriginalHtml( self::ORIG_HTML );
@ -169,7 +169,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testOldId() {
$transform = $this->createHTMLTransformWithOriginalData();
$transform = $this->createHtmlToContentTransformWithOriginalData();
$this->assertSame( 1, $transform->getOriginalRevisionId() );
$this->assertTrue( $transform->knowsOriginalRevision() );
}
@ -179,19 +179,19 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
$rev = new MutableRevisionRecord( $page );
$rev->setId( 1337 );
$transform = $this->createHTMLTransformWithOriginalData();
$transform = $this->createHtmlToContentTransformWithOriginalData();
$transform->setOriginalRevision( $rev );
$this->assertTrue( $transform->knowsOriginalRevision() );
$this->assertSame( $rev->getId(), $transform->getOriginalRevisionId() );
}
public function testGetContentModel() {
$transform = $this->createHTMLTransformWithOriginalData();
$transform = $this->createHtmlToContentTransformWithOriginalData();
$this->assertSame( 'wikitext', $transform->getContentModel() );
}
public function testGetEnvOpts() {
$transform = $this->createHTMLTransformWithOriginalData();
$transform = $this->createHtmlToContentTransformWithOriginalData();
$this->assertSame( 'byte', $transform->getOffsetType() );
}
@ -201,7 +201,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testDowngrade() {
$html = $this->getTextFromFile( 'Minimal.html' ); // Uses profile version 2.4.0
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
$transform->setOriginalSchemaVersion( '999.0.0' );
$transform->setOriginalHtml( $html );
@ -219,7 +219,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testModifiedDataMW() {
$html = $this->getTextFromFile( 'Minimal-999.html' ); // Uses profile version 2.4.0
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
$transform->setOriginalHtml( self::ORIG_HTML );
$transform->setOriginalDataParsoid( self::ORIG_DATA_PARSOID );
@ -234,7 +234,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testMetrics() {
$html = '<html><body>xyz</body></html>'; // no schema version!
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
$metrics = $this->createNoOpMock( StatsdDataFactoryInterface::class, [ 'increment' ] );
$metrics->expects( $this->atLeastOnce() )->method( 'increment' );
@ -247,7 +247,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testHtmlSize() {
$html = '<html><body>hällö</body></html>'; // use some multi-byte characters
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
// make sure it counts characters, not bytes
$this->assertSame( 31, $transform->getModifiedHtmlSize() );
@ -255,7 +255,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testSetOriginalHTML() {
$html = '<html><body>xyz</body></html>'; // no schema version!
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
// mainly check that this doesn't explode.
$transform->setOriginalSchemaVersion( '999.0.0' );
@ -269,7 +269,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
// Use HTML that contains a schema version!
// Otherwise, we won't trigger the right error.
$html = $this->getTextFromFile( 'Minimal.html' );
$transform = $this->createHTMLTransform( $html );
$transform = $this->createHtmlToContentTransform( $html );
$transform->getModifiedDocument();
@ -280,7 +280,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testOffsetTypeMismatch() {
$transform = $this->createHTMLTransform( self::ORIG_HTML );
$transform = $this->createHtmlToContentTransform( self::ORIG_HTML );
$this->setOriginalData( $transform );
// Set some options to assert on $transform.
@ -299,7 +299,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
}
public function testHtmlToWikitextContent() {
$transform = $this->createHTMLTransform( self::ORIG_HTML );
$transform = $this->createHtmlToContentTransform( self::ORIG_HTML );
// Set some options to assert on $transform.
$transform->setOptions( [
@ -314,7 +314,7 @@ class HTMLTransformTest extends MediaWikiIntegrationTestCase {
public function testHtmlToJsonContent() {
$jsonConfigHtml = $this->getTextFromFile( 'JsonConfig.html' );
$transform = $this->createHTMLTransform( $jsonConfigHtml );
$transform = $this->createHtmlToContentTransform( $jsonConfigHtml );
// Set some options to assert on $transform.
$transform->setOptions( [

View file

@ -0,0 +1,42 @@
<?php
namespace MediaWiki\Tests\Parser\Parsoid;
use MediaWiki\Page\PageIdentityValue;
use MediaWiki\Parser\Parsoid\HtmlToContentTransform;
use MediaWiki\Parser\Parsoid\HtmlTransformFactory;
use MediaWikiIntegrationTestCase;
use Wikimedia\Parsoid\Utils\ContentUtils;
use Wikimedia\Parsoid\Utils\DOMCompat;
/**
* @coversDefaultClass \MediaWiki\Parser\Parsoid\HtmlTransformFactory
*/
class HtmlTransformFactoryTest extends MediaWikiIntegrationTestCase {
/**
* @covers ::__construct
*/
public function testGetContentTransformFactory() {
$factory = $this->getServiceContainer()->getHtmlTransformFactory();
$this->assertInstanceOf( HtmlTransformFactory::class, $factory );
}
/**
* @covers ::getHtmlToContentTransform
*/
public function testGetHtmlToContentTransform() {
$factory = $this->getServiceContainer()->getHtmlTransformFactory();
$modifiedHTML = '<p>Hello World</p>';
$transform = $factory->getHtmlToContentTransform(
$modifiedHTML,
PageIdentityValue::localIdentity( 0, NS_MAIN, 'Test' )
);
$this->assertInstanceOf( HtmlToContentTransform::class, $transform );
$actualHTML = ContentUtils::toXML( DOMCompat::getBody( $transform->getModifiedDocument() ) );
$this->assertStringContainsString( $modifiedHTML, $actualHTML );
}
}