From ca32f08966f1b51fcb19460f0996bb0c4048e6fe Mon Sep 17 00:00:00 2001
From: Pierre Schmitz <pierre@archlinux.de>
Date: Sat, 3 Dec 2011 13:29:22 +0100
Subject: Update to MediaWiki 1.18.0

* also update ArchLinux skin to chagnes in MonoBook
* Use only css to hide our menu bar when printing
---
 tests/phpunit/includes/HooksTest.php | 102 +++++++++++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)
 create mode 100644 tests/phpunit/includes/HooksTest.php

(limited to 'tests/phpunit/includes/HooksTest.php')

diff --git a/tests/phpunit/includes/HooksTest.php b/tests/phpunit/includes/HooksTest.php
new file mode 100644
index 00000000..2f9d9f8d
--- /dev/null
+++ b/tests/phpunit/includes/HooksTest.php
@@ -0,0 +1,102 @@
+<?php
+
+class HooksTest extends MediaWikiTestCase {
+
+	public function testOldStyleHooks() {
+		$foo = 'Foo';
+		$bar = 'Bar';
+
+		$i = new NothingClass();
+
+		global $wgHooks;
+
+		$wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStatic' );
+
+		wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
+
+		$this->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;
+	}
+}
-- 
cgit v1.2.3-54-g00ecf