2 * Copyright (c) 2016 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.
18 #include <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/dali-toolkit.h>
20 #include <dali-toolkit/devel-api/controls/progress-bar/progress-bar.h>
23 using namespace Dali::Toolkit;
24 using Dali::Toolkit::ProgressBar;
27 void utc_dali_toolkit_progressbar_startup(void)
29 test_return_value = TET_UNDEF;
32 void utc_dali_toolkit_progressbar_cleanup(void)
34 test_return_value = TET_PASS;
40 static bool gObjectCreatedCallBackCalled;
42 static void TestCallback(BaseHandle handle)
44 gObjectCreatedCallBackCalled = true;
49 int UtcDaliProgressBarNew(void)
51 ToolkitTestApplication application;
52 tet_infoline(" UtcDaliProgressBarNew");
54 // Create the ProgressBar actor
55 ProgressBar progressBar;
57 DALI_TEST_CHECK( !progressBar );
59 progressBar = ProgressBar::New();
61 DALI_TEST_CHECK( progressBar );
63 ProgressBar progressBar2(progressBar);
65 DALI_TEST_CHECK( progressBar2 == progressBar );
67 ProgressBar progressBar3;
68 progressBar3 = progressBar2;
70 DALI_TEST_CHECK( progressBar3 == progressBar2 );
72 //Additional check to ensure object is created by checking if it's registered
73 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
74 DALI_TEST_CHECK( registry );
76 gObjectCreatedCallBackCalled = false;
77 registry.ObjectCreatedSignal().Connect( &TestCallback );
79 ProgressBar progressBar = ProgressBar::New();
81 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
85 int UtcDaliProgressBarDestructor(void)
87 ToolkitTestApplication application;
89 ProgressBar* progressBar = new ProgressBar();
92 DALI_TEST_CHECK( true );
96 int UtcDaliProgressBarDownCast(void)
98 ToolkitTestApplication application;
100 Handle handle = ProgressBar::New();
102 ProgressBar progressBar = ProgressBar::DownCast( handle );
104 DALI_TEST_CHECK( progressBar == handle );
108 static bool gProgressBarValueChangedCallBackCalled = false;
110 static void OnProgressBarValueChanged( ProgressBar progressBar, float value )
112 gProgressBarValueChangedCallBackCalled = true;
115 int UtcDaliProgressBarSignals(void)
117 ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
118 tet_infoline(" UtcDaliProgressBarSignals");
120 // Create the ProgressBar actor
121 ProgressBar progressBar = ProgressBar::New();
122 Stage::GetCurrent().Add( progressBar );
123 progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT);
124 progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
125 progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
126 progressBar.SetPosition( 0.0f, 0.0f );
128 progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
129 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
131 application.SendNotification();
132 application.Render();
134 //gProgressBarValueChangedCallBackCalled = false;
136 DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled);
140 int UtcDaliProgressBarSetPropertyP(void)
142 ToolkitTestApplication application;
143 tet_infoline( "UtcDaliProgressBarSetPropertyP" );
145 ProgressBar progressBar = ProgressBar::New();
146 progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT);
147 progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
148 progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
149 progressBar.SetPosition( 0.0f, 0.0f );
151 Stage::GetCurrent().Add(progressBar);
152 application.SendNotification();
153 application.Render();
155 float val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
156 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
158 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
159 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
160 DALI_TEST_EQUALS(val, 0.2f, TEST_LOCATION);
162 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.8f);
163 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
164 DALI_TEST_EQUALS(val, 0.8f, TEST_LOCATION);
166 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.4f);
167 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
168 DALI_TEST_EQUALS(val, 0.4f, TEST_LOCATION);
170 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f);
171 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
172 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
174 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.0f);
175 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
176 DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION);
178 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, -1.0f);
179 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
180 DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION);
182 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f);
183 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
184 DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
186 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.1f);
187 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
188 DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
190 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 2.0f);
191 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
192 DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
194 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f);
195 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
196 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
198 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f);
199 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
200 DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
202 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.09f);
203 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
204 DALI_TEST_EQUALS(val, 0.09f, TEST_LOCATION);
206 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.1f);
207 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
208 DALI_TEST_EQUALS(val, 0.1f, TEST_LOCATION);
212 map["rendererType"] = "image";
213 map["size"] = Vector2(200, 200);
214 map["url"] = "track2.png";
215 progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map);
216 map["url"] = "progress2.png";
217 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
219 Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
220 Property::Map* resultMap = value.GetMap();
221 DALI_TEST_CHECK( resultMap );
222 Property::Value* url = resultMap->Find("url");
223 DALI_TEST_CHECK( url ) ;
224 DALI_TEST_EQUALS( *url, "track2.png", TEST_LOCATION );
226 value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL);
227 resultMap = value.GetMap();
228 DALI_TEST_CHECK( resultMap );
229 url = resultMap->Find("url");
230 DALI_TEST_CHECK( url ) ;
231 DALI_TEST_EQUALS( *url, "progress2.png", TEST_LOCATION );
238 int UtcDaliProgressBarSetPropertyP1(void)
240 ToolkitTestApplication application;
241 tet_infoline( "UtcDaliProgressBarSetPropertyP1" );
243 ProgressBar progressBar = ProgressBar::New();
244 progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT);
245 progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
246 progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
247 progressBar.SetPosition( 0.0f, 0.0f );
249 Stage::GetCurrent().Add(progressBar);
250 application.SendNotification();
251 application.Render();
253 float val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
254 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
256 // test to download a file of 100k in chunks
257 float lowerBound = 0, upperBound = 100, progressValue = 0, chunkValue = 0;
259 while( chunkValue <= upperBound )
261 progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
262 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue);
263 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
264 DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION);
265 chunkValue = chunkValue + 10;
268 // test to download a file of 1000k in chunks
269 lowerBound = 0, upperBound = 1000, progressValue = 0, chunkValue = 0;
271 while( chunkValue <= upperBound )
273 progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
274 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue);
275 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
276 DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION);
277 chunkValue = chunkValue + 100;