Fix SWIG C# Build
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-Button.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include <iostream>
19 #include <stdlib.h>
20
21 // Need to override adaptor classes for toolkit test harness, so include
22 // test harness headers before dali headers.
23 #include <dali-toolkit-test-suite-utils.h>
24
25 #include <dali.h>
26 #include <dali-toolkit/dali-toolkit.h>
27 #include <dali/integration-api/events/touch-event-integ.h>
28
29 using namespace Dali;
30 using namespace Toolkit;
31
32
33 void utc_dali_toolkit_button_startup(void)
34 {
35   test_return_value = TET_UNDEF;
36 }
37
38 void utc_dali_toolkit_button_cleanup(void)
39 {
40   test_return_value = TET_PASS;
41 }
42
43 namespace
44 {
45 static bool gIsCalledButtonCallback = false;
46
47 static bool ButtonCallback( Button button )
48 {
49   gIsCalledButtonCallback = true;
50   return false;
51 }
52
53 struct CallbackFunctor
54 {
55   CallbackFunctor(bool* callbackFlag)
56   : mCallbackFlag( callbackFlag )
57   {
58   }
59
60   void operator()()
61   {
62     *mCallbackFlag = true;
63   }
64   bool* mCallbackFlag;
65 };
66
67 Dali::Integration::Point GetPointDownInside()
68 {
69   Dali::Integration::Point point;
70   point.SetState( PointState::DOWN );
71   point.SetScreenPosition( Vector2( 240, 400 ) );
72   return point;
73 }
74
75 Dali::Integration::Point GetPointUpInside()
76 {
77   Dali::Integration::Point point;
78   point.SetState( PointState::UP );
79   point.SetScreenPosition( Vector2( 240, 400 ) );
80   return point;
81 }
82
83 Dali::Integration::Point GetPointLeave()
84 {
85   Dali::Integration::Point point;
86   point.SetState( PointState::LEAVE );
87   point.SetScreenPosition( Vector2( 240, 400 ) );
88   return point;
89 }
90
91 Dali::Integration::Point GetPointEnter()
92 {
93   Dali::Integration::Point point;
94   point.SetState( PointState::MOTION );
95   point.SetScreenPosition( Vector2( 240, 400 ) );
96   return point;
97 }
98
99 Dali::Integration::Point GetPointDownOutside()
100 {
101   Dali::Integration::Point point;
102   point.SetState( PointState::DOWN );
103   point.SetScreenPosition( Vector2( 10, 10 ) );
104   return point;
105 }
106
107 Dali::Integration::Point GetPointUpOutside()
108 {
109   Dali::Integration::Point point;
110   point.SetState( PointState::UP );
111   point.SetScreenPosition( Vector2( 10, 10 ) );
112   return point;
113 }
114
115
116 static float ANIMATION_TIME( 0.5f );
117 } // namespace
118
119 int UtcDaliButtonConstructorP(void)
120 {
121   TestApplication application;
122
123   Button button;
124
125   DALI_TEST_CHECK( !button );
126   END_TEST;
127 }
128
129 int UtcDaliButtonCopyConstructorP(void)
130 {
131   TestApplication application;
132
133   // Initialize an object, ref count == 1
134   Button button = PushButton::New();
135
136   Button copy( button );
137   DALI_TEST_CHECK( copy );
138   END_TEST;
139 }
140
141 int UtcDaliButtonAssignmentOperatorP(void)
142 {
143   TestApplication application;
144
145   Button button = PushButton::New();
146
147   Button copy( button );
148   DALI_TEST_CHECK( copy );
149
150   DALI_TEST_CHECK( button == copy );
151   END_TEST;
152 }
153
154 int UtcDaliButtonDownCastP(void)
155 {
156   TestApplication application;
157
158   Button button = PushButton::New();
159
160   BaseHandle object(button);
161
162   Button button2 = Button::DownCast( object );
163   DALI_TEST_CHECK(button2);
164
165   Button button3 = DownCast< Button >(object);
166   DALI_TEST_CHECK(button3);
167   END_TEST;
168 }
169
170 int UtcDaliButtonDownCastN(void)
171 {
172   TestApplication application;
173
174   BaseHandle unInitializedObject;
175
176   Button button1 = Button::DownCast( unInitializedObject );
177   DALI_TEST_CHECK( !button1 );
178
179   Button button2 = DownCast< Button >( unInitializedObject );
180   DALI_TEST_CHECK( !button2 );
181   END_TEST;
182 }
183
184 int UtcDaliButtonSetDisabledP(void)
185 {
186   ToolkitTestApplication application;
187
188   Button button = PushButton::New();
189
190   button.SetDisabled( true );
191
192   DALI_TEST_CHECK( button.IsDisabled() );
193
194   button.SetDisabled( false );
195
196   DALI_TEST_CHECK( !button.IsDisabled() );
197
198   button.SetDisabled( true );
199
200   DALI_TEST_CHECK( button.IsDisabled() );
201
202   button.SetDisabled( false );
203
204   DALI_TEST_CHECK( !button.IsDisabled() );
205   END_TEST;
206 }
207
208 int UtcDaliButtonIsDisabledP(void)
209 {
210   ToolkitTestApplication application;
211
212   Button button = PushButton::New();
213
214   button.SetDisabled( true );
215
216   DALI_TEST_CHECK( button.IsDisabled() );
217
218   button.SetDisabled( false );
219
220   DALI_TEST_CHECK( !button.IsDisabled() );
221   END_TEST;
222 }
223
224 int UtcDaliButtonSetAutoRepeatingP(void)
225 {
226   ToolkitTestApplication application;
227
228   Button button = PushButton::New();
229
230   button.SetAutoRepeating( true );
231
232   DALI_TEST_CHECK( button.IsAutoRepeating() );
233
234   button.SetAutoRepeating( false );
235
236   DALI_TEST_CHECK( !button.IsAutoRepeating() );
237
238   button.SetAutoRepeating( true );
239
240   DALI_TEST_CHECK( button.IsAutoRepeating() );
241
242   button.SetAutoRepeating( false );
243
244   DALI_TEST_CHECK( !button.IsAutoRepeating() );
245   END_TEST;
246 }
247
248 int UtcDaliButtonIsAutoRepeatingP(void)
249 {
250   ToolkitTestApplication application;
251
252   Button button = PushButton::New();
253
254   button.SetAutoRepeating( true );
255
256   DALI_TEST_CHECK( button.IsAutoRepeating() );
257
258   button.SetAutoRepeating( false );
259
260   DALI_TEST_CHECK( !button.IsAutoRepeating() );
261   END_TEST;
262 }
263
264 int UtcDaliButtonSetInitialAutoRepeatingDelayP(void)
265 {
266   ToolkitTestApplication application;
267
268   Button button = PushButton::New();
269
270   button.SetInitialAutoRepeatingDelay( 0.5f );
271
272   DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.5f, TEST_LOCATION );
273
274   button.SetInitialAutoRepeatingDelay( 0.2f );
275
276   DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.2f, TEST_LOCATION );
277   END_TEST;
278 }
279
280 int UtcDaliButtonSetNextAutoRepeatingDelayP(void)
281 {
282   ToolkitTestApplication application;
283
284   Button button = PushButton::New();
285
286   button.SetNextAutoRepeatingDelay( 0.5f );
287
288   DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.5f, TEST_LOCATION );
289
290   button.SetNextAutoRepeatingDelay( 0.2f );
291
292   DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.2f, TEST_LOCATION );
293   END_TEST;
294 }
295
296 int UtcDaliButtonSetTogglableButtonP(void)
297 {
298   ToolkitTestApplication application;
299
300   Button button = PushButton::New();
301
302   button.SetTogglableButton( true );
303
304   DALI_TEST_CHECK( button.IsTogglableButton() );
305
306   button.SetTogglableButton( false );
307
308   DALI_TEST_CHECK( !button.IsTogglableButton() );
309   END_TEST;
310 }
311
312 int UtcDaliButtonSetSelectedP(void)
313 {
314   ToolkitTestApplication application;
315
316   Button button = PushButton::New();
317   button.SetTogglableButton( true );
318
319   button.SetSelected( true );
320
321   DALI_TEST_CHECK( button.IsSelected() );
322
323   button.SetSelected( false );
324
325   DALI_TEST_CHECK( !button.IsSelected() );
326   END_TEST;
327 }
328
329 int UtcDaliButtonSetAnimationTimeP(void)
330 {
331   ToolkitTestApplication application;
332   tet_infoline(" UtcDaliButtonSetAnimationTimeP");
333
334   Button button = PushButton::New();
335
336   button.SetAnimationTime( ANIMATION_TIME );
337
338   DALI_TEST_EQUALS( button.GetAnimationTime(), ANIMATION_TIME, TEST_LOCATION );
339   END_TEST;
340 }
341
342 int UtcDaliButtonSetLabelStringP(void)
343 {
344   ToolkitTestApplication application;
345
346   Button button = PushButton::New();
347
348   button.SetLabelText( "Button Label" );
349
350   DALI_TEST_EQUALS( button.GetLabelText(), "Button Label", TEST_LOCATION );
351   END_TEST;
352 }
353
354 int UtcDaliButtonSetLabelActorP(void)
355 {
356   ToolkitTestApplication application;
357
358   Button button = PushButton::New();
359
360   button.SetLabelText( "Button Label" );
361
362   DALI_TEST_EQUALS( button.GetLabelText(), "Button Label", TEST_LOCATION );
363   END_TEST;
364 }
365
366 int UtcDaliButtonSetUnselectedImageP(void)
367 {
368   ToolkitTestApplication application;
369   tet_infoline(" UtcDaliButtonSetUnselectedImageP");
370
371   PushButton pushButton = PushButton::New();
372   Stage::GetCurrent().Add( pushButton );
373
374   application.SendNotification();
375   application.Render();
376
377   pushButton.SetSize( Vector2( 20.0f, 20.0f ) );
378   pushButton.SetUnselectedImage( "Image.jpg" );
379
380   application.SendNotification();
381   application.Render();
382
383   Vector3 size = pushButton.GetCurrentSize();
384
385   DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION );
386   DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION );
387
388   END_TEST;
389 }
390
391 int UtcDaliButtonSetSelectedImageP(void)
392 {
393   ToolkitTestApplication application;
394   tet_infoline(" UtcDaliButtonSetButtonImage");
395
396   PushButton pushButton = PushButton::New();
397   Stage::GetCurrent().Add( pushButton );
398
399   application.SendNotification();
400   application.Render();
401
402   pushButton.SetSize( Vector2( 20.0f, 20.0f ) );
403   pushButton.SetSelectedImage( "Image.jpg" );
404
405   application.SendNotification();
406   application.Render();
407
408   Vector3 size = pushButton.GetCurrentSize();
409
410   DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION );
411   DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION );
412
413   END_TEST;
414 }
415
416 int UtcDaliButtonPressedSignalP(void)
417 {
418   ToolkitTestApplication application;
419   tet_infoline(" UtcDaliButtonPressedSignalP");
420
421   Button button = PushButton::New();
422   button.SetAnchorPoint( AnchorPoint::TOP_LEFT );
423   button.SetParentOrigin( ParentOrigin::TOP_LEFT );
424   button.SetPosition( 240, 400 );
425   button.SetSize( 100, 100 );
426
427   Stage::GetCurrent().Add( button );
428
429   application.SendNotification();
430   application.Render();
431
432   // connect to its touch signal
433   ConnectionTracker* testTracker = new ConnectionTracker();
434   button.PressedSignal().Connect( &ButtonCallback );
435   button.ReleasedSignal().Connect( &ButtonCallback );
436   bool pressedSignal = false;
437   bool releasedSignal = false;
438   button.ConnectSignal( testTracker, "pressed",   CallbackFunctor(&pressedSignal) );
439   button.ConnectSignal( testTracker, "released",  CallbackFunctor(&releasedSignal) );
440
441   Dali::Integration::TouchEvent event;
442
443   // Test1. Touch point down and up inside the button.
444
445   gIsCalledButtonCallback = false;
446   event = Dali::Integration::TouchEvent();
447   event.AddPoint( GetPointDownInside() );
448   application.ProcessEvent( event );
449
450   DALI_TEST_CHECK( gIsCalledButtonCallback );
451   DALI_TEST_CHECK( pressedSignal );
452
453   gIsCalledButtonCallback = false;
454   event = Dali::Integration::TouchEvent();
455   event.AddPoint( GetPointUpInside() );
456   application.ProcessEvent( event );
457
458   DALI_TEST_CHECK( gIsCalledButtonCallback );
459   DALI_TEST_CHECK( releasedSignal );
460
461   // Test2. Touch point down and up outside the button.
462
463   pressedSignal = false;
464   releasedSignal = false;
465   gIsCalledButtonCallback = false;
466   event = Dali::Integration::TouchEvent();
467   event.AddPoint( GetPointDownOutside() );
468   application.ProcessEvent( event );
469
470   DALI_TEST_CHECK( !gIsCalledButtonCallback );
471   DALI_TEST_CHECK( !pressedSignal );
472
473   gIsCalledButtonCallback = false;
474   event = Dali::Integration::TouchEvent();
475   event.AddPoint( GetPointUpOutside() );
476   application.ProcessEvent( event );
477
478   DALI_TEST_CHECK( !gIsCalledButtonCallback );
479   DALI_TEST_CHECK( !releasedSignal );
480
481   // Test3. Touch point down inside and up outside the button.
482
483   gIsCalledButtonCallback = false;
484   event = Dali::Integration::TouchEvent();
485   event.AddPoint( GetPointDownInside() );
486   application.ProcessEvent( event );
487
488   DALI_TEST_CHECK( gIsCalledButtonCallback );
489
490   gIsCalledButtonCallback = false;
491   event = Dali::Integration::TouchEvent();
492   event.AddPoint( GetPointLeave() );
493   application.ProcessEvent( event );
494
495   event = Dali::Integration::TouchEvent();
496   event.AddPoint( GetPointUpOutside() );
497   application.ProcessEvent( event );
498
499   DALI_TEST_CHECK( gIsCalledButtonCallback );
500
501   // Test4. Touch point down outside and up inside the button.
502
503   gIsCalledButtonCallback = false;
504   event = Dali::Integration::TouchEvent();
505   event.AddPoint( GetPointDownOutside() );
506   application.ProcessEvent( event );
507
508   DALI_TEST_CHECK( !gIsCalledButtonCallback );
509
510   gIsCalledButtonCallback = false;
511   event = Dali::Integration::TouchEvent();
512   event.AddPoint( GetPointEnter() );
513   application.ProcessEvent( event );
514
515   event = Dali::Integration::TouchEvent();
516   event.AddPoint( GetPointUpInside() );
517   application.ProcessEvent( event );
518
519   DALI_TEST_CHECK( !gIsCalledButtonCallback );
520   END_TEST;
521 }
522
523 int UtcDaliButtonClickedSignalP(void)
524 {
525   ToolkitTestApplication application;
526   tet_infoline(" UtcDaliButtonClickedSignalP");
527
528   Button button = PushButton::New();
529   button.SetAnchorPoint( AnchorPoint::TOP_LEFT );
530   button.SetParentOrigin( ParentOrigin::TOP_LEFT );
531   button.SetPosition( 240, 400 );
532   button.SetSize( 100, 100 );
533
534   Stage::GetCurrent().Add( button );
535
536   application.SendNotification();
537   application.Render();
538
539   // connect to its touch signal
540   button.ClickedSignal().Connect( &ButtonCallback );
541   bool clickedSignal = false;
542   ConnectionTracker* testTracker = new ConnectionTracker();
543   button.ConnectSignal( testTracker, "clicked",   CallbackFunctor(&clickedSignal) );
544
545   Dali::Integration::TouchEvent event;
546
547   // Test1. Touch point down and up inside the button.
548
549   gIsCalledButtonCallback = false;
550   event = Dali::Integration::TouchEvent();
551   event.AddPoint( GetPointDownInside() );
552   application.ProcessEvent( event );
553
554   event = Dali::Integration::TouchEvent();
555   event.AddPoint( GetPointUpInside() );
556   application.ProcessEvent( event );
557
558   DALI_TEST_CHECK( gIsCalledButtonCallback );
559   DALI_TEST_CHECK( clickedSignal );
560
561   // Test2. Touch point down and up outside the button.
562
563   gIsCalledButtonCallback = false;
564   clickedSignal = false;
565   event = Dali::Integration::TouchEvent();
566   event.AddPoint( GetPointDownOutside() );
567   application.ProcessEvent( event );
568
569   event = Dali::Integration::TouchEvent();
570   event.AddPoint( GetPointUpOutside() );
571   application.ProcessEvent( event );
572
573   DALI_TEST_CHECK( !gIsCalledButtonCallback );
574   DALI_TEST_CHECK( !clickedSignal );
575
576   // Test3. Touch point down inside and up outside the button.
577
578   gIsCalledButtonCallback = false;
579   clickedSignal = false;
580   event = Dali::Integration::TouchEvent();
581   event.AddPoint( GetPointDownInside() );
582   application.ProcessEvent( event );
583
584   event = Dali::Integration::TouchEvent();
585   event.AddPoint( GetPointLeave() );
586   application.ProcessEvent( event );
587
588   event = Dali::Integration::TouchEvent();
589   event.AddPoint( GetPointUpOutside() );
590   application.ProcessEvent( event );
591
592   DALI_TEST_CHECK( !gIsCalledButtonCallback );
593   DALI_TEST_CHECK( !clickedSignal );
594
595   // Test4. Touch point down outside and up inside the button.
596
597   gIsCalledButtonCallback = false;
598   clickedSignal = false;
599   event = Dali::Integration::TouchEvent();
600   event.AddPoint( GetPointDownOutside() );
601   application.ProcessEvent( event );
602
603   event = Dali::Integration::TouchEvent();
604   event.AddPoint( GetPointEnter() );
605   application.ProcessEvent( event );
606
607   event = Dali::Integration::TouchEvent();
608   event.AddPoint( GetPointUpInside() );
609   application.ProcessEvent( event );
610
611   DALI_TEST_CHECK( !gIsCalledButtonCallback );
612   DALI_TEST_CHECK( !clickedSignal );
613   END_TEST;
614 }
615
616 int UtcDaliButtonStateChangedSignalP(void)
617 {
618   ToolkitTestApplication application;
619   tet_infoline(" UtcDaliButtonStateChangedSignalP");
620
621   Button button = PushButton::New();
622   button.SetTogglableButton( true );
623
624   Stage::GetCurrent().Add( button );
625
626   application.SendNotification();
627   application.Render();
628
629   // connect to its signal
630   button.StateChangedSignal().Connect( &ButtonCallback );
631   bool stateChangedSignal = false;
632   ConnectionTracker* testTracker = new ConnectionTracker();
633   button.ConnectSignal( testTracker, "stateChanged",   CallbackFunctor(&stateChangedSignal) );
634
635   gIsCalledButtonCallback = false;
636   button.SetSelected( true );
637
638   DALI_TEST_CHECK( gIsCalledButtonCallback );
639   DALI_TEST_CHECK( stateChangedSignal );
640
641   gIsCalledButtonCallback = false;
642   stateChangedSignal = false;
643
644   button.SetSelected( false );
645
646   DALI_TEST_CHECK( gIsCalledButtonCallback );
647   DALI_TEST_CHECK( stateChangedSignal );
648   END_TEST;
649 }
650
651 int UtcDaliButtonSetProperty(void)
652 {
653   tet_infoline("UtcDaliButtonSetProperty: ");
654   ToolkitTestApplication application;
655
656   PushButton pushButton = PushButton::New();
657
658   pushButton.SetProperty(pushButton.GetPropertyIndex("disabled"), false);
659   DALI_TEST_CHECK( false == pushButton.IsDisabled() );
660
661   pushButton.SetProperty(pushButton.GetPropertyIndex("disabled"), true);
662   DALI_TEST_CHECK( true == pushButton.IsDisabled() );
663
664   END_TEST;
665 }
666
667 int UtcDaliButtonSize(void)
668 {
669   ToolkitTestApplication application;
670   tet_infoline(" UtcDaliButtonSize");
671
672   // First an image is set, then SetSize is called.
673   PushButton pushButton = PushButton::New();
674   Stage::GetCurrent().Add( pushButton );
675
676   pushButton.SetBackgroundImage( "Image.jpg" );
677   pushButton.SetSize( 10.f, 10.f );
678
679   application.SendNotification();
680   application.Render();
681
682   Vector3 size = pushButton.GetCurrentSize();
683
684   DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION );
685   DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION );
686   END_TEST;
687 }
688
689 int UtcDaliButtonSetSelectedBackgroundImageP(void)
690 {
691   ToolkitTestApplication application;
692
693   PushButton button = PushButton::New();
694   Stage::GetCurrent().Add( button );
695
696   try
697   {
698     button.SetSelectedBackgroundImage( "TestImage.jpg");
699     DALI_TEST_CHECK( true );
700   }
701   catch(...)
702   {
703     DALI_TEST_CHECK( false );
704   }
705
706   END_TEST;
707 }
708
709 int UtcDaliButtonSetSelectedBackgroundImageN(void)
710 {
711   ToolkitTestApplication application;
712
713   PushButton button;
714
715   try
716   {
717     button.SetSelectedBackgroundImage( "TestImage.jpg");
718     DALI_TEST_CHECK( false );
719   }
720   catch(...)
721   {
722     DALI_TEST_CHECK( true );
723   }
724
725   END_TEST;
726 }
727
728 int UtcDaliButtonSetDisabledImageP(void)
729 {
730   ToolkitTestApplication application;
731
732   PushButton button = PushButton::New();
733   Stage::GetCurrent().Add( button );
734
735   try
736   {
737     button.SetDisabledImage( "TestImage.jpg");
738     DALI_TEST_CHECK( true );
739   }
740   catch(...)
741   {
742     DALI_TEST_CHECK( false );
743   }
744
745   END_TEST;
746 }
747
748 int UtcDaliButtonSetDisabledImageN(void)
749 {
750   ToolkitTestApplication application;
751
752   PushButton button;
753
754   try
755   {
756     button.SetDisabledImage( "TestImage.jpg");
757     DALI_TEST_CHECK( false );
758   }
759   catch(...)
760   {
761     DALI_TEST_CHECK( true );
762   }
763
764   END_TEST;
765 }
766
767 int UtcDaliButtonSetDisabledSelectedImageP(void)
768 {
769   ToolkitTestApplication application;
770
771   PushButton button = PushButton::New();
772   Stage::GetCurrent().Add( button );
773
774   try
775   {
776     button.SetDisabledSelectedImage( "TestImage.jpg");
777     DALI_TEST_CHECK( true );
778   }
779   catch(...)
780   {
781     DALI_TEST_CHECK( false );
782   }
783
784   END_TEST;
785 }
786
787 int UtcDaliButtonSetDisabledSelectedImageN(void)
788 {
789   ToolkitTestApplication application;
790
791   PushButton button;
792
793   try
794   {
795     button.SetDisabledSelectedImage( "TestImage.jpg");
796     DALI_TEST_CHECK( false );
797   }
798   catch(...)
799   {
800     DALI_TEST_CHECK( true );
801   }
802
803   END_TEST;
804 }
805
806 int UtcDaliButtonSetLabelP(void)
807 {
808   ToolkitTestApplication application;
809
810   PushButton button = PushButton::New();
811   Stage::GetCurrent().Add( button );
812
813   try
814   {
815     button.SetLabel( TextLabel::New("Hello") );
816     DALI_TEST_CHECK( true );
817   }
818   catch(...)
819   {
820     DALI_TEST_CHECK( false );
821   }
822
823   END_TEST;
824 }
825
826 int UtcDaliButtonSetLabelN(void)
827 {
828   ToolkitTestApplication application;
829
830   PushButton button;
831
832   try
833   {
834     button.SetLabel( TextLabel::New("Hello") );
835     DALI_TEST_CHECK( false );
836   }
837   catch(...)
838   {
839     DALI_TEST_CHECK( true );
840   }
841
842   END_TEST;
843 }
844
845 int UtcDaliButtonSetButtonImageP(void)
846 {
847   ToolkitTestApplication application;
848
849   PushButton button = PushButton::New();
850   Stage::GetCurrent().Add( button );
851
852   try
853   {
854     button.SetButtonImage( CreateBufferImage( 10, 10, Color::WHITE ) );
855     DALI_TEST_CHECK( ImageView::DownCast( button.GetButtonImage() ) );
856   }
857   catch(...)
858   {
859     DALI_TEST_CHECK( false );
860   }
861
862   END_TEST;
863 }
864
865 int UtcDaliButtonSetButtonImageN(void)
866 {
867   ToolkitTestApplication application;
868
869   PushButton button;
870
871   try
872   {
873     button.SetButtonImage( CreateBufferImage( 10, 10, Color::WHITE ) );
874     DALI_TEST_CHECK( false );
875   }
876   catch(...)
877   {
878     DALI_TEST_CHECK( true );
879   }
880
881   END_TEST;
882 }
883
884 int UtcDaliButtonSetSelectedImageWithImageP(void)
885 {
886   ToolkitTestApplication application;
887
888   PushButton button = PushButton::New();
889   Stage::GetCurrent().Add( button );
890
891   try
892   {
893     button.SetSelectedImage( CreateBufferImage( 10, 10, Color::WHITE ) );
894     DALI_TEST_CHECK( ImageView::DownCast( button.GetSelectedImage() ) );
895   }
896   catch(...)
897   {
898     DALI_TEST_CHECK( false );
899   }
900
901   END_TEST;
902 }
903
904 int UtcDaliButtonSetSelectedImageWithImageN(void)
905 {
906   ToolkitTestApplication application;
907
908   PushButton button;
909
910   try
911   {
912     button.SetSelectedImage( CreateBufferImage( 10, 10, Color::WHITE ) );
913     DALI_TEST_CHECK( false );
914   }
915   catch(...)
916   {
917     DALI_TEST_CHECK( true );
918   }
919
920   END_TEST;
921 }
922
923 int UtcDaliButtonSetSelectedColorP(void)
924 {
925   ToolkitTestApplication application;
926   tet_infoline(" UtcDaliButtonSetSelectedColorP");
927
928   PushButton pushButton = PushButton::New();
929   Stage::GetCurrent().Add( pushButton );
930
931   application.SendNotification();
932   application.Render();
933
934   const Vector4 SET_COLOR = Color::BLUE;
935
936   pushButton.SetSize( Vector2( 20.0f, 20.0f ) );
937   pushButton.SetProperty( Button::Property::SELECTED_COLOR, SET_COLOR );
938
939   application.SendNotification();
940   application.Render();
941
942   Vector4 color = pushButton.GetProperty<Vector4>( Button::Property::SELECTED_COLOR );
943
944   DALI_TEST_EQUALS( color, SET_COLOR, TEST_LOCATION );
945
946   END_TEST;
947 }
948
949 int UtcDaliButtonSetUnSelectedColorP(void)
950 {
951   ToolkitTestApplication application;
952   tet_infoline(" UtcDaliButtonSetUnSelectedColorP");
953
954   PushButton pushButton = PushButton::New();
955   Stage::GetCurrent().Add( pushButton );
956
957   application.SendNotification();
958   application.Render();
959
960   const Vector4 SET_COLOR = Color::BLUE;
961
962   pushButton.SetSize( Vector2( 20.0f, 20.0f ) );
963   pushButton.SetProperty( Button::Property::UNSELECTED_COLOR, SET_COLOR );
964
965   application.SendNotification();
966   application.Render();
967
968   Vector4 color = pushButton.GetProperty<Vector4>( Button::Property::UNSELECTED_COLOR );
969
970   DALI_TEST_EQUALS( color, SET_COLOR, TEST_LOCATION );
971
972   END_TEST;
973 }
974
975 int UtcDaliButtonResetSelectedColorP(void)
976 {
977   ToolkitTestApplication application;
978   tet_infoline(" UtcDaliButtonSetSelectedColorP");
979
980   PushButton pushButton = PushButton::New();
981   Stage::GetCurrent().Add( pushButton );
982
983   application.SendNotification();
984   application.Render();
985
986   const Vector4 FIRST_COLOR = Color::BLUE;
987   const Vector4 SECOND_COLOR = Color::BLUE;
988
989   pushButton.SetSize( Vector2( 20.0f, 20.0f ) );
990   pushButton.SetProperty( Button::Property::SELECTED_COLOR, FIRST_COLOR );
991
992   application.SendNotification();
993   application.Render();
994
995   Vector4 color = pushButton.GetProperty<Vector4>( Button::Property::SELECTED_COLOR );
996
997   DALI_TEST_EQUALS( color, FIRST_COLOR, TEST_LOCATION );
998
999   pushButton.SetProperty( Button::Property::SELECTED_COLOR, SECOND_COLOR );
1000
1001   application.SendNotification();
1002   application.Render();
1003
1004   color = pushButton.GetProperty<Vector4>( Button::Property::SELECTED_COLOR );
1005
1006   DALI_TEST_EQUALS( color, SECOND_COLOR, TEST_LOCATION );
1007
1008   END_TEST;
1009 }