/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
#include <dali-toolkit/internal/visuals/wireframe/wireframe-visual.h>
-#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
-#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
-#include <dali/public-api/rendering/renderer.h>
-#include <dali/public-api/rendering/geometry.h>
+#include <dali-toolkit/internal/visuals/visual-base-impl.h>
+#include <dali-toolkit/internal/visuals/text/text-visual.h>
#include <dali-toolkit/dali-toolkit.h>
void TestDebugVisual( 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 );
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<int>() == actualType );
// 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 );
// <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
// </svg>
Property::Map propertyMap5;
- propertyMap5.Insert( Visual::Property::TYPE, Visual::IMAGE );
+ 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, Visual::IMAGE, Vector2(100.f, 100.f) );
+ TestDebugVisual( 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, Visual::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, Visual::IMAGE, Vector2(50.f, 50.f) );
+ TestDebugVisual( animatedImageVisual, Visual::ANIMATED_IMAGE, Vector2(50.f, 50.f) );
// Test that text visual is replaced with debug visual
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, "<font family='TizenSans' size='12'>Hello world</font>" );
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( 78.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, 38.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( 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, Visual::N_PATCH, Vector2::ZERO );
EnvironmentVariable::SetTestingEnvironmentVariable(false);
END_TEST;
// 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);
// 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 );
// 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, Visual::IMAGE, Vector2::ZERO );
+ TestDebugVisual( 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" );
+ Stage::GetCurrent().Add( label );
+ DALI_TEST_CHECK( true );
+ } catch( ... )
+ {
+ DALI_TEST_CHECK( false );
+ }
+
+ END_TEST;
+}