2 * Copyright (c) 2020 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-devel.h>
21 #include <dali-toolkit/devel-api/visuals/arc-visual-properties-devel.h>
22 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
23 #include <dali/devel-api/actors/actor-devel.h>
26 using namespace Dali::Toolkit;
27 using Dali::Toolkit::ProgressBar;
30 void utc_dali_toolkit_progressbar_startup(void)
32 test_return_value = TET_UNDEF;
35 void utc_dali_toolkit_progressbar_cleanup(void)
37 test_return_value = TET_PASS;
42 static const char* trackImage = TEST_RESOURCE_DIR "/progress-bar-skin-track-progress.png";
43 static const char* progressImage = TEST_RESOURCE_DIR "/progress-bar-skin-progress-progress.png";
44 static const char* secondaryProgressImage = TEST_RESOURCE_DIR "/progress-bar-skin-secondary-progress.png";
45 static const char* indeterminateImage = TEST_RESOURCE_DIR "/progress-bar-skin-indeterminate.png";
46 static bool gObjectCreatedCallBackCalled;
48 static void TestCallback(BaseHandle handle)
50 gObjectCreatedCallBackCalled = true;
55 int UtcDaliProgressBarNew(void)
57 ToolkitTestApplication application;
58 tet_infoline(" UtcDaliProgressBarNew");
60 // Create the ProgressBar actor
61 ProgressBar progressBar;
63 DALI_TEST_CHECK( !progressBar );
65 progressBar = ProgressBar::New();
67 DALI_TEST_CHECK( progressBar );
69 ProgressBar progressBar2(progressBar);
71 DALI_TEST_CHECK( progressBar2 == progressBar );
73 ProgressBar progressBar3;
74 progressBar3 = progressBar2;
76 DALI_TEST_CHECK( progressBar3 == progressBar2 );
78 //Additional check to ensure object is created by checking if it's registered
79 ObjectRegistry registry = application.GetCore().GetObjectRegistry();
80 DALI_TEST_CHECK( registry );
82 gObjectCreatedCallBackCalled = false;
83 registry.ObjectCreatedSignal().Connect( &TestCallback );
85 ProgressBar progressBar = ProgressBar::New();
87 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
91 int UtcDaliProgressBarNew2(void)
93 ToolkitTestApplication application;
94 tet_infoline(" UtcDaliProgressBarNew2");
96 ProgressBar progressBar1 = DevelProgressBar::New( DevelProgressBar::Style::LINEAR );
97 DALI_TEST_CHECK( progressBar1 );
99 ProgressBar progressBar2 = DevelProgressBar::New( DevelProgressBar::Style::CIRCULAR );
100 DALI_TEST_CHECK( progressBar2 );
102 DALI_TEST_CHECK( progressBar1.GetStyleName() != progressBar2.GetStyleName() );
107 int UtcDaliProgressBarDestructor(void)
109 ToolkitTestApplication application;
111 ProgressBar* progressBar = new ProgressBar();
114 DALI_TEST_CHECK( true );
118 int UtcDaliProgressBarCopyConstructor(void)
120 ToolkitTestApplication application;
122 ProgressBar progressBar = ProgressBar::New();
123 DALI_TEST_CHECK( progressBar );
125 ProgressBar copy( progressBar );
126 DALI_TEST_CHECK( copy );
131 int UtcDaliProgressBarCopyAssignment(void)
133 ToolkitTestApplication application;
135 ProgressBar progressBar = ProgressBar::New();
136 DALI_TEST_CHECK( progressBar );
140 DALI_TEST_CHECK( copy );
141 DALI_TEST_EQUALS( progressBar, copy, TEST_LOCATION );
146 int UtcDaliProgressBarMoveConstructor(void)
148 ToolkitTestApplication application;
150 ProgressBar progressBar = ProgressBar::New();
151 DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION );
152 progressBar.SetProperty( Actor::Property::SENSITIVE, false );
153 DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) );
155 ProgressBar moved = std::move( progressBar );
156 DALI_TEST_CHECK( moved );
157 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
158 DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
159 DALI_TEST_CHECK( !progressBar );
164 int UtcDaliProgressBarMoveAssignment(void)
166 ToolkitTestApplication application;
168 ProgressBar progressBar = ProgressBar::New();
169 DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION );
170 progressBar.SetProperty( Actor::Property::SENSITIVE, false );
171 DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) );
174 moved = std::move( progressBar );
175 DALI_TEST_CHECK( moved );
176 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
177 DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
178 DALI_TEST_CHECK( !progressBar );
183 int UtcDaliProgressBarDownCast(void)
185 ToolkitTestApplication application;
187 Handle handle = ProgressBar::New();
189 ProgressBar progressBar = ProgressBar::DownCast( handle );
191 DALI_TEST_CHECK( progressBar == handle );
195 static bool gProgressBarValueChangedCallBackCalled = false;
197 static void OnProgressBarValueChanged( ProgressBar progressBar, float value, float secondaryValue )
199 gProgressBarValueChangedCallBackCalled = true;
202 int UtcDaliProgressBarSignals(void)
204 ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
205 tet_infoline(" UtcDaliProgressBarSignals");
207 // Create the ProgressBar actor
208 ProgressBar progressBar = ProgressBar::New();
209 application.GetScene().Add( progressBar );
210 progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
211 progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
212 progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
213 progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
214 progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
216 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
218 application.SendNotification();
219 application.Render();
221 DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled);
223 //Check Secondary progress value can make signal
224 gProgressBarValueChangedCallBackCalled = false;
225 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.2f);
227 application.SendNotification();
228 application.Render();
230 DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled);
234 int UtcDaliProgressBarSetPropertyP(void)
236 ToolkitTestApplication application;
237 tet_infoline( "UtcDaliProgressBarSetPropertyP" );
239 ProgressBar progressBar = ProgressBar::New();
240 progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
241 progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
242 progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
243 progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
244 progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
245 application.GetScene().Add(progressBar);
246 application.SendNotification();
247 application.Render();
250 map["visualType"] = "IMAGE";
251 map[Toolkit::ImageVisual::Property::URL] = trackImage;
252 progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map);
254 Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
255 Property::Map* resultMap = value.GetMap();
256 DALI_TEST_CHECK( resultMap );
257 Property::Value* urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
258 std::string urlString;
259 urlValue->Get( urlString );
260 DALI_TEST_CHECK( !urlString.empty() ) ;
261 DALI_TEST_EQUALS( urlString, trackImage, TEST_LOCATION );
263 Property::Map colorMap;
264 colorMap["visualType"] = "COLOR";
265 colorMap[Toolkit::ColorVisual::Property::MIX_COLOR] = Color::RED;
266 progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, colorMap);
268 value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
269 resultMap = value.GetMap();
270 DALI_TEST_CHECK( resultMap );
271 Property::Value* colorValue = resultMap->Find( Toolkit::ColorVisual::Property::MIX_COLOR );
272 Vector4 color = Color::TRANSPARENT;
273 colorValue->Get( color );
274 DALI_TEST_CHECK( color != Color::TRANSPARENT );
275 DALI_TEST_EQUALS( color, Color::RED, TEST_LOCATION );
277 map[Toolkit::ImageVisual::Property::URL] = progressImage;
278 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
280 value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL);
281 resultMap = value.GetMap();
282 DALI_TEST_CHECK( resultMap );
283 urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
284 urlValue->Get( urlString );
285 DALI_TEST_CHECK( !urlString.empty() ) ;
286 DALI_TEST_EQUALS( urlString, progressImage, TEST_LOCATION );
288 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage);
290 value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL);
291 resultMap = value.GetMap();
292 DALI_TEST_CHECK( resultMap );
293 urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
294 urlValue->Get( urlString );
295 DALI_TEST_CHECK( !urlString.empty() ) ;
296 DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION );
298 map[Toolkit::ImageVisual::Property::URL] = secondaryProgressImage;
299 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map);
301 value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL);
302 resultMap = value.GetMap();
303 DALI_TEST_CHECK( resultMap );
304 urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
305 urlValue->Get( urlString );
306 DALI_TEST_CHECK( !urlString.empty() ) ;
307 DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION );
309 map[Toolkit::ImageVisual::Property::URL] = indeterminateImage;
310 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map);
312 value = progressBar.GetProperty(ProgressBar::Property::INDETERMINATE_VISUAL);
313 resultMap = value.GetMap();
314 DALI_TEST_CHECK( resultMap );
315 urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
316 urlValue->Get( urlString );
317 DALI_TEST_CHECK( !urlString.empty() ) ;
318 DALI_TEST_EQUALS( urlString, indeterminateImage, TEST_LOCATION );
320 progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test1");
322 value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
323 resultMap = value.GetMap();
324 DALI_TEST_CHECK( resultMap );
325 Property::Value* textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
327 std::string textString;
328 textValue->Get( textString );
329 DALI_TEST_CHECK( !textString.empty() );
330 DALI_TEST_EQUALS( textString, std::string( "test1" ), TEST_LOCATION );
332 Property::Map textVisualMap2;
333 textVisualMap2.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT );
334 textVisualMap2.Insert( Toolkit::TextVisual::Property::TEXT, "test2" );
335 textVisualMap2.Insert( Toolkit::TextVisual::Property::POINT_SIZE, 12.0f );
336 progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, textVisualMap2);
338 value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
339 resultMap = value.GetMap();
340 DALI_TEST_CHECK( resultMap );
341 textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
343 textValue->Get( textString );
344 DALI_TEST_CHECK( !textString.empty() );
345 DALI_TEST_EQUALS( textString, std::string( "test2" ), TEST_LOCATION );
347 progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test3");
349 value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
350 resultMap = value.GetMap();
351 DALI_TEST_CHECK( resultMap );
352 textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
354 std::string textString2;
355 textValue->Get( textString2 );
356 DALI_TEST_CHECK( !textString2.empty() );
357 DALI_TEST_EQUALS( textString2, std::string( "test3" ), TEST_LOCATION );
359 Property::Map transitionMap;
360 transitionMap["target"] = "indeterminateVisual";
361 transitionMap["property"] = "offset";
362 transitionMap["initialValue"] = Vector2( 0.0f, 0.0f );
363 transitionMap["targetValue"] = Vector2( 10.0f, 0.0f );
364 transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
365 .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
366 Property::Array array;
367 array.PushBack( transitionMap );
368 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, array);
370 Property::Map transitionMap2;
371 transitionMap2["target"] = "indeterminateVisual";
372 transitionMap2["property"] = "offset";
373 transitionMap2["initialValue"] = Vector2( 0.0f, 0.0f );
374 transitionMap2["targetValue"] = Vector2( 15.0f, 0.0f );
375 transitionMap2["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
376 .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
377 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap2);
381 int UtcDaliProgressBarSetPropertyP1(void)
383 ToolkitTestApplication application;
384 tet_infoline( "UtcDaliProgressBarSetPropertyP1" );
386 ProgressBar progressBar = ProgressBar::New();
387 progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
388 progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
389 progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
390 progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
391 progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
393 application.GetScene().Add(progressBar);
394 application.SendNotification();
395 application.Render();
397 float val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
398 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
400 // test to download a file of 100k in chunks
401 float lowerBound = 0, upperBound = 100, progressValue = 0, secondaryProgressValue = 0, chunkValue = 0;
403 while( chunkValue <= upperBound )
405 progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
406 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue);
407 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
408 DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION);
409 chunkValue = chunkValue + 10;
412 // test to download a file of 1000k in chunks
413 lowerBound = 0, upperBound = 1000, progressValue = 0, chunkValue = 0;
415 while( chunkValue <= upperBound )
417 progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
418 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue);
419 val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
420 DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION);
421 chunkValue = chunkValue + 100;
424 val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
425 DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
427 // test to download a file of 100k in chunks
428 lowerBound = 0, upperBound = 100, secondaryProgressValue = 0, chunkValue = 0;
430 while( chunkValue <= upperBound )
432 secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
433 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue);
434 val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
435 DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION);
436 chunkValue = chunkValue + 10;
439 // test to download a file of 1000k in chunks
440 lowerBound = 0, upperBound = 1000, secondaryProgressValue = 0, chunkValue = 0;
442 while( chunkValue <= upperBound )
444 secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
445 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue);
446 val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
447 DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION);
448 chunkValue = chunkValue + 100;
454 int UtcDaliProgressBarSetPropertyP2(void)
456 ToolkitTestApplication application;
457 tet_infoline( "UtcDaliProgressBarSetPropertyP2" );
459 ProgressBar progressBar = ProgressBar::New();
460 progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
461 progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
462 progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
463 progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test");
464 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, true);
465 progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, trackImage);
466 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, progressImage);
467 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage);
468 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, indeterminateImage);
470 Property::Map transitionMap;
471 transitionMap["target"] = "indeterminateVisual";
472 transitionMap["property"] = "offset";
473 transitionMap["initialValue"] = Vector2( 0.0f, 0.0f );
474 transitionMap["targetValue"] = Vector2( 10.0f, 0.0f );
475 transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
476 .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
477 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap);
478 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
479 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.3f);
481 progressBar.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
482 progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
483 application.GetScene().Add(progressBar);
484 application.SendNotification();
485 application.Render();
487 // Test get/set INDETERMINATE
488 bool val = progressBar.GetProperty<bool>(ProgressBar::Property::INDETERMINATE);
489 DALI_TEST_EQUALS(val, true, TEST_LOCATION);
491 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, false);
492 val = progressBar.GetProperty<bool>(ProgressBar::Property::INDETERMINATE);
493 DALI_TEST_EQUALS(val, false, TEST_LOCATION);
498 int UtcDaliProgressBarSetPropertyP3(void)
500 ToolkitTestApplication application;
501 tet_infoline( "UtcDaliProgressBarSetPropertyP3" );
503 ProgressBar progressBar = ProgressBar::New();
504 progressBar.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
505 progressBar.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
506 progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, application.GetScene().GetSize().y ) );
507 application.GetScene().Add( progressBar );
508 application.SendNotification();
509 application.Render();
512 // Set arc visual to the SECONDARY_PROGRESS_VISUAL
513 const float expected = 180.0f;
516 map["visualType"] = "ARC";
517 map["thickness"] = 4.0f;
518 map["mixColor"] = Color::BLUE;
519 map["sweepAngle"] = 60;
520 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map);
521 progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.5f); // This should change visual's sweep angle.
523 Property::Value value = progressBar.GetProperty( ProgressBar::Property::SECONDARY_PROGRESS_VISUAL );
524 Property::Map* resultMap = value.GetMap();
525 DALI_TEST_CHECK( resultMap );
527 Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE );
529 sweepAngle->Get( result );
530 DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
534 // Set arc visual to the PROGRESS_VISUAL
535 const float expected = 90.0f;
538 map["visualType"] = "ARC";
539 map["thickness"] = 4.0f;
540 map["mixColor"] = Color::RED;
541 map["sweepAngle"] = 60;
542 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
543 progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.25f); // This should change visual's sweep angle.
545 Property::Value value = progressBar.GetProperty( ProgressBar::Property::PROGRESS_VISUAL );
546 Property::Map* resultMap = value.GetMap();
547 DALI_TEST_CHECK( resultMap );
549 Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE );
551 sweepAngle->Get( result );
552 DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
556 // Set arc visual to the INDETERMINATE_VISUAL
557 const Vector4 expected = Color::GREEN;
560 map["visualType"] = "ARC";
561 map["thickness"] = 4.0f;
562 map["mixColor"] = expected;
563 progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map);
565 Property::Value value = progressBar.GetProperty( ProgressBar::Property::INDETERMINATE_VISUAL );
566 Property::Map* resultMap = value.GetMap();
567 DALI_TEST_CHECK( resultMap );
569 Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR );
571 mixColor->Get( result );
572 DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
576 // Set arc visual to the TRACK_VISUAL
577 const Vector4 expected = Color::YELLOW;
580 map["visualType"] = "ARC";
581 map["thickness"] = 0.4f;
582 map["mixColor"] = expected;
583 progressBar.SetProperty( ProgressBar::Property::TRACK_VISUAL, map );
584 progressBar.SetProperty( ProgressBar::Property::INDETERMINATE, true ); // This should not change track visual's properties.
586 Property::Value value = progressBar.GetProperty( ProgressBar::Property::TRACK_VISUAL );
587 Property::Map* resultMap = value.GetMap();
588 DALI_TEST_CHECK( resultMap );
590 Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR );
592 mixColor->Get( result );
593 DALI_TEST_EQUALS( result, expected, TEST_LOCATION );