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-ArcVisual.cpp;h=0bde10360765b92eae02a956102b061a091572db;hp=be122902f2712f1cf6de172ed79e39019be3ccce;hb=HEAD;hpb=2564b59549aa2619a78059c9e16bd9e6556589e9 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ArcVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ArcVisual.cpp index be12290..89add36 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ArcVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ArcVisual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 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. @@ -14,18 +14,16 @@ * limitations under the License. */ -#include -#include -//#include -//#include #include -//#include #include -#include #include -#include +#include #include +#include +#include #include +#include +#include #include "dummy-control.h" using namespace Dali; @@ -44,32 +42,32 @@ void dali_arc_visual_cleanup(void) int UtcDaliVisualFactoryGetArcVisual01(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetArcVisual01: Request arc visual with a Property::Map" ); + tet_infoline("UtcDaliVisualFactoryGetArcVisual01: Request arc visual with a Property::Map"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ARC ) - .Add( Visual::Property::MIX_COLOR, Color::RED ) - .Add( DevelArcVisual::Property::THICKNESS, 20.0f ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ARC) + .Add(Visual::Property::MIX_COLOR, Color::RED) + .Add(DevelArcVisual::Property::THICKNESS, 20.0f); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); - actor.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( actor ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f)); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -77,35 +75,35 @@ int UtcDaliVisualFactoryGetArcVisual01(void) int UtcDaliVisualFactoryGetArcVisual02(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetArcVisual02: Request arc visual with a Property::Map" ); + tet_infoline("UtcDaliVisualFactoryGetArcVisual02: Request arc visual with a Property::Map"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ARC ) - .Add( Visual::Property::MIX_COLOR, Color::RED ) - .Add( DevelArcVisual::Property::THICKNESS, 20.0f ) - .Add( DevelArcVisual::Property::START_ANGLE, 0.0f ) - .Add( DevelArcVisual::Property::SWEEP_ANGLE, 90.0f ) - .Add( DevelArcVisual::Property::CAP, DevelArcVisual::Cap::ROUND ); - - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); - - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); - actor.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( actor ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ARC) + .Add(Visual::Property::MIX_COLOR, Color::RED) + .Add(DevelArcVisual::Property::THICKNESS, 20.0f) + .Add(DevelArcVisual::Property::START_ANGLE, 0.0f) + .Add(DevelArcVisual::Property::SWEEP_ANGLE, 90.0f) + .Add(DevelArcVisual::Property::CAP, DevelArcVisual::Cap::ROUND); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f)); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -113,89 +111,219 @@ int UtcDaliVisualFactoryGetArcVisual02(void) int UtcDaliArcVisualGetPropertyMap01(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliArcVisualGetPropertyMap01" ); + tet_infoline("UtcDaliArcVisualGetPropertyMap01"); - float thickness = 20.0f; + float thickness = 20.0f; float startAngle = 0.0f, sweepAngle = 90.0f; Property::Map propertyMap; - propertyMap.Add( "visualType", DevelVisual::ARC ) - .Add( "mixColor", Color::RED ) - .Add( "thickness", thickness ) - .Add( "startAngle", startAngle ) - .Add( "sweepAngle", sweepAngle ) - .Add( "cap", DevelArcVisual::Cap::ROUND ); - - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); - - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); - actor.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( actor ); + propertyMap.Add("visualType", DevelVisual::ARC) + .Add("mixColor", Color::RED) + .Add("thickness", thickness) + .Add("startAngle", startAngle) + .Add("sweepAngle", sweepAngle) + .Add("cap", DevelArcVisual::Cap::ROUND); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f)); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); Property::Map resultMap; - visual.CreatePropertyMap( resultMap ); + visual.CreatePropertyMap(resultMap); // check the property values from the returned map from a visual - Property::Value* value = resultMap.Find( Visual::Property::MIX_COLOR, Property::VECTOR4 ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< Vector4 >(), Color::RED, TEST_LOCATION ); + Property::Value* value = resultMap.Find(Visual::Property::MIX_COLOR, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), Color::RED, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::THICKNESS, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), thickness, TEST_LOCATION ); + value = resultMap.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), thickness, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::START_ANGLE, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), startAngle, TEST_LOCATION ); + value = resultMap.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), startAngle, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), sweepAngle, TEST_LOCATION ); + value = resultMap.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), sweepAngle, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::CAP, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelArcVisual::Cap::ROUND ); + value = resultMap.Find(DevelArcVisual::Property::CAP, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelArcVisual::Cap::ROUND); // Test wrong values - propertyMap[DevelArcVisual::Property::THICKNESS] = "3.0f"; + propertyMap[DevelArcVisual::Property::THICKNESS] = "3.0f"; propertyMap[DevelArcVisual::Property::START_ANGLE] = "0.0f"; propertyMap[DevelArcVisual::Property::SWEEP_ANGLE] = "90.0f"; - propertyMap[DevelArcVisual::Property::CAP] = "1"; + propertyMap[DevelArcVisual::Property::CAP] = "1"; + + visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + visual.CreatePropertyMap(resultMap); + + value = resultMap.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), 0.0f, TEST_LOCATION); + + value = resultMap.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), 0.0f, TEST_LOCATION); + + value = resultMap.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), 360.0f, TEST_LOCATION); + + value = resultMap.Find(DevelArcVisual::Property::CAP, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelArcVisual::Cap::BUTT); + + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); - visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + END_TEST; +} + +int UtcDaliArcVisualGetPropertyMap02(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliArcVisualGetPropertyMap02"); + + float thickness = 20.0f; + float startAngle = 0.0f, sweepAngle = 90.0f; + + Property::Map propertyMap; + propertyMap.Add(Visual::Property::TYPE, DevelVisual::ARC) + .Add(Visual::Property::MIX_COLOR, Color::RED) + .Add(DevelArcVisual::Property::THICKNESS, thickness) + .Add(DevelArcVisual::Property::START_ANGLE, startAngle) + .Add(DevelArcVisual::Property::SWEEP_ANGLE, sweepAngle) + .Add(DevelArcVisual::Property::CAP, DevelArcVisual::Cap::ROUND); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + Property::Map resultMap; + visual.CreatePropertyMap(resultMap); + + // check the property values from the returned map from a visual + Property::Value* value = resultMap.Find(Visual::Property::MIX_COLOR, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), Color::RED, TEST_LOCATION); - visual.CreatePropertyMap( resultMap ); + value = resultMap.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), thickness, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::THICKNESS, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), 0.0f, TEST_LOCATION ); + value = resultMap.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), startAngle, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::START_ANGLE, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), 0.0f, TEST_LOCATION ); + value = resultMap.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), sweepAngle, TEST_LOCATION); + + value = resultMap.Find(DevelArcVisual::Property::CAP, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelArcVisual::Cap::ROUND); + + END_TEST; +} + +int UtcDaliArcVisualUpdateProperty(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliArcVisualUpdateProperty"); + + static std::vector customUniforms = + { + UniformData("thickness", Property::Type::FLOAT), + UniformData("startAngle", Property::Type::FLOAT), + UniformData("sweepAngle", Property::Type::FLOAT), + }; + + TestGraphicsController& graphics = application.GetGraphicsController(); + graphics.AddCustomUniforms(customUniforms); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + + float thickness = 20.0f; + float startAngle = 0.0f; + float sweepAngle = 90.0f; + + Property::Map propertyMap; + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ARC) + .Add(Visual::Property::MIX_COLOR, Color::RED) + .Add(DevelArcVisual::Property::THICKNESS, thickness) + .Add(DevelArcVisual::Property::START_ANGLE, startAngle) + .Add(DevelArcVisual::Property::SWEEP_ANGLE, sweepAngle); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + + actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f)); + application.GetScene().Add(actor); + + application.SendNotification(); + application.Render(); + + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), thickness, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("thickness", thickness), true, TEST_LOCATION); + + value = map.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), startAngle, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("startAngle", startAngle), true, TEST_LOCATION); + + value = map.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), sweepAngle, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("sweepAngle", sweepAngle), true, TEST_LOCATION); + + thickness = 10.0f; + startAngle = 90.0f; + sweepAngle = 180.0f; + + Property::Map attributes; + attributes.Add(DevelArcVisual::Property::THICKNESS, thickness) + .Add(DevelArcVisual::Property::START_ANGLE, startAngle) + .Add(DevelArcVisual::Property::SWEEP_ANGLE, sweepAngle); + + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes); + + application.SendNotification(); + application.Render(); - value = resultMap.Find( DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), 360.0f, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelArcVisual::Property::THICKNESS, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), thickness, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("thickness", thickness), true, TEST_LOCATION); - value = resultMap.Find( DevelArcVisual::Property::CAP, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelArcVisual::Cap::BUTT ); + value = map.Find(DevelArcVisual::Property::START_ANGLE, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), startAngle, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("startAngle", startAngle), true, TEST_LOCATION); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + value = map.Find(DevelArcVisual::Property::SWEEP_ANGLE, Property::FLOAT); + DALI_TEST_EQUALS(value->Get(), sweepAngle, TEST_LOCATION); + DALI_TEST_EQUALS(gl.CheckUniformValue("sweepAngle", sweepAngle), true, TEST_LOCATION); END_TEST; }