17 'TranslateSearch' =>
'/IP/extensions/Translate/TranslateSearch.i18n.php',
18 'Babel' =>
'/IP/extensions/Babel/Babel.i18n.php',
21 'Babel' =>
'/IP/extensions/Babel/i18n',
23 'core' =>
'/IP/extensions/Door/i18n/core',
24 'extra' =>
'/IP/extensions/Door/i18n/extra',
26 'Vector' =>
'/IP/skins/Vector/i18n',
30 $observed = $finder->getComponents();
33 'repo' =>
'mediawiki',
34 'orig' =>
"file:///IP/languages/messages/Messages*.php",
35 'path' =>
'languages/messages/i18n/*.json',
38 $this->assertArrayHasKey(
'core', $observed );
39 $this->assertEquals( $expected, $observed[
'core'],
'Core php file' );
42 'repo' =>
'extension',
43 'name' =>
'Translate',
44 'orig' =>
'file:///IP/extensions/Translate/TranslateSearch.i18n.php',
45 'path' =>
'TranslateSearch.i18n.php'
47 $this->assertArrayHasKey(
'TranslateSearch', $observed );
48 $this->assertEquals( $expected, $observed[
'TranslateSearch'],
'PHP only extension' );
51 'repo' =>
'extension',
53 'orig' =>
'file:///IP/extensions/Babel/i18n/*.json',
54 'path' =>
'i18n/*.json'
56 $this->assertArrayHasKey(
'Babel-0', $observed );
57 $this->assertEquals( $expected, $observed[
'Babel-0'],
'PHP&JSON extension' );
60 'repo' =>
'extension',
62 'orig' =>
'file:///IP/extensions/Door/i18n/core/*.json',
63 'path' =>
'i18n/core/*.json'
65 $this->assertArrayHasKey(
'Door-core', $observed );
66 $this->assertEquals( $expected, $observed[
'Door-core'],
'Multidir json extension' );
69 'repo' =>
'extension',
71 'orig' =>
'file:///IP/extensions/Door/i18n/extra/*.json',
72 'path' =>
'i18n/extra/*.json'
74 $this->assertArrayHasKey(
'Door-extra', $observed );
75 $this->assertEquals( $expected, $observed[
'Door-extra'],
'Multidir json extension' );
80 'orig' =>
'file:///IP/skins/Vector/i18n/*.json',
81 'path' =>
'i18n/*.json'
83 $this->assertArrayHasKey(
'Vector-0', $observed );
84 $this->assertEquals( $expected, $observed[
'Vector-0'],
'Json skin' );