summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php')
-rw-r--r--www/wiki/tests/phpunit/includes/logging/PageLangLogFormatterTest.php56
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 );
+ }
+}