3 require_once( 'PHPUnit.php' );
4 require_once( '../includes/Defines.php' );
5 require_once( '../includes/Article.php' );
7 class ArticleTest
extends PHPUnit_TestCase
{
8 var $saveGlobals = array();
10 function ArticleTest( $name ) {
11 $this->PHPUnit_TestCase( $name );
16 'wgLegacyEncoding' => false,
17 'wgUseLatin1' => false,
18 'wgCompressRevisions' => false,
19 'wgInputEncoding' => 'utf-8',
20 'wgOutputEncoding' => 'utf-8' );
21 foreach( $globalSet as $var => $data ) {
22 $this->saveGlobals
[$var] = $GLOBALS[$var];
23 $GLOBALS[$var] = $data;
28 foreach( $this->saveGlobals
as $var => $data ) {
29 $GLOBALS[$var] = $data;
33 function testGetRevisionText() {
36 $row->old_text
= 'This is a bunch of revision text.';
38 'This is a bunch of revision text.',
39 Revision
::getRevisionText( $row ) );
42 function testGetRevisionTextGzip() {
44 $row->old_flags
= 'gzip';
45 $row->old_text
= gzdeflate( 'This is a bunch of revision text.' );
47 'This is a bunch of revision text.',
48 Revision
::getRevisionText( $row ) );
51 function testGetRevisionTextUtf8Native() {
53 $row->old_flags
= 'utf-8';
54 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
55 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
57 "Wiki est l'\xc3\xa9cole superieur !",
58 Revision
::getRevisionText( $row ) );
61 function testGetRevisionTextUtf8Legacy() {
64 $row->old_text
= "Wiki est l'\xe9cole superieur !";
65 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
67 "Wiki est l'\xc3\xa9cole superieur !",
68 Revision
::getRevisionText( $row ) );
71 function testGetRevisionTextUtf8NativeGzip() {
73 $row->old_flags
= 'gzip,utf-8';
74 $row->old_text
= gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
75 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
77 "Wiki est l'\xc3\xa9cole superieur !",
78 Revision
::getRevisionText( $row ) );
81 function testGetRevisionTextUtf8LegacyGzip() {
83 $row->old_flags
= 'gzip';
84 $row->old_text
= gzdeflate( "Wiki est l'\xe9cole superieur !" );
85 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
87 "Wiki est l'\xc3\xa9cole superieur !",
88 Revision
::getRevisionText( $row ) );
91 function testCompressRevisionTextUtf8() {
92 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
93 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
94 $this->assertTrue( false !== strpos( $row->old_flags
, 'utf-8' ),
95 "Flags should contain 'utf-8'" );
96 $this->assertFalse( false !== strpos( $row->old_flags
, 'gzip' ),
97 "Flags should not contain 'gzip'" );
98 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
99 $row->old_text
, "Direct check" );
100 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
101 Revision
::getRevisionText( $row ), "getRevisionText" );
104 function testCompressRevisionTextLatin1() {
105 $GLOBALS['wgUseLatin1'] = true;
106 $row->old_text
= "Wiki est l'\xe9cole superieur !";
107 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
108 $this->assertFalse( false !== strpos( $row->old_flags
, 'utf-8' ),
109 "Flags should not contain 'utf-8'" );
110 $this->assertFalse( false !== strpos( $row->old_flags
, 'gzip' ),
111 "Flags should not contain 'gzip'" );
112 $this->assertEquals( "Wiki est l'\xe9cole superieur !",
113 $row->old_text
, "Direct check" );
114 $this->assertEquals( "Wiki est l'\xe9cole superieur !",
115 Revision
::getRevisionText( $row ), "getRevisionText" );
118 function testCompressRevisionTextUtf8Gzip() {
119 $GLOBALS['wgCompressRevisions'] = true;
120 $row->old_text
= "Wiki est l'\xc3\xa9cole superieur !";
121 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
122 $this->assertTrue( false !== strpos( $row->old_flags
, 'utf-8' ),
123 "Flags should contain 'utf-8'" );
124 $this->assertTrue( false !== strpos( $row->old_flags
, 'gzip' ),
125 "Flags should contain 'gzip'" );
126 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
127 gzinflate( $row->old_text
), "Direct check" );
128 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
129 Revision
::getRevisionText( $row ), "getRevisionText" );
132 function testCompressRevisionTextLatin1Gzip() {
133 $GLOBALS['wgCompressRevisions'] = true;
134 $GLOBALS['wgUseLatin1'] = true;
136 $row->old_text
= "Wiki est l'\xe9cole superieur !";
137 $row->old_flags
= Revision
::compressRevisionText( $row->old_text
);
138 $this->assertFalse( false !== strpos( $row->old_flags
, 'utf-8' ),
139 "Flags should not contain 'utf-8'" );
140 $this->assertTrue( false !== strpos( $row->old_flags
, 'gzip' ),
141 "Flags should contain 'gzip'" );
142 $this->assertEquals( "Wiki est l'\xe9cole superieur !",
143 gzinflate( $row->old_text
), "Direct check" );
144 $this->assertEquals( "Wiki est l'\xe9cole superieur !",
145 Revision
::getRevisionText( $row ), "getRevisionText" );