Merge remote-tracking branch 'upstream/4.4' into 4.4-master-2014-07-07-15-48-59
[civicrm-core.git] / tests / phpunit / CRM / Utils / GlobalStackTest.php
1 <?php
2
3 require_once 'CiviTest/CiviUnitTestCase.php';
4
5 /**
6 * Class CRM_Utils_GlobalStackTest
7 */
8 class CRM_Utils_GlobalStackTest extends CiviUnitTestCase {
9
10 public function testPushPop() {
11 global $FOO, $EXTRA;
12
13 $FOO['bar'] = 1;
14 $FOO['whiz'] = 1;
15 $EXTRA = 1;
16
17 $this->assertEquals(1, $FOO['bar']);
18 $this->assertEquals(1, $FOO['whiz']);
19 $this->assertFalse(isset($FOO['bang']));
20 $this->assertEquals(1, $EXTRA);
21
22 CRM_Utils_GlobalStack::singleton()->push(array(
23 'FOO' => array(
24 'bar' => 2,
25 'bang' => 2,
26 ),
27 'EXTRA' => 2,
28 ));
29
30 $this->assertEquals(2, $FOO['bar']);
31 $this->assertEquals(1, $FOO['whiz']);
32 $this->assertEquals(2, $FOO['bang']);
33 $this->assertEquals(2, $EXTRA);
34
35 CRM_Utils_GlobalStack::singleton()->pop();
36
37 $this->assertEquals(1, $FOO['bar']);
38 $this->assertEquals(1, $FOO['whiz']);
39 $this->assertEquals(NULL, $FOO['bang']);
40 $this->assertEquals(1, $EXTRA);
41 }
42 }