diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2023-06-26 03:13:42 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2023-06-26 03:13:42 +0000 |
commit | 7b7f1181d325b63499a456de78017abdf16a6386 (patch) | |
tree | 604c5d480c3eb181df4a09553f0856954d84e196 /tests/phpunit/includes/diff/TextSlotDiffRendererTest.php | |
parent | e61ec36de7a0dc9757ebcad7c97b728a54725b7e (diff) | |
parent | 8983c9d862959402e7818c779c8e1a3a957abae1 (diff) | |
download | mediawikicore-7b7f1181d325b63499a456de78017abdf16a6386.tar.gz mediawikicore-7b7f1181d325b63499a456de78017abdf16a6386.zip |
Merge "diff: Move SlotDiffRenderer::getTablePrefix() parts assembly up to DifferenceEngine"
Diffstat (limited to 'tests/phpunit/includes/diff/TextSlotDiffRendererTest.php')
-rw-r--r-- | tests/phpunit/includes/diff/TextSlotDiffRendererTest.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php b/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php index f428b677928a..d61e51bc5fcf 100644 --- a/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php +++ b/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php @@ -1,5 +1,6 @@ <?php +use MediaWiki\MainConfigNames; use Wikimedia\Assert\ParameterTypeException; /** @@ -128,4 +129,60 @@ class TextSlotDiffRendererTest extends MediaWikiIntegrationTestCase { return ContentHandler::makeContent( $str, null, $model ); } + public static function provideGetTablePrefix() { + return [ + 'php' => [ + TextSlotDiffRenderer::ENGINE_PHP, + [ + TextSlotDiffRenderer::INLINE_LEGEND_KEY => '<div></div>', + TextSlotDiffRenderer::INLINE_SWITCHER_KEY => null + ] + ], + 'wikidiff2' => [ + TextSlotDiffRenderer::ENGINE_WIKIDIFF2, + [ + TextSlotDiffRenderer::INLINE_LEGEND_KEY => + 'class="mw-diff-inline-legend mw-diff-element-hidden"', + TextSlotDiffRenderer::INLINE_SWITCHER_KEY => 'mw-diffPage-inlineToggle-container' + ] + ], + 'inline' => [ + TextSlotDiffRenderer::ENGINE_WIKIDIFF2_INLINE, + [ + TextSlotDiffRenderer::INLINE_LEGEND_KEY => + 'class="mw-diff-inline-legend".*\(diff-inline-tooltip-ins\)', + TextSlotDiffRenderer::INLINE_SWITCHER_KEY => 'mw-diffPage-inlineToggle-container' + ] + ] + ]; + } + + /** + * @dataProvider provideGetTablePrefix + * @param string $engine + * @param string[] $expectedPatterns + */ + public function testGetTablePrefix( $engine, $expectedPatterns ) { + OOUI\Theme::setSingleton( new OOUI\BlankTheme() ); + $this->overrideConfigValue( MainConfigNames::ShowDiffToggleSwitch, true ); + + $slotDiffRenderer = $this->getTextSlotDiffRenderer(); + $slotDiffRenderer->setHookContainer( $this->createHookContainer() ); + $slotDiffRenderer->setEngine( $engine ); + + $context = new RequestContext; + $context->setLanguage( 'qqx' ); + + $title = $this->getServiceContainer()->getTitleFactory()->newFromText( 'Test' ); + $result = $slotDiffRenderer->getTablePrefix( $context, $title ); + $this->assertSameSize( $expectedPatterns, $result ); + foreach ( $expectedPatterns as $key => $pattern ) { + if ( $pattern === null ) { + $this->assertNull( $result[$key], "\$result[$key]" ); + } else { + $this->assertMatchesRegularExpression( + "#$pattern#", $result[$key], "\$result[$key]" ); + } + } + } } |