Merge pull request #12280 from eileenmcnaughton/line_endings
[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
TO
24
25 CRM_Utils_GlobalStack::singleton()->push(array(
ccd1cf98 26 '_FOO' => array(
6d4b9264
TO
27 'bar' => 2,
28 'bang' => 2,
29 ),
ccd1cf98 30 '_EXTRA' => 2,
6d4b9264
TO
31 ));
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}