diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php b/www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php new file mode 100644 index 00000000..33fd68f6 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php @@ -0,0 +1,56 @@ +<?php + +/** + * @covers PageLangLogFormatter + */ +class PageLangLogFormatterTest extends LogFormatterTestCase { + + protected function setUp() { + parent::setUp(); + + // Disable cldr extension + $this->setMwGlobals( 'wgHooks', [] ); + // Register LogHandler, see $wgPageLanguageUseDB in Setup.php + $this->mergeMwGlobalArrayValue( 'wgLogActionsHandlers', [ + 'pagelang/pagelang' => PageLangLogFormatter::class, + ] ); + } + + /** + * Provide different rows from the logging table to test + * for backward compatibility. + * Do not change the existing data, just add a new database row + */ + public static function providePageLangLogDatabaseRows() { + return [ + // Current format + [ + [ + 'type' => 'pagelang', + 'action' => 'pagelang', + 'comment' => 'page lang comment', + 'namespace' => NS_MAIN, + 'title' => 'Page', + 'params' => [ + '4::oldlanguage' => 'en', + '5::newlanguage' => 'de[def]', + ], + ], + [ + 'text' => 'User changed the language of Page from English (en) to Deutsch (de) [default]', + 'api' => [ + 'oldlanguage' => 'en', + 'newlanguage' => 'de[def]' + ], + ], + ], + ]; + } + + /** + * @dataProvider providePageLangLogDatabaseRows + */ + public function testPageLangLogDatabaseRows( $row, $extra ) { + $this->doTestLogFormatter( $row, $extra ); + } +} |