unset( $this->db );
}
+ function testAddQuotesNull() {
+ $this->assertEquals(
+ 'NULL',
+ $this->db->addQuotes( NULL ) );
+ }
+
+ function testAddQuotesInt() {
+ # returning just "1234" should be ok too, though...
+ # maybe
+ $this->assertEquals(
+ "'1234'",
+ $this->db->addQuotes( 1234 ) );
+ }
+
+ function testAddQuotesFloat() {
+ # returning just "1234.5678" would be ok too, though
+ $this->assertEquals(
+ "'1234.5678'",
+ $this->db->addQuotes( 1234.5678 ) );
+ }
+
+ function testAddQuotesString() {
+ $this->assertEquals(
+ "'string'",
+ $this->db->addQuotes( 'string' ) );
+ }
+
+ function testAddQuotesStringQuote() {
+ $this->assertEquals(
+ "'string\'s cause trouble'",
+ $this->db->addQuotes( "string's cause trouble" ) );
+ }
+
function testFillPreparedEmpty() {
$sql = $this->db->fillPrepared(
'SELECT * FROM interwiki', array() );
--- /dev/null
+<?php
+
+require_once( 'PHPUnit.php' );
+require_once( '../includes/Defines.php' );
+require_once( '../includes/GlobalFunctions.php' );
+
+class GlobalTest extends PHPUnit_TestCase {
+ function GlobalTest( $name ) {
+ $this->PHPUnit_TestCase( $name );
+ }
+
+ function setUp() {
+ $this->save = array();
+ $saveVars = array( 'wgReadOnlyFile' );
+ foreach( $saveVars as $var ) {
+ if( isset( $GLOBALS[$var] ) ) {
+ $this->save[$var] = $GLOBALS[$var];
+ }
+ }
+ $GLOBALS['wgReadOnlyFile'] = '/tmp/testReadOnly-' . mt_rand();
+ }
+
+ function tearDown() {
+ foreach( $this->save as $var => $data ) {
+ $GLOBALS[$var] = $data;
+ }
+ }
+
+ function testDecodeLatin() {
+ $this->assertEquals(
+ "\xe9cole",
+ do_html_entity_decode( 'école', ENT_COMPAT, 'iso-8859-1' ) );
+ }
+
+ function testDecodeUnicode() {
+ $this->assertEquals(
+ "\xc3\xa9cole",
+ do_html_entity_decode( 'école', ENT_COMPAT, 'utf-8' ) );
+ }
+
+ function testRandom() {
+ # This could hypothetically fail, but it shouldn't ;)
+ $this->assertFalse(
+ wfRandom() == wfRandom() );
+ }
+
+ function testUrlencode() {
+ $this->assertEquals(
+ "%E7%89%B9%E5%88%A5:Contributions/Foobar",
+ wfUrlencode( "\xE7\x89\xB9\xE5\x88\xA5:Contributions/Foobar" ) );
+ }
+
+ function testUtf8Sequence1() {
+ $this->assertEquals(
+ 'A',
+ wfUtf8Sequence( 65 ) );
+ }
+
+ function testUtf8Sequence2() {
+ $this->assertEquals(
+ "\xc4\x88",
+ wfUtf8Sequence( 0x108 ) );
+ }
+
+ function testUtf8Sequence3() {
+ $this->assertEquals(
+ "\xe3\x81\x8b",
+ wfUtf8Sequence( 0x304b ) );
+ }
+
+ function testUtf8Sequence4() {
+ $this->assertEquals(
+ "\xf0\x90\x91\x90",
+ wfUtf8Sequence( 0x10450 ) );
+ }
+
+ function testMungeToUtf8() {
+ $this->assertEquals(
+ "\xc4\x88io bonas dans l'\xc3\xa9cole!",
+ wfMungeToUtf8( "Ĉio bonas dans l'école!" ) );
+ }
+
+ function testUtf8ToHTML() {
+ $this->assertEquals(
+ "Ĉio bonas dans l'école!",
+ wfUtf8ToHTML( "\xc4\x88io bonas dans l'\xc3\xa9cole!" ) );
+ }
+
+ function testReadOnlyEmpty() {
+ $this->assertFalse( wfReadOnly() );
+ }
+
+ function testReadOnlySet() {
+ $f = fopen( $GLOBALS['wgReadOnlyFile'], "wt" );
+ fwrite( $f, 'Message' );
+ fclose( $f );
+ $this->assertTrue( wfReadOnly() );
+
+ unlink( $GLOBALS['wgReadOnlyFile'] );
+ $this->assertFalse( wfReadOnly() );
+ }
+
+ function testQuotedPrintable() {
+ $this->assertEquals(
+ "=?UTF-8?Q?=C4=88u=20legebla=3F?=",
+ wfQuotedPrintable( "\xc4\x88u legebla?", "UTF-8" ) );
+ }
+
+ function testTime() {
+ $start = wfTime();
+ $this->assertType( 'double', $start );
+ $end = wfTime();
+ $this->assertTrue( $end > $start, "Time is running backwards!" );
+ }
+
+ function testArrayToCGI() {
+ $this->assertEquals(
+ "baz=AT%26T&foo=bar",
+ wfArrayToCGI(
+ array( 'baz' => 'AT&T', 'ignore' => '' ),
+ array( 'foo' => 'bar', 'baz' => 'overridden value' ) ) );
+ }
+
+ /* TODO: many more! */
+}
+
+?>
\ No newline at end of file
define( "MEDIAWIKI", true );
require_once( 'PHPUnit.php' );
-require_once( 'DatabaseTest.php' );
-$suite = new PHPUnit_TestSuite( "DatabaseTest" );
-$result = PHPUnit::run( $suite );
-echo $result->toString();
+$tests = array(
+ 'GlobalTest',
+ 'DatabaseTest',
+ );
+foreach( $tests as $test ) {
+ require_once( $test . '.php' );
+ $suite = new PHPUnit_TestSuite( $test );
+ $result = PHPUnit::run( $suite );
+ echo $result->toString();
+}
?>
\ No newline at end of file