Title::isValidMoveOperation needs a db
[lhc/web/wiklou.git] / tests / phpunit / includes / RevisionTest.php
1 <?php
2
3 class RevisionTest extends MediaWikiTestCase {
4 var $saveGlobals = array();
5
6 function setUp() {
7 global $wgContLang;
8 $wgContLang = Language::factory( 'en' );
9 $globalSet = array(
10 'wgLegacyEncoding' => false,
11 'wgCompressRevisions' => false,
12 );
13 foreach ( $globalSet as $var => $data ) {
14 $this->saveGlobals[$var] = $GLOBALS[$var];
15 $GLOBALS[$var] = $data;
16 }
17 }
18
19 function tearDown() {
20 foreach ( $this->saveGlobals as $var => $data ) {
21 $GLOBALS[$var] = $data;
22 }
23 }
24
25 function testGetRevisionText() {
26 $row = new stdClass;
27 $row->old_flags = '';
28 $row->old_text = 'This is a bunch of revision text.';
29 $this->assertEquals(
30 'This is a bunch of revision text.',
31 Revision::getRevisionText( $row ) );
32 }
33
34 function testGetRevisionTextGzip() {
35 if ( !function_exists( 'gzdeflate' ) ) {
36 $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
37 } else {
38 $row = new stdClass;
39 $row->old_flags = 'gzip';
40 $row->old_text = gzdeflate( 'This is a bunch of revision text.' );
41 $this->assertEquals(
42 'This is a bunch of revision text.',
43 Revision::getRevisionText( $row ) );
44 }
45 }
46
47 function testGetRevisionTextUtf8Native() {
48 $row = new stdClass;
49 $row->old_flags = 'utf-8';
50 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
51 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
52 $this->assertEquals(
53 "Wiki est l'\xc3\xa9cole superieur !",
54 Revision::getRevisionText( $row ) );
55 }
56
57 function testGetRevisionTextUtf8Legacy() {
58 $row = new stdClass;
59 $row->old_flags = '';
60 $row->old_text = "Wiki est l'\xe9cole superieur !";
61 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
62 $this->assertEquals(
63 "Wiki est l'\xc3\xa9cole superieur !",
64 Revision::getRevisionText( $row ) );
65 }
66
67 function testGetRevisionTextUtf8NativeGzip() {
68 if ( !function_exists( 'gzdeflate' ) ) {
69 $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
70 } else {
71 $row = new stdClass;
72 $row->old_flags = 'gzip,utf-8';
73 $row->old_text = gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
74 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
75 $this->assertEquals(
76 "Wiki est l'\xc3\xa9cole superieur !",
77 Revision::getRevisionText( $row ) );
78 }
79 }
80
81 function testGetRevisionTextUtf8LegacyGzip() {
82 if ( !function_exists( 'gzdeflate' ) ) {
83 $this->markTestSkipped( 'Gzip compression is not enabled (requires zlib).' );
84 } else {
85 $row = new stdClass;
86 $row->old_flags = 'gzip';
87 $row->old_text = gzdeflate( "Wiki est l'\xe9cole superieur !" );
88 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
89 $this->assertEquals(
90 "Wiki est l'\xc3\xa9cole superieur !",
91 Revision::getRevisionText( $row ) );
92 }
93 }
94
95 function testCompressRevisionTextUtf8() {
96 $row = new stdClass;
97 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
98 $row->old_flags = Revision::compressRevisionText( $row->old_text );
99 $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ),
100 "Flags should contain 'utf-8'" );
101 $this->assertFalse( false !== strpos( $row->old_flags, 'gzip' ),
102 "Flags should not contain 'gzip'" );
103 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
104 $row->old_text, "Direct check" );
105 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
106 Revision::getRevisionText( $row ), "getRevisionText" );
107 }
108
109 function testCompressRevisionTextUtf8Gzip() {
110 $GLOBALS['wgCompressRevisions'] = true;
111 $row = new stdClass;
112 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
113 $row->old_flags = Revision::compressRevisionText( $row->old_text );
114 $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ),
115 "Flags should contain 'utf-8'" );
116 $this->assertTrue( false !== strpos( $row->old_flags, 'gzip' ),
117 "Flags should contain 'gzip'" );
118 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
119 gzinflate( $row->old_text ), "Direct check" );
120 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
121 Revision::getRevisionText( $row ), "getRevisionText" );
122 }
123 }
124
125