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=2a8255a49ec5062c349c75ce10a9fd359d37e7e7;hp=2a2ae20cc2b562ffdf9721b8649232db9df5f259;hb=HEAD;hpb=b81c20064def5a5017e77876effd01ddc5bb39d6 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp index 2a2ae20..2a8255a 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) 2022 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,13 +17,15 @@ #include #include -#include +#include +#include +#include +#include using namespace Dali; using namespace Dali::Toolkit; using Dali::Toolkit::ProgressBar; - void utc_dali_toolkit_progressbar_startup(void) { test_return_value = TET_UNDEF; @@ -36,15 +38,18 @@ void utc_dali_toolkit_progressbar_cleanup(void) namespace { - -static bool gObjectCreatedCallBackCalled; +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) { gObjectCreatedCallBackCalled = true; } -} +} // namespace int UtcDaliProgressBarNew(void) { @@ -54,31 +59,47 @@ int UtcDaliProgressBarNew(void) // Create the ProgressBar actor ProgressBar progressBar; - DALI_TEST_CHECK( !progressBar ); + DALI_TEST_CHECK(!progressBar); progressBar = ProgressBar::New(); - DALI_TEST_CHECK( progressBar ); + DALI_TEST_CHECK(progressBar); ProgressBar progressBar2(progressBar); - DALI_TEST_CHECK( progressBar2 == progressBar ); + DALI_TEST_CHECK(progressBar2 == progressBar); ProgressBar progressBar3; progressBar3 = progressBar2; - DALI_TEST_CHECK( progressBar3 == progressBar2 ); + DALI_TEST_CHECK(progressBar3 == progressBar2); //Additional check to ensure object is created by checking if it's registered - ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry(); - DALI_TEST_CHECK( registry ); + ObjectRegistry registry = application.GetCore().GetObjectRegistry(); + DALI_TEST_CHECK(registry); gObjectCreatedCallBackCalled = false; - registry.ObjectCreatedSignal().Connect( &TestCallback ); + registry.ObjectCreatedSignal().Connect(&TestCallback); { ProgressBar progressBar = ProgressBar::New(); } - DALI_TEST_CHECK( gObjectCreatedCallBackCalled ); + DALI_TEST_CHECK(gObjectCreatedCallBackCalled); + 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; } @@ -89,7 +110,72 @@ int UtcDaliProgressBarDestructor(void) ProgressBar* progressBar = new ProgressBar(); delete progressBar; - DALI_TEST_CHECK( true ); + DALI_TEST_CHECK(true); + 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(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(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(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(Actor::Property::SENSITIVE)); + DALI_TEST_CHECK(!progressBar); + END_TEST; } @@ -99,39 +185,46 @@ int UtcDaliProgressBarDownCast(void) Handle handle = ProgressBar::New(); - ProgressBar progressBar = ProgressBar::DownCast( handle ); + ProgressBar progressBar = ProgressBar::DownCast(handle); - DALI_TEST_CHECK( progressBar == handle ); + DALI_TEST_CHECK(progressBar == handle); END_TEST; } static bool gProgressBarValueChangedCallBackCalled = false; -static void OnProgressBarValueChanged( ProgressBar progressBar, float value ) +static void OnProgressBarValueChanged(ProgressBar progressBar, float value, float secondaryValue) { gProgressBarValueChangedCallBackCalled = true; } int UtcDaliProgressBarSignals(void) { - ToolkitTestApplication application; // Exceptions require ToolkitTestApplication + ToolkitTestApplication application; // Exceptions require ToolkitTestApplication tet_infoline(" UtcDaliProgressBarSignals"); // 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.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; @@ -140,143 +233,361 @@ int UtcDaliProgressBarSignals(void) int UtcDaliProgressBarSetPropertyP(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliProgressBarSetPropertyP" ); + 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); + 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; +} - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.2f, TEST_LOCATION); +int UtcDaliProgressBarSetPropertyP1(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliProgressBarSetPropertyP1"); - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.8f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.8f, TEST_LOCATION); + 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, 20.0f)); + progressBar.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f)); + progressBar.ValueChangedSignal().Connect(&OnProgressBarValueChanged); - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.4f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.4f, TEST_LOCATION); + application.GetScene().Add(progressBar); + application.SendNotification(); + application.Render(); - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); + float 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); + // test to download a file of 100k in chunks + float lowerBound = 0, upperBound = 100, progressValue = 0, secondaryProgressValue = 0, chunkValue = 0; - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); + while(chunkValue <= upperBound) + { + progressValue = (chunkValue - lowerBound) / (upperBound - lowerBound); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue); + val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); + DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION); + chunkValue = chunkValue + 10; + } - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.1f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); + // test to download a file of 1000k in chunks + lowerBound = 0, upperBound = 1000, progressValue = 0, chunkValue = 0; - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 2.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION); + while(chunkValue <= upperBound) + { + progressValue = (chunkValue - lowerBound) / (upperBound - lowerBound); + progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue); + val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); + DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION); + chunkValue = chunkValue + 100; + } - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); + val = progressBar.GetProperty(ProgressBar::Property::SECONDARY_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); + // test to download a file of 100k in chunks + lowerBound = 0, upperBound = 100, secondaryProgressValue = 0, chunkValue = 0; - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.09f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.09f, TEST_LOCATION); + 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; + } - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.1f); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.1f, TEST_LOCATION); + // test to download a file of 1000k in chunks + lowerBound = 0, upperBound = 1000, secondaryProgressValue = 0, chunkValue = 0; + while(chunkValue <= upperBound) { - 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); + 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; + } - 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 ); + 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(); - 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 ); + // 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 UtcDaliProgressBarSetPropertyP1(void) +int UtcDaliProgressBarSetPropertyP3(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliProgressBarSetPropertyP1" ); + tet_infoline("UtcDaliProgressBarSetPropertyP3"); 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, application.GetScene().GetSize().y)); + application.GetScene().Add(progressBar); application.SendNotification(); application.Render(); - float val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION); + { + // Set arc visual to the SECONDARY_PROGRESS_VISUAL + const float expected = 180.0f; - // test to download a file of 100k in chunks - float lowerBound = 0, upperBound = 100, progressValue = 0, chunkValue = 0; + 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); + } - while( chunkValue <= upperBound ) { - progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound ); - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION); - chunkValue = chunkValue + 10; + // 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); } - // test to download a file of 1000k in chunks - lowerBound = 0, upperBound = 1000, progressValue = 0, chunkValue = 0; + { + // 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); + } - while( chunkValue <= upperBound ) { - progressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound ); - progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, progressValue); - val = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VALUE); - DALI_TEST_EQUALS(val, progressValue, TEST_LOCATION); - chunkValue = chunkValue + 100; + // 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; } -