1<?php
2
3/**
4 * @group integration
5 */
6class InttestsGlobalsTest extends DokuWikiTest {
7
8    /**
9     * every request should be with its own variables
10     */
11    function testFirstRun() {
12        global $EVENT_HANDLER;
13
14        $request = new TestRequest();
15        $request->setServer('testvar', true);
16
17        $self = $this;
18        $EVENT_HANDLER->register_hook('TPL_CONTENT_DISPLAY', 'AFTER', null,
19            function() use ($self) {
20                $self->assertTrue($_SERVER['testvar'], 'Server variable not set correctly: testvar');
21                $self->assertEquals('172.17.18.19', $_SERVER['REMOTE_ADDR'], 'Server variable not set correctly: REMOTE_ADDR');
22                $_SERVER['tmpvar'] = true;
23            }
24        );
25
26        $request->execute();
27    }
28
29    /**
30     * @depends testFirstRun
31     */
32    function testSecondRun() {
33        global $EVENT_HANDLER;
34
35        $request = new TestRequest();
36        $request->setServer('testvar', false);
37
38        $self = $this;
39        $EVENT_HANDLER->register_hook('TPL_CONTENT_DISPLAY', 'AFTER', null,
40            function() use ($self) {
41                $self->assertFalse($_SERVER['testvar'], 'Server variable not set correctly: testvar');
42                $self->assertEquals('172.17.18.19', $_SERVER['REMOTE_ADDR'], 'Server variable not set correctly: REMOTE_ADDR');
43                $self->assertFalse(isset($_SERVER['tmpvar']));
44            }
45        );
46
47        $request->execute();
48    }
49}
50