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=35c224edebafa6b08ff294eb2972b8f07a1ec20d;hp=6807fb3d5fed69ae75d71149397b336f47e8b4cb;hb=f4c1e7f52d49c3ce033b9ee4c3c7414b06a22d45;hpb=1972f043026a3e1bdcaad71c17859a8f324d1e6d diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index 6807fb3..35c224e 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -16,11 +16,15 @@ #include #include +#include + #include #include #include #include #include +#include +#include "dummy-control.h" using namespace Dali; using namespace Dali::Toolkit; @@ -33,6 +37,8 @@ const char* TEST_SVG_FILE_NAME = TEST_RESOURCE_DIR "/svg1.svg"; const char* TEST_OBJ_FILE_NAME = TEST_RESOURCE_DIR "/Cube.obj"; const char* TEST_MTL_FILE_NAME = TEST_RESOURCE_DIR "/ToyRobot-Metal.mtl"; const char* TEST_RESOURCE_LOCATION = TEST_RESOURCE_DIR "/"; + +const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); } void dali_visual_startup(void) @@ -52,22 +58,22 @@ int UtcDaliVisualCopyAndAssignment(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert("rendererType", "COLOR"); - propertyMap.Insert("mixColor", Color::BLUE); - Visual visual = factory.CreateVisual( propertyMap ); + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base visual = factory.CreateVisual( propertyMap ); - Visual visualCopy( visual ); + Visual::Base visualCopy( visual ); DALI_TEST_CHECK(visual == visualCopy); - Visual emptyVisual; - Visual emptyVisualCopy( emptyVisual ); + Visual::Base emptyVisual; + Visual::Base emptyVisualCopy( emptyVisual ); DALI_TEST_CHECK(emptyVisual == emptyVisualCopy); - Visual visualEquals; + Visual::Base visualEquals; visualEquals = visual; DALI_TEST_CHECK(visual == visualEquals); - Visual emptyVisualEquals; + Visual::Base emptyVisualEquals; emptyVisualEquals = emptyVisual; DALI_TEST_CHECK( emptyVisual == emptyVisualEquals ); @@ -78,6 +84,25 @@ int UtcDaliVisualCopyAndAssignment(void) END_TEST; } +int UtcDaliVisualSetName01(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualSetName" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base visual = factory.CreateVisual( propertyMap ); + + const char* visualName = "backgroundVisual"; + visual.SetName( visualName ); + + DALI_TEST_EQUALS( visual.GetName(), visualName, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliVisualSetGetDepthIndex(void) { ToolkitTestApplication application; @@ -85,9 +110,9 @@ int UtcDaliVisualSetGetDepthIndex(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert("rendererType", "COLOR"); - propertyMap.Insert("mixColor", Color::BLUE); - Visual visual = factory.CreateVisual( propertyMap ); + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base visual = factory.CreateVisual( propertyMap ); visual.SetDepthIndex( 1.f ); @@ -117,11 +142,11 @@ int UtcDaliVisualSize(void) Vector2 visualSize( 20.f, 30.f ); Vector2 naturalSize; - // color colorVisual + // color colorVisual Dali::Property::Map map; - map[ "rendererType" ] = "COLOR"; - map[ "mixColor" ] = Color::MAGENTA; - Visual colorVisual = factory.CreateVisual( map ); + map[ Visual::Property::TYPE ] = Visual::COLOR; + map[ ColorVisual::Property::MIX_COLOR ] = Color::MAGENTA; + Visual::Base colorVisual = factory.CreateVisual( map ); colorVisual.SetSize( visualSize ); DALI_TEST_EQUALS( colorVisual.GetSize(), visualSize, TEST_LOCATION ); colorVisual.GetNaturalSize(naturalSize); @@ -129,7 +154,7 @@ int UtcDaliVisualSize(void) // image visual Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200)); - Visual imageVisual = factory.CreateVisual( image ); + Visual::Base imageVisual = factory.CreateVisual( image ); imageVisual.SetSize( visualSize ); DALI_TEST_EQUALS( imageVisual.GetSize(), visualSize, TEST_LOCATION ); imageVisual.GetNaturalSize(naturalSize); @@ -140,7 +165,7 @@ int UtcDaliVisualSize(void) Vector2 testSize(80.f, 160.f); platform.SetClosestImageSize(testSize); image = ResourceImage::New(TEST_NPATCH_FILE_NAME); - Visual nPatchVisual = factory.CreateVisual( image ); + Visual::Base nPatchVisual = factory.CreateVisual( image ); nPatchVisual.SetSize( visualSize ); DALI_TEST_EQUALS( nPatchVisual.GetSize(), visualSize, TEST_LOCATION ); nPatchVisual.GetNaturalSize(naturalSize); @@ -149,10 +174,10 @@ int UtcDaliVisualSize(void) // border visual float borderSize = 5.f; map.Clear(); - map[ "rendererType" ] = "BORDER"; - map[ "borderColor" ] = Color::RED; - map[ "borderSize" ] = borderSize; - Visual borderVisual = factory.CreateVisual( map ); + map[ Visual::Property::TYPE ] = Visual::BORDER; + map[ BorderVisual::Property::COLOR ] = Color::RED; + map[ BorderVisual::Property::SIZE ] = borderSize; + Visual::Base borderVisual = factory.CreateVisual( map ); borderVisual.SetSize( visualSize ); DALI_TEST_EQUALS( borderVisual.GetSize(), visualSize, TEST_LOCATION ); borderVisual.GetNaturalSize(naturalSize); @@ -160,24 +185,24 @@ int UtcDaliVisualSize(void) // gradient gradientVisual Property::Map propertyMap; - propertyMap.Insert("rendererType", "GRADIENT"); + propertyMap.Insert(Visual::Property::TYPE, Visual::GRADIENT); Vector2 start(-1.f, -1.f); Vector2 end(1.f, 1.f); - propertyMap.Insert("startPosition", start); - propertyMap.Insert("endPosition", end); - propertyMap.Insert("stopOffset", Vector2(0.f, 1.f)); + propertyMap.Insert(GradientVisual::Property::START_POSITION, start); + propertyMap.Insert(GradientVisual::Property::END_POSITION, end); + propertyMap.Insert(GradientVisual::Property::STOP_OFFSET, Vector2(0.f, 1.f)); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("stopColor", stopColors); - Visual gradientVisual = factory.CreateVisual(propertyMap); + propertyMap.Insert(GradientVisual::Property::STOP_COLOR, stopColors); + Visual::Base gradientVisual = factory.CreateVisual(propertyMap); gradientVisual.SetSize( visualSize ); DALI_TEST_EQUALS( gradientVisual.GetSize(), visualSize, TEST_LOCATION ); gradientVisual.GetNaturalSize(naturalSize); DALI_TEST_EQUALS( naturalSize, Vector2::ZERO,TEST_LOCATION ); - //svg visual - Visual svgVisual = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions() ); + // svg visual + Visual::Base svgVisual = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions() ); svgVisual.SetSize( visualSize ); DALI_TEST_EQUALS( svgVisual.GetSize(), visualSize, TEST_LOCATION ); svgVisual.GetNaturalSize(naturalSize); @@ -186,6 +211,49 @@ int UtcDaliVisualSize(void) // // DALI_TEST_EQUALS( naturalSize, Vector2(100.f, 100.f), TEST_LOCATION ); + + // svg visual with a size + Visual::Base svgVisual2 = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions(200, 200) ); + DALI_TEST_EQUALS( svgVisual2.GetSize(), Vector2( 200.f, 200.f ), TEST_LOCATION ); + svgVisual2.GetNaturalSize(naturalSize); + DALI_TEST_EQUALS( naturalSize, Vector2(100.f, 100.f), TEST_LOCATION ); // Natural size should still be 100, 100 + + // Batch Image visual + propertyMap.Clear(); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); + Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); + batchImageVisual.SetSize( visualSize ); + DALI_TEST_EQUALS( batchImageVisual.GetSize(), visualSize, TEST_LOCATION ); + batchImageVisual.GetNaturalSize( naturalSize ); + DALI_TEST_EQUALS( naturalSize, Vector2( 80.0f, 160.0f ), TEST_LOCATION ); + + // Text visual. + + // Load some fonts to get the same metrics on different platforms. + TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get(); + fontClient.SetDpi( 96u, 96u ); + + char* pathNamePtr = get_current_dir_name(); + const std::string pathName( pathNamePtr ); + free( pathNamePtr ); + + fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf" ); + + propertyMap.Clear(); + propertyMap.Insert( Visual::Property::TYPE, Visual::TEXT ); + propertyMap.Insert( TextVisual::Property::ENABLE_MARKUP, true ); + propertyMap.Insert( TextVisual::Property::TEXT, "Hello world" ); + propertyMap.Insert( TextVisual::Property::MULTI_LINE, true ); + + Visual::Base textVisual = factory.CreateVisual( propertyMap ); + textVisual.GetNaturalSize( naturalSize ); + DALI_TEST_EQUALS( naturalSize, Size( 80.f, 20.f ), TEST_LOCATION ); + + const float height = textVisual.GetHeightForWidth( 40.f ); + DALI_TEST_EQUALS( height, 40.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + END_TEST; } @@ -196,9 +264,9 @@ int UtcDaliVisualSetOnOffStage(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert("rendererType", "COLOR"); - propertyMap.Insert("mixColor", Color::BLUE); - Visual visual = factory.CreateVisual( propertyMap ); + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base visual = factory.CreateVisual( propertyMap ); Actor actor = Actor::New(); actor.SetSize(200.f, 200.f); @@ -232,7 +300,7 @@ int UtcDaliVisualRemoveAndReset(void) actor.SetSize(200.f, 200.f); Stage::GetCurrent().Add( actor ); - Visual imageVisual; + Visual::Base imageVisual; // test calling RemoveAndReset with an empty handle try { @@ -269,32 +337,36 @@ int UtcDaliVisualGetPropertyMap1(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert("rendererType", "COLOR"); - propertyMap.Insert("mixColor", Color::BLUE); - Visual colorVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base colorVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; colorVisual.CreatePropertyMap( resultMap ); - Property::Value* typeValue = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* typeValue = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( typeValue ); - DALI_TEST_CHECK( typeValue->Get() == "COLOR" ); + DALI_TEST_CHECK( typeValue->Get() == Visual::COLOR ); - Property::Value* colorValue = resultMap.Find( "mixColor", Property::VECTOR4 ); + Property::Value* colorValue = resultMap.Find( ColorVisual::Property::MIX_COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::BLUE ); // change the blend color Actor actor; colorVisual.RemoveAndReset( actor ); - propertyMap["mixColor"] = Color::CYAN; + propertyMap[ColorVisual::Property::MIX_COLOR] = Color::CYAN; colorVisual = factory.CreateVisual( propertyMap ); colorVisual.CreatePropertyMap( resultMap ); - colorValue = resultMap.Find( "mixColor", Property::VECTOR4 ); + colorValue = resultMap.Find( ColorVisual::Property::MIX_COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::CYAN ); + // Test the properties. TODO: to be completed. + colorVisual.SetProperty( ColorVisual::Property::MIX_COLOR, Color::RED ); + Property::Value value = colorVisual.GetProperty( ColorVisual::Property::MIX_COLOR ); + END_TEST; } @@ -305,46 +377,50 @@ int UtcDaliVisualGetPropertyMap2(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert("rendererType", "BORDER"); - propertyMap.Insert("borderColor", Color::BLUE); - propertyMap.Insert("borderSize", 5.f); - Visual borderVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert(Visual::Property::TYPE, Visual::BORDER); + propertyMap.Insert(BorderVisual::Property::COLOR, Color::BLUE); + propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; borderVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from visual - Property::Value* typeValue = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* typeValue = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( typeValue ); - DALI_TEST_CHECK( typeValue->Get() == "BORDER" ); + DALI_TEST_CHECK( typeValue->Get() == Visual::BORDER ); - Property::Value* colorValue = resultMap.Find( "borderColor", Property::VECTOR4 ); + Property::Value* colorValue = resultMap.Find( BorderVisual::Property::COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::BLUE ); - Property::Value* sizeValue = resultMap.Find( "borderSize", Property::FLOAT ); + Property::Value* sizeValue = resultMap.Find( BorderVisual::Property::SIZE, Property::FLOAT ); DALI_TEST_CHECK( sizeValue ); DALI_TEST_CHECK( sizeValue->Get() == 5.f ); Property::Map propertyMap1; - propertyMap1[ "rendererType" ] = "BORDER"; - propertyMap1[ "borderColor" ] = Color::CYAN; - propertyMap1[ "borderSize" ] = 10.0f; + propertyMap1[ Visual::Property::TYPE ] = Visual::BORDER; + propertyMap1[ BorderVisual::Property::COLOR ] = Color::CYAN; + propertyMap1[ BorderVisual::Property::SIZE ] = 10.0f; borderVisual = factory.CreateVisual( propertyMap1 ); borderVisual.CreatePropertyMap( resultMap ); - typeValue = resultMap.Find( "rendererType", Property::STRING ); + typeValue = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( typeValue ); - DALI_TEST_CHECK( typeValue->Get() == "BORDER" ); + DALI_TEST_CHECK( typeValue->Get() == Visual::BORDER ); - colorValue = resultMap.Find( "borderColor", Property::VECTOR4 ); + colorValue = resultMap.Find( BorderVisual::Property::COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::CYAN ); - colorValue = resultMap.Find( "borderSize", Property::FLOAT ); + colorValue = resultMap.Find( BorderVisual::Property::SIZE, Property::FLOAT ); DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == 10.f ); + // Test the properties. TODO: to be completed. + borderVisual.SetProperty( BorderVisual::Property::COLOR, Color::RED ); + Property::Value value = borderVisual.GetProperty( BorderVisual::Property::COLOR ); + END_TEST; } @@ -357,61 +433,65 @@ int UtcDaliVisualGetPropertyMap3(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("rendererType", "GRADIENT"); + propertyMap.Insert(Visual::Property::TYPE, Visual::GRADIENT); Vector2 start(-1.f, -1.f); Vector2 end(1.f, 1.f); - propertyMap.Insert("startPosition", start); - propertyMap.Insert("endPosition", end); - propertyMap.Insert("spreadMethod", "REPEAT"); + propertyMap.Insert(GradientVisual::Property::START_POSITION, start); + propertyMap.Insert(GradientVisual::Property::END_POSITION, end); + propertyMap.Insert(GradientVisual::Property::SPREAD_METHOD, GradientVisual::SpreadMethod::REPEAT); - propertyMap.Insert("stopOffset", Vector2(0.2f, 0.8f)); + propertyMap.Insert(GradientVisual::Property::STOP_OFFSET, Vector2(0.2f, 0.8f)); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("stopColor", stopColors); + propertyMap.Insert(GradientVisual::Property::STOP_COLOR, stopColors); - Visual gradientVisual = factory.CreateVisual(propertyMap); + Visual::Base gradientVisual = factory.CreateVisual(propertyMap); Property::Map resultMap; gradientVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from visual - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "GRADIENT" ); + DALI_TEST_CHECK( value->Get() == Visual::GRADIENT ); - value = resultMap.Find( "units", Property::STRING ); + value = resultMap.Find( GradientVisual::Property::UNITS, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "OBJECT_BOUNDING_BOX" ); + DALI_TEST_CHECK( value->Get() == GradientVisual::Units::OBJECT_BOUNDING_BOX ); - value = resultMap.Find( "spreadMethod", Property::STRING ); + value = resultMap.Find( GradientVisual::Property::SPREAD_METHOD, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "REPEAT" ); + DALI_TEST_CHECK( value->Get() == GradientVisual::SpreadMethod::REPEAT ); - value = resultMap.Find( "startPosition", Property::VECTOR2 ); + value = resultMap.Find( GradientVisual::Property::START_POSITION, Property::VECTOR2 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), start , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "endPosition", Property::VECTOR2 ); + value = resultMap.Find( GradientVisual::Property::END_POSITION, Property::VECTOR2 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), end , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "stopOffset", Property::ARRAY ); + value = resultMap.Find( GradientVisual::Property::STOP_OFFSET, Property::ARRAY ); DALI_TEST_CHECK( value ); Property::Array* offsetArray = value->GetArray(); DALI_TEST_CHECK( offsetArray->Count() == 2 ); DALI_TEST_EQUALS( offsetArray->GetElementAt(0).Get(), 0.2f , Math::MACHINE_EPSILON_100, TEST_LOCATION ); DALI_TEST_EQUALS( offsetArray->GetElementAt(1).Get(), 0.8f , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "stopColor", Property::ARRAY ); + value = resultMap.Find( GradientVisual::Property::STOP_COLOR, Property::ARRAY ); DALI_TEST_CHECK( value ); Property::Array* colorArray = value->GetArray(); DALI_TEST_CHECK( colorArray->Count() == 2 ); DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION ); DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + gradientVisual.SetProperty( GradientVisual::Property::STOP_COLOR, Color::RED ); + Property::Value gradientValue = gradientVisual.GetProperty( GradientVisual::Property::STOP_COLOR ); + END_TEST; } @@ -424,49 +504,49 @@ int UtcDaliVisualGetPropertyMap4(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("rendererType", "GRADIENT"); + propertyMap.Insert(Visual::Property::TYPE, Visual::GRADIENT); Vector2 center(100.f, 100.f); float radius = 100.f; - propertyMap.Insert("units", "USER_SPACE"); - propertyMap.Insert("center", center); - propertyMap.Insert("radius", radius); - propertyMap.Insert("stopOffset", Vector3(0.1f, 0.3f, 1.1f)); + propertyMap.Insert(GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE); + propertyMap.Insert(GradientVisual::Property::CENTER, center); + propertyMap.Insert(GradientVisual::Property::RADIUS, radius); + propertyMap.Insert(GradientVisual::Property::STOP_OFFSET, Vector3(0.1f, 0.3f, 1.1f)); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::BLACK ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("stopColor", stopColors); + propertyMap.Insert(GradientVisual::Property::STOP_COLOR, stopColors); - Visual gradientVisual = factory.CreateVisual(propertyMap); + Visual::Base gradientVisual = factory.CreateVisual(propertyMap); DALI_TEST_CHECK( gradientVisual ); Property::Map resultMap; gradientVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from visual - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "GRADIENT" ); + DALI_TEST_CHECK( value->Get() == Visual::GRADIENT ); - value = resultMap.Find( "units", Property::STRING ); + value = resultMap.Find( GradientVisual::Property::UNITS, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "USER_SPACE" ); + DALI_TEST_CHECK( value->Get() == GradientVisual::Units::USER_SPACE ); - value = resultMap.Find( "spreadMethod", Property::STRING ); + value = resultMap.Find( GradientVisual::Property::SPREAD_METHOD, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "PAD" ); + DALI_TEST_CHECK( value->Get() == GradientVisual::SpreadMethod::PAD ); - value = resultMap.Find( "center", Property::VECTOR2 ); + value = resultMap.Find( GradientVisual::Property::CENTER, Property::VECTOR2 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), center , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "radius", Property::FLOAT ); + value = resultMap.Find( GradientVisual::Property::RADIUS, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), radius , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "stopOffset", Property::ARRAY ); + value = resultMap.Find( GradientVisual::Property::STOP_OFFSET, Property::ARRAY ); DALI_TEST_CHECK( value ); Property::Array* offsetArray = value->GetArray(); DALI_TEST_CHECK( offsetArray->Count() == 3 ); @@ -475,7 +555,7 @@ int UtcDaliVisualGetPropertyMap4(void) // any stop value will be clamped to [0.0, 1.0]; DALI_TEST_EQUALS( offsetArray->GetElementAt(2).Get(), 1.0f , Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "stopColor", Property::ARRAY ); + value = resultMap.Find( GradientVisual::Property::STOP_COLOR, Property::ARRAY ); DALI_TEST_CHECK( value ); Property::Array* colorArray = value->GetArray(); DALI_TEST_CHECK( colorArray->Count() == 3 ); @@ -493,45 +573,60 @@ int UtcDaliVisualGetPropertyMap5(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "IMAGE" ); - propertyMap.Insert( "url", TEST_IMAGE_FILE_NAME ); - propertyMap.Insert( "desiredWidth", 20 ); - propertyMap.Insert( "desiredHeight", 30 ); - propertyMap.Insert( "fittingMode", "FIT_HEIGHT" ); - propertyMap.Insert( "samplingMode", "BOX_THEN_NEAREST" ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::DESIRED_WIDTH, 20 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 30 ); + propertyMap.Insert( ImageVisual::Property::FITTING_MODE, FittingMode::FIT_HEIGHT ); + propertyMap.Insert( ImageVisual::Property::SAMPLING_MODE, SamplingMode::BOX_THEN_NEAREST ); + propertyMap.Insert( ImageVisual::Property::PIXEL_AREA, Vector4( 0.25f, 0.25f, 0.5f, 0.5f ) ); + propertyMap.Insert( ImageVisual::Property::WRAP_MODE_U, WrapMode::REPEAT ); + propertyMap.Insert( ImageVisual::Property::WRAP_MODE_V, WrapMode::MIRRORED_REPEAT ); propertyMap.Insert( "synchronousLoading", true ); - Visual imageVisual = factory.CreateVisual(propertyMap); + Visual::Base imageVisual = factory.CreateVisual(propertyMap); DALI_TEST_CHECK( imageVisual ); Property::Map resultMap; imageVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from visual - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "IMAGE" ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( "url", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_IMAGE_FILE_NAME ); - value = resultMap.Find( "fittingMode", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::FITTING_MODE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "FIT_HEIGHT" ); + DALI_TEST_CHECK( value->Get() == FittingMode::FIT_HEIGHT ); - value = resultMap.Find( "samplingMode", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::SAMPLING_MODE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "BOX_THEN_NEAREST" ); + DALI_TEST_CHECK( value->Get() == SamplingMode::BOX_THEN_NEAREST ); - value = resultMap.Find( "desiredWidth", Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_WIDTH, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 20 ); - value = resultMap.Find( "desiredHeight", Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 30 ); + value = resultMap.Find( ImageVisual::Property::PIXEL_AREA, Property::VECTOR4 ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Vector4( 0.25f, 0.25f, 0.5f, 0.5f ), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_U, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::REPEAT); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_V, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::MIRRORED_REPEAT); + value = resultMap.Find( "synchronousLoading", Property::BOOLEAN ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == true ); @@ -541,34 +636,50 @@ int UtcDaliVisualGetPropertyMap5(void) imageVisual = factory.CreateVisual(image); imageVisual.CreatePropertyMap( resultMap ); - value = resultMap.Find( "rendererType", Property::STRING ); + value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "IMAGE" ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( "url", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_IMAGE_FILE_NAME ); - value = resultMap.Find( "fittingMode", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::FITTING_MODE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "SHRINK_TO_FIT" ); + DALI_TEST_CHECK( value->Get() == FittingMode::SHRINK_TO_FIT ); - value = resultMap.Find( "samplingMode", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::SAMPLING_MODE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "BOX" ); + DALI_TEST_CHECK( value->Get() == SamplingMode::BOX ); - value = resultMap.Find( "desiredWidth", Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_WIDTH, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 100 ); - value = resultMap.Find( "desiredHeight", Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 200 ); + value = resultMap.Find( ImageVisual::Property::PIXEL_AREA, Property::VECTOR4 ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Vector4( 0.f, 0.f, 1.f, 1.f ), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_U, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::DEFAULT); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_V, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::DEFAULT); + value = resultMap.Find( "synchronousLoading", Property::BOOLEAN ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == false ); + // Test the properties. TODO: to be completed. + imageVisual.SetProperty( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + Property::Value imageValue = imageVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -579,27 +690,31 @@ int UtcDaliVisualGetPropertyMap6(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "IMAGE" ); - propertyMap.Insert( "url", TEST_NPATCH_FILE_NAME ); - propertyMap.Insert( "borderOnly", true ); - Visual nPatchVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_NPATCH_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::BORDER_ONLY, true ); + Visual::Base nPatchVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; nPatchVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from visual - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "IMAGE" ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( "url", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_NPATCH_FILE_NAME ); - value = resultMap.Find( "borderOnly", Property::BOOLEAN ); + value = resultMap.Find( ImageVisual::Property::BORDER_ONLY, Property::BOOLEAN ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() ); + // Test the properties. TODO: to be completed. + nPatchVisual.SetProperty( ImageVisual::Property::URL, TEST_NPATCH_FILE_NAME ); + Property::Value nPatchValue = nPatchVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -611,34 +726,38 @@ int UtcDaliVisualGetPropertyMap7(void) // request SvgVisual with a property map VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "IMAGE" ); - propertyMap.Insert( "url", TEST_SVG_FILE_NAME ); - Visual svgVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); + Visual::Base svgVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; svgVisual.CreatePropertyMap( resultMap ); // check the property values from the returned map from a visual - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "IMAGE" ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( "url", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_SVG_FILE_NAME ); // request SvgVisual with an URL - Visual svgVisual2 = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions() ); + Visual::Base svgVisual2 = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions() ); resultMap.Clear(); svgVisual2.CreatePropertyMap( resultMap ); // check the property values from the returned map from a visual - value = resultMap.Find( "rendererType", Property::STRING ); + value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == "IMAGE" ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( "url", Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_SVG_FILE_NAME ); + // Test the properties. TODO: to be completed. + svgVisual.SetProperty( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); + Property::Value svgValue = svgVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -651,42 +770,46 @@ int UtcDaliVisualGetPropertyMap8(void) //Request MeshVisual using a property map. VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "MESH" ); - propertyMap.Insert( "objectUrl", TEST_OBJ_FILE_NAME ); - propertyMap.Insert( "materialUrl", TEST_MTL_FILE_NAME ); - propertyMap.Insert( "texturesPath", TEST_RESOURCE_LOCATION ); - propertyMap.Insert( "shaderType", "TEXTURELESS" ); - propertyMap.Insert( "lightPosition", Vector3( 5.0f, 10.0f, 15.0f) ); - Visual meshVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert( Visual::Property::TYPE, Visual::MESH ); + propertyMap.Insert( MeshVisual::Property::OBJECT_URL, TEST_OBJ_FILE_NAME ); + propertyMap.Insert( MeshVisual::Property::MATERIAL_URL, TEST_MTL_FILE_NAME ); + propertyMap.Insert( MeshVisual::Property::TEXTURES_PATH, TEST_RESOURCE_LOCATION ); + propertyMap.Insert( MeshVisual::Property::SHADING_MODE, MeshVisual::ShadingMode::TEXTURELESS_WITH_DIFFUSE_LIGHTING ); + propertyMap.Insert( MeshVisual::Property::LIGHT_POSITION, Vector3( 5.0f, 10.0f, 15.0f) ); + Visual::Base meshVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; meshVisual.CreatePropertyMap( resultMap ); //Check values in the result map are identical to the initial map's values. - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get(), "MESH", TEST_LOCATION ); + DALI_TEST_EQUALS( value->Get(), (int)Visual::MESH, TEST_LOCATION ); - value = resultMap.Find( "objectUrl", Property::STRING ); + value = resultMap.Find( MeshVisual::Property::OBJECT_URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), TEST_OBJ_FILE_NAME, TEST_LOCATION ); - value = resultMap.Find( "materialUrl", Property::STRING ); + value = resultMap.Find( MeshVisual::Property::MATERIAL_URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), TEST_MTL_FILE_NAME, TEST_LOCATION ); - value = resultMap.Find( "texturesPath", Property::STRING ); + value = resultMap.Find( MeshVisual::Property::TEXTURES_PATH, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), TEST_RESOURCE_LOCATION, TEST_LOCATION ); - value = resultMap.Find( "shaderType", Property::STRING ); + value = resultMap.Find( MeshVisual::Property::SHADING_MODE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get(), "TEXTURELESS", TEST_LOCATION ); + DALI_TEST_EQUALS( value->Get(), (int)MeshVisual::ShadingMode::TEXTURELESS_WITH_DIFFUSE_LIGHTING, TEST_LOCATION ); - value = resultMap.Find( "lightPosition", Property::VECTOR3 ); + value = resultMap.Find( MeshVisual::Property::LIGHT_POSITION, Property::VECTOR3 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), Vector3( 5.0f, 10.0f, 15.0f), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + meshVisual.SetProperty( MeshVisual::Property::OBJECT_URL, TEST_OBJ_FILE_NAME ); + Property::Value meshValue = meshVisual.GetProperty( MeshVisual::Property::OBJECT_URL ); + END_TEST; } @@ -702,77 +825,452 @@ int UtcDaliVisualGetPropertyMap9(void) //Request PrimitiveVisual using a property map. VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "PRIMITIVE" ); - propertyMap.Insert( "shape", "CUBE" ); - propertyMap.Insert( "shapeColor", color ); - propertyMap.Insert( "slices", 10 ); - propertyMap.Insert( "stacks", 20 ); - propertyMap.Insert( "scaleTopRadius", 30.0f ); - propertyMap.Insert( "scaleBottomRadius", 40.0f ); - propertyMap.Insert( "scaleHeight", 50.0f ); - propertyMap.Insert( "scaleRadius", 60.0f ); - propertyMap.Insert( "scaleDimensions", dimensions ); - propertyMap.Insert( "bevelPercentage", 0.3f ); - propertyMap.Insert( "bevelSmoothness", 0.6f ); - propertyMap.Insert( "lightPosition", Vector3( 5.0f, 10.0f, 15.0f) ); - Visual primitiveVisual = factory.CreateVisual( propertyMap ); + propertyMap.Insert( Visual::Property::TYPE, Visual::PRIMITIVE ); + propertyMap.Insert( PrimitiveVisual::Property::SHAPE, PrimitiveVisual::Shape::CUBE ); + propertyMap.Insert( PrimitiveVisual::Property::MIX_COLOR, color ); + propertyMap.Insert( PrimitiveVisual::Property::SLICES, 10 ); + propertyMap.Insert( PrimitiveVisual::Property::STACKS, 20 ); + propertyMap.Insert( PrimitiveVisual::Property::SCALE_TOP_RADIUS, 30.0f ); + propertyMap.Insert( PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS, 40.0f ); + propertyMap.Insert( PrimitiveVisual::Property::SCALE_HEIGHT, 50.0f ); + propertyMap.Insert( PrimitiveVisual::Property::SCALE_RADIUS, 60.0f ); + propertyMap.Insert( PrimitiveVisual::Property::SCALE_DIMENSIONS, dimensions ); + propertyMap.Insert( PrimitiveVisual::Property::BEVEL_PERCENTAGE, 0.3f ); + propertyMap.Insert( PrimitiveVisual::Property::BEVEL_SMOOTHNESS, 0.6f ); + propertyMap.Insert( PrimitiveVisual::Property::LIGHT_POSITION, Vector3( 5.0f, 10.0f, 15.0f) ); + Visual::Base primitiveVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; primitiveVisual.CreatePropertyMap( resultMap ); //Check values in the result map are identical to the initial map's values. - Property::Value* value = resultMap.Find( "rendererType", Property::STRING ); + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get(), "PRIMITIVE", TEST_LOCATION ); + DALI_TEST_EQUALS( value->Get(), (int)Visual::PRIMITIVE, TEST_LOCATION ); - value = resultMap.Find( "shape", Property::STRING ); + value = resultMap.Find( PrimitiveVisual::Property::SHAPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get(), "CUBE", TEST_LOCATION ); + DALI_TEST_EQUALS( value->Get(), (int)PrimitiveVisual::Shape::CUBE, TEST_LOCATION ); - value = resultMap.Find( "shapeColor", Property::VECTOR4 ); + value = resultMap.Find( PrimitiveVisual::Property::MIX_COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == color ); DALI_TEST_EQUALS( value->Get(), color, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "slices", Property::INTEGER ); + value = resultMap.Find( PrimitiveVisual::Property::SLICES, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 10, TEST_LOCATION ); - value = resultMap.Find( "stacks", Property::INTEGER ); + value = resultMap.Find( PrimitiveVisual::Property::STACKS, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 20, TEST_LOCATION ); - value = resultMap.Find( "scaleTopRadius", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::SCALE_TOP_RADIUS, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 30.0f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "scaleBottomRadius", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 40.0f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "scaleHeight", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::SCALE_HEIGHT, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 50.0f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "scaleRadius", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::SCALE_RADIUS, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 60.0f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "scaleDimensions", Property::VECTOR3 ); + value = resultMap.Find( PrimitiveVisual::Property::SCALE_DIMENSIONS, Property::VECTOR3 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), dimensions, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "bevelPercentage", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::BEVEL_PERCENTAGE, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 0.3f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "bevelSmoothness", Property::FLOAT ); + value = resultMap.Find( PrimitiveVisual::Property::BEVEL_SMOOTHNESS, Property::FLOAT ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), 0.6f, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - value = resultMap.Find( "lightPosition", Property::VECTOR3 ); + value = resultMap.Find( PrimitiveVisual::Property::LIGHT_POSITION, Property::VECTOR3 ); DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), Vector3( 5.0f, 10.0f, 15.0f), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + primitiveVisual.SetProperty( PrimitiveVisual::Property::SHAPE, PrimitiveVisual::Shape::CUBE ); + Property::Value primitiveValue = primitiveVisual.GetProperty( PrimitiveVisual::Property::SHAPE ); + + END_TEST; +} + +int UtcDaliVisualGetPropertyMapBatchImageVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualGetPropertyMapBatchImageVisual:" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::DESIRED_WIDTH, 20 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 30 ); + + Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); + DALI_TEST_CHECK( batchImageVisual ); + + Property::Map resultMap; + batchImageVisual.CreatePropertyMap( resultMap ); + + // Check the property values from the returned map from visual + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); + + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == TEST_IMAGE_FILE_NAME ); + + value = resultMap.Find( ImageVisual::Property::DESIRED_WIDTH, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == 20 ); + + value = resultMap.Find( ImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == 30 ); + + // Test the properties. TODO: to be completed. + batchImageVisual.SetProperty( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + Property::Value primitiveValue = batchImageVisual.GetProperty( ImageVisual::Property::URL ); + + END_TEST; +} + +//Text shape visual +int UtcDaliVisualGetPropertyMap10(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualGetPropertyMap10: TextVisual" ); + + //Request PrimitiveVisual using a property map. + VisualFactory factory = VisualFactory::Get(); + + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::TEXT ); + propertyMap.Insert( "renderingBackend", static_cast( Toolkit::Text::DEFAULT_RENDERING_BACKEND ) ); + propertyMap.Insert( "text", "Hello world" ); + propertyMap.Insert( "fontFamily", "TizenSans" ); + propertyMap.Insert( "fontStyle", "{\"weight\":\"bold\"}" ); + propertyMap.Insert( "pointSize", 12.f ); + propertyMap.Insert( "multiLine", true ); + propertyMap.Insert( "horizontalAlignment", "CENTER" ); + propertyMap.Insert( "verticalAlignment", "CENTER" ); + propertyMap.Insert( "textColor", Color::RED ); + propertyMap.Insert( "enableMarkup", false ); + propertyMap.Insert( "enableAutoScroll", false ); + propertyMap.Insert( "lineSpacing", 0.f ); + propertyMap.Insert( "batchingEnabled", false ); + Visual::Base textVisual = factory.CreateVisual( propertyMap ); + + Property::Map resultMap; + textVisual.CreatePropertyMap( resultMap ); + + //Check values in the result map are identical to the initial map's values. + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), (int)Visual::TEXT, TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::RENDERING_BACKEND, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Toolkit::Text::DEFAULT_RENDERING_BACKEND, TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::TEXT, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "Hello world", TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::FONT_FAMILY, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "TizenSans", TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::FONT_STYLE, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "{\"weight\":\"bold\"}", TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::POINT_SIZE, Property::FLOAT ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::MULTI_LINE, Property::BOOLEAN ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() ); + + value = resultMap.Find( TextVisual::Property::HORIZONTAL_ALIGNMENT, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "CENTER", TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::VERTICAL_ALIGNMENT, Property::STRING ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), "CENTER", TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::TEXT_COLOR, Property::VECTOR4 ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Color::RED, TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::ENABLE_MARKUP, Property::BOOLEAN ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( !value->Get() ); + + value = resultMap.Find( TextVisual::Property::ENABLE_AUTO_SCROLL, Property::BOOLEAN ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( !value->Get() ); + + value = resultMap.Find( TextVisual::Property::LINE_SPACING, Property::FLOAT ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), 0.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + + value = resultMap.Find( TextVisual::Property::BATCHING_ENABLED, Property::BOOLEAN ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( !value->Get() ); + + END_TEST; +} + +int UtcDaliVisualGetPropertyMapBatchImageVisualNoAtlas(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualGetPropertyMapBatchImageVisualNoAtlas:" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + + // Set the desired size to be larger than the atlas limit of 1024x1024. + propertyMap.Insert( ImageVisual::Property::DESIRED_WIDTH, 2048 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 2048 ); + + // Create the visual. + Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); + + DALI_TEST_CHECK( batchImageVisual ); + + Actor actor = Actor::New(); + batchImageVisual.SetOnStage( actor ); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + END_TEST; +} + +int UtcDaliVisualAnimateBorderVisual01(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateBorderVisual Color" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::BORDER); + propertyMap.Insert(BorderVisual::Property::COLOR, Color::BLUE); + propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( BorderVisual::Property::COLOR ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point between blue and white + + Vector4 color = renderer.GetProperty( index ); + Vector4 testColor = (Color::BLUE + Color::WHITE)*0.5f; + DALI_TEST_EQUALS( color, testColor, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderColor", testColor ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + color = renderer.GetProperty( index ); + DALI_TEST_EQUALS( color, Color::WHITE, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderColor", Color::WHITE ), true, TEST_LOCATION ); + + END_TEST; +} + + +int UtcDaliVisualAnimateBorderVisual02(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateBorderVisual Size" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::BORDER); + propertyMap.Insert(BorderVisual::Property::COLOR, Color::BLUE); + propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( BorderVisual::Property::SIZE ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), 9.0f ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + float size = renderer.GetProperty( index ); + DALI_TEST_EQUALS( size, 7.0f, 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderSize", 7.0f ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + size = renderer.GetProperty( index ); + DALI_TEST_EQUALS( size, 9.0f, 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderSize", 9.0f ), true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliVisualAnimateColorVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateColorVisual mixColor" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + Vector4 color = renderer.GetProperty( index ); + Vector4 testColor = (Color::BLUE + Color::WHITE)*0.5f; + DALI_TEST_EQUALS( color, testColor, TEST_LOCATION ); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", testColor ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + color = renderer.GetProperty( index ); + DALI_TEST_EQUALS( color, Color::WHITE, TEST_LOCATION ); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", Color::WHITE ), true, TEST_LOCATION ); + + + END_TEST; +} + + +int UtcDaliVisualAnimatePrimitiveVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimatePrimitiveVisual color" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + actor.SetColor(Color::BLACK); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( PrimitiveVisual::Property::MIX_COLOR ); + + // The property isn't registered on the renderer, it's instead registered on the shader. + DALI_TEST_EQUALS( index, Property::INVALID_INDEX, TEST_LOCATION ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(actor, Actor::Property::COLOR), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + // Actor color overrides renderer color. + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("uColor", Vector4(0.5f, 0.5f, 0.5f, 1.0f )), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + DALI_TEST_EQUALS( actor.GetCurrentColor(), Color::WHITE, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("uColor", Color::WHITE ), true, TEST_LOCATION ); + + + END_TEST; +} + +int UtcDaliVisualWireframeVisual(void) +{ + ToolkitTestApplication application; + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::WIREFRAME ); + + // Create the visual. + Visual::Base visual = factory.CreateVisual( propertyMap ); + + DALI_TEST_CHECK( visual ); + + Property::Map resultMap; + visual.CreatePropertyMap( resultMap ); + + // Check the property values from the returned map from visual + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == Visual::WIREFRAME ); + + // Test the properties. TODO: to be completed. + Property::Value primitiveValue = visual.GetProperty( Visual::Property::TYPE ); + END_TEST; }