summaryrefslogtreecommitdiffstats
path: root/tests/lib/Hooks/LegacyEmitterTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Hooks/LegacyEmitterTest.php')
-rw-r--r--tests/lib/Hooks/LegacyEmitterTest.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/lib/Hooks/LegacyEmitterTest.php b/tests/lib/Hooks/LegacyEmitterTest.php
new file mode 100644
index 00000000000..60a29f23245
--- /dev/null
+++ b/tests/lib/Hooks/LegacyEmitterTest.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Hooks;
+
+/**
+ * Class DummyLegacyEmitter
+ *
+ * class to make LegacyEmitter::emit publicly available
+ *
+ * @package Test\Hooks
+ */
+class DummyLegacyEmitter extends \OC\Hooks\LegacyEmitter {
+ public function emitEvent($scope, $method, $arguments = array()) {
+ $this->emit($scope, $method, $arguments);
+ }
+}
+
+class LegacyEmitterTest extends BasicEmitterTest {
+
+ //we can't use exceptions here since OC_Hooks catches all exceptions
+ private static $emitted = false;
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->emitter = new DummyLegacyEmitter();
+ self::$emitted = false;
+ \OC_Hook::clear('Test','test');
+ }
+
+ public static function staticLegacyCallBack() {
+ self::$emitted = true;
+ }
+
+ public static function staticLegacyArgumentsCallBack($arguments) {
+ if ($arguments['foo'] == 'foo' and $arguments['bar'] == 'bar')
+ self::$emitted = true;
+ }
+
+ public function testLegacyHook() {
+ \OC_Hook::connect('Test', 'test', '\Test\Hooks\LegacyEmitterTest', 'staticLegacyCallBack');
+ $this->emitter->emitEvent('Test', 'test');
+ $this->assertEquals(true, self::$emitted);
+ }
+
+ public function testLegacyArguments() {
+ \OC_Hook::connect('Test', 'test', '\Test\Hooks\LegacyEmitterTest', 'staticLegacyArgumentsCallBack');
+ $this->emitter->emitEvent('Test', 'test', array('foo' => 'foo', 'bar' => 'bar'));
+ $this->assertEquals(true, self::$emitted);
+ }
+}