forked from ucla-oarc-mobile/mwf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Menu_Site_DecoratorTest.php
84 lines (69 loc) · 3.26 KB
/
Menu_Site_DecoratorTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/**
* Test class for Menu_Site_Decorator.
*
* @author trott
* @copyright Copyright (c) 2010-12 UC Regents
* @license http://mwf.ucla.edu/license
* @version 20120229
*
* @uses PHPUnit_Framework_TestCase
* @uses Menu_Site_Decorator
*/
class Menu_Site_DecoratorTest extends PHPUnit_Framework_TestCase {
//@todo: remove this after fixing Config object
public function setUp() {
$_SERVER['HTTP_HOST'] = 'http://www.example.com';
}
protected $object;
/**
* @test
* @runInSeparateProcess
*/
public function render_ampersandInUrlParam_ampersandEntityUsed() {
require dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/decorator/site/menu.class.php';
$this->object = new Menu_Site_Decorator;
$this->object->add_item('test', 'http://www.example.com/test?foo&bar');
$this->assertContains('http://www.example.com/test?foo&bar', $this->object->render());
}
/**
* @test
* @runInSeparateProcess
*/
public function render_quotesInUrlParam_quotesReplacedWithEntities() {
require dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/decorator/site/menu.class.php';
$this->object = new Menu_Site_Decorator;
$this->object->add_item('test', 'http://www.example.com/test?"foo"\'bar\'');
$this->assertContains('http://www.example.com/test?"foo"\'bar\'', $this->object->render());
}
/**
* @test
* @runInSeparateProcess
*/
public function setHomeScreen_noParam_isHomeScreen() {
require dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/decorator/site/menu.class.php';
$this->object = new Menu_Site_Decorator;
$this->object->set_home_screen();
$result = $this->object->render();
$this->assertRegExp('/\bclass\=\"[^"]*\bfront\b/', $result);
$this->assertRegExp('/\bid=\"main_menu\"[\s>]/', $result);
}
/**
* @test
* @runInSeparateProcess
*/
public function render_homeScreenAndFull_jsObject() {
require_once dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/config.class.php';
Config::set('frontpage', 'customizable_home_screen', true);
Config::set('global', 'cookie_prefix', 'mwftest_');
$_COOKIE['mwftest_classification'] = '{"mobile":false,"basic":true,"standard":true,"full":true,"native":false}';
require_once dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/classification.class.php';
require_once dirname(dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))))) . '/root/assets/lib/decorator/site/menu.class.php';
$this->object = new Menu_Site_Decorator;
$this->object->set_home_screen();
$this->object->add_item('Foo', 'http://example.com/', array(), array(), 'foo_index');
$this->object->add_item('Bar', 'http://musicroutes.com/', array(), array(), 'bar_index');
$this->assertRegExp('/\bmwf\.full\.customizableMenu\(\"home_screen_layout"\)/', $this->object->render());
$this->assertRegExp('/\bmwf\.cm\.render\(\"main_menu_list\"\)\;/', $this->object->render());
}
}