3 class ArticleTest
extends PHPUnit_Framework_TestCase
{
4 var $saveGlobals = array();
8 $wgContLang = Language
::factory( 'en' );
10 'wgLegacyEncoding' => false,
11 'wgCompressRevisions' => false,
12 'wgInputEncoding' => 'utf-8',
13 'wgOutputEncoding' => 'utf-8' );
14 foreach( $globalSet as $var => $data ) {
15 $this->saveGlobals
[$var] = $GLOBALS[$var];
16 $GLOBALS[$var] = $data;
21 foreach( $this->saveGlobals
as $var => $data ) {
22 $GLOBALS[$var] = $data;
26 function testGetRevisionText() {
29 $row->old_text
= 'This is a bunch of revision text.';
31 'This is a bunch of revision text.',
32 Revision
::getRevisionText( $row ) );
35 function testGetRevisionTextGzip() {
37 $row->old_flags
= 'gzip';
38 $row->old_text
= gzdeflate( 'This is a bunch of revision text.' );
40 'This is a bunch of revision text.',
41 Revision
::getRevisionText( $row ) );
44 function testGetRevisionTextUtf8Native() {
46 $row->old_flags
= 'utf-8';
47 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
48 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
50 "Wiki est l'\xc3\xa9cole superieur !",
51 Revision
::getRevisionText( $row ) );
54 function testGetRevisionTextUtf8Legacy() {
57 $row->old_text
= "Wiki est l'\xe9cole superieur !";
58 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
60 "Wiki est l'\xc3\xa9cole superieur !",
61 Revision
::getRevisionText( $row ) );
64 function testGetRevisionTextUtf8NativeGzip() {
66 $row->old_flags
= 'gzip,utf-8';
67 $row->old_text
= gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
68 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
70 "Wiki est l'\xc3\xa9cole superieur !",
71 Revision
::getRevisionText( $row ) );
74 function testGetRevisionTextUtf8LegacyGzip() {
76 $row->old_flags
= 'gzip';
77 $row->old_text
= gzdeflate( "Wiki est l'\xe9cole superieur !" );
78 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
80 "Wiki est l'\xc3\xa9cole superieur !",
81 Revision
::getRevisionText( $row ) );
84 function testCompressRevisionTextUtf8() {
86 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
87 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
88 $this->assertTrue( false !== strpos( $row->old_flags
, 'utf-8' ),
89 "Flags should contain 'utf-8'" );
90 $this->assertFalse( false !== strpos( $row->old_flags
, 'gzip' ),
91 "Flags should not contain 'gzip'" );
92 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
93 $row->old_text
, "Direct check" );
94 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
95 Revision
::getRevisionText( $row ), "getRevisionText" );
98 function testCompressRevisionTextUtf8Gzip() {
99 $GLOBALS['wgCompressRevisions'] = true;
101 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
102 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
103 $this->assertTrue( false !== strpos( $row->old_flags
, 'utf-8' ),
104 "Flags should contain 'utf-8'" );
105 $this->assertTrue( false !== strpos( $row->old_flags
, 'gzip' ),
106 "Flags should contain 'gzip'" );
107 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
108 gzinflate( $row->old_text
), "Direct check" );
109 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
110 Revision
::getRevisionText( $row ), "getRevisionText" );