1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?php
/**
* The IniFFS class is responsible for loading messages from .ini
* files, which are sometimes used for translations.
* @author Niklas Laxström
* @copyright Copyright © 2012-2013, Niklas Laxström
* @license GPL-2.0+
* @file
*/
class IniFFSTest extends MediaWikiTestCase {
protected $groupConfiguration = array(
'BASIC' => array(
'class' => 'FileBasedMessageGroup',
'id' => 'test-id',
'label' => 'Test Label',
'namespace' => 'NS_MEDIAWIKI',
'description' => 'Test description',
),
'FILES' => array(
'class' => 'IniFFS',
'sourcePattern' => 'ignored',
),
);
public function testParsing() {
$file = file_get_contents( __DIR__ . '/../data/IniFFSTest1.ini' );
/**
* @var FileBasedMessageGroup $group
*/
$group = MessageGroupBase::factory( $this->groupConfiguration );
$ffs = new IniFFS( $group );
$this->assertTrue( IniFFS::isValid( $file ) );
$parsed = $ffs->readFromVariable( $file );
$expected = array(
'hello' => 'Hello',
'world' => 'World!',
'all' => 'all = all',
'foo.bar' => 'bar',
'quote' => "We're having fun?",
);
$expected = array(
'MESSAGES' => $expected,
'AUTHORS' => array( 'The king of very small kingdom' )
);
$this->assertEquals( $expected, $parsed );
}
public function testExport() {
global $wgSitename;
$file = file_get_contents( __DIR__ . '/../data/IniFFSTest2.ini' );
$file = str_replace( '$wgSitename', $wgSitename, $file );
$collection = new MockMessageCollectionForExport();
/**
* @var FileBasedMessageGroup $group
*/
$group = MessageGroupBase::factory( $this->groupConfiguration );
$ffs = new IniFFS( $group );
$this->assertEquals( $file, $ffs->writeIntoVariable( $collection ) );
}
}
|