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-Visual.cpp;h=aa1e8f6331e9ab750ae2b2904529231fec8b92d1;hp=aee2e2f17ea21c52c1c05dd2a7e63d0ddb8be02b;hb=d9a463c5e80699fb011b3425bde306803c419322;hpb=b61b95bc078c3f67d0a43a21fcb78bd334d03f32 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index aee2e2f..aa1e8f6 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 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. @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -345,7 +346,6 @@ int UtcDaliVisualSize(void) // svg visual Visual::Base svgVisual = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions() ); - svgVisual.SetTransformAndSize(DefaultTransform(), controlSize ); svgVisual.GetNaturalSize(naturalSize); // TEST_SVG_FILE: // @@ -508,6 +508,8 @@ int UtcDaliVisualGetPropertyMap1(void) Property::Map propertyMap; propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); propertyMap.Insert(Visual::Property::MIX_COLOR, Color::BLUE); + propertyMap.Insert( DevelVisual::Property::CORNER_RADIUS, 10.0f ); + propertyMap.Insert( DevelColorVisual::Property::BLUR_RADIUS, 20.0f ); Visual::Base colorVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; @@ -521,6 +523,14 @@ int UtcDaliVisualGetPropertyMap1(void) DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::BLUE ); + Property::Value* cornerRadiusValue = resultMap.Find( DevelVisual::Property::CORNER_RADIUS, Property::FLOAT ); + DALI_TEST_CHECK( cornerRadiusValue ); + DALI_TEST_CHECK( cornerRadiusValue->Get< float >() == 10.0f ); + + Property::Value* blurRadiusValue = resultMap.Find( DevelColorVisual::Property::BLUR_RADIUS, Property::FLOAT ); + DALI_TEST_CHECK( blurRadiusValue ); + DALI_TEST_CHECK( blurRadiusValue->Get< float >() == 20.0f ); + // change the blend color propertyMap[ColorVisual::Property::MIX_COLOR] = Color::CYAN; colorVisual = factory.CreateVisual( propertyMap ); @@ -530,6 +540,16 @@ int UtcDaliVisualGetPropertyMap1(void) DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::CYAN ); + // Test wrong values + propertyMap[DevelColorVisual::Property::BLUR_RADIUS] = "3.0f"; + + colorVisual = factory.CreateVisual( propertyMap ); + colorVisual.CreatePropertyMap( resultMap ); + + blurRadiusValue = resultMap.Find( DevelColorVisual::Property::BLUR_RADIUS, Property::FLOAT ); + DALI_TEST_CHECK( blurRadiusValue ); + DALI_TEST_CHECK( blurRadiusValue->Get< float >() == 0.0f ); + END_TEST; } @@ -2706,6 +2726,11 @@ int UtcDaliVisualGetTransform(void) DALI_TEST_CHECK( typeValue ); DALI_TEST_CHECK( (Toolkit::Align::Type)typeValue->Get() == Toolkit::Align::TOP_BEGIN ); } + { + Property::Value* typeValue = map->Find( Toolkit::DevelVisual::Transform::Property::EXTRA_SIZE ); + DALI_TEST_CHECK( typeValue ); + DALI_TEST_CHECK( typeValue->Get() == Vector2(0.0f,0.0f) ); + } END_TEST; } @@ -2718,6 +2743,7 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis transform.Insert( Visual::Transform::Property::OFFSET_POLICY, Vector2( Toolkit::Visual::Transform::Policy::ABSOLUTE, Toolkit::Visual::Transform::Policy::ABSOLUTE ) ); transform.Insert( Visual::Transform::Property::ORIGIN, "CENTER" ); transform.Insert( Visual::Transform::Property::ANCHOR_POINT, Toolkit::Align::BOTTOM_END ); + transform.Insert( DevelVisual::Transform::Property::EXTRA_SIZE, Vector2(50.0f, 50.0f) ); visual.SetTransformAndSize( transform, Vector2(100, 100) ); @@ -2757,6 +2783,11 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis DALI_TEST_CHECK( typeValue ); DALI_TEST_EQUALS( (Toolkit::Align::Type)typeValue->Get(), Toolkit::Align::BOTTOM_END, TEST_LOCATION ); } + { + Property::Value* typeValue = map->Find( Toolkit::DevelVisual::Transform::Property::EXTRA_SIZE ); + DALI_TEST_CHECK( typeValue ); + DALI_TEST_EQUALS( typeValue->Get(),Vector2(50.0f,50.0f), TEST_LOCATION ); + } //Put the visual on the stage DummyControl actor = DummyControl::New(true); @@ -2798,12 +2829,18 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis Vector2 anchorPoint = renderer.GetProperty( index ); DALI_TEST_EQUALS( anchorPoint, Vector2(-0.5f,-0.5f), TEST_LOCATION ); + index = renderer.GetPropertyIndex( "extraSize" ); + DALI_TEST_CHECK( index != Property::INVALID_INDEX ); + Vector2 extraSize = renderer.GetProperty( index ); + DALI_TEST_EQUALS( extraSize, Vector2(50.0f,50.0f), TEST_LOCATION ); + //Set a new transform transform.Clear(); transform = DefaultTransform(); transform.Insert( Visual::Transform::Property::OFFSET, Vector2(20.0f, 20.0f) ); transform.Insert( Visual::Transform::Property::SIZE, Vector2(100.0f, 100.0f) ); transform.Insert( Visual::Transform::Property::SIZE_POLICY, Vector2( Toolkit::Visual::Transform::Policy::ABSOLUTE, Toolkit::Visual::Transform::Policy::ABSOLUTE ) ); + transform.Insert( DevelVisual::Transform::Property::EXTRA_SIZE, Vector2(0.5f, 0.5f) ); visual.SetTransformAndSize( transform, Vector2(100, 100) ); application.SendNotification(); application.Render(0); @@ -2824,6 +2861,9 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis anchorPoint = renderer.GetProperty( renderer.GetPropertyIndex( "anchorPoint" ) ); DALI_TEST_EQUALS( anchorPoint, Vector2(0.5f,0.5f), TEST_LOCATION ); + + extraSize = renderer.GetProperty( renderer.GetPropertyIndex( "extraSize" ) ); + DALI_TEST_EQUALS( extraSize, Vector2(0.5f,0.5f), TEST_LOCATION ); } int UtcDaliVisualSetTransform0(void) @@ -2977,8 +3017,11 @@ int UtcDaliVisualSetTransform7(void) tet_infoline( "UtcDaliVisualSetTransform: NPatch visual" ); VisualFactory factory = VisualFactory::Get(); - Image image = ResourceImage::New(TEST_NPATCH_FILE_NAME, ImageDimensions(100, 200)); - Visual::Base visual = factory.CreateVisual(image); + Property::Map propertyMap; + propertyMap[Toolkit::Visual::Property::TYPE] = Toolkit::Visual::IMAGE; + propertyMap[Toolkit::ImageVisual::Property::URL] = TEST_NPATCH_FILE_NAME; + propertyMap[Toolkit::ImageVisual::Property::SYNCHRONOUS_LOADING] = true; + Visual::Base visual = factory.CreateVisual(propertyMap); TestTransform( application, visual ); TestMixColor( visual, Visual::Property::MIX_COLOR, Color::WHITE ); @@ -3042,12 +3085,14 @@ int UtcDaliNPatchVisualCustomShader(void) transformMap["offsetPolicy"] = Vector2( Visual::Transform::Policy::ABSOLUTE, Visual::Transform::Policy::ABSOLUTE ); transformMap["anchorPoint"] = Align::CENTER; transformMap["origin"] = Align::CENTER; + transformMap["extraSize"] = Vector2( 0.0f, 50.0f ); properties[Visual::Property::TRANSFORM] = transformMap; properties[Visual::Property::TYPE] = Visual::IMAGE; properties[Visual::Property::MIX_COLOR] = Color::BLUE; properties[Visual::Property::SHADER]=shader; properties[ImageVisual::Property::URL] = TEST_NPATCH_FILE_NAME; + properties[ImageVisual::Property::SYNCHRONOUS_LOADING] = true; Visual::Base visual = factory.CreateVisual( properties ); TestMixColor( visual, Visual::Property::MIX_COLOR, Color::BLUE ); @@ -3077,6 +3122,9 @@ int UtcDaliNPatchVisualCustomShader(void) Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp DALI_TEST_EQUALS( vertexShader, vertex->Get(), TEST_LOCATION ); + Vector2 extraSize = renderer.GetProperty( renderer.GetPropertyIndex( "extraSize" ) ); + DALI_TEST_EQUALS( extraSize, Vector2(0.0f, 50.0f), TEST_LOCATION ); + END_TEST; } @@ -3573,3 +3621,153 @@ int UtcDaliSvgVisualCustomShader(void) END_TEST; } + +int UtcDaliVisualRoundedCorner(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualRoundedCorner" ); + + // image visual + { + VisualFactory factory = VisualFactory::Get(); + Property::Map properties; + float cornerRadius = 30.0f; + + properties[Visual::Property::TYPE] = Visual::IMAGE; + properties[ImageVisual::Property::URL] = TEST_IMAGE_FILE_NAME; + properties[DevelVisual::Property::CORNER_RADIUS] = cornerRadius; + + Visual::Base visual = factory.CreateVisual( properties ); + + // trigger creation through setting on stage + DummyControl dummy = DummyControl::New( true ); + Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() ); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + dummy.SetSize( 200.f, 200.f ); + dummy.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().Add( dummy ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue< float >( "cornerRadius", cornerRadius ), true, TEST_LOCATION ); + } + + // color visual + { + VisualFactory factory = VisualFactory::Get(); + Property::Map properties; + float cornerRadius = 30.0f; + + properties[Visual::Property::TYPE] = Visual::COLOR; + properties[ColorVisual::Property::MIX_COLOR] = Color::BLUE; + properties["cornerRadius"] = cornerRadius; + + Visual::Base visual = factory.CreateVisual( properties ); + + // trigger creation through setting on stage + DummyControl dummy = DummyControl::New( true ); + Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() ); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + dummy.SetSize( 200.f, 200.f ); + dummy.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().Add( dummy ); + + application.SendNotification(); + application.Render(); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue< float >( "cornerRadius", cornerRadius ), true, TEST_LOCATION ); + } + + // gradient visual + { + VisualFactory factory = VisualFactory::Get(); + Property::Map properties; + float cornerRadius = 30.0f; + + properties[Visual::Property::TYPE] = Visual::GRADIENT; + properties[ColorVisual::Property::MIX_COLOR] = Color::BLUE; + properties[DevelVisual::Property::CORNER_RADIUS] = cornerRadius; + properties[GradientVisual::Property::START_POSITION] = Vector2( 0.5f, 0.5f ); + properties[GradientVisual::Property::END_POSITION] = Vector2( -0.5f, -0.5f ); + properties[GradientVisual::Property::UNITS] = GradientVisual::Units::USER_SPACE; + + Property::Array stopOffsets; + stopOffsets.PushBack( 0.0f ); + stopOffsets.PushBack( 0.6f ); + stopOffsets.PushBack( 1.0f ); + properties[GradientVisual::Property::STOP_OFFSET] = stopOffsets; + + Property::Array stopColors; + stopColors.PushBack( Color::RED ); + stopColors.PushBack( Color::YELLOW ); + stopColors.PushBack( Color::GREEN ); + properties[GradientVisual::Property::STOP_COLOR] = stopColors; + + Visual::Base visual = factory.CreateVisual( properties ); + + // trigger creation through setting on stage + DummyControl dummy = DummyControl::New( true ); + Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() ); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + dummy.SetSize( 200.f, 200.f ); + dummy.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().Add( dummy ); + + application.SendNotification(); + application.Render(); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue< float >( "cornerRadius", cornerRadius ), true, TEST_LOCATION ); + } + + END_TEST; +} + +int UtcDaliColorVisualBlurRadius(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliColorVisualBlurRadius" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map properties; + float blurRadius = 20.0f; + + properties[Visual::Property::TYPE] = Visual::COLOR; + properties[ColorVisual::Property::MIX_COLOR] = Color::BLUE; + properties["blurRadius"] = blurRadius; + + Visual::Base visual = factory.CreateVisual( properties ); + + // trigger creation through setting on stage + DummyControl dummy = DummyControl::New( true ); + Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() ); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + dummy.SetSize( 200.f, 200.f ); + dummy.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().Add( dummy ); + + application.SendNotification(); + application.Render(); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue< float >( "blurRadius", blurRadius ), true, TEST_LOCATION ); + + END_TEST; +}