Move new mesh API to devel-api.
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-CheckBoxButton.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 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22
23 using namespace Dali;
24 using namespace Toolkit;
25
26 namespace
27 {
28
29 static bool gCheckBoxButtonState = false;
30 bool CheckBoxButtonClicked( Button button )
31 {
32   gCheckBoxButtonState = button.IsSelected();
33   return true;
34 }
35
36 Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height )
37 {
38   BufferImage imageData = BufferImage::New( width, height, Pixel::RGBA8888 );
39
40   // Create the image
41   PixelBuffer* pixbuf = imageData.GetBuffer();
42   unsigned int size = width * height;
43
44   for( size_t i = 0; i < size; i++ )
45     {
46       pixbuf[i*4+0] = 0xFF * color.r;
47       pixbuf[i*4+1] = 0xFF * color.g;
48       pixbuf[i*4+2] = 0xFF * color.b;
49       pixbuf[i*4+3] = 0xFF * color.a;
50     }
51
52   imageData.Update();
53
54   return imageData;
55 }
56
57 } // namespace
58
59 void checkbox_button_startup(void)
60 {
61   test_return_value = TET_UNDEF;
62 }
63
64 void checkbox_button_cleanup(void)
65 {
66   test_return_value = TET_PASS;
67 }
68
69 int UtcDaliCheckBoxButtonConstructorP(void)
70 {
71   TestApplication application;
72
73   CheckBoxButton checkBox;
74
75   DALI_TEST_CHECK( !checkBox );
76   END_TEST;
77 }
78
79 int UtcDaliCheckBoxButtonCopyConstructorP(void)
80 {
81   TestApplication application;
82
83   // Initialize an object, ref count == 1
84   CheckBoxButton checkBox = CheckBoxButton::New();
85
86   CheckBoxButton copy( checkBox );
87   DALI_TEST_CHECK( copy );
88   END_TEST;
89 }
90
91 int UtcDaliCheckBoxButtonAssignmentOperatorP(void)
92 {
93   TestApplication application;
94
95   CheckBoxButton checkBox = CheckBoxButton::New();
96
97   CheckBoxButton copy( checkBox );
98   DALI_TEST_CHECK( copy );
99
100   DALI_TEST_CHECK( checkBox == copy );
101   END_TEST;
102 }
103
104 int UtcDaliCheckBoxButtonNewP(void)
105 {
106   TestApplication application;
107
108   CheckBoxButton checkBox = CheckBoxButton::New();
109
110   DALI_TEST_CHECK( checkBox );
111   END_TEST;
112 }
113
114 int UtcDaliCheckBoxButtonDownCastP(void)
115 {
116   TestApplication application;
117
118   CheckBoxButton checkBox = CheckBoxButton::New();
119
120   BaseHandle object(checkBox);
121
122   CheckBoxButton checkBox2 = CheckBoxButton::DownCast( object );
123   DALI_TEST_CHECK(checkBox2);
124
125   CheckBoxButton checkBox3 = DownCast< CheckBoxButton >(object);
126   DALI_TEST_CHECK(checkBox3);
127   END_TEST;
128 }
129
130 int UtcDaliCheckBoxButtonDownCastN(void)
131 {
132   TestApplication application;
133
134   BaseHandle unInitializedObject;
135
136   CheckBoxButton checkBox1 = CheckBoxButton::DownCast( unInitializedObject );
137   DALI_TEST_CHECK( !checkBox1 );
138
139   CheckBoxButton checkBox2 = DownCast< CheckBoxButton >( unInitializedObject );
140   DALI_TEST_CHECK( !checkBox2 );
141   END_TEST;
142 }
143
144 int UtcDaliCheckBoxButtonSetBackgroundImageP(void)
145 {
146   ToolkitTestApplication application;
147   tet_infoline(" UtcDaliCheckBoxButtonSetBackgroundImageP");
148
149   Image image = CreateSolidColorImage( Color::RED, 10, 10 );
150   ImageActor imageActor = CreateSolidColorActor( Color::RED );
151   imageActor.SetSize( 20, 20 );
152
153   CheckBoxButton checkBoxButton = CheckBoxButton::New();
154
155   checkBoxButton.SetBackgroundImage( image );
156
157   DALI_TEST_CHECK( checkBoxButton.GetBackgroundImage() );
158
159   checkBoxButton.SetBackgroundImage( imageActor );
160
161   DALI_TEST_CHECK( checkBoxButton.GetBackgroundImage() );
162
163   END_TEST;
164 }
165
166 int UtcDaliCheckBoxButtonSetSelectedImageP(void)
167 {
168   ToolkitTestApplication application;
169   tet_infoline(" UtcDaliCheckBoxButtonSetSelectedImageP");
170
171   Image image = CreateSolidColorImage( Color::RED, 10, 10 );
172   ImageActor imageActor = CreateSolidColorActor( Color::RED );
173   imageActor.SetSize( 20, 20 );
174
175   CheckBoxButton checkBoxButton = CheckBoxButton::New();
176
177   checkBoxButton.SetSelectedImage( image );
178
179   DALI_TEST_CHECK( checkBoxButton.GetSelectedImage() );
180
181   checkBoxButton.SetSelectedImage( imageActor );
182
183   DALI_TEST_CHECK( checkBoxButton.GetSelectedImage() );
184
185   END_TEST;
186 }
187
188 int UtcDaliCheckBoxButtonSetDisabledBackgroundImageP(void)
189 {
190   ToolkitTestApplication application;
191   tet_infoline(" UtcDaliCheckBoxButtonSetDisabledBackgroundImageP");
192
193   Image image = CreateSolidColorImage( Color::RED, 10, 10 );
194   ImageActor imageActor = CreateSolidColorActor( Color::RED );
195   imageActor.SetSize( 20, 20 );
196
197   CheckBoxButton checkBoxButton = CheckBoxButton::New();
198
199   checkBoxButton.SetDisabledBackgroundImage( image );
200
201   DALI_TEST_CHECK( checkBoxButton.GetDisabledBackgroundImage() );
202
203   checkBoxButton.SetDisabledBackgroundImage( imageActor );
204
205   DALI_TEST_CHECK( checkBoxButton.GetDisabledBackgroundImage() );
206
207   END_TEST;
208 }
209
210 int UtcDaliCheckBoxButtonSetDisabledSelectedImageP(void)
211 {
212   ToolkitTestApplication application;
213   tet_infoline(" UtcDaliCheckBoxButtonSetDisabledSelectedImageP");
214
215   Image image = CreateSolidColorImage( Color::RED, 10, 10 );
216   ImageActor imageActor = CreateSolidColorActor( Color::RED );
217   imageActor.SetSize( 20, 20 );
218
219   CheckBoxButton checkBoxButton = CheckBoxButton::New();
220
221   checkBoxButton.SetDisabledSelectedImage( image );
222
223   DALI_TEST_CHECK( checkBoxButton.GetDisabledSelectedImage() );
224
225   checkBoxButton.SetDisabledSelectedImage( imageActor );
226
227   DALI_TEST_CHECK( checkBoxButton.GetDisabledSelectedImage() );
228
229   END_TEST;
230 }
231
232 int UtcDaliCheckBoxButtonSetGetSelected(void)
233 {
234   ToolkitTestApplication application;
235   tet_infoline(" UtcDaliCheckBoxButtonSetGetSelected");
236
237   CheckBoxButton checkBoxButton = CheckBoxButton::New();
238   checkBoxButton.StateChangedSignal().Connect( &CheckBoxButtonClicked );
239
240   // global var used to check if CheckBoxButtonClicked is called;
241   gCheckBoxButtonState = false;
242
243   checkBoxButton.SetSelected( true );
244
245   DALI_TEST_CHECK( checkBoxButton.IsSelected() );
246   DALI_TEST_CHECK( gCheckBoxButtonState );
247
248   checkBoxButton.SetSelected( false );
249
250   DALI_TEST_CHECK( !checkBoxButton.IsSelected() );
251   DALI_TEST_CHECK( !gCheckBoxButtonState );
252
253   checkBoxButton.SetSelected( true );
254
255   DALI_TEST_CHECK( checkBoxButton.IsSelected() );
256   DALI_TEST_CHECK( gCheckBoxButtonState );
257   END_TEST;
258 }
259
260 int UtcDaliCheckBoxButtonSetImages(void)
261 {
262   ToolkitTestApplication application;
263   tet_infoline(" UtcDaliCheckBoxButtonSetImages");
264
265   Actor imageActor;
266
267   Image image01 = CreateSolidColorImage( Color::RED, 10, 10 );
268   ImageActor imageActor01 = CreateSolidColorActor( Color::RED );
269   imageActor01.SetSize( 20, 20 );
270
271   Image image02 = CreateSolidColorImage( Color::RED, 30, 30 );
272   ImageActor imageActor02 = CreateSolidColorActor( Color::RED );
273   imageActor02.SetSize( 40, 40 );
274   imageActor02.SetName( "imageActor02" );
275
276   Image image03 = CreateSolidColorImage( Color::RED, 50, 50 );
277   ImageActor imageActor03 = CreateSolidColorActor( Color::RED );
278   imageActor03.SetSize( 60, 60 );
279
280   Image image04 = CreateSolidColorImage( Color::RED, 70, 70 );
281   ImageActor imageActor04 = CreateSolidColorActor( Color::RED );
282   imageActor04.SetSize( 80, 80 );
283
284   Vector3 size;
285   CheckBoxButton checkBoxButton = CheckBoxButton::New();
286   checkBoxButton.SetName( "UtcDaliCheckBoxButtonSetImages" );
287   Stage::GetCurrent().Add( checkBoxButton );
288
289   application.SendNotification();
290   application.Render();
291
292   // Just check if check box button size changes when a bigger image is set.
293
294   checkBoxButton.SetBackgroundImage( image01 );
295
296   application.SendNotification();
297   application.Render();
298
299   size = checkBoxButton.GetCurrentSize();
300
301   DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION );
302   DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION );
303
304   checkBoxButton.SetBackgroundImage( imageActor01 );
305
306   END_TEST;
307 }