summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php')
-rw-r--r--www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php b/www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php
new file mode 100644
index 00000000..1b4db0f4
--- /dev/null
+++ b/www/wiki/extensions/LocalisationUpdate/tests/phpunit/finder/FinderTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * @file
+ * @author Niklas Laxström
+ * @license GPL-2.0-or-later
+ */
+
+namespace LocalisationUpdate;
+
+/**
+ * @covers \LocalisationUpdate\Finder
+ */
+class FinderTest extends \PHPUnit\Framework\TestCase {
+ public function testGetComponents() {
+ $finder = new Finder(
+ [
+ 'TranslateSearch' => '/IP/extensions/Translate/TranslateSearch.i18n.php',
+ 'Babel' => '/IP/extensions/Babel/Babel.i18n.php',
+ ],
+ [
+ 'Babel' => '/IP/extensions/Babel/i18n',
+ 'Door' => [
+ 'core' => '/IP/extensions/Door/i18n/core',
+ 'extra' => '/IP/extensions/Door/i18n/extra',
+ ],
+ 'Vector' => '/IP/skins/Vector/i18n',
+ ],
+ '/IP'
+ );
+ $observed = $finder->getComponents();
+
+ $expected = [
+ 'repo' => 'mediawiki',
+ 'orig' => "file:///IP/languages/messages/Messages*.php",
+ 'path' => 'languages/messages/i18n/*.json',
+ ];
+
+ $this->assertArrayHasKey( 'core', $observed );
+ $this->assertEquals( $expected, $observed['core'], 'Core php file' );
+
+ $expected = [
+ 'repo' => 'extension',
+ 'name' => 'Translate',
+ 'orig' => 'file:///IP/extensions/Translate/TranslateSearch.i18n.php',
+ 'path' => 'TranslateSearch.i18n.php'
+ ];
+ $this->assertArrayHasKey( 'TranslateSearch', $observed );
+ $this->assertEquals( $expected, $observed['TranslateSearch'], 'PHP only extension' );
+
+ $expected = [
+ 'repo' => 'extension',
+ 'name' => 'Babel',
+ 'orig' => 'file:///IP/extensions/Babel/i18n/*.json',
+ 'path' => 'i18n/*.json'
+ ];
+ $this->assertArrayHasKey( 'Babel-0', $observed );
+ $this->assertEquals( $expected, $observed['Babel-0'], 'PHP&JSON extension' );
+
+ $expected = [
+ 'repo' => 'extension',
+ 'name' => 'Door',
+ 'orig' => 'file:///IP/extensions/Door/i18n/core/*.json',
+ 'path' => 'i18n/core/*.json'
+ ];
+ $this->assertArrayHasKey( 'Door-core', $observed );
+ $this->assertEquals( $expected, $observed['Door-core'], 'Multidir json extension' );
+
+ $expected = [
+ 'repo' => 'extension',
+ 'name' => 'Door',
+ 'orig' => 'file:///IP/extensions/Door/i18n/extra/*.json',
+ 'path' => 'i18n/extra/*.json'
+ ];
+ $this->assertArrayHasKey( 'Door-extra', $observed );
+ $this->assertEquals( $expected, $observed['Door-extra'], 'Multidir json extension' );
+
+ $expected = [
+ 'repo' => 'skin',
+ 'name' => 'Vector',
+ 'orig' => 'file:///IP/skins/Vector/i18n/*.json',
+ 'path' => 'i18n/*.json'
+ ];
+ $this->assertArrayHasKey( 'Vector-0', $observed );
+ $this->assertEquals( $expected, $observed['Vector-0'], 'Json skin' );
+ }
+}