Merge pull request #17390 from mattwire/api3activitydatetimedefault
[civicrm-core.git] / tests / phpunit / CRM / Utils / GlobalStackTest.php
CommitLineData
6d4b9264
TO
1<?php
2
aba1cd8b
EM
3/**
4 * Class CRM_Utils_GlobalStackTest
acb109b7 5 * @group headless
aba1cd8b 6 */
6d4b9264
TO
7class CRM_Utils_GlobalStackTest extends CiviUnitTestCase {
8
ccd1cf98 9 /**
eceb18cc 10 * Temporarily override global variables and ensure that the variable data.
ccd1cf98
TO
11 * is set as expected (before/during/after the override).
12 */
6d4b9264 13 public function testPushPop() {
ccd1cf98 14 global $_FOO, $_EXTRA;
6d4b9264 15
ccd1cf98
TO
16 $_FOO['bar'] = 1;
17 $_FOO['whiz'] = 1;
18 $_EXTRA = 1;
6d4b9264 19
ccd1cf98
TO
20 $this->assertEquals(1, $_FOO['bar']);
21 $this->assertEquals(1, $_FOO['whiz']);
22 $this->assertFalse(isset($_FOO['bang']));
23 $this->assertEquals(1, $_EXTRA);
6d4b9264 24
9099cab3
CW
25 CRM_Utils_GlobalStack::singleton()->push([
26 '_FOO' => [
6d4b9264
TO
27 'bar' => 2,
28 'bang' => 2,
9099cab3 29 ],
ccd1cf98 30 '_EXTRA' => 2,
9099cab3 31 ]);
6d4b9264 32
ccd1cf98
TO
33 $this->assertEquals(2, $_FOO['bar']);
34 $this->assertEquals(1, $_FOO['whiz']);
35 $this->assertEquals(2, $_FOO['bang']);
36 $this->assertEquals(2, $_EXTRA);
6d4b9264
TO
37
38 CRM_Utils_GlobalStack::singleton()->pop();
39
ccd1cf98
TO
40 $this->assertEquals(1, $_FOO['bar']);
41 $this->assertEquals(1, $_FOO['whiz']);
42 $this->assertEquals(NULL, $_FOO['bang']);
43 $this->assertEquals(1, $_EXTRA);
6d4b9264 44 }
96025800 45
6d4b9264 46}