Adding the test suite.
[hildon] / tests / check-hildon-time-editor.c
1 /*
2  * Copyright (C) 2006 Nokia Corporation.
3  *
4  * Contact: Luc Pionchon <luc.pionchon@nokia.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License
8  * as published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  *
21  */
22
23 #include <stdlib.h>
24 #include <check.h>
25 #include <gtk/gtkmain.h>
26 #include <gtk/gtkhbox.h>
27 #include <gtk/gtkcontainer.h>
28 #include "test_suites.h"
29 #include "check_utils.h"
30
31 #include <unistd.h>
32
33 #include "hildon-time-editor.h"
34
35 #define MIN_DURATION 0
36 #define MAX_DURATION 359999
37
38 /* -------------------- Fixtures -------------------- */
39
40 static GtkWidget *showed_window = NULL;
41 /* static HildonTimeEditor *time_editor = NULL;  */
42
43 static void
44 fx_setup_default_time_editor ()
45 {
46   int argc = 0;
47
48   gtk_init(&argc, NULL);
49
50   showed_window =  create_test_window ();
51 }
52
53 static void
54 fx_teardown_default_time_editor ()
55 {
56   /* Destroy the window */
57   gtk_widget_destroy (showed_window);
58 }
59
60 static HildonTimeEditor *create_and_show_time_editor(GtkWidget *window, gboolean seconds,gboolean duration)
61 {
62   HildonTimeEditor *time_editor = NULL;
63
64   time_editor = HILDON_TIME_EDITOR(hildon_time_editor_new());
65
66   hildon_time_editor_set_show_seconds(time_editor,seconds);
67   hildon_time_editor_set_duration_mode(time_editor,duration);
68
69   /* Add some widgets to the window and displays the window */
70   gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET(time_editor));
71   show_all_test_window (window);
72
73   hildon_time_editor_set_duration_mode(time_editor,duration);
74   
75   fail_if( !HILDON_IS_TIME_EDITOR(time_editor),"hildon-time-editor: Creation failed.");
76   return time_editor;
77 }
78
79 static void remove_and_destroy_time_editor(GtkWidget *window,HildonTimeEditor ** time_editor)
80 {
81   
82   gtk_container_remove (GTK_CONTAINER (window), GTK_WIDGET(*time_editor));
83   gtk_widget_hide_all (window);
84
85 }
86
87 /* -------------------- Test cases -------------------- */
88
89 /* ----- Test case for set_time -----*/
90
91 /**
92  * Purpose: Check that regular time values are set and get properly       
93  * Cases considered:
94  *    - Set and get time to 5h 30m using time editor object.
95  *    - Set and get time to 18h 2m using time editor object.
96  *    - Set and get time to 5h 30m 45s using time editor object.
97  *    - Set and get time to 18h 2m 5s using time editor object.
98  *    - Set and get time to 5:30:45 using time editor object with duration mode.
99  *    - Set and get time to 50:40:30 using time editor object with duration mode.
100  */
101 START_TEST (test_set_time_regular)
102 {
103   guint initial_hours;
104   guint initial_minutes;
105   guint initial_seconds;
106   guint hours;
107   guint minutes;
108   guint seconds;
109   HildonTimeEditor *time_editor = NULL;
110
111   /* Test 1: Set time value to 5h 30m 0s to test time (am) without seconds */
112   initial_hours=5;
113   initial_minutes=30;
114   initial_seconds=0;
115   
116   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
117
118   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
119
120   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
121   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
122           "hildon-time-editor: set_time or get_time failed with values (%dh %dm). Result values are: (%dh %dm)",
123           initial_hours,initial_minutes,hours,minutes);
124
125   remove_and_destroy_time_editor(showed_window,&time_editor);
126
127
128   /* Test 2: Set time value to 18h 2m 0s to test time (pm) without seconds*/
129   initial_hours=18;
130   initial_minutes=2;
131   initial_seconds=0;
132
133   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
134
135   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
136
137   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
138   
139   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
140           "hildon-time-editor: set_time or get_time failed with values (%dh %dm). Result values are: (%dh %dm)",
141           initial_hours,initial_minutes,hours,minutes);
142
143   remove_and_destroy_time_editor(showed_window,&time_editor);
144
145
146   /* Test 3: Set time value to 5h 30m 45s to test time (am) with seconds*/
147   initial_hours=5;
148   initial_minutes=30;
149   initial_seconds=45;
150
151   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
152
153   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
154
155   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
156
157   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
158           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
159           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
160
161   remove_and_destroy_time_editor(showed_window,&time_editor);
162   
163   /* Test 4: Set time value to 18h 2m 5s to test time (pm) with seconds */
164   initial_hours=18;
165   initial_minutes=2;
166   initial_seconds=5;
167
168
169   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
170
171   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
172
173   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
174
175   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
176           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
177           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
178
179   remove_and_destroy_time_editor(showed_window,&time_editor);
180    
181
182   /* Test 5: Set time value to 5:30:45 to test duration*/
183   initial_hours=5;
184   initial_minutes=30;
185   initial_seconds=45;
186
187   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
188   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
189
190   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
191
192
193   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
194           "hildon-time-editor: set_time or get_time failed with values (%d:%d:%d). Result values are: (%d:%d:%d)",
195           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
196
197   remove_and_destroy_time_editor(showed_window,&time_editor);
198
199   /* Test 6: Set time value to 50:40:30 to test duration */
200   initial_hours=50;
201   initial_minutes=40;
202   initial_seconds=30;
203
204   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
205
206   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
207   
208   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
209   
210   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
211           "hildon-time-editor: set_time or get_time failed with values (%d:%d:%d). Result values are: (%d:%d:%d)",
212           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
213
214   remove_and_destroy_time_editor(showed_window,&time_editor);
215
216
217 }
218 END_TEST
219
220 /**
221  * Purpose: Check that limit time values are set and get properly
222  * Cases considered:
223  *    - Set and get time to 0h 0m using time editor object.
224  *    - Set and get time to 23h 59m using time editor object.
225  *    - Set and get time to 23h 59m 59s using time editor object.
226  *    - Set and get time to 0h 59m 59s using time editor object.
227  *    - Set and get time to 99:59:59 using time editor object on duration mode.
228  *    - Set and get time to 0:0:0 using time editor object on duration mode.
229  */
230 START_TEST (test_set_time_limits)
231 {
232   guint initial_hours;
233   guint initial_minutes;
234   guint initial_seconds;
235   guint hours;
236   guint minutes;
237   guint seconds;
238   HildonTimeEditor *time_editor = NULL;
239     
240   /* Test 1: Set time value to 00h 00m 00s to test time (am) without seconds*/
241   initial_hours=0;
242   initial_minutes=0;
243   initial_seconds=0;
244
245   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
246
247   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
248
249   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
250
251   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
252           "hildon-time-editor: set_time or get_time failed with values (%dh %dm). Result values are: (%dh %dm)",
253           initial_hours,initial_minutes,hours,minutes);
254
255   remove_and_destroy_time_editor(showed_window,&time_editor);
256
257   /* Test 2: Set time value to 23h 59m 0s to test time (pm) without seconds*/
258   initial_hours=23;
259   initial_minutes=59;
260   initial_seconds=0;
261
262   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
263
264   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
265
266   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
267
268   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
269           "hildon-time-editor: set_time or get_time failed with values (%dh %dm). Result values are: (%dh %dm)",
270           initial_hours,initial_minutes,hours,minutes);
271
272   remove_and_destroy_time_editor(showed_window,&time_editor);
273
274   /* Test 3: Set time value to 23h 59m 59s to test time (am) with seconds*/
275   initial_hours=23;
276   initial_minutes=59;
277   initial_seconds=59;
278
279   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
280
281   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
282
283   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
284
285   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
286           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
287           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
288
289   remove_and_destroy_time_editor(showed_window,&time_editor);
290
291   /* Test 4: Set time value to 0h 59m 59s to test time (am) with seconds */
292   initial_hours=0;
293   initial_minutes=59;
294   initial_seconds=59;
295   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
296
297   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
298
299   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
300
301   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
302           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
303           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
304
305   remove_and_destroy_time_editor(showed_window,&time_editor);
306     
307   /* Test 5: Set time value to 99:59:59 to test with duration mode */
308   initial_hours=99;
309   initial_minutes=59;
310   initial_seconds=59;
311   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
312
313   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
314
315   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
316
317   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
318           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
319           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
320
321   remove_and_destroy_time_editor(showed_window,&time_editor);
322
323   /* Test 6: Set time value to 0:0:0 to test with duration mode */
324   initial_hours=0;
325   initial_minutes=0;
326   initial_seconds=0;
327
328   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
329
330   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
331
332   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
333
334   fail_if((hours != initial_hours) || (minutes != initial_minutes) || (seconds != initial_seconds),
335           "hildon-time-editor: set_time or get_time failed with values (%dh %dm %ds). Result values are: (%dh %dm %ds)",
336           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds);
337     
338   remove_and_destroy_time_editor(showed_window,&time_editor);
339
340     
341 }
342 END_TEST
343
344 /**
345  * Purpose: Check that invalid time values are set and get properly
346  * Cases considered:
347  *    - Set NULL the editor time object.
348  *    - Test NULL (time object) on get_time
349  *    - Set and get time to 0h 60m using time editor object.
350  *    - Set and get time to 0h 0m 60s using time editor object.
351  *    - Set and get time to 24h 60m 60s using time editor object.
352  *    - Set and get time to 50h 100m 100s using time editor object.
353  *    - Set and get time to 0:80:80 using time editor object.
354  *    - Set and get time to 110:80:80 using time editor object.
355  */
356 START_TEST (test_set_time_invalid)
357 {
358   guint initial_hours;
359   guint initial_minutes;
360   guint initial_seconds;
361   guint expected_hours;
362   guint expected_minutes;
363   guint expected_seconds;
364   guint hours;
365   guint minutes;
366   guint seconds;
367   HildonTimeEditor *time_editor = NULL;
368
369   /* Initialization to test 1, test 2 and test 3*/
370   initial_hours=0;
371   initial_minutes=60;
372   initial_seconds=0;
373   expected_hours=1;
374   expected_minutes=0;
375   expected_seconds=0;
376
377   /* Test 1: Set NULL (set_time) */
378   hildon_time_editor_set_time (NULL,initial_hours,initial_minutes,initial_seconds);
379
380   /* Test 2: Set NULL (get_time) */
381   hildon_time_editor_get_time(NULL,&hours,&minutes,&seconds);
382  
383   /* Test 3: Set time value to 00h 60m 00s to test time (am) without seconds and expect the correct value 01h 00m 00s */
384
385   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
386
387   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
388
389   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
390   
391   remove_and_destroy_time_editor(showed_window,&time_editor);
392
393   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
394           "hildon-time-editor: set_time/get_time failed with (%dh %dm). Result values are (%dh %dm) and expected values are (%dh %dm)",
395           initial_hours,initial_minutes,hours,minutes,expected_hours,expected_minutes);
396     
397   /* Test 4: Set time value to 0h 0m 60s to test time (pm) without seconds and expect the correct value 00h 01m 00s*/
398   initial_hours=0;
399   initial_minutes=0;
400   initial_seconds=60;
401   expected_hours=0;
402   expected_minutes=1;
403   expected_seconds=0;
404
405   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
406
407   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
408
409   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
410
411   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
412           "hildon-time-editor: set_time/get_time failed with (%dh %dm %ds). Result values are (%dh %dm %ds) and expected values are (%dh %dm %ds)",
413           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds,expected_hours,expected_minutes,expected_seconds);
414
415   remove_and_destroy_time_editor(showed_window,&time_editor);
416
417   /* Test 5: Set time value to 24h 60m 60s to test time (am) with seconds*/
418   initial_hours=24;
419   initial_minutes=60;
420   initial_seconds=60;
421   expected_hours=23;
422   expected_minutes=1;
423   expected_seconds=0;
424
425   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
426
427   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
428
429   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
430
431   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
432           "hildon-time-editor: set_time/get_time failed with values (%dh %dm %ds). Result values are (%dh %dm %ds) and expected values are (%dh %dm %ds)",
433           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds,expected_hours,expected_minutes,expected_seconds);
434   
435   remove_and_destroy_time_editor(showed_window,&time_editor);
436
437   /* Test 6: Set time value to 50h 100m 100s to test time (am) with seconds */
438   initial_hours=50;
439   initial_minutes=100;
440   initial_seconds=100;
441   expected_hours=23;
442   expected_minutes=41;
443   expected_seconds=40;
444
445   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
446
447   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
448
449   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
450
451   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
452           "hildon-time-editor: set_time/get_time failed with values (%d:%dm:%ds). Result values are (%d:%dm:%ds) and expected values are (%d:%dm:%ds)",
453           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds,expected_hours,expected_minutes,expected_seconds);
454
455   remove_and_destroy_time_editor(showed_window,&time_editor);
456
457
458   /* Test 7: Set time value to 0:80:80 to test with duration mode */
459   initial_hours=0;
460   initial_minutes=80;
461   initial_seconds=80;
462   expected_hours=1;
463   expected_minutes=21;
464   expected_seconds=20;
465
466   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
467
468   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
469
470   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
471
472   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
473           "hildon-time-editor: set_time/get_time failed with values (%d:%d:%d). Result values are (%d:%d:%d) and expected values are (%d:%d:%d)",
474           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds,expected_hours,expected_minutes,expected_seconds);
475
476   remove_and_destroy_time_editor(showed_window,&time_editor);
477
478   /* Test 8: Set time value to 110:80:80 to test with duration mode */
479   initial_hours=110;
480   initial_minutes=80;
481   initial_seconds=80;
482   expected_hours=99;
483   expected_minutes=59;
484   expected_seconds=59;
485
486   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
487
488   hildon_time_editor_set_time(time_editor,initial_hours,initial_minutes,initial_seconds);
489
490   hildon_time_editor_get_time(time_editor,&hours,&minutes,&seconds);
491
492   
493   fail_if((expected_hours != hours) || (expected_minutes != minutes) || (expected_seconds != seconds),
494           "hildon-time-editor: set_time/get_time failed with values (%d:%d:%d). Result values are (%d:%d:%d) and expected values are (%d:%d:%d)",
495           initial_hours,initial_minutes,initial_seconds,hours,minutes,seconds,expected_hours,expected_minutes,expected_seconds);
496
497   remove_and_destroy_time_editor(showed_window,&time_editor);
498
499 }
500 END_TEST
501
502
503 /* ----- Test case for set_ticks -----*/
504
505 /**
506  * Purpose: Check that regular ticks values are set and get properly
507  * Cases considered:
508  *    - Set and get ticks to 45660s using time editor object with time mode.
509  *    - Set and get ticks to 124860s using time editor object with duration mode.
510  */
511 START_TEST (test_set_ticks_regular)
512 {
513   guint initial_ticks;
514   guint ticks;
515   HildonTimeEditor *time_editor = NULL;
516   
517   /* Test 1: Set tick to 45660 seconds to test set_ticks */
518   
519   initial_ticks=45660;
520   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
521   
522   hildon_time_editor_set_ticks(time_editor,initial_ticks);
523
524   ticks = hildon_time_editor_get_ticks(time_editor);
525
526   fail_if(( initial_ticks!=ticks ),
527           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
528
529   remove_and_destroy_time_editor(showed_window,&time_editor);
530     
531
532   /* Test 2: Set tick to 124860 seconds to test set_ticks */
533
534   initial_ticks=124860;
535
536   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
537
538   hildon_time_editor_set_ticks(time_editor,initial_ticks);
539
540   ticks = hildon_time_editor_get_ticks(time_editor);
541
542   fail_if(( initial_ticks!=ticks ),
543           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
544
545   remove_and_destroy_time_editor(showed_window,&time_editor);
546   
547 }
548 END_TEST
549
550 /**
551  * Purpose: Check that limit ticks values are set and get properly
552  * Cases considered:
553  *    - Set and get ticks to 0s using time editor object with time mode.
554  *    - Set and get ticks to 86399s  using time editor object with time mode. 86399 seconds are 23h 59m 59s.
555  *    - Set and get ticks to 0s using time editor object with duration mode.
556  *    - Set and get ticks to 359999s using time editor object with duration mode. 359999 seconds are 99:59:59.
557  */
558 START_TEST (test_set_ticks_limits)
559 {
560   guint initial_ticks;
561   guint ticks;
562   HildonTimeEditor *time_editor = NULL;
563   
564   /* Test 1: Set ticks to 0 seconds to test set_ticks with */
565   
566   initial_ticks=0;
567   time_editor = create_and_show_time_editor(showed_window,FALSE,FALSE);
568   
569   hildon_time_editor_set_ticks(time_editor,initial_ticks);
570   
571   ticks = hildon_time_editor_get_ticks(time_editor);
572   
573   fail_if(( initial_ticks!=ticks ),
574           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
575
576   remove_and_destroy_time_editor(showed_window,&time_editor);
577    
578   /* Test 2: Set ticks to 86399 seconds to test set_ticks */
579   initial_ticks=86399;
580   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
581   
582   hildon_time_editor_set_ticks(time_editor,initial_ticks);
583
584   ticks = hildon_time_editor_get_ticks(time_editor);
585
586   fail_if(( initial_ticks!=ticks ),
587           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
588
589   remove_and_destroy_time_editor(showed_window,&time_editor);
590
591
592   /* Test 3: Set ticks to 0 seconds to test set_ticks */
593
594   initial_ticks=0;
595   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
596     
597   hildon_time_editor_set_ticks(time_editor,initial_ticks);
598
599   ticks = hildon_time_editor_get_ticks(time_editor);
600
601   fail_if(( initial_ticks!=ticks ),
602           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
603
604   remove_and_destroy_time_editor(showed_window,&time_editor);
605
606   /* Test 4: Set ticks to 359999 seconds to test set_ticks */
607
608   initial_ticks=359999;
609   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
610
611   hildon_time_editor_set_ticks(time_editor,initial_ticks);
612
613   ticks = hildon_time_editor_get_ticks(time_editor);
614
615   fail_if(( initial_ticks!=ticks ),
616           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d",initial_ticks,ticks);
617   remove_and_destroy_time_editor(showed_window,&time_editor);
618
619 }
620 END_TEST
621
622 /**
623  * Purpose: Check that invalid ticks values are set and get properly. In this tests we'll test several invalid
624  *          values with the same case because the "mod" operator will define the time set.
625  * Cases considered:
626  *    - Set and get ticks to 86400s using time editor object with time mode. 86399 seconds are 23h 59m 59s.
627  *    - Set and get ticks to 360000s using time editor object with time mode.
628  *    - Set and get ticks to 90060s using time editor object with time.
629  *    - Set and get ticks to 360000s using time editor object with duration mode. 359999 seconds are 99:59:59.
630  *    - Set and get ticks to 654333s using time editor object with duration mode.
631  *    - Set ticks on NULL object.
632  */
633 START_TEST (test_set_ticks_invalid)
634 {
635   guint initial_ticks;
636   guint expected_ticks;
637   guint ticks;
638   HildonTimeEditor *time_editor = NULL;
639
640   initial_ticks=86400;
641   expected_ticks=82800;
642
643   /* Test 1: Set ticks to 86400 seconds to test set_ticks */
644   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
645
646   hildon_time_editor_set_ticks(time_editor,initial_ticks);
647
648   ticks = hildon_time_editor_get_ticks(time_editor);
649
650   fail_if(( expected_ticks!=ticks ),
651           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d and result is %d",
652           initial_ticks,expected_ticks,ticks);
653
654   remove_and_destroy_time_editor(showed_window,&time_editor);
655
656   /* Test 2: Set ticks to 360000 seconds to test set_ticks */
657   initial_ticks=360001;
658   expected_ticks=82801;
659
660   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
661
662   hildon_time_editor_set_ticks(time_editor,initial_ticks);
663
664   ticks = hildon_time_editor_get_ticks(time_editor);
665
666   fail_if(( expected_ticks!=ticks ),
667           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d and result is %d",
668           initial_ticks,expected_ticks,ticks);
669
670   remove_and_destroy_time_editor(showed_window,&time_editor);
671
672   /* Test 3: Set ticks to 90060 seconds to test set_ticks */
673   initial_ticks=90060;
674   expected_ticks=82860;
675
676   time_editor = create_and_show_time_editor(showed_window,TRUE,FALSE);
677
678   hildon_time_editor_set_ticks(time_editor,initial_ticks);
679
680   ticks = hildon_time_editor_get_ticks(time_editor);
681
682   fail_if(( expected_ticks!=ticks ),
683           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d and result is %d",
684           initial_ticks,expected_ticks,ticks);
685
686   remove_and_destroy_time_editor(showed_window,&time_editor);
687
688   /* Test 4: Set ticks to 360000 seconds to test set_ticks */
689
690   initial_ticks=360000;
691   expected_ticks=359999;
692
693   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
694
695   hildon_time_editor_set_ticks(time_editor,initial_ticks);
696
697   ticks = hildon_time_editor_get_ticks(time_editor);
698
699   fail_if(( expected_ticks!=ticks ),
700           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d and result is %d",
701           initial_ticks,expected_ticks,ticks);
702
703   remove_and_destroy_time_editor(showed_window,&time_editor);
704
705   /* Test 5: Set ticks to 654333 seconds to test set_ticks */
706
707   initial_ticks=654333;
708   expected_ticks=359999;
709
710   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
711
712   hildon_time_editor_set_ticks(time_editor,initial_ticks);
713
714   ticks = hildon_time_editor_get_ticks(time_editor);
715
716   fail_if(( expected_ticks!=ticks ),
717           "hildon-time-editor: set_ticks or get_ticks failed with %d. Expected result is %d and result is %d",
718           initial_ticks,expected_ticks,ticks);
719
720   remove_and_destroy_time_editor(showed_window,&time_editor);
721
722   /* Test 6: Set initial_ticks on NULL */
723   hildon_time_editor_set_ticks(NULL,initial_ticks);
724 }
725 END_TEST
726
727
728 /* ----- Test case for set_duration_min_set_duration_max -----*/
729
730 /**
731  * Purpose: Check that regular minimum/maximum values are set/get properly and check that set_duration_mode works well,
732  *          because min and max can not be set without duration mode set.
733  * Cases considered:
734  *    - Set and get minimum duration to 100000 having ticks under 100000 using time editor object with duration mode.
735  *    - Set and get minimum duration to 100000 having ticks over 100000 using time editor object with duration mode.
736  *    - Set and get maximum duration to 200000 having ticks under 200000 using time editor object with duration mode.
737  *    - Set and get maximum duration to 200000 having ticks over 200000 using time editor object with duration mode.
738  */
739 START_TEST (test_set_duration_min_set_duration_max_regular)
740 {
741   guint initial_duration_min;
742   guint duration_min;
743   guint initial_duration_max;
744   guint duration_max;
745   guint expected_ticks;
746   guint ticks;
747   HildonTimeEditor *time_editor = NULL;
748
749   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
750   /* Initialize values in order to avoid side effects from previous tests */
751   hildon_time_editor_set_duration_min(time_editor,MIN_DURATION);
752   hildon_time_editor_set_duration_max(time_editor,MAX_DURATION);
753
754   /* set_min tests*/
755     
756   /* Test 1: Set and get minimum duration to 100000 having ticks under 100000 using time editor object with duration mode. */
757   initial_duration_min=100000;
758   expected_ticks=initial_duration_min;
759
760   hildon_time_editor_set_ticks(time_editor,initial_duration_min-1000);
761   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
762   duration_min = hildon_time_editor_get_duration_min(time_editor);
763   ticks = hildon_time_editor_get_ticks(time_editor);
764
765   fail_if(( initial_duration_min!=duration_min) | (ticks!=expected_ticks),
766           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d. Set ticks to %d, expected ticks are %d and result is %d",
767           initial_duration_min,duration_min,initial_duration_min-1000,expected_ticks,ticks);
768
769   remove_and_destroy_time_editor(showed_window,&time_editor);
770
771   /* Test 2: Set and get minimum duration to 100000 having ticks over 100000 using time editor object with duration mode.*/
772   initial_duration_min=100000;
773   expected_ticks=initial_duration_min+980;
774
775   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
776
777   hildon_time_editor_set_ticks(time_editor,expected_ticks);
778   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
779   duration_min = hildon_time_editor_get_duration_min(time_editor);
780   ticks = hildon_time_editor_get_ticks(time_editor);
781
782   fail_if(( initial_duration_min!=duration_min) | (ticks!=expected_ticks),
783           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d. Set ticks to %d and result is %d",
784           initial_duration_min,duration_min,ticks,expected_ticks);
785
786   remove_and_destroy_time_editor(showed_window,&time_editor);
787
788
789
790   /* Test 3: Set and get maximum duration to 200000 having ticks under 200000 using time editor object with duration mode. */
791   initial_duration_max=200000;
792   expected_ticks=initial_duration_max-1040;
793   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
794
795   hildon_time_editor_set_ticks(time_editor,expected_ticks);
796   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
797   duration_max = hildon_time_editor_get_duration_max(time_editor);
798   ticks = hildon_time_editor_get_ticks(time_editor);
799
800   fail_if(( initial_duration_max!=duration_max) | (ticks!=expected_ticks),
801           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d. Set ticks to %d and result is %d",
802           initial_duration_max,duration_max,ticks,expected_ticks);
803
804   remove_and_destroy_time_editor(showed_window,&time_editor);
805
806   /* Test 4: Set and get maximum duration to 200000 having ticks over 200000 using time editor object with duration mode.*/
807   initial_duration_max=200000;
808   expected_ticks=initial_duration_max+1000;
809   time_editor = create_and_show_time_editor(showed_window,FALSE,TRUE);
810
811   hildon_time_editor_set_ticks(time_editor,expected_ticks);
812   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
813   duration_max = hildon_time_editor_get_duration_max(time_editor);
814   ticks = hildon_time_editor_get_ticks(time_editor);
815
816   fail_if(( initial_duration_max!=duration_max) | (ticks!=initial_duration_max),
817           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d. Set ticks to %d, expected result is %d and result is %d",
818           initial_duration_max,duration_max,expected_ticks,initial_duration_max,ticks);
819
820   remove_and_destroy_time_editor(showed_window,&time_editor);
821  
822 }
823 END_TEST
824
825
826 /**
827  * Purpose: Check that limits duration minimum/maximum values are set and get properly.
828  * Cases considered:
829  *    - Set and get minimum duration to MIN_DURATION having ticks over MIN_DURATION using time editor object with duration mode.
830  *    - Set and get maximum duration to MAX_DURATION having ticks under MAX_DURATION.
831  *      using time editor object with duration mode. 359940 seconds are 99:59:00.
832  *    - Set and get maximum duration to MIN_DURATION having ticks over MIN_DURATION using time editor object with duration mode.
833  *    - Set and get minimum duration to MAX_DURATION having ticks under MAX_DURATION.
834  *      using time editor object with duration mode. 359999 seconds are 99:59:59.
835  */
836 START_TEST (test_set_duration_min_set_duration_max_limits)
837 {
838   guint initial_duration_min;
839   guint duration_min;
840   guint initial_duration_max;
841   guint duration_max;
842   guint expected_ticks;
843   guint ticks;
844      HildonTimeEditor *time_editor = NULL;
845
846
847   /* Test 1: Set minimum duration to MAX_DURATION seconds having ticks under MAX_DURATION. */
848   expected_ticks=MIN_DURATION+1;
849   initial_duration_min=MIN_DURATION;
850
851   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
852
853   hildon_time_editor_set_ticks(time_editor,expected_ticks);
854   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
855   duration_min = hildon_time_editor_get_duration_min(time_editor);
856   ticks = hildon_time_editor_get_ticks(time_editor);
857
858   fail_if(( initial_duration_min!=duration_min) | (ticks!=expected_ticks),
859           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d. Set ticks to %d and result is %d",
860           initial_duration_min,duration_min,expected_ticks,ticks);
861
862   remove_and_destroy_time_editor(showed_window,&time_editor);
863
864   /* Test 2: Set maximum duration to MAX_DURATION seconds having ticks under MAX_DURATION. */
865   expected_ticks=MAX_DURATION-59;
866   initial_duration_max=MAX_DURATION;
867
868   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
869
870   hildon_time_editor_set_ticks(time_editor,expected_ticks);
871   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
872   duration_max = hildon_time_editor_get_duration_max(time_editor);
873   ticks = hildon_time_editor_get_ticks(time_editor);
874
875   fail_if(( initial_duration_max!=duration_max) | (ticks!=expected_ticks),
876           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d. Set ticks to %d and result is %d",
877           initial_duration_max,duration_max,expected_ticks,ticks);
878
879   remove_and_destroy_time_editor(showed_window,&time_editor);
880
881   /* Test 3:  Set and get maximum duration to MIN_DURATION having ticks over MIN_DURATION
882      using time editor object with duration mode. */
883   expected_ticks=MIN_DURATION+1;
884   initial_duration_max=MIN_DURATION;
885
886   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
887
888   hildon_time_editor_set_ticks(time_editor,expected_ticks);
889   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
890   duration_max = hildon_time_editor_get_duration_max(time_editor);
891   ticks = hildon_time_editor_get_ticks(time_editor);
892
893   fail_if(( initial_duration_max!=duration_max) | (ticks!=MIN_DURATION),
894           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d. Set ticks to %d and result is %d",
895           initial_duration_max,duration_max,expected_ticks,ticks);
896
897   remove_and_destroy_time_editor(showed_window,&time_editor);
898
899   /* Test 4: Set and get minimum duration to MIN_DURATION having ticks over MIN_DURATION
900      using time editor object with duration mode. */
901   expected_ticks=MAX_DURATION-1;
902   initial_duration_min=MAX_DURATION;
903
904   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
905
906   hildon_time_editor_set_ticks(time_editor,expected_ticks);
907   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
908   duration_min = hildon_time_editor_get_duration_min(time_editor);
909   ticks = hildon_time_editor_get_ticks(time_editor);
910
911   fail_if(( initial_duration_min!=duration_min) | (ticks!=MAX_DURATION),
912           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d. Set ticks to %d and result is %d",
913           initial_duration_min,duration_min,ticks,MAX_DURATION);
914
915   remove_and_destroy_time_editor(showed_window,&time_editor);
916   
917 }
918 END_TEST
919
920 /**
921  * Purpose: Check that invalid minimum/maximum duration values are set and get properly.
922  * Cases considered:
923  *    - Set duration_min on NULL object.
924  *    - Set and get minimum duration to MAX_DURATION+1 using time editor object with duration mode
925  *      setting ticks previously with a value under MAX_DURATION.
926  *    - Set and get minimum duration to MAX_DURATION+1 using time editor object with duration mode
927  *      setting ticks previously with a value over MAX_DURATION.
928  *    - Set duration_max on NULL object.
929  *    - Set and get maximum duration to MAX_DURATION+1 using time editor object with duration mode
930  *      setting ticks previously with a value under MAX_DURATION.
931  *    - Set and get maximum duration to MAX_DURATION+1 using time editor object with duration mode
932  *      setting ticks previously with a value over MAX_DURATION.
933  */
934 START_TEST (test_set_duration_min_set_duration_max_invalid)
935 {
936   guint initial_duration_min;
937   guint expected_duration_min;
938   guint duration_min;
939   guint initial_duration_max;
940   guint expected_duration_max;
941   guint duration_max;
942   guint expected_ticks;
943   guint ticks;
944   HildonTimeEditor *time_editor = NULL;
945
946
947   /* Test 1: Set minimum duration on NULL object */
948   hildon_time_editor_set_duration_min(NULL,MIN_DURATION);
949
950   /* Test 2: Set minimum duration to MAX_DURATION+1 seconds to test set_duration_min */
951   initial_duration_min=MAX_DURATION+1;
952   expected_duration_min=MAX_DURATION+1;
953   expected_ticks=MAX_DURATION-1;
954
955   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
956
957   hildon_time_editor_set_ticks(time_editor,expected_ticks);
958   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
959   duration_min = hildon_time_editor_get_duration_min(time_editor);
960   ticks = hildon_time_editor_get_ticks(time_editor);
961     
962   fail_if(( expected_duration_min!=duration_min) | (ticks!=MAX_DURATION),
963           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d and result is %d. Set ticks to %d, expected result is %d and result is %d",
964           initial_duration_min,duration_min,expected_duration_min,expected_ticks,MAX_DURATION,ticks);
965
966   remove_and_destroy_time_editor(showed_window,&time_editor);
967
968   /* Test 3: Set minimum duration to MAX_DURATION+1 seconds to test set_duration_min */
969   initial_duration_min=MAX_DURATION+1;
970   expected_duration_min=MAX_DURATION+1;
971   expected_ticks=MAX_DURATION+2;
972
973   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
974
975   hildon_time_editor_set_ticks(time_editor,expected_ticks);
976   hildon_time_editor_set_duration_min(time_editor,initial_duration_min);
977   duration_min = hildon_time_editor_get_duration_min(time_editor);
978   ticks = hildon_time_editor_get_ticks(time_editor);
979     
980   fail_if(( expected_duration_min!=duration_min) | (ticks!=MAX_DURATION),
981           "hildon-time-editor: set_duration_min or get_duration_min failed with %d. Expected result is %d and result is %d. Set ticks to %d, expected result is %d and result is %d",
982           initial_duration_min,duration_min,expected_duration_min,expected_ticks,MAX_DURATION,ticks);
983
984   remove_and_destroy_time_editor(showed_window,&time_editor);
985  
986   /* Test 4: Set maximum duration on NULL object */
987   hildon_time_editor_set_duration_max(NULL,MAX_DURATION);
988
989   /* Test 5: Set maximum duration to MAX_DURATION+1 seconds to test set_duration_max settings ticks under MAX_DURATION*/
990   initial_duration_max=MAX_DURATION+1;
991   expected_duration_max=MAX_DURATION;
992   expected_ticks=MAX_DURATION-59;
993   
994   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
995   
996   hildon_time_editor_set_ticks(time_editor,expected_ticks);
997   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
998   duration_max = hildon_time_editor_get_duration_max(time_editor);
999   ticks = hildon_time_editor_get_ticks(time_editor);
1000
1001   fail_if(( expected_duration_max!=duration_max) | (ticks!=expected_ticks),
1002           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d and result is %d. Set ticks to %d, expected result is %d and result is %d",
1003           initial_duration_max,duration_max,expected_duration_max,expected_ticks,expected_ticks,ticks);
1004
1005   remove_and_destroy_time_editor(showed_window,&time_editor);
1006
1007   /* Initialize values in order to avoid side effects from previous tests */
1008   initial_duration_max=MAX_DURATION+1;
1009   expected_duration_max=MAX_DURATION;
1010   expected_ticks=MAX_DURATION+1;
1011
1012   /* Test 6: Set maximum duration to MAX_DURATION+1 seconds to test set_duration_max setting ticks over MAX_DURATION */
1013   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1014
1015   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1016   hildon_time_editor_set_duration_max(time_editor,initial_duration_max);
1017   duration_max = hildon_time_editor_get_duration_max(time_editor);
1018   ticks = hildon_time_editor_get_ticks(time_editor);
1019   fail_if(( expected_duration_max!=duration_max),
1020           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d and result is %d. Set ticks to %d, expected result is %d and result is %d",
1021           initial_duration_max,duration_max,expected_duration_max,expected_ticks,MAX_DURATION,ticks);
1022
1023   /*  fail_if(( expected_duration_max!=duration_max) | (ticks!=MAX_DURATION),
1024           "hildon-time-editor: set_duration_max or get_duration_max failed with %d. Expected result is %d and result is %d. Set ticks to %d, expected result is %d and result is %d",
1025           initial_duration_max,duration_max,expected_duration_max,expected_ticks,MAX_DURATION,ticks);
1026   */
1027   remove_and_destroy_time_editor(showed_window,&time_editor);
1028
1029
1030 }
1031 END_TEST
1032
1033 /* ----- Test case for set_duration_range  -----*/
1034
1035 /**
1036  * Purpose: Check that regular range values are set and get properly
1037  * Cases considered:
1038  *    - Set and get duration range (100000,200000) having ticks under 100000 using time editor object with duration mode.
1039  *    - Set and get duration range (100000,200000) having ticks between 100000 and 200000 using time editor object with duration mode.
1040  *    - Set and get duration range (100000,200000) having ticks over 200000 using time editor object with duration mode.
1041  *    - Set and get duration range (100000,100000) having ticks under 100000 using time editor object with duration mode.
1042  *    - Set and get duration range (100000,100000) having ticks equal to 100000 using time editor object with duration mode.
1043  *    - Set and get duration range (100000,100000) having ticks over 100000 using time editor object with duration mode.
1044  *
1045  */
1046 START_TEST (test_set_duration_range_regular)
1047 {
1048   guint initial_duration_min;
1049   guint initial_duration_max;
1050   guint duration_min;
1051   guint duration_max;
1052   guint expected_ticks;
1053   guint ticks;
1054   HildonTimeEditor *time_editor = NULL;
1055
1056   /* Test 1: Set duration range to (100000,200000) seconds to test set_duration_range having ticks under 100000 */
1057   initial_duration_min=100000;
1058   initial_duration_max=200000;
1059   expected_ticks=90000;
1060     
1061   /* Initialize values in order to avoid side effects from previous tests */
1062   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1063
1064   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1065   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1066   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1067   ticks = hildon_time_editor_get_ticks(time_editor);
1068
1069   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1070            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1071            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1072
1073   remove_and_destroy_time_editor(showed_window,&time_editor);
1074
1075   /* Test 2: Set duration range to (100000,200000) seconds to test set_duration_range having ticks between 100000 and 200000 */
1076   initial_duration_min=100000;
1077   initial_duration_max=200000;
1078   expected_ticks=150000;
1079   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1080     
1081   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1082   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1083   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1084   ticks = hildon_time_editor_get_ticks(time_editor);
1085
1086   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1087            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1088            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1089
1090   remove_and_destroy_time_editor(showed_window,&time_editor);
1091
1092
1093   /* Test 3: Set duration range to (100000,200000) seconds to test set_duration_range having ticks over 200000*/
1094   initial_duration_min=100000;
1095   initial_duration_max=200000;
1096   expected_ticks=220000;
1097
1098   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1099    
1100   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1101   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1102   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1103   ticks = hildon_time_editor_get_ticks(time_editor);
1104
1105   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1106            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1107            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1108
1109   remove_and_destroy_time_editor(showed_window,&time_editor);
1110
1111   /* Test 4: Set duration range to (100000,100000) seconds to test set_duration_range having ticks under 100000 */
1112   initial_duration_min=100000;
1113   initial_duration_max=100000;
1114   expected_ticks=90000;
1115     
1116   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1117
1118   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1119   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1120   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1121   ticks = hildon_time_editor_get_ticks(time_editor);
1122
1123   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1124            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1125            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1126
1127   remove_and_destroy_time_editor(showed_window,&time_editor);
1128
1129   /* Test 5: Set duration range to (100000,100000) seconds to test set_duration_range having ticks equal to 100000 */
1130   initial_duration_min=100000;
1131   initial_duration_max=100000;
1132   expected_ticks=100000;
1133
1134   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1135
1136   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1137   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1138   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1139   ticks = hildon_time_editor_get_ticks(time_editor);
1140
1141   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1142            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1143            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1144
1145   remove_and_destroy_time_editor(showed_window,&time_editor);
1146
1147   /* Test 6: Set duration range to (100000,100000) seconds to test set_duration_range having ticks over 100000 */
1148   initial_duration_min=100000;
1149   initial_duration_max=100000;
1150   expected_ticks=120000;
1151     
1152   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1153
1154   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1155   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1156   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1157   ticks = hildon_time_editor_get_ticks(time_editor);
1158
1159   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1160            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1161            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1162
1163   remove_and_destroy_time_editor(showed_window,&time_editor);
1164
1165     
1166 }
1167 END_TEST
1168
1169 /**
1170  * Purpose: Check that limits range values are set and get properly
1171  * Cases considered:
1172  *    - Set and get duration range to (MIN_DURATION,MAX_DURATION) having ticks between MIN_DURATION and MAX_DURATION
1173  *      using time editor object with duration mode.
1174  *    - Set and get duration range to (MIN_DURATION,MIN_DURATION) having ticks over MIN_DURATION
1175  *      using time editor object with duration mode.
1176  *    - Set and get duration range to (MAX_DURATION,MAX_DURATION) having ticks under MAX_DURATION
1177  *      using time editor object with duration mode.
1178  *
1179  */
1180 START_TEST (test_set_duration_range_limits)
1181 {
1182   guint initial_duration_min;
1183   guint initial_duration_max;
1184   guint duration_min;
1185   guint duration_max;
1186   guint expected_ticks;
1187   guint ticks;
1188   HildonTimeEditor *time_editor = NULL;
1189
1190     
1191   /* Test 1: Set duration range to (MIN_DURATION,MAX_DURATION) seconds to test set_duration_range having ticks under MIN_DURATION */
1192   initial_duration_min=MIN_DURATION;
1193   initial_duration_max=MAX_DURATION;
1194   expected_ticks=MIN_DURATION+1;
1195
1196   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1197   
1198   /* Initialize values in order to avoid side effects from previous tests */
1199   hildon_time_editor_set_duration_min(time_editor,MIN_DURATION);
1200   hildon_time_editor_set_duration_max(time_editor,MAX_DURATION);
1201
1202   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1203   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1204   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1205   ticks = hildon_time_editor_get_ticks(time_editor);
1206
1207   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1208            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1209            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1210
1211   remove_and_destroy_time_editor(showed_window,&time_editor);
1212   
1213
1214   /* Test 2: Set duration range to (MIN_DURATION,MIN_DURATION) seconds to test set_duration_range having ticks over MIN_DURATION */
1215   initial_duration_min=MIN_DURATION;
1216   initial_duration_max=MIN_DURATION;
1217   expected_ticks=MIN_DURATION+1;
1218
1219   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1220
1221   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1222   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1223   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1224   ticks = hildon_time_editor_get_ticks(time_editor);
1225
1226   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1227            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1228            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1229
1230   remove_and_destroy_time_editor(showed_window,&time_editor);
1231   
1232   /* Test 3: Set duration range to (MAX_DURATION,MAX_DURATION) seconds to test set_duration_range having ticks under MAX_DURATION */
1233   initial_duration_min=MAX_DURATION;
1234   initial_duration_max=MAX_DURATION;
1235   expected_ticks=MAX_DURATION-1;
1236     
1237   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1238
1239   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1240   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1241   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1242   ticks = hildon_time_editor_get_ticks(time_editor);
1243
1244   fail_if( ( (initial_duration_min!=duration_min) | (initial_duration_max!=duration_max) | ( ticks!=initial_duration_min )),
1245            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1246            initial_duration_min,initial_duration_max,duration_min,duration_max,ticks,initial_duration_min);
1247
1248   remove_and_destroy_time_editor(showed_window,&time_editor);
1249   
1250     
1251 }
1252 END_TEST
1253
1254 /**
1255  * Purpose: Check that invalid range values are set and get properly
1256  * Cases considered:
1257  *    - Set duration_range on NULL object.
1258  *    - Set and get duration range to (MAX_DURATION,MIN_DURATION) using time editor object with duration mode.
1259  *    - Set and get duration range to (MIN_DURATION,MAX_DURATION+1) having ticks between MIN_DURATION and MAX_DURATION
1260  *      using time editor object with duration mode.
1261  *    - Set and get duration range to (MAX_DURATION+1,MIN_DURATION) using time editor object with duration mode.
1262  *    - Set and get duration range to (MAX_DURATION+1,MAX_DURATION+3)
1263  *      using time editor object with duration mode.
1264  *    - Set and get duration range to (MAX_DURATION+3,MAX_DURATION+1)
1265  *      using time editor object with duration mode.
1266  *
1267  */
1268 START_TEST (test_set_duration_range_invalid)
1269 {
1270   guint initial_duration_min;
1271   guint initial_duration_max;
1272   guint duration_min;
1273   guint duration_max;
1274   guint expected_ticks;
1275   guint ticks;
1276   HildonTimeEditor *time_editor = NULL;
1277
1278    
1279   /* Test 1: Set duration range on NULL */
1280   hildon_time_editor_set_duration_range(NULL,MIN_DURATION,MAX_DURATION);
1281
1282   /* Test 2: Set duration range to (MAX_DURATION,MIN_DURATION) seconds to test set_duration_range */
1283   initial_duration_min=MAX_DURATION;
1284   initial_duration_max=MIN_DURATION;
1285   expected_ticks=MIN_DURATION+1;
1286   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1287   
1288   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1289   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1290   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1291   ticks = hildon_time_editor_get_ticks(time_editor);
1292
1293   fail_if( ( (MIN_DURATION!=duration_min) | (MAX_DURATION!=duration_max) | ( ticks!=MIN_DURATION )),
1294            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1295            MIN_DURATION,MAX_DURATION,duration_min,duration_max,ticks,MIN_DURATION);
1296
1297   remove_and_destroy_time_editor(showed_window,&time_editor);
1298
1299   /* Test 3: Set duration range to (MIN_DURATION,MAX_DURATION+1) seconds to test set_duration_range */
1300   initial_duration_min=MIN_DURATION;
1301   initial_duration_max=MAX_DURATION+1;
1302   expected_ticks=MAX_DURATION-59;
1303   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1304     
1305   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1306   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1307   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1308   ticks = hildon_time_editor_get_ticks(time_editor);
1309
1310   fail_if( ( (MIN_DURATION!=duration_min) | (MAX_DURATION!=duration_max) | ( ticks!=MIN_DURATION )),
1311            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1312            MIN_DURATION,MAX_DURATION,duration_min,duration_max,ticks,MIN_DURATION);
1313
1314   remove_and_destroy_time_editor(showed_window,&time_editor);
1315
1316
1317   /* Test 4: Set duration range to (MAX_DURATION+1,MIN_DURATION) seconds to test set_duration_range */
1318   initial_duration_min=MAX_DURATION+1;
1319   initial_duration_max=MIN_DURATION;
1320   expected_ticks=MIN_DURATION-1;
1321   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1322
1323   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1324   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1325
1326   fail_if( ( (MIN_DURATION!=duration_min) | (MAX_DURATION!=duration_max) ),
1327            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). ",
1328            MIN_DURATION,MAX_DURATION,duration_min,duration_max);
1329
1330   remove_and_destroy_time_editor(showed_window,&time_editor);
1331
1332
1333   /* Test 5: Set duration range to (MAX_DURATION+1,MIN_DURATION+3) seconds to test set_duration_range */
1334   initial_duration_min=MAX_DURATION+1;
1335   initial_duration_max=MAX_DURATION+3;
1336   expected_ticks=MAX_DURATION+1;
1337
1338   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1339
1340   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1341   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1342   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1343   ticks = hildon_time_editor_get_ticks(time_editor);
1344
1345 /*   fail_if( ( (initial_duration_min!=duration_min) | (MAX_DURATION!=duration_max) | ( ticks!=MAX_DURATION )), */
1346 /*            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ", */
1347 /*            initial_duration_min,MAX_DURATION,duration_min,duration_max,ticks,MAX_DURATION); */
1348
1349   fail_if( ( (initial_duration_min!=duration_min) | (MAX_DURATION!=duration_max) ),
1350            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1351            initial_duration_min,MAX_DURATION,duration_min,duration_max,ticks,MAX_DURATION);
1352
1353   remove_and_destroy_time_editor(showed_window,&time_editor);
1354
1355   /* Test 6: Set duration range to (MAX_DURATION+3,MIN_DURATION+1) seconds to test set_duration_range */
1356   initial_duration_min=MAX_DURATION+3;
1357   initial_duration_max=MAX_DURATION+1;
1358   expected_ticks=MAX_DURATION+1;
1359
1360   time_editor = create_and_show_time_editor(showed_window,TRUE,TRUE);
1361
1362   hildon_time_editor_set_ticks(time_editor,expected_ticks);
1363   hildon_time_editor_set_duration_range(time_editor,initial_duration_min,initial_duration_max);
1364   hildon_time_editor_get_duration_range(time_editor,&duration_min,&duration_max);
1365   ticks = hildon_time_editor_get_ticks(time_editor);
1366
1367   fail_if( ( (initial_duration_max!=duration_min) | (MAX_DURATION!=duration_max) | ( ticks!=MAX_DURATION )),
1368            "hildon-time-editor: set_duration_range or get_duration_range failed with (minimum,maximum) as (%d,%d). Expected range is (%d,%d). Set ticks to %d and expected ticks are %d ",
1369            initial_duration_max,MAX_DURATION,duration_min,duration_max,ticks,MAX_DURATION);
1370
1371   remove_and_destroy_time_editor(showed_window,&time_editor);
1372
1373     
1374 }
1375 END_TEST
1376
1377
1378 /* ---------- Suite creation ---------- */
1379
1380 Suite *create_hildon_time_editor_suite()
1381 {
1382   /* Create the suite */
1383   Suite *s = suite_create("HildonTimeEditor");
1384
1385   /* Create test cases */
1386   TCase *tc1 = tcase_create("set_time");
1387   TCase *tc2 = tcase_create("set_ticks");
1388   TCase *tc3 = tcase_create("set_duration_min_set_duration_max");
1389   TCase *tc4 = tcase_create("set_duration_range");
1390
1391   /* Create test case for hildon_time_editor_set_time and add it to the suite */
1392   tcase_add_checked_fixture(tc1, fx_setup_default_time_editor, fx_teardown_default_time_editor);
1393   tcase_add_test(tc1, test_set_time_regular);
1394   tcase_add_test(tc1, test_set_time_limits);
1395   tcase_add_test(tc1, test_set_time_invalid);
1396   suite_add_tcase (s, tc1);
1397
1398   /* Create test case for hildon_time_editor_set_ticks and add it to the suite */
1399   tcase_add_checked_fixture(tc2, fx_setup_default_time_editor, fx_teardown_default_time_editor);
1400   tcase_add_test(tc2, test_set_ticks_regular);
1401   tcase_add_test(tc2, test_set_ticks_limits);
1402   tcase_add_test(tc2, test_set_ticks_invalid);
1403   suite_add_tcase (s, tc2);
1404
1405   /* Create test case for hildon_time_editor_set_duration_max and add it to the suite */
1406   tcase_add_checked_fixture(tc3, fx_setup_default_time_editor, fx_teardown_default_time_editor);
1407   tcase_add_test(tc3, test_set_duration_min_set_duration_max_regular);
1408   tcase_add_test(tc3, test_set_duration_min_set_duration_max_limits);
1409   tcase_add_test(tc3, test_set_duration_min_set_duration_max_invalid);
1410   suite_add_tcase (s, tc3);
1411
1412   /* Create test case for hildon_time_editor_set_duration_range and add it to the suite */
1413   tcase_add_checked_fixture(tc4, fx_setup_default_time_editor, fx_teardown_default_time_editor);
1414   tcase_add_test(tc4, test_set_duration_range_regular);
1415   tcase_add_test(tc4, test_set_duration_range_limits);
1416   tcase_add_test(tc4, test_set_duration_range_invalid);
1417   suite_add_tcase (s, tc4);
1418
1419   /* Return created suite */
1420   return s;             
1421 }