]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Calls/CallHelperTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / Calls / CallHelperTest.php
1 <?php
2 require_once('modules/Calls/Call.php');
3 require_once('modules/Calls/CallHelper.php');
4
5 class CallHelperTest extends Sugar_PHPUnit_Framework_TestCase
6 {
7     public function setup()
8     {
9         $GLOBALS['app_list_strings'] = return_app_list_strings_language($GLOBALS['current_language']);
10     }
11     
12     public function tearDown()
13     {
14         unset($GLOBALS['app_list_strings']);
15     }
16     
17     public function providerGetDurationMinutesOptions()
18     {
19         return array(
20             array('EditView',<<<EOHTML
21 <select id="duration_minutes"onchange="SugarWidgetScheduler.update_time();"tabindex="1" name="duration_minutes">
22 <OPTION value='0'>00</OPTION>
23 <OPTION selected value='15'>15</OPTION>
24 <OPTION value='30'>30</OPTION>
25 <OPTION value='45'>45</OPTION></select>
26 EOHTML
27                 ),
28             array('MassUpdate',<<<EOHTML
29 <select id="duration_minutes"tabindex="1" name="duration_minutes">
30 <OPTION value='0'>00</OPTION>
31 <OPTION selected value='15'>15</OPTION>
32 <OPTION value='30'>30</OPTION>
33 <OPTION value='45'>45</OPTION></select>
34 EOHTML
35                 ),
36             array('QuickCreate',<<<EOHTML
37 <select id="duration_minutes"onchange="SugarWidgetScheduler.update_time();"tabindex="1" name="duration_minutes">
38 <OPTION value='0'>00</OPTION>
39 <OPTION selected value='15'>15</OPTION>
40 <OPTION value='30'>30</OPTION>
41 <OPTION value='45'>45</OPTION></select>
42 EOHTML
43                 ),
44             array('DetailView','15'),
45         );
46     }
47     
48     /**
49      * @dataProvider providerGetDurationMinutesOptions
50      */
51         public function testGetDurationMinutesOptions(
52             $view,
53             $returnValue
54             )
55     {
56         $focus = new Call();
57         
58         $this->assertEquals(
59             getDurationMinutesOptions($focus,'','',$view),
60             $returnValue
61             );
62     }
63     
64     public function testGetDurationMinutesOptionsNonDefaultValue()
65     {
66         $focus = new Call();
67         $focus->duration_minutes = '30';
68         
69         $this->assertEquals(
70             getDurationMinutesOptions($focus,'','','DetailView'),
71             $focus->duration_minutes
72             );
73     }
74     
75     public function testGetDurationMinutesOptionsFromRequest()
76     {
77         $focus = new Call();
78         $_REQUEST['duration_minutes'] = '45';
79         
80         $this->assertEquals(
81             getDurationMinutesOptions($focus,'','','DetailView'),
82             $_REQUEST['duration_minutes']
83             );
84         
85         unset($_REQUEST['duration_minutes']);
86     }
87     
88     public function testGetDurationMinutesOptionsOtherValues()
89     {
90         $focus = new Call();
91         $focus->date_start = null;
92         $focus->duration_hours = null;
93         $focus->minutes_value_default = null;
94         
95         getDurationMinutesOptions($focus,'','','DetailView');
96         
97         $this->assertEquals($focus->date_start,$GLOBALS['timedate']->to_display_date(gmdate($GLOBALS['timedate']->get_date_time_format())));
98         $this->assertEquals($focus->duration_hours,'0');
99         $this->assertEquals($focus->duration_minutes,'1');
100     }
101     
102     public function providerGetReminderTime()
103     {
104         return array(
105             array('EditView',<<<EOHTML
106 <select id="reminder_time" name="reminder_time">
107 <OPTION value='60'>1 minute prior</OPTION>
108 <OPTION value='300'>5 minutes prior</OPTION>
109 <OPTION value='600'>10 minutes prior</OPTION>
110 <OPTION value='900'>15 minutes prior</OPTION>
111 <OPTION value='1800'>30 minutes prior</OPTION>
112 <OPTION value='3600'>1 hour prior</OPTION></select>
113 EOHTML
114                 ),
115             array('MassUpdate',<<<EOHTML
116 <select id="reminder_time" name="reminder_time">
117 <OPTION value='60'>1 minute prior</OPTION>
118 <OPTION value='300'>5 minutes prior</OPTION>
119 <OPTION value='600'>10 minutes prior</OPTION>
120 <OPTION value='900'>15 minutes prior</OPTION>
121 <OPTION value='1800'>30 minutes prior</OPTION>
122 <OPTION value='3600'>1 hour prior</OPTION></select>
123 EOHTML
124                 ),
125             array('SubpanelCreates',<<<EOHTML
126 <select id="reminder_time" name="reminder_time">
127 <OPTION value='60'>1 minute prior</OPTION>
128 <OPTION value='300'>5 minutes prior</OPTION>
129 <OPTION value='600'>10 minutes prior</OPTION>
130 <OPTION value='900'>15 minutes prior</OPTION>
131 <OPTION value='1800'>30 minutes prior</OPTION>
132 <OPTION value='3600'>1 hour prior</OPTION></select>
133 EOHTML
134                 ),
135             array('QuickCreate',<<<EOHTML
136 <select id="reminder_time" name="reminder_time">
137 <OPTION value='60'>1 minute prior</OPTION>
138 <OPTION value='300'>5 minutes prior</OPTION>
139 <OPTION value='600'>10 minutes prior</OPTION>
140 <OPTION value='900'>15 minutes prior</OPTION>
141 <OPTION value='1800'>30 minutes prior</OPTION>
142 <OPTION value='3600'>1 hour prior</OPTION></select>
143 EOHTML
144                 ),
145             array('DetailView',''),
146         );
147     }
148     
149     /**
150      * @dataProvider providerGetReminderTime
151      */
152         public function testGetReminderTime(
153             $view,
154             $returnValue
155             )
156     {
157         $focus = new Call();
158         
159         $this->assertEquals(
160             getReminderTime($focus,'','',$view),
161             $returnValue
162             );
163     }
164     
165     public function testGetReminderTimeNonDefaultValue()
166     {
167         $focus = new Call();
168         $focus->reminder_time = '600';
169         
170         $this->assertEquals(
171             getReminderTime($focus,'','','EditView'),
172             <<<EOHTML
173 <select id="reminder_time" name="reminder_time">
174 <OPTION value='60'>1 minute prior</OPTION>
175 <OPTION value='300'>5 minutes prior</OPTION>
176 <OPTION selected value='600'>10 minutes prior</OPTION>
177 <OPTION value='900'>15 minutes prior</OPTION>
178 <OPTION value='1800'>30 minutes prior</OPTION>
179 <OPTION value='3600'>1 hour prior</OPTION></select>
180 EOHTML
181             );
182     }
183     
184     public function testGetReminderTimeNonDefaultValueDetailView()
185     {
186         $focus = new Call();
187         $focus->reminder_time = '300';
188         
189         $this->assertEquals(
190             getReminderTime($focus,'','','DetailView'),
191             '5 minutes prior'
192             );
193     }
194     
195     public function testGetReminderTimeFromRequest()
196     {
197         $focus = new Call();
198         $_REQUEST['reminder_time'] = '900';
199         $_REQUEST['full_form'] = true;
200         
201         $this->assertEquals(
202             getReminderTime($focus,'','','EditView'),
203             <<<EOHTML
204 <select id="reminder_time" name="reminder_time">
205 <OPTION value='60'>1 minute prior</OPTION>
206 <OPTION value='300'>5 minutes prior</OPTION>
207 <OPTION value='600'>10 minutes prior</OPTION>
208 <OPTION selected value='900'>15 minutes prior</OPTION>
209 <OPTION value='1800'>30 minutes prior</OPTION>
210 <OPTION value='3600'>1 hour prior</OPTION></select>
211 EOHTML
212             );
213         
214         unset($_REQUEST['reminder_time']);
215         unset($_REQUEST['full_form']);
216     }
217     
218     public function testGetReminderTimeFromValue()
219     {
220         $focus = new Call();
221         unset($focus->reminder_time);
222         
223         $this->assertEquals(
224             getReminderTime($focus,'','1800','EditView'),
225             <<<EOHTML
226 <select id="reminder_time" name="reminder_time">
227 <OPTION value='60'>1 minute prior</OPTION>
228 <OPTION value='300'>5 minutes prior</OPTION>
229 <OPTION value='600'>10 minutes prior</OPTION>
230 <OPTION value='900'>15 minutes prior</OPTION>
231 <OPTION selected value='1800'>30 minutes prior</OPTION>
232 <OPTION value='3600'>1 hour prior</OPTION></select>
233 EOHTML
234             );
235     }
236 }