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' );