From: X! Date: Mon, 17 Jan 2011 16:43:12 +0000 (+0000) Subject: Followup to r80435: Forgot the svn add X-Git-Tag: 1.31.0-rc.0~32498 X-Git-Url: http://git.cyclocoop.org/%24href?a=commitdiff_plain;h=7ea48c97785065d4ecc9cd4049400298ad54d0ee;p=lhc%2Fweb%2Fwiklou.git Followup to r80435: Forgot the svn add --- diff --git a/tests/phpunit/includes/HooksTest.php b/tests/phpunit/includes/HooksTest.php new file mode 100644 index 0000000000..ee8a3fc4d3 --- /dev/null +++ b/tests/phpunit/includes/HooksTest.php @@ -0,0 +1,130 @@ +assertEquals( 'fOO', $foo, 'Standard method' ); + $foo = 'Foo'; + + + $wgHooks['MediaWikiHooksTest001'][] = $i; + + wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'foo', $foo, 'onEventName style' ); + $foo = 'Foo'; + + + $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStaticWithData', 'baz' ); + + wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'baz', $foo, 'Data included' ); + $foo = 'Foo'; + + + $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someStatic' ); + + wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'bah', $foo, 'Standard static method' ); + $foo = 'Foo'; + + + unset( $wgHooks['MediaWikiHooksTest001'] ); + + } + + public function testNewStyleHooks() { + + $foo = 'Foo'; + $bar = 'Bar'; + + $i = new NothingClass(); + + + Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStatic' ) ); + + Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'fOO', $foo, 'Standard method' ); + $foo = 'Foo'; + + + Hooks::register( 'MediaWikiHooksTest001', $i ); + + Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'foo', $foo, 'onEventName style' ); + $foo = 'Foo'; + + + Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStaticWithData', 'baz' ) ); + + Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'baz', $foo, 'Data included' ); + $foo = 'Foo'; + + + Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someStatic' ) ); + + Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) ); + + $this->assertEquals( 'bah', $foo, 'Standard static method' ); + $foo = 'Foo'; + + } + +} + +class NothingClass { + + static public function someStatic( &$foo, &$bar ) { + + $foo = 'bah'; + + return true; + + } + + public function someNonStatic( &$foo, &$bar ) { + + $foo = 'fOO'; + $bar = 'bAR'; + + return true; + + } + + public function onMediaWikiHooksTest001( &$foo, &$bar ) { + + $foo = 'foo'; + + return true; + + } + + public function someNonStaticWithData( $foo, &$bar ) { + + $bar = $foo; + + return true; + + } + +}