]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/MVC/Controller/SugarControllerTest.php
Release 6.2.0beta5.
[Github/sugarcrm.git] / tests / include / MVC / Controller / SugarControllerTest.php
1 <?php
2 require_once 'include/MVC/Controller/SugarController.php';
3
4 class SugarControllerTest extends Sugar_PHPUnit_Framework_TestCase
5 {
6     public function setUp()
7     {
8         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
9     }
10     
11     public function tearDown()
12     {
13         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
14         unset($GLOBALS['current_user']);
15     }
16
17     public function testSetup()
18     {
19         $controller = new SugarControllerMock;
20         $controller->setup();
21         
22         $this->assertEquals('Home',$controller->module);
23         $this->assertNull($controller->target_module);
24     }
25     
26     public function testSetupSpecifyModule()
27     {
28         $controller = new SugarControllerMock;
29         $controller->setup('foo');
30         
31         $this->assertEquals('foo',$controller->module);
32         $this->assertNull($controller->target_module);
33     }
34     
35     public function testSetupUseRequestVars()
36     {
37         $_REQUEST = array(
38             'module' => 'dog33434',
39             'target_module' => 'dog121255',
40             'action' => 'dog3232',
41             'record' => 'dog5656',
42             'view' => 'dog4343',
43             'return_module' => 'dog1312',
44             'return_action' => 'dog1212',
45             'return_id' => '11212',
46             );
47         $controller = new SugarControllerMock;
48         $controller->setup();
49         
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);
58     }
59     
60     public function testSetModule()
61     {
62         $controller = new SugarControllerMock;
63         $controller->setModule('cat');
64         
65         $this->assertEquals('cat',$controller->module);
66     }
67     
68     public function testLoadBean()
69     {
70         
71     }
72     
73     public function testCallLegacyCodeIfLegacyDetailViewFound()
74     {
75         $module_name = 'TestModule'.mt_rand();
76         sugar_mkdir("modules/$module_name/",null,true);
77         sugar_touch("modules/$module_name/DetailView.php");
78         
79         $controller = new SugarControllerMock;
80         $controller->setup($module_name);
81         $controller->do_action = 'DetailView';
82         $controller->view = 'list';
83         $controller->callLegacyCode();
84         
85         $this->assertEquals('classic',$controller->view);
86         
87         rmdir_recursive("modules/$module_name");
88     }
89
90     public function testCallLegacyCodeIfNewDetailViewFound()
91     {
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");
95         
96         $controller = new SugarControllerMock;
97         $controller->setup($module_name);
98         $controller->do_action = 'DetailView';
99
100         $controller->view = 'list';
101         $controller->callLegacyCode();
102         
103         $this->assertEquals('list',$controller->view);
104         
105         rmdir_recursive("modules/$module_name");
106     }
107
108
109     public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFound()
110     {
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");
115         
116         $controller = new SugarControllerMock;
117         $controller->setup($module_name);
118         $controller->do_action = 'DetailView';
119
120         $controller->view = 'list';
121         $controller->callLegacyCode();
122         
123         $this->assertEquals('list',$controller->view);
124         
125         rmdir_recursive("modules/$module_name");
126     }
127
128     public function testCallLegacyCodeIfCustomLegacyDetailViewAndNewDetailViewFound()
129     {
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");
135         
136         $controller = new SugarControllerMock;
137         $controller->setup($module_name);
138         $controller->do_action = 'DetailView';
139
140         $controller->view = 'list';
141         $controller->callLegacyCode();
142         
143         $this->assertEquals('classic',$controller->view);
144         
145         rmdir_recursive("modules/$module_name");
146     }
147
148     public function testCallLegacyCodeIfLegacyDetailViewAndCustomNewDetailViewFound()
149     {
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");
155         
156         $controller = new SugarControllerMock;
157         $controller->setup($module_name);
158         $controller->do_action = 'DetailView';
159         $controller->view = 'list';
160         $controller->callLegacyCode();
161         
162         $this->assertEquals('classic',$controller->view);
163         
164         rmdir_recursive("modules/$module_name");
165     }
166
167     public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomLegacyDetailViewFound()
168     {
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");
175         
176         $controller = new SugarControllerMock;
177         $controller->setup($module_name);
178         $controller->do_action = 'DetailView';
179
180         $controller->view = 'list';
181         $controller->callLegacyCode();
182         
183         $this->assertEquals('classic',$controller->view);
184         
185         rmdir_recursive("modules/$module_name");
186     }
187
188     public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomNewDetailViewFound()
189     {
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");
196         
197         $controller = new SugarControllerMock;
198         $controller->setup($module_name);
199         $controller->do_action = 'DetailView';
200         $controller->view = 'list';
201         $controller->callLegacyCode();
202         
203         $this->assertEquals('list',$controller->view);
204         
205         rmdir_recursive("modules/$module_name");
206     }
207
208     public function testCallLegacyCodeIfLegacyDetailViewAndNewDetailViewFoundAndCustomLegacyDetailViewFoundAndCustomNewDetailViewFound()
209     {
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");
217         
218         $controller = new SugarControllerMock;
219         $controller->setup($module_name);
220         $controller->do_action = 'DetailView';
221
222         $controller->view = 'list';
223         $controller->callLegacyCode();
224         
225         $this->assertEquals('list',$controller->view);
226         
227         rmdir_recursive("modules/$module_name");
228     }
229 }
230
231 class SugarControllerMock extends SugarController
232 {
233     public $do_action;
234     
235     public function callLegacyCode()
236     {
237         return parent::callLegacyCode();
238     }
239 }