Test harness for UBO
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-VisualFactory.cpp
index db708c1..0b7704c 100644 (file)
@@ -181,6 +181,14 @@ int UtcDaliVisualFactoryGetColorVisual1(void)
   ToolkitTestApplication application;
   tet_infoline( "UtcDaliVisualFactoryGetColorVisual1:  Request color visual with a Property::Map" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("mixColor", Property::Type::VECTOR3),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -211,6 +219,14 @@ int UtcDaliVisualFactoryGetColorVisual2(void)
   ToolkitTestApplication application;
   tet_infoline( "UtcDaliVisualFactoryGetColorVisual2: Request color visual with a Vector4" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("mixColor", Property::Type::VECTOR3),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -243,6 +259,15 @@ int UtcDaliVisualFactoryGetBorderVisual1(void)
   ToolkitTestApplication application;
   tet_infoline( "UtcDaliVisualFactoryGetBorderVisual1:  Request border visual with a Property::Map" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("borderColor", Property::Type::VECTOR4),
+    UniformData("borderSize", Property::Type::FLOAT),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -291,6 +316,15 @@ int UtcDaliVisualFactoryGetBorderVisual2(void)
   ToolkitTestApplication application;
   tet_infoline( "UtcDaliVisualFactoryGetBorderVisual2:  Request border visual with a borderSize and a borderColor" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("borderColor", Property::Type::VECTOR4),
+    UniformData("borderSize", Property::Type::FLOAT),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -353,6 +387,14 @@ int UtcDaliVisualFactoryGetLinearGradientVisual(void)
   ToolkitTestApplication application;
   tet_infoline("UtcDaliVisualFactoryGetRadialGradientVisual");
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uAlignmentMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -390,6 +432,14 @@ int UtcDaliVisualFactoryGetRadialGradientVisual(void)
   ToolkitTestApplication application;
   tet_infoline("UtcDaliVisualFactoryGetRadialGradientVisual");
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uAlignmentMatrix", Property::Type::MATRIX3),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -771,9 +821,6 @@ int UtcDaliVisualFactoryGetNPatchVisual3(void)
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
-    application.GetScene().Remove( actor );
-    DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
-
     Vector2 naturalSize( 0.0f, 0.0f );
     visual.GetNaturalSize( naturalSize );
     DALI_TEST_EQUALS( naturalSize, Vector2( imageSize.GetWidth() - 2.0f, imageSize.GetHeight() - 2.0f ), TEST_LOCATION );
@@ -984,6 +1031,79 @@ int UtcDaliVisualFactoryGetNPatchVisual7(void)
   END_TEST;
 }
 
+int UtcDaliVisualFactoryGetNPatchVisual8(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline( "UtcDaliVisualFactoryGetNPatchVisual8: Add 9-patch visual on stage, instantly remove it and add new 9-patch visual with same propertyMap" );
+
+  VisualFactory factory = VisualFactory::Get();
+  DALI_TEST_CHECK( factory );
+
+  // Get actual size of test image
+  ImageDimensions imageSize = Dali::GetClosestImageSize( TEST_9_PATCH_FILE_NAME );
+
+  Property::Map propertyMap;
+  propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::N_PATCH );
+  propertyMap.Insert( ImageVisual::Property::URL, TEST_9_PATCH_FILE_NAME );
+  propertyMap.Insert( ImageVisual::Property::SYNCHRONOUS_LOADING, false );
+  {
+    Visual::Base visual = factory.CreateVisual( propertyMap );
+    DALI_TEST_CHECK( visual );
+
+    Vector2 naturalSize( 0.0f, 0.0f );
+    visual.GetNaturalSize( naturalSize );
+    DALI_TEST_EQUALS( naturalSize, Vector2( imageSize.GetWidth(), imageSize.GetHeight() ), TEST_LOCATION );
+
+    TestGlAbstraction& gl = application.GetGlAbstraction();
+    TraceCallStack& textureTrace = gl.GetTextureTrace();
+    textureTrace.Enable(true);
+
+    DummyControl actor = DummyControl::New(true);
+
+    DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+    dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
+
+    actor.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 200.f ) );
+    DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
+
+    application.GetScene().Add( actor );
+    actor.Unparent();
+
+    DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION );
+
+    application.SendNotification();
+    application.Render();
+
+    visual = factory.CreateVisual( propertyMap );
+    DALI_TEST_CHECK( visual );
+
+    visual.GetNaturalSize( naturalSize );
+    DALI_TEST_EQUALS( naturalSize, Vector2( imageSize.GetWidth(), imageSize.GetHeight() ), TEST_LOCATION );
+
+    actor = DummyControl::New(true);
+
+    DummyControlImpl& dummyImpl2 = static_cast<DummyControlImpl&>(actor.GetImplementation());
+    dummyImpl2.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
+
+    actor.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 200.f ) );
+    DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
+
+    application.GetScene().Add( actor );
+
+    DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger(1 ), true, TEST_LOCATION );
+
+    application.SendNotification();
+    application.Render();
+
+    Renderer renderer = actor.GetRendererAt( 0 );
+    auto textures = renderer.GetTextures();
+
+    DALI_TEST_EQUALS( textures.GetTextureCount(), 1, TEST_LOCATION );
+  }
+
+  END_TEST;
+}
+
 int UtcDaliNPatchVisualAuxiliaryImage01(void)
 {
   ToolkitTestApplication application;
@@ -1061,7 +1181,7 @@ int UtcDaliNPatchVisualAuxiliaryImage02(void)
 
   Renderer renderer2 = imageView2.GetRendererAt( 0 );
   auto textureSet2 = renderer2.GetTextures();
-  DALI_TEST_EQUALS( textureSet1 == textureSet2, true, TEST_LOCATION );
+  DALI_TEST_EQUALS( textureSet1 != textureSet2, true, TEST_LOCATION );
 
   END_TEST;
 }
@@ -1350,6 +1470,13 @@ int UtcDaliVisualFactoryGetMeshVisual1(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual1:  Request mesh visual with a valid object file only" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
 
   //Set up visual properties.
   Property::Map propertyMap;
@@ -1371,6 +1498,14 @@ int UtcDaliVisualFactoryGetMeshVisual2(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual2:  Request mesh visual with blank material file and images directory" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1392,6 +1527,14 @@ int UtcDaliVisualFactoryGetMeshVisual3b(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual3:  Request mesh visual with all parameters correct" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1416,6 +1559,14 @@ int UtcDaliVisualFactoryGetMeshVisual3(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual3:  Request mesh visual with all parameters correct" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1440,6 +1591,13 @@ int UtcDaliVisualFactoryGetMeshVisual4(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual4:  Request mesh visual with diffuse texture but not normal or gloss." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
 
   //Set up visual properties.
   Property::Map propertyMap;
@@ -1462,6 +1620,14 @@ int UtcDaliVisualFactoryGetMeshVisual5(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual5:  Request mesh visual and make it only use diffuse textures." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1488,6 +1654,14 @@ int UtcDaliVisualFactoryGetMeshVisual6(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual6:  Request mesh visual and make it not use any textures." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1507,9 +1681,16 @@ int UtcDaliVisualFactoryGetMeshVisual7(void)
   //Set up test application first, so everything else can be handled.
   ToolkitTestApplication application;
 
-
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual7:  Request mesh visual with custom light position." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1533,6 +1714,14 @@ int UtcDaliVisualFactoryGetMeshVisual8(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetMeshVisual5:  Request mesh visual with normal-less object file." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::MESH );
@@ -1657,6 +1846,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual1(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual1:  Request primitive visual with a shape only" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1676,6 +1873,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual2(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual2:  Request primitive visual with everything" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1705,6 +1910,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual3(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual3:  Request primitive visual to display a sphere" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1727,6 +1940,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual4(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual4:  Request primitive visual to display a conic section" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1751,6 +1972,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual5(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual5:  Request primitive visual to display a bevelled cube" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1772,6 +2001,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual6(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual6:  Request primitive visual to display an octahedron" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1792,6 +2029,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual7(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual7:  Request primitive visual to display a cone" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1815,6 +2060,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual8(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual8:  Request primitive visual with set light position" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1836,6 +2089,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual9(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual9:  Request primitive visual with above-cap slices." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1856,6 +2117,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual10(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual10:  Request primitive visual with too few slices." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1876,6 +2145,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual11(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual11:  Request primitive visual with too many stacks." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1896,6 +2173,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual12(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual12:  Request primitive visual with too few stacks." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1916,6 +2201,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual13(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual13:  Request primitive visual with invalid scale dimensions." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1936,6 +2229,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual14(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual14:  Request primitive visual with too low a bevel percentage." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1956,6 +2257,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual15(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual15:  Request primitive visual with too high a bevel percentage." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1976,6 +2285,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual16(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual16:  Request primitive visual with too low a bevel smoothness." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -1996,6 +2313,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual17(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual17:  Request primitive visual with too high a bevel smoothness." );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -2016,6 +2341,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisual18(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisual18:  Request primitive visual to display a conic section" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -2040,6 +2373,14 @@ int UtcDaliVisualFactoryGetPrimitiveVisualN1(void)
 
   tet_infoline( "UtcDaliVisualFactoryGetPrimitiveVisualN1:  Request primitive visual without shape" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("uObjectMatrix", Property::Type::MATRIX),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   //Set up visual properties, without supplying shape.
   Property::Map propertyMap;
   propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::PRIMITIVE );
@@ -2134,6 +2475,15 @@ int UtcDaliVisualFactoryGetAnimatedImageVisual2(void)
   ToolkitTestApplication application;
   tet_infoline( "UtcDaliVisualFactoryGetAnimatedImageVisual2: Request animated image visual with a Property::Map, test custom wrap mode and pixel area" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("pixelArea", Property::Type::VECTOR4),
+    UniformData("wrapMode", Property::Type::VECTOR2),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   const Vector4 pixelArea(-0.5f, -0.5f, 2.f, 2.f);
   Property::Map propertyMap;
   propertyMap.Add( Toolkit::Visual::Property::TYPE,  Visual::IMAGE  )