2 require_once 'include/MVC/Controller/SugarController.php';
4 class SugarControllerTest extends Sugar_PHPUnit_Framework_TestCase
6 public function setUp()
8 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
11 public function tearDown()
13 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
14 unset($GLOBALS['current_user']);
17 public function testSetup()
19 $controller = new SugarControllerMock;
22 $this->assertEquals('Home',$controller->module);
23 $this->assertNull($controller->target_module);
26 public function testSetupSpecifyModule()
28 $controller = new SugarControllerMock;
29 $controller->setup('foo');
31 $this->assertEquals('foo',$controller->module);
32 $this->assertNull($controller->target_module);
35 public function testSetupUseRequestVars()
38 'module' => 'dog33434',
39 'target_module' => 'dog121255',
40 'action' => 'dog3232',
41 'record' => 'dog5656',
43 'return_module' => 'dog1312',
44 'return_action' => 'dog1212',
45 'return_id' => '11212',
47 $controller = new SugarControllerMock;
50 $this->assertEquals($_REQUEST['module'],$controller->module);
51 $this->assertEquals($_REQUEST['target_module'],$controller->target_module);
52 $this->assertEquals($_REQUEST['action'],$controller->action);
53 $this->assertEquals($_REQUEST['record'],$controller->record);
54 $this->assertEquals($_REQUEST['view'],$controller->view);
55 $this->assertEquals($_REQUEST['return_module'],$controller->return_module);
56 $this->assertEquals($_REQUEST['return_action'],$controller->return_action);
57 $this->assertEquals($_REQUEST['return_id'],$controller->return_id);
60 public function testSetModule()
62 $controller = new SugarControllerMock;
63 $controller->setModule('cat');
65 $this->assertEquals('cat',$controller->module);
68 public function testLoadBean()
73 public function testCallLegacyCodeIfLegacyDetailViewFound()
75 $module_name = 'TestModule'.mt_rand();
76 sugar_mkdir("modules/$module_name/",null,true);
77 sugar_touch("modules/$module_name/DetailView.php");
79 $controller = new SugarControllerMock;
80 $controller->setup($module_name);
81 $controller->do_action = 'DetailView';
82 $controller->view = 'list';
83 $controller->callLegacyCode();
85 $this->assertEquals('classic',$controller->view);
87 rmdir_recursive("modules/$module_name");
90 public function testCallLegacyCodeIfNewDetailViewFound()
92 $module_name = 'TestModule'.mt_rand();
93 sugar_mkdir("modules/$module_name/views",null,true);
94 sugar_touch("modules/$module_name/views/view.detail.php");
96 $controller = new SugarControllerMock;
97 $controller->setup($module_name);
98 $controller->do_action = 'DetailView';
100 $controller->view = 'list';
101 $controller->callLegacyCode();
103 $this->assertEquals('list',$controller->view);
105 rmdir_recursive("modules/$module_name");
109 public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFound()
111 $module_name = 'TestModule'.mt_rand();
112 sugar_mkdir("modules/$module_name/views",null,true);
113 sugar_touch("modules/$module_name/views/view.detail.php");
114 sugar_touch("modules/$module_name/DetailView.php");
116 $controller = new SugarControllerMock;
117 $controller->setup($module_name);
118 $controller->do_action = 'DetailView';
120 $controller->view = 'list';
121 $controller->callLegacyCode();
123 $this->assertEquals('list',$controller->view);
125 rmdir_recursive("modules/$module_name");
128 public function testCallLegacyCodeIfCustomLegacyDetailViewAndNewDetailViewFound()
130 $module_name = 'TestModule'.mt_rand();
131 sugar_mkdir("modules/$module_name/views",null,true);
132 sugar_touch("modules/$module_name/views/view.detail.php");
133 sugar_mkdir("custom/modules/$module_name",null,true);
134 sugar_touch("custom/modules/$module_name/DetailView.php");
136 $controller = new SugarControllerMock;
137 $controller->setup($module_name);
138 $controller->do_action = 'DetailView';
140 $controller->view = 'list';
141 $controller->callLegacyCode();
143 $this->assertEquals('classic',$controller->view);
145 rmdir_recursive("modules/$module_name");
148 public function testCallLegacyCodeIfLegacyDetailViewAndCustomNewDetailViewFound()
150 $module_name = 'TestModule'.mt_rand();
151 sugar_mkdir("custom/modules/$module_name/views",null,true);
152 sugar_touch("custom/modules/$module_name/views/view.detail.php");
153 sugar_mkdir("modules/$module_name",null,true);
154 sugar_touch("modules/$module_name/DetailView.php");
156 $controller = new SugarControllerMock;
157 $controller->setup($module_name);
158 $controller->do_action = 'DetailView';
159 $controller->view = 'list';
160 $controller->callLegacyCode();
162 $this->assertEquals('classic',$controller->view);
164 rmdir_recursive("modules/$module_name");
167 public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomLegacyDetailViewFound()
169 $module_name = 'TestModule'.mt_rand();
170 sugar_mkdir("modules/$module_name/views",null,true);
171 sugar_touch("modules/$module_name/views/view.detail.php");
172 sugar_touch("modules/$module_name/DetailView.php");
173 sugar_mkdir("custom/modules/$module_name",null,true);
174 sugar_touch("custom/modules/$module_name/DetailView.php");
176 $controller = new SugarControllerMock;
177 $controller->setup($module_name);
178 $controller->do_action = 'DetailView';
180 $controller->view = 'list';
181 $controller->callLegacyCode();
183 $this->assertEquals('classic',$controller->view);
185 rmdir_recursive("modules/$module_name");
188 public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomNewDetailViewFound()
190 $module_name = 'TestModule'.mt_rand();
191 sugar_mkdir("custom/modules/$module_name/views",null,true);
192 sugar_touch("custom/modules/$module_name/views/view.detail.php");
193 sugar_mkdir("modules/$module_name/views",null,true);
194 sugar_touch("modules/$module_name/views/view.detail.php");
195 sugar_touch("modules/$module_name/DetailView.php");
197 $controller = new SugarControllerMock;
198 $controller->setup($module_name);
199 $controller->do_action = 'DetailView';
200 $controller->view = 'list';
201 $controller->callLegacyCode();
203 $this->assertEquals('list',$controller->view);
205 rmdir_recursive("modules/$module_name");
208 public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomLegacyDetailViewFoundAndCustomNewDetailViewFound()
210 $module_name = 'TestModule'.mt_rand();
211 sugar_mkdir("custom/modules/$module_name/views",null,true);
212 sugar_touch("custom/modules/$module_name/views/view.detail.php");
213 sugar_touch("custom/modules/$module_name/DetailView.php");
214 sugar_mkdir("modules/$module_name/views",null,true);
215 sugar_touch("modules/$module_name/views/view.detail.php");
216 sugar_touch("modules/$module_name/DetailView.php");
218 $controller = new SugarControllerMock;
219 $controller->setup($module_name);
220 $controller->do_action = 'DetailView';
222 $controller->view = 'list';
223 $controller->callLegacyCode();
225 $this->assertEquals('list',$controller->view);
227 rmdir_recursive("modules/$module_name");
231 class SugarControllerMock extends SugarController
235 public function callLegacyCode()
237 return parent::callLegacyCode();