4 * @author Niklas Laxström
8 namespace LocalisationUpdate;
10 class FinderTest extends \PHPUnit_Framework_TestCase {
11 public function testGetComponents() {
14 'TranslateSearch' => '/IP/extensions/Translate/TranslateSearch.i18n.php',
15 'Babel' => '/IP/extensions/Babel/Babel.i18n.php',
18 'Babel' => '/IP/extensions/Babel/i18n',
20 'core' => '/IP/extensions/Door/i18n/core',
21 'extra' => '/IP/extensions/Door/i18n/extra',
23 'Vector' => '/IP/skins/Vector/i18n',
27 $observed = $finder->getComponents();
30 'repo' => 'mediawiki',
31 'orig' => "file:///IP/languages/messages/Messages*.php",
32 'path' => 'languages/messages/i18n/*.json',
35 $this->assertArrayHasKey( 'core', $observed );
36 $this->assertEquals( $expected, $observed['core'], 'Core php file' );
39 'repo' => 'extension',
40 'name' => 'Translate',
41 'orig' => 'file:///IP/extensions/Translate/TranslateSearch.i18n.php',
42 'path' => 'TranslateSearch.i18n.php'
44 $this->assertArrayHasKey( 'TranslateSearch', $observed );
45 $this->assertEquals( $expected, $observed['TranslateSearch'], 'PHP only extension' );
48 'repo' => 'extension',
50 'orig' => 'file:///IP/extensions/Babel/i18n/*.json',
51 'path' => 'i18n/*.json'
53 $this->assertArrayHasKey( 'Babel-0', $observed );
54 $this->assertEquals( $expected, $observed['Babel-0'], 'PHP&JSON extension' );
57 'repo' => 'extension',
59 'orig' => 'file:///IP/extensions/Door/i18n/core/*.json',
60 'path' => 'i18n/core/*.json'
62 $this->assertArrayHasKey( 'Door-core', $observed );
63 $this->assertEquals( $expected, $observed['Door-core'], 'Multidir json extension' );
66 'repo' => 'extension',
68 'orig' => 'file:///IP/extensions/Door/i18n/extra/*.json',
69 'path' => 'i18n/extra/*.json'
71 $this->assertArrayHasKey( 'Door-extra', $observed );
72 $this->assertEquals( $expected, $observed['Door-extra'], 'Multidir json extension' );
77 'orig' => 'file:///IP/skins/Vector/i18n/*.json',
78 'path' => 'i18n/*.json'
80 $this->assertArrayHasKey( 'Vector-0', $observed );
81 $this->assertEquals( $expected, $observed['Vector-0'], 'Json skin' );