MediaWiki  REL1_19
MWFunctionTest.php
Go to the documentation of this file.
00001 <?php
00002 
00003 class MWFunctionTest extends MediaWikiTestCase {
00004         
00005         function testCallUserFuncWorkarounds() {
00006                 
00007                 $this->assertEquals( 
00008                         call_user_func( array( 'MWFunctionTest', 'someMethod' ) ),
00009                         MWFunction::call( 'MWFunctionTest::someMethod' )
00010                 );
00011                 $this->assertEquals( 
00012                         call_user_func( array( 'MWFunctionTest', 'someMethod' ), 'foo', 'bar', 'baz' ),
00013                         MWFunction::call( 'MWFunctionTest::someMethod', 'foo', 'bar', 'baz' )
00014                 );
00015                 
00016                 
00017                 
00018                 $this->assertEquals( 
00019                         call_user_func_array( array( 'MWFunctionTest', 'someMethod' ), array() ),
00020                         MWFunction::callArray( 'MWFunctionTest::someMethod', array() )
00021                 );
00022                 $this->assertEquals( 
00023                         call_user_func_array( array( 'MWFunctionTest', 'someMethod' ), array( 'foo', 'bar', 'baz' ) ),
00024                         MWFunction::callArray( 'MWFunctionTest::someMethod', array( 'foo', 'bar', 'baz' ) )
00025                 );
00026                 
00027         }
00028         
00029         function testNewObjFunction() {
00030                 
00031                 $arg1 = 'Foo';
00032                 $arg2 = 'Bar';
00033                 $arg3 = array( 'Baz' );
00034                 $arg4 = new ExampleObject;
00035                 
00036                 $args = array( $arg1, $arg2, $arg3, $arg4 );
00037                 
00038                 $newObject = new MWBlankClass( $arg1, $arg2, $arg3, $arg4 );
00039                 
00040                 $this->assertEquals( 
00041                         MWFunction::newObj( 'MWBlankClass', $args )->args, 
00042                         $newObject->args
00043                 );
00044                 
00045                 $this->assertEquals( 
00046                         MWFunction::newObj( 'MWBlankClass', $args, true )->args, 
00047                         $newObject->args,
00048                         'Works even with PHP version < 5.1.3'
00049                 );
00050                 
00051         }
00052         
00056         function testCallingParentFails() {
00057                 
00058                 MWFunction::call( 'parent::foo' );
00059         }
00060         
00064         function testCallingSelfFails() {
00065                 
00066                 MWFunction::call( 'self::foo' );
00067         }
00068         
00069         public static function someMethod() {
00070                 return func_get_args();
00071         }
00072         
00073 }
00074 
00075 class MWBlankClass {
00076         
00077         public $args = array();
00078         
00079         function __construct( $arg1, $arg2, $arg3, $arg4 ) {
00080                 $this->args = array( $arg1, $arg2, $arg3, $arg4 );
00081         }
00082         
00083 }
00084 
00085 class ExampleObject {
00086 }