X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ProgressBar.cpp;h=9e421fd3d0d3ab26c5e8d3cc4aa100fa9969fb64;hp=2a2ae20cc2b562ffdf9721b8649232db9df5f259;hb=01777a3489f027123010b281e58efbc9f0a93db7;hpb=67599ff4ef2f566f532158645667a3849dccd503 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp index 2a2ae20..9e421fd 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,10 @@ #include #include -#include +#include +#include +#include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -36,7 +39,10 @@ void utc_dali_toolkit_progressbar_cleanup(void) namespace { - +static const char* trackImage = TEST_RESOURCE_DIR "/progress-bar-skin-track-progress.png"; +static const char* progressImage = TEST_RESOURCE_DIR "/progress-bar-skin-progress-progress.png"; +static const char* secondaryProgressImage = TEST_RESOURCE_DIR "/progress-bar-skin-secondary-progress.png"; +static const char* indeterminateImage = TEST_RESOURCE_DIR "/progress-bar-skin-indeterminate.png"; static bool gObjectCreatedCallBackCalled; static void TestCallback(BaseHandle handle) @@ -70,7 +76,7 @@ int UtcDaliProgressBarNew(void) DALI_TEST_CHECK( progressBar3 == progressBar2 ); //Additional check to ensure object is created by checking if it's registered - ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry(); + ObjectRegistry registry = application.GetCore().GetObjectRegistry(); DALI_TEST_CHECK( registry ); gObjectCreatedCallBackCalled = false; @@ -82,6 +88,22 @@ int UtcDaliProgressBarNew(void) END_TEST; } +int UtcDaliProgressBarNew2(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliProgressBarNew2"); + + ProgressBar progressBar1 = DevelProgressBar::New( DevelProgressBar::Style::LINEAR ); + DALI_TEST_CHECK( progressBar1 ); + + ProgressBar progressBar2 = DevelProgressBar::New( DevelProgressBar::Style::CIRCULAR ); + DALI_TEST_CHECK( progressBar2 ); + + DALI_TEST_CHECK( progressBar1.GetStyleName() != progressBar2.GetStyleName() ); + + END_TEST; +} + int UtcDaliProgressBarDestructor(void) { ToolkitTestApplication application; @@ -93,6 +115,71 @@ int UtcDaliProgressBarDestructor(void) END_TEST; } +int UtcDaliProgressBarCopyConstructor(void) +{ + ToolkitTestApplication application; + + ProgressBar progressBar = ProgressBar::New(); + DALI_TEST_CHECK( progressBar ); + + ProgressBar copy( progressBar ); + DALI_TEST_CHECK( copy ); + + END_TEST; +} + +int UtcDaliProgressBarCopyAssignment(void) +{ + ToolkitTestApplication application; + + ProgressBar progressBar = ProgressBar::New(); + DALI_TEST_CHECK( progressBar ); + + ProgressBar copy; + copy = progressBar; + DALI_TEST_CHECK( copy ); + DALI_TEST_EQUALS( progressBar, copy, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliProgressBarMoveConstructor(void) +{ + ToolkitTestApplication application; + + ProgressBar progressBar = ProgressBar::New(); + DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + progressBar.SetProperty( Actor::Property::SENSITIVE, false ); + DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + + ProgressBar moved = std::move( progressBar ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + DALI_TEST_CHECK( !progressBar ); + + END_TEST; +} + +int UtcDaliProgressBarMoveAssignment(void) +{ + ToolkitTestApplication application; + + ProgressBar progressBar = ProgressBar::New(); + DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + progressBar.SetProperty( Actor::Property::SENSITIVE, false ); + DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + + ProgressBar moved; + moved = std::move( progressBar ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + DALI_TEST_CHECK( !progressBar ); + + END_TEST; +} + int UtcDaliProgressBarDownCast(void) { ToolkitTestApplication application; @@ -107,7 +194,7 @@ int UtcDaliProgressBarDownCast(void) static bool gProgressBarValueChangedCallBackCalled = false; -static void OnProgressBarValueChanged( ProgressBar progressBar, float value ) +static void OnProgressBarValueChanged( ProgressBar progressBar, float value, float secondaryValue ) { gProgressBarValueChangedCallBackCalled = true; } @@ -119,19 +206,26 @@ int UtcDaliProgressBarSignals(void) // Create the ProgressBar actor ProgressBar progressBar = ProgressBar::New(); - Stage::GetCurrent().Add( progressBar ); - progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT); - progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT); - progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) ); - progressBar.SetPosition( 0.0f, 0.0f ); - + application.GetScene().Add( progressBar ); + progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) ); + progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f )); progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged ); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f); application.SendNotification(); application.Render(); - //gProgressBarValueChangedCallBackCalled = false; + DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled); + + //Check Secondary progress value can make signal + gProgressBarValueChangedCallBackCalled = false; + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.2f); + + application.SendNotification(); + application.Render(); DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled); END_TEST; @@ -143,95 +237,144 @@ int UtcDaliProgressBarSetPropertyP(void) tet_infoline( "UtcDaliProgressBarSetPropertyP" ); ProgressBar progressBar = ProgressBar::New(); - progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT); - progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT); - progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) ); - progressBar.SetPosition( 0.0f, 0.0f ); - - Stage::GetCurrent().Add(progressBar); + progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) ); + progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f )); + progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged ); + application.GetScene().Add(progressBar); application.SendNotification(); application.Render(); - float val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.2f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.8f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.8f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.4f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.4f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, -1.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.1f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 2.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.09f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.09f, TEST_LOCATION); - - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.1f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.1f, TEST_LOCATION); - - { - Property::Map map; - map["rendererType"] = "image"; - map["size"] = Vector2(200, 200); - map["url"] = "track2.png"; - progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map); - map["url"] = "progress2.png"; - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map); - - Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL); - Property::Map* resultMap = value.GetMap(); - DALI_TEST_CHECK( resultMap ); - Property::Value* url = resultMap->Find("url"); - DALI_TEST_CHECK( url ) ; - DALI_TEST_EQUALS( *url, "track2.png", TEST_LOCATION ); - - value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL); - resultMap = value.GetMap(); - DALI_TEST_CHECK( resultMap ); - url = resultMap->Find("url"); - DALI_TEST_CHECK( url ) ; - DALI_TEST_EQUALS( *url, "progress2.png", TEST_LOCATION ); - - } - + Property::Map map; + map["visualType"] = "IMAGE"; + map[Toolkit::ImageVisual::Property::URL] = trackImage; + progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map); + + Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL); + Property::Map* resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + Property::Value* urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL ); + std::string urlString; + urlValue->Get( urlString ); + DALI_TEST_CHECK( !urlString.empty() ) ; + DALI_TEST_EQUALS( urlString, trackImage, TEST_LOCATION ); + + Property::Map colorMap; + colorMap["visualType"] = "COLOR"; + colorMap[Toolkit::ColorVisual::Property::MIX_COLOR] = Color::RED; + progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, colorMap); + + value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + Property::Value* colorValue = resultMap->Find( Toolkit::ColorVisual::Property::MIX_COLOR ); + Vector4 color = Color::TRANSPARENT; + colorValue->Get( color ); + DALI_TEST_CHECK( color != Color::TRANSPARENT ); + DALI_TEST_EQUALS( color, Color::RED, TEST_LOCATION ); + + map[Toolkit::ImageVisual::Property::URL] = progressImage; + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map); + + value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL ); + urlValue->Get( urlString ); + DALI_TEST_CHECK( !urlString.empty() ) ; + DALI_TEST_EQUALS( urlString, progressImage, TEST_LOCATION ); + + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage); + + value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL ); + urlValue->Get( urlString ); + DALI_TEST_CHECK( !urlString.empty() ) ; + DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION ); + + map[Toolkit::ImageVisual::Property::URL] = secondaryProgressImage; + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map); + + value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL ); + urlValue->Get( urlString ); + DALI_TEST_CHECK( !urlString.empty() ) ; + DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION ); + + map[Toolkit::ImageVisual::Property::URL] = indeterminateImage; + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map); + + value = progressBar.GetProperty(ProgressBar::Property::INDETERMINATE_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL ); + urlValue->Get( urlString ); + DALI_TEST_CHECK( !urlString.empty() ) ; + DALI_TEST_EQUALS( urlString, indeterminateImage, TEST_LOCATION ); + + progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test1"); + + value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + Property::Value* textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT); + + std::string textString; + textValue->Get( textString ); + DALI_TEST_CHECK( !textString.empty() ); + DALI_TEST_EQUALS( textString, std::string( "test1" ), TEST_LOCATION ); + + Property::Map textVisualMap2; + textVisualMap2.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT ); + textVisualMap2.Insert( Toolkit::TextVisual::Property::TEXT, "test2" ); + textVisualMap2.Insert( Toolkit::TextVisual::Property::POINT_SIZE, 12.0f ); + progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, textVisualMap2); + + value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT); + + textValue->Get( textString ); + DALI_TEST_CHECK( !textString.empty() ); + DALI_TEST_EQUALS( textString, std::string( "test2" ), TEST_LOCATION ); + + progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test3"); + + value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL); + resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT); + + std::string textString2; + textValue->Get( textString2 ); + DALI_TEST_CHECK( !textString2.empty() ); + DALI_TEST_EQUALS( textString2, std::string( "test3" ), TEST_LOCATION ); + + Property::Map transitionMap; + transitionMap["target"] = "indeterminateVisual"; + transitionMap["property"] = "offset"; + transitionMap["initialValue"] = Vector2( 0.0f, 0.0f ); + transitionMap["targetValue"] = Vector2( 10.0f, 0.0f ); + transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); + Property::Array array; + array.PushBack( transitionMap ); + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, array); + + Property::Map transitionMap2; + transitionMap2["target"] = "indeterminateVisual"; + transitionMap2["property"] = "offset"; + transitionMap2["initialValue"] = Vector2( 0.0f, 0.0f ); + transitionMap2["targetValue"] = Vector2( 15.0f, 0.0f ); + transitionMap2["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap2); END_TEST; } @@ -241,12 +384,13 @@ int UtcDaliProgressBarSetPropertyP1(void) tet_infoline( "UtcDaliProgressBarSetPropertyP1" ); ProgressBar progressBar = ProgressBar::New(); - progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT); - progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT); - progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) ); - progressBar.SetPosition( 0.0f, 0.0f ); + progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) ); + progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f )); + progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged ); - Stage::GetCurrent().Add(progressBar); + application.GetScene().Add(progressBar); application.SendNotification(); application.Render(); @@ -254,7 +398,7 @@ int UtcDaliProgressBarSetPropertyP1(void) DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); // test to download a file of 100k in chunks - float lowerBound = 0, upperBound = 100, progressValue = 0, chunkValue = 0; + float lowerBound = 0, upperBound = 100, progressValue = 0, secondaryProgressValue = 0, chunkValue = 0; while( chunkValue <= upperBound ) { @@ -277,6 +421,177 @@ int UtcDaliProgressBarSetPropertyP1(void) chunkValue = chunkValue + 100; } + val = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE); + DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); + + // test to download a file of 100k in chunks + lowerBound = 0, upperBound = 100, secondaryProgressValue = 0, chunkValue = 0; + + while( chunkValue <= upperBound ) + { + secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound ); + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue); + val = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE); + DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION); + chunkValue = chunkValue + 10; + } + + // test to download a file of 1000k in chunks + lowerBound = 0, upperBound = 1000, secondaryProgressValue = 0, chunkValue = 0; + + while( chunkValue <= upperBound ) + { + secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound ); + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue); + val = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE); + DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION); + chunkValue = chunkValue + 100; + } + + END_TEST; +} + +int UtcDaliProgressBarSetPropertyP2(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliProgressBarSetPropertyP2" ); + + ProgressBar progressBar = ProgressBar::New(); + progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f )); + progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test"); + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, true); + progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, trackImage); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, progressImage); + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage); + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, indeterminateImage); + + Property::Map transitionMap; + transitionMap["target"] = "indeterminateVisual"; + transitionMap["property"] = "offset"; + transitionMap["initialValue"] = Vector2( 0.0f, 0.0f ); + transitionMap["targetValue"] = Vector2( 10.0f, 0.0f ); + transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f); + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.3f); + + progressBar.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS ); + progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) ); + application.GetScene().Add(progressBar); + application.SendNotification(); + application.Render(); + + // Test get/set INDETERMINATE + bool val = progressBar.GetProperty(ProgressBar::Property::INDETERMINATE); + DALI_TEST_EQUALS(val, true, TEST_LOCATION); + + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, false); + val = progressBar.GetProperty(ProgressBar::Property::INDETERMINATE); + DALI_TEST_EQUALS(val, false, TEST_LOCATION); + END_TEST; } +int UtcDaliProgressBarSetPropertyP3(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliProgressBarSetPropertyP3" ); + + ProgressBar progressBar = ProgressBar::New(); + progressBar.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT); + progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, application.GetScene().GetSize().y ) ); + application.GetScene().Add( progressBar ); + application.SendNotification(); + application.Render(); + + { + // Set arc visual to the SECONDARY_PROGRESS_VISUAL + const float expected = 180.0f; + + Property::Map map; + map["visualType"] = "ARC"; + map["thickness"] = 4.0f; + map["mixColor"] = Color::BLUE; + map["sweepAngle"] = 60; + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map); + progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.5f); // This should change visual's sweep angle. + + Property::Value value = progressBar.GetProperty( ProgressBar::Property::SECONDARY_PROGRESS_VISUAL ); + Property::Map* resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + + Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE ); + float result = 0.0f; + sweepAngle->Get( result ); + DALI_TEST_EQUALS( result, expected, TEST_LOCATION ); + } + + { + // Set arc visual to the PROGRESS_VISUAL + const float expected = 90.0f; + + Property::Map map; + map["visualType"] = "ARC"; + map["thickness"] = 4.0f; + map["mixColor"] = Color::RED; + map["sweepAngle"] = 60; + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.25f); // This should change visual's sweep angle. + + Property::Value value = progressBar.GetProperty( ProgressBar::Property::PROGRESS_VISUAL ); + Property::Map* resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + + Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE ); + float result = 0.0f; + sweepAngle->Get( result ); + DALI_TEST_EQUALS( result, expected, TEST_LOCATION ); + } + + { + // Set arc visual to the INDETERMINATE_VISUAL + const Vector4 expected = Color::GREEN; + + Property::Map map; + map["visualType"] = "ARC"; + map["thickness"] = 4.0f; + map["mixColor"] = expected; + progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map); + + Property::Value value = progressBar.GetProperty( ProgressBar::Property::INDETERMINATE_VISUAL ); + Property::Map* resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + + Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR ); + Vector4 result; + mixColor->Get( result ); + DALI_TEST_EQUALS( result, expected, TEST_LOCATION ); + } + + { + // Set arc visual to the TRACK_VISUAL + const Vector4 expected = Color::YELLOW; + + Property::Map map; + map["visualType"] = "ARC"; + map["thickness"] = 0.4f; + map["mixColor"] = expected; + progressBar.SetProperty( ProgressBar::Property::TRACK_VISUAL, map ); + progressBar.SetProperty( ProgressBar::Property::INDETERMINATE, true ); // This should not change track visual's properties. + + Property::Value value = progressBar.GetProperty( ProgressBar::Property::TRACK_VISUAL ); + Property::Map* resultMap = value.GetMap(); + DALI_TEST_CHECK( resultMap ); + + Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR ); + Vector4 result; + mixColor->Get( result ); + DALI_TEST_EQUALS( result, expected, TEST_LOCATION ); + } + + END_TEST; +}