If an object has already been unstubbed (i.e. we have a copy of the StubObject, which...
[lhc/web/wiklou.git] / tests / ArticleTest.php
1 <?php
2
3 class ArticleTest extends PHPUnit_Framework_TestCase {
4 var $saveGlobals = array();
5
6 function setUp() {
7 $globalSet = array(
8 'wgLegacyEncoding' => false,
9 'wgCompressRevisions' => false,
10 'wgInputEncoding' => 'utf-8',
11 'wgOutputEncoding' => 'utf-8' );
12 foreach( $globalSet as $var => $data ) {
13 $this->saveGlobals[$var] = $GLOBALS[$var];
14 $GLOBALS[$var] = $data;
15 }
16 }
17
18 function tearDown() {
19 foreach( $this->saveGlobals as $var => $data ) {
20 $GLOBALS[$var] = $data;
21 }
22 }
23
24 function testGetRevisionText() {
25 $row = new stdClass;
26 $row->old_flags = '';
27 $row->old_text = 'This is a bunch of revision text.';
28 $this->assertEquals(
29 'This is a bunch of revision text.',
30 Revision::getRevisionText( $row ) );
31 }
32
33 function testGetRevisionTextGzip() {
34 $row = new stdClass;
35 $row->old_flags = 'gzip';
36 $row->old_text = gzdeflate( 'This is a bunch of revision text.' );
37 $this->assertEquals(
38 'This is a bunch of revision text.',
39 Revision::getRevisionText( $row ) );
40 }
41
42 function testGetRevisionTextUtf8Native() {
43 $row = new stdClass;
44 $row->old_flags = 'utf-8';
45 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
46 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
47 $this->assertEquals(
48 "Wiki est l'\xc3\xa9cole superieur !",
49 Revision::getRevisionText( $row ) );
50 }
51
52 function testGetRevisionTextUtf8Legacy() {
53 $row = new stdClass;
54 $row->old_flags = '';
55 $row->old_text = "Wiki est l'\xe9cole superieur !";
56 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
57 $this->assertEquals(
58 "Wiki est l'\xc3\xa9cole superieur !",
59 Revision::getRevisionText( $row ) );
60 }
61
62 function testGetRevisionTextUtf8NativeGzip() {
63 $row = new stdClass;
64 $row->old_flags = 'gzip,utf-8';
65 $row->old_text = gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" );
66 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
67 $this->assertEquals(
68 "Wiki est l'\xc3\xa9cole superieur !",
69 Revision::getRevisionText( $row ) );
70 }
71
72 function testGetRevisionTextUtf8LegacyGzip() {
73 $row = new stdClass;
74 $row->old_flags = 'gzip';
75 $row->old_text = gzdeflate( "Wiki est l'\xe9cole superieur !" );
76 $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1';
77 $this->assertEquals(
78 "Wiki est l'\xc3\xa9cole superieur !",
79 Revision::getRevisionText( $row ) );
80 }
81
82 function testCompressRevisionTextUtf8() {
83 $row = new stdClass;
84 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
85 $row->old_flags = Revision::compressRevisionText( $row->old_text );
86 $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ),
87 "Flags should contain 'utf-8'" );
88 $this->assertFalse( false !== strpos( $row->old_flags, 'gzip' ),
89 "Flags should not contain 'gzip'" );
90 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
91 $row->old_text, "Direct check" );
92 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
93 Revision::getRevisionText( $row ), "getRevisionText" );
94 }
95
96 function testCompressRevisionTextUtf8Gzip() {
97 $GLOBALS['wgCompressRevisions'] = true;
98 $row = new stdClass;
99 $row->old_text = "Wiki est l'\xc3\xa9cole superieur !";
100 $row->old_flags = Revision::compressRevisionText( $row->old_text );
101 $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ),
102 "Flags should contain 'utf-8'" );
103 $this->assertTrue( false !== strpos( $row->old_flags, 'gzip' ),
104 "Flags should contain 'gzip'" );
105 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
106 gzinflate( $row->old_text ), "Direct check" );
107 $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !",
108 Revision::getRevisionText( $row ), "getRevisionText" );
109 }
110 }
111
112