X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-DebugRendering.cpp;h=fe01738f63aa538a2b9583bd34fb0e827f194a96;hp=f853c90f66f89bae5e6d8f639b0adb431057d5b0;hb=610495b8647d1a25c98bf0773ccc0dd6d1996263;hpb=e40a68da97d5a5564be9a194c4e02949ad5313cb diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-DebugRendering.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-DebugRendering.cpp old mode 100644 new mode 100755 index f853c90..fe01738 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-DebugRendering.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-DebugRendering.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. @@ -19,10 +19,8 @@ #include #include #include -#include -#include -#include -#include +#include +#include #include @@ -41,9 +39,12 @@ const char* TEST_GIF_FILE_NAME = TEST_RESOURCE_DIR "/anim.gif"; const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); -void TestDebugVisual( Visual::Base& visual, DevelVisual::Type actualType, Vector2 expectedNaturalSize ) +void TestDebugVisual( Integration::Scene scene, Visual::Base& visual, Visual::Type actualType, Vector2 expectedNaturalSize ) { - DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( GetImplementation(visual) ) ); + { + auto& impl = GetImplementation( visual ); + DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( impl ) ); + } Vector2 naturalSize; visual.GetNaturalSize( naturalSize ); @@ -51,7 +52,7 @@ void TestDebugVisual( Visual::Base& visual, DevelVisual::Type actualType, Vector Property::Map propertyMap; visual.CreatePropertyMap( propertyMap ); - Property::Value* typeValue = propertyMap.Find( Visual::Property::TYPE, Property::INTEGER ); + Property::Value* typeValue = propertyMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER ); if ( typeValue ) { DALI_TEST_CHECK( typeValue->Get() == actualType ); @@ -60,7 +61,7 @@ void TestDebugVisual( Visual::Base& visual, DevelVisual::Type actualType, Vector DummyControl actor = DummyControl::New(); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); - Stage::GetCurrent().Add( actor ); + scene.Add( actor ); DALI_TEST_EQUALS( actor.GetRendererCount(), 1, TEST_LOCATION ); if( actor.GetRendererCount() > 0 ) @@ -96,7 +97,7 @@ int UtcDaliDebugRenderingGetVisual1(void) propertyMap1.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); Visual::Base colorVisual = factory.CreateVisual(propertyMap1); DALI_TEST_CHECK( colorVisual ); - TestDebugVisual( colorVisual, DevelVisual::COLOR, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), colorVisual, Visual::COLOR, Vector2::ZERO ); // Test that border visual is replaced with debug visual Property::Map propertyMap2; @@ -105,7 +106,7 @@ int UtcDaliDebugRenderingGetVisual1(void) propertyMap2.Insert(BorderVisual::Property::SIZE, 2.f); Visual::Base borderVisual = factory.CreateVisual(propertyMap2); DALI_TEST_CHECK( borderVisual ); - TestDebugVisual( borderVisual, DevelVisual::BORDER, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), borderVisual, Visual::BORDER, Vector2::ZERO ); // Test that gradient visual is replaced with debug visual Property::Map propertyMap3; @@ -125,17 +126,17 @@ int UtcDaliDebugRenderingGetVisual1(void) propertyMap3.Insert(GradientVisual::Property::STOP_COLOR, stopColors); Visual::Base gradientVisual = factory.CreateVisual(propertyMap3); DALI_TEST_CHECK( gradientVisual ); - TestDebugVisual( gradientVisual, DevelVisual::GRADIENT, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), gradientVisual, Visual::GRADIENT, Vector2::ZERO ); // Test that image visual is replaced with debug visual Property::Map propertyMap4; - propertyMap4.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap4.Insert( Toolkit::Visual::Property::TYPE, Visual::IMAGE ); propertyMap4.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); propertyMap4.Insert( ImageVisual::Property::DESIRED_WIDTH, 50.f ); propertyMap4.Insert( ImageVisual::Property::DESIRED_HEIGHT, 100.f ); Visual::Base imageVisual = factory.CreateVisual( propertyMap4 ); DALI_TEST_CHECK( imageVisual ); - TestDebugVisual( imageVisual, DevelVisual::IMAGE, Vector2( 50.f, 100.f ) ); + TestDebugVisual( application.GetScene(), imageVisual, Visual::IMAGE, Vector2( 50.f, 100.f ) ); // Test that SVG visual is replaced with debug visual // TEST_SVG_FILE: @@ -143,21 +144,21 @@ int UtcDaliDebugRenderingGetVisual1(void) // // Property::Map propertyMap5; - propertyMap5.Insert( Visual::Property::TYPE, DevelVisual::SVG ); + propertyMap5.Insert( Toolkit::Visual::Property::TYPE, Visual::SVG ); propertyMap5.Insert( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); Visual::Base svgVisual = factory.CreateVisual( propertyMap5 ); DALI_TEST_CHECK( svgVisual ); - TestDebugVisual( svgVisual, DevelVisual::SVG, Vector2(100.f, 100.f) ); + TestDebugVisual( application.GetScene(), svgVisual, Visual::SVG, Vector2(100.f, 100.f) ); // Test that AnimatedImageVisual is replaced with debug visual // TEST_GIF_FILE: anim.gif // resolution: 50*50, frame count: 4, frame delay: 0.2 second for each frame Property::Map propertyMap6; - propertyMap6.Insert( Visual::Property::TYPE, DevelVisual::ANIMATED_IMAGE ); + propertyMap6.Insert( Toolkit::Visual::Property::TYPE, Visual::ANIMATED_IMAGE ); propertyMap6.Insert( ImageVisual::Property::URL, TEST_GIF_FILE_NAME ); Visual::Base animatedImageVisual = factory.CreateVisual( propertyMap6 ); DALI_TEST_CHECK( animatedImageVisual ); - TestDebugVisual( animatedImageVisual, DevelVisual::ANIMATED_IMAGE, Vector2(50.f, 50.f) ); + TestDebugVisual( application.GetScene(), animatedImageVisual, Visual::ANIMATED_IMAGE, Vector2(50.f, 50.f) ); // Test that text visual is replaced with debug visual @@ -172,30 +173,33 @@ int UtcDaliDebugRenderingGetVisual1(void) fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf" ); Property::Map propertyMap7; - propertyMap7.Insert( Visual::Property::TYPE, DevelVisual::TEXT ); + propertyMap7.Insert( Toolkit::Visual::Property::TYPE, Visual::TEXT ); propertyMap7.Insert( TextVisual::Property::ENABLE_MARKUP, true ); propertyMap7.Insert( TextVisual::Property::TEXT, "Hello world" ); propertyMap7.Insert( TextVisual::Property::MULTI_LINE, true ); Visual::Base textVisual = factory.CreateVisual( propertyMap7 ); DALI_TEST_CHECK( textVisual ); - DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( GetImplementation(textVisual) ) ); + { + auto&& impl = GetImplementation( textVisual ); + DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( impl ) ); + } Vector2 naturalSize; textVisual.GetNaturalSize( naturalSize ); - DALI_TEST_EQUALS( naturalSize, Vector2( 80.f, 20.f ), Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + DALI_TEST_EQUALS( naturalSize, Vector2( 82.f, 20.f ), Math::MACHINE_EPSILON_1000, TEST_LOCATION ); const float height = textVisual.GetHeightForWidth( 40.f ); - DALI_TEST_EQUALS( height, 40.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + DALI_TEST_EQUALS( height, 57.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); // Test that NPatchVisual is replaced with debug visual // TEST_NPATCH_FILE_NAME: image_01.9.jpg Property::Map propertyMap8; - propertyMap8.Insert( Visual::Property::TYPE, DevelVisual::N_PATCH ); + propertyMap8.Insert( Toolkit::Visual::Property::TYPE, Visual::N_PATCH ); propertyMap8.Insert( ImageVisual::Property::URL, TEST_NPATCH_FILE_NAME ); Visual::Base nPatchVisual = factory.CreateVisual( propertyMap8 ); DALI_TEST_CHECK( nPatchVisual ); - TestDebugVisual( nPatchVisual, DevelVisual::N_PATCH, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), nPatchVisual, Visual::N_PATCH, Vector2::ZERO ); EnvironmentVariable::SetTestingEnvironmentVariable(false); END_TEST; @@ -212,33 +216,132 @@ int UtcDaliDebugRenderingGetVisual2(void) // Test that color visual is replaced with debug visual Dali::Property::Map map; - map[ Visual::Property::TYPE ] = Visual::COLOR; + map[ Toolkit::Visual::Property::TYPE ] = Visual::COLOR; map[ ColorVisual::Property::MIX_COLOR ] = Color::CYAN; Visual::Base colorVisual = factory.CreateVisual( map); DALI_TEST_CHECK( colorVisual ); - TestDebugVisual( colorVisual, DevelVisual::COLOR, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), colorVisual, Visual::COLOR, Vector2::ZERO ); // Test that border visual is replaced with debug visual map.Clear(); - map[ Visual::Property::TYPE ] = Visual::BORDER; + map[ Toolkit::Visual::Property::TYPE ] = Visual::BORDER; map[ BorderVisual::Property::COLOR ] = Color::GREEN; map[ BorderVisual::Property::SIZE ] = 2.f; Visual::Base borderVisual = factory.CreateVisual( map ); DALI_TEST_CHECK( borderVisual ); - TestDebugVisual( borderVisual, DevelVisual::BORDER, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), borderVisual, Visual::BORDER, Vector2::ZERO ); // Test that image visual is replaced with debug visual - Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME); - Visual::Base imageVisual = factory.CreateVisual( image ); + map.Clear(); + map[ Toolkit::Visual::Property::TYPE ] = Visual::IMAGE; + map[ ImageVisual::Property::URL ] = TEST_IMAGE_FILE_NAME; + Visual::Base imageVisual = factory.CreateVisual( map ); DALI_TEST_CHECK( imageVisual ); - TestDebugVisual( imageVisual, DevelVisual::IMAGE, Vector2::ZERO); + TestDebugVisual( application.GetScene(), imageVisual, Visual::IMAGE, Vector2(64.0f, 64.0f /* Broken Image Size */ )); // Test that n patch visual is replaced with debug visual Visual::Base nPatchVisual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() ); DALI_TEST_CHECK( nPatchVisual ); - TestDebugVisual( nPatchVisual, DevelVisual::N_PATCH, Vector2::ZERO ); + TestDebugVisual( application.GetScene(), nPatchVisual, Visual::N_PATCH, Vector2::ZERO ); EnvironmentVariable::SetTestingEnvironmentVariable(false); END_TEST; } + +int UtcDaliDebugRenderingGetVisualObject01(void) +{ + EnvironmentVariable::SetTestingEnvironmentVariable( true ); + ToolkitTestApplication application; + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + tet_infoline( "Create a TextVisual when debugging is enabled, thus creating a proxy Wireframe Visual" ); + + Dali::Property::Map map; + map[ Toolkit::Visual::Property::TYPE ] = Visual::TEXT; + map[ TextVisual::Property::TEXT ] = "Hello"; + + Visual::Base textVisual = factory.CreateVisual( map); + DALI_TEST_CHECK( textVisual ); + + tet_infoline( "Check that GetVisualObject returns the actual TextVisual" ); + Toolkit::Internal::Visual::Base& visualImpl = GetImplementation( textVisual ).GetVisualObject(); + DALI_TEST_CHECK( dynamic_cast< Toolkit::Internal::TextVisual* >( &visualImpl ) ); + + tet_infoline( "Compare the returned TextVisual with the visual implementation, should differ" ); + DALI_TEST_CHECK( textVisual.GetObjectPtr() != &visualImpl ); + + END_TEST; +} + +int UtcDaliDebugRenderingGetVisualObject02(void) +{ + ToolkitTestApplication application; + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + tet_infoline( "Create a TextVisual without debugging enabled, thus no proxy Wireframe Visual" ); + + Dali::Property::Map map; + map[ Toolkit::Visual::Property::TYPE ] = Visual::TEXT; + map[ TextVisual::Property::TEXT ] = "Hello"; + + Visual::Base textVisual = factory.CreateVisual( map); + DALI_TEST_CHECK( textVisual ); + + tet_infoline( "Check that GetVisualObject returns the actual TextVisual" ); + Toolkit::Internal::Visual::Base& visualImpl = GetImplementation( textVisual ).GetVisualObject(); + DALI_TEST_CHECK( dynamic_cast< Toolkit::Internal::TextVisual* >( &visualImpl ) ); + + tet_infoline( "Compare the returned TextVisual with the visual implementation, should be the same" ); + DALI_TEST_CHECK( textVisual.GetObjectPtr() == &visualImpl ); + + END_TEST; +} + +int UtcDaliDebugRenderingGetVisualObject03(void) +{ + ToolkitTestApplication application; + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + tet_infoline( "Create a WireframeVisual without debugging enabled, thus no proxy Wireframe Visual either" ); + + Dali::Property::Map map; + map[ Toolkit::Visual::Property::TYPE ] = Visual::WIREFRAME; + + Visual::Base textVisual = factory.CreateVisual( map); + DALI_TEST_CHECK( textVisual ); + + tet_infoline( "Check that GetVisualObject returns the WireframeVisual" ); + Toolkit::Internal::Visual::Base& visualImpl = GetImplementation( textVisual ).GetVisualObject(); + DALI_TEST_CHECK( dynamic_cast< Toolkit::Internal::WireframeVisual* >( &visualImpl ) ); + + tet_infoline( "Compare the returned Visual with the visual implementation, should be the same" ); + DALI_TEST_CHECK( textVisual.GetObjectPtr() == &visualImpl ); + + END_TEST; +} + +int UtcDaliDebugRenderingRenderText(void) +{ + EnvironmentVariable::SetTestingEnvironmentVariable( true ); + ToolkitTestApplication application; + tet_infoline( "Ensure we can render text when in debug mode" ); + + try + { + Toolkit::TextLabel label = TextLabel::New( "Hello" ); + application.GetScene().Add( label ); + DALI_TEST_CHECK( true ); + } catch( ... ) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +}