2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
24 using namespace Toolkit;
29 static bool gCheckBoxButtonState = false;
30 bool CheckBoxButtonClicked( Button button )
32 gCheckBoxButtonState = button.IsSelected();
36 Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height )
38 BufferImage imageData = BufferImage::New( width, height, Pixel::RGBA8888 );
41 PixelBuffer* pixbuf = imageData.GetBuffer();
42 unsigned int size = width * height;
44 for( size_t i = 0; i < size; i++ )
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;
59 void checkbox_button_startup(void)
61 test_return_value = TET_UNDEF;
64 void checkbox_button_cleanup(void)
66 test_return_value = TET_PASS;
69 int UtcDaliCheckBoxButtonConstructorP(void)
71 TestApplication application;
73 CheckBoxButton checkBox;
75 DALI_TEST_CHECK( !checkBox );
79 int UtcDaliCheckBoxButtonCopyConstructorP(void)
81 TestApplication application;
83 // Initialize an object, ref count == 1
84 CheckBoxButton checkBox = CheckBoxButton::New();
86 CheckBoxButton copy( checkBox );
87 DALI_TEST_CHECK( copy );
91 int UtcDaliCheckBoxButtonAssignmentOperatorP(void)
93 TestApplication application;
95 CheckBoxButton checkBox = CheckBoxButton::New();
97 CheckBoxButton copy( checkBox );
98 DALI_TEST_CHECK( copy );
100 DALI_TEST_CHECK( checkBox == copy );
104 int UtcDaliCheckBoxButtonNewP(void)
106 TestApplication application;
108 CheckBoxButton checkBox = CheckBoxButton::New();
110 DALI_TEST_CHECK( checkBox );
114 int UtcDaliCheckBoxButtonDownCastP(void)
116 TestApplication application;
118 CheckBoxButton checkBox = CheckBoxButton::New();
120 BaseHandle object(checkBox);
122 CheckBoxButton checkBox2 = CheckBoxButton::DownCast( object );
123 DALI_TEST_CHECK(checkBox2);
125 CheckBoxButton checkBox3 = DownCast< CheckBoxButton >(object);
126 DALI_TEST_CHECK(checkBox3);
130 int UtcDaliCheckBoxButtonDownCastN(void)
132 TestApplication application;
134 BaseHandle unInitializedObject;
136 CheckBoxButton checkBox1 = CheckBoxButton::DownCast( unInitializedObject );
137 DALI_TEST_CHECK( !checkBox1 );
139 CheckBoxButton checkBox2 = DownCast< CheckBoxButton >( unInitializedObject );
140 DALI_TEST_CHECK( !checkBox2 );
144 int UtcDaliCheckBoxButtonSetBackgroundImageP(void)
146 ToolkitTestApplication application;
147 tet_infoline(" UtcDaliCheckBoxButtonSetBackgroundImageP");
149 Image image = CreateSolidColorImage( Color::RED, 10, 10 );
150 ImageActor imageActor = CreateSolidColorActor( Color::RED );
151 imageActor.SetSize( 20, 20 );
153 CheckBoxButton checkBoxButton = CheckBoxButton::New();
155 checkBoxButton.SetBackgroundImage( image );
157 DALI_TEST_CHECK( checkBoxButton.GetBackgroundImage() );
159 checkBoxButton.SetBackgroundImage( imageActor );
161 DALI_TEST_CHECK( checkBoxButton.GetBackgroundImage() );
166 int UtcDaliCheckBoxButtonSetSelectedImageP(void)
168 ToolkitTestApplication application;
169 tet_infoline(" UtcDaliCheckBoxButtonSetSelectedImageP");
171 Image image = CreateSolidColorImage( Color::RED, 10, 10 );
172 ImageActor imageActor = CreateSolidColorActor( Color::RED );
173 imageActor.SetSize( 20, 20 );
175 CheckBoxButton checkBoxButton = CheckBoxButton::New();
177 checkBoxButton.SetSelectedImage( image );
179 DALI_TEST_CHECK( checkBoxButton.GetSelectedImage() );
181 checkBoxButton.SetSelectedImage( imageActor );
183 DALI_TEST_CHECK( checkBoxButton.GetSelectedImage() );
188 int UtcDaliCheckBoxButtonSetDisabledBackgroundImageP(void)
190 ToolkitTestApplication application;
191 tet_infoline(" UtcDaliCheckBoxButtonSetDisabledBackgroundImageP");
193 Image image = CreateSolidColorImage( Color::RED, 10, 10 );
194 ImageActor imageActor = CreateSolidColorActor( Color::RED );
195 imageActor.SetSize( 20, 20 );
197 CheckBoxButton checkBoxButton = CheckBoxButton::New();
199 checkBoxButton.SetDisabledBackgroundImage( image );
201 DALI_TEST_CHECK( checkBoxButton.GetDisabledBackgroundImage() );
203 checkBoxButton.SetDisabledBackgroundImage( imageActor );
205 DALI_TEST_CHECK( checkBoxButton.GetDisabledBackgroundImage() );
210 int UtcDaliCheckBoxButtonSetDisabledSelectedImageP(void)
212 ToolkitTestApplication application;
213 tet_infoline(" UtcDaliCheckBoxButtonSetDisabledSelectedImageP");
215 Image image = CreateSolidColorImage( Color::RED, 10, 10 );
216 ImageActor imageActor = CreateSolidColorActor( Color::RED );
217 imageActor.SetSize( 20, 20 );
219 CheckBoxButton checkBoxButton = CheckBoxButton::New();
221 checkBoxButton.SetDisabledSelectedImage( image );
223 DALI_TEST_CHECK( checkBoxButton.GetDisabledSelectedImage() );
225 checkBoxButton.SetDisabledSelectedImage( imageActor );
227 DALI_TEST_CHECK( checkBoxButton.GetDisabledSelectedImage() );
232 int UtcDaliCheckBoxButtonSetGetSelected(void)
234 ToolkitTestApplication application;
235 tet_infoline(" UtcDaliCheckBoxButtonSetGetSelected");
237 CheckBoxButton checkBoxButton = CheckBoxButton::New();
238 checkBoxButton.StateChangedSignal().Connect( &CheckBoxButtonClicked );
240 // global var used to check if CheckBoxButtonClicked is called;
241 gCheckBoxButtonState = false;
243 checkBoxButton.SetSelected( true );
245 DALI_TEST_CHECK( checkBoxButton.IsSelected() );
246 DALI_TEST_CHECK( gCheckBoxButtonState );
248 checkBoxButton.SetSelected( false );
250 DALI_TEST_CHECK( !checkBoxButton.IsSelected() );
251 DALI_TEST_CHECK( !gCheckBoxButtonState );
253 checkBoxButton.SetSelected( true );
255 DALI_TEST_CHECK( checkBoxButton.IsSelected() );
256 DALI_TEST_CHECK( gCheckBoxButtonState );
260 int UtcDaliCheckBoxButtonSetImages(void)
262 ToolkitTestApplication application;
263 tet_infoline(" UtcDaliCheckBoxButtonSetImages");
267 Image image01 = CreateSolidColorImage( Color::RED, 10, 10 );
268 ImageActor imageActor01 = CreateSolidColorActor( Color::RED );
269 imageActor01.SetSize( 20, 20 );
271 Image image02 = CreateSolidColorImage( Color::RED, 30, 30 );
272 ImageActor imageActor02 = CreateSolidColorActor( Color::RED );
273 imageActor02.SetSize( 40, 40 );
274 imageActor02.SetName( "imageActor02" );
276 Image image03 = CreateSolidColorImage( Color::RED, 50, 50 );
277 ImageActor imageActor03 = CreateSolidColorActor( Color::RED );
278 imageActor03.SetSize( 60, 60 );
280 Image image04 = CreateSolidColorImage( Color::RED, 70, 70 );
281 ImageActor imageActor04 = CreateSolidColorActor( Color::RED );
282 imageActor04.SetSize( 80, 80 );
285 CheckBoxButton checkBoxButton = CheckBoxButton::New();
286 checkBoxButton.SetName( "UtcDaliCheckBoxButtonSetImages" );
287 Stage::GetCurrent().Add( checkBoxButton );
289 application.SendNotification();
290 application.Render();
292 // Just check if check box button size changes when a bigger image is set.
294 checkBoxButton.SetBackgroundImage( image01 );
296 application.SendNotification();
297 application.Render();
299 size = checkBoxButton.GetCurrentSize();
301 DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION );
302 DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION );
304 checkBoxButton.SetBackgroundImage( imageActor01 );