1<?php
2
3namespace dokuwiki\test\Extension;
4
5use dokuwiki\Extension\Event;
6
7class EventTest extends \DokuWikiTest
8{
9    static public function staticFunc(&$data)
10    {
11        $data['test'] = strtoupper($data['test']);
12    }
13
14    public function dynamicFunc(&$data)
15    {
16        $data['test'] = strtoupper($data['test']);
17    }
18
19    public function testGlobal()
20    {
21        $data = 'test';
22        $result = Event::createAndTrigger('TESTTRIGGER', $data, 'strtoupper');
23        $this->assertEquals('TEST', $result);
24    }
25
26    public function testDynamic()
27    {
28        $data = ['test' => 'test'];
29        Event::createAndTrigger('TESTTRIGGER', $data, [$this, 'dynamicFunc']);
30        $this->assertEquals(['test' => 'TEST'], $data);
31    }
32
33    public function testStatic()
34    {
35        $data = ['test' => 'test'];
36        Event::createAndTrigger('TESTTRIGGER', $data, self::class . '::staticFunc');
37        $this->assertEquals(['test' => 'TEST'], $data);
38
39        $data = ['test' => 'test'];
40        Event::createAndTrigger('TESTTRIGGER', $data, [self::class, 'staticFunc']);
41        $this->assertEquals(['test' => 'TEST'], $data);
42    }
43}
44