From cfd54324d9300a05e054905ecad11c7016cda41e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 23 Oct 2004 09:19:00 +0000 Subject: [PATCH] Add initial tests for Article::getRevisionText and Article::compressRevision --- tests/ArticleTest.php | 150 ++++++++++++++++++++++++++++++++++++++++++ tests/RunTests.php | 1 + 2 files changed, 151 insertions(+) create mode 100644 tests/ArticleTest.php diff --git a/tests/ArticleTest.php b/tests/ArticleTest.php new file mode 100644 index 0000000000..15b8eba100 --- /dev/null +++ b/tests/ArticleTest.php @@ -0,0 +1,150 @@ +PHPUnit_TestCase( $name ); + } + + function setUp() { + $globalSet = array( + 'wgLegacyEncoding' => false, + 'wgUseLatin1' => false, + 'wgCompressRevisions' => false, + 'wgInputEncoding' => 'utf-8', + 'wgOutputEncoding' => 'utf-8' ); + foreach( $globalSet as $var => $data ) { + $this->saveGlobals[$var] = $GLOBALS[$var]; + $GLOBALS[$var] = $data; + } + } + + function tearDown() { + foreach( $this->saveGlobals as $var => $data ) { + $GLOBALS[$var] = $data; + } + } + + function testGetRevisionText() { + $row = new stdClass; + $row->old_flags = ''; + $row->old_text = 'This is a bunch of revision text.'; + $this->assertEquals( + 'This is a bunch of revision text.', + Article::getRevisionText( $row ) ); + } + + function testGetRevisionTextGzip() { + $row = new stdClass; + $row->old_flags = 'gzip'; + $row->old_text = gzdeflate( 'This is a bunch of revision text.' ); + $this->assertEquals( + 'This is a bunch of revision text.', + Article::getRevisionText( $row ) ); + } + + function testGetRevisionTextUtf8Native() { + $row = new stdClass; + $row->old_flags = 'utf-8'; + $row->old_text = "Wiki est l'\xc3\xa9cole superieur !"; + $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1'; + $this->assertEquals( + "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ) ); + } + + function testGetRevisionTextUtf8Legacy() { + $row = new stdClass; + $row->old_flags = ''; + $row->old_text = "Wiki est l'\xe9cole superieur !"; + $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1'; + $this->assertEquals( + "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ) ); + } + + function testGetRevisionTextUtf8NativeGzip() { + $row = new stdClass; + $row->old_flags = 'gzip,utf-8'; + $row->old_text = gzdeflate( "Wiki est l'\xc3\xa9cole superieur !" ); + $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1'; + $this->assertEquals( + "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ) ); + } + + function testGetRevisionTextUtf8LegacyGzip() { + $row = new stdClass; + $row->old_flags = 'gzip'; + $row->old_text = gzdeflate( "Wiki est l'\xe9cole superieur !" ); + $GLOBALS['wgLegacyEncoding'] = 'iso-8859-1'; + $this->assertEquals( + "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ) ); + } + + function testCompressRevisionTextUtf8() { + $row->old_text = "Wiki est l'\xc3\xa9cole superieur !"; + $row->old_flags = Article::compressRevisionText( $row->old_text ); + $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ), + "Flags should contain 'utf-8'" ); + $this->assertFalse( false !== strpos( $row->old_flags, 'gzip' ), + "Flags should not contain 'gzip'" ); + $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !", + $row->old_text, "Direct check" ); + $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ), "getRevisionText" ); + } + + function testCompressRevisionTextLatin1() { + $GLOBALS['wgUseLatin1'] = true; + $row->old_text = "Wiki est l'\xe9cole superieur !"; + $row->old_flags = Article::compressRevisionText( $row->old_text ); + $this->assertFalse( false !== strpos( $row->old_flags, 'utf-8' ), + "Flags should not contain 'utf-8'" ); + $this->assertFalse( false !== strpos( $row->old_flags, 'gzip' ), + "Flags should not contain 'gzip'" ); + $this->assertEquals( "Wiki est l'\xe9cole superieur !", + $row->old_text, "Direct check" ); + $this->assertEquals( "Wiki est l'\xe9cole superieur !", + Article::getRevisionText( $row ), "getRevisionText" ); + } + + function testCompressRevisionTextUtf8Gzip() { + $GLOBALS['wgCompressRevisions'] = true; + $row->old_text = "Wiki est l'\xc3\xa9cole superieur !"; + $row->old_flags = Article::compressRevisionText( $row->old_text ); + $this->assertTrue( false !== strpos( $row->old_flags, 'utf-8' ), + "Flags should contain 'utf-8'" ); + $this->assertTrue( false !== strpos( $row->old_flags, 'gzip' ), + "Flags should contain 'gzip'" ); + $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !", + gzinflate( $row->old_text ), "Direct check" ); + $this->assertEquals( "Wiki est l'\xc3\xa9cole superieur !", + Article::getRevisionText( $row ), "getRevisionText" ); + } + + function testCompressRevisionTextLatin1Gzip() { + $GLOBALS['wgCompressRevisions'] = true; + $GLOBALS['wgUseLatin1'] = true; + $row = new stdClass; + $row->old_text = "Wiki est l'\xe9cole superieur !"; + $row->old_flags = Article::compressRevisionText( $row->old_text ); + $this->assertFalse( false !== strpos( $row->old_flags, 'utf-8' ), + "Flags should not contain 'utf-8'" ); + $this->assertTrue( false !== strpos( $row->old_flags, 'gzip' ), + "Flags should contain 'gzip'" ); + $this->assertEquals( "Wiki est l'\xe9cole superieur !", + gzinflate( $row->old_text ), "Direct check" ); + $this->assertEquals( "Wiki est l'\xe9cole superieur !", + Article::getRevisionText( $row ), "getRevisionText" ); + } + +} + +?> \ No newline at end of file diff --git a/tests/RunTests.php b/tests/RunTests.php index 455bc33b8b..987b1ed7a8 100644 --- a/tests/RunTests.php +++ b/tests/RunTests.php @@ -31,6 +31,7 @@ $tests = array( 'DatabaseTest', 'SearchMySQL3Test', 'SearchMySQL4Test', + 'ArticleTest', ); foreach( $tests as $test ) { require_once( $test . '.php' ); -- 2.20.1