Remove Unused Retention policy
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-HoverProcessing.cpp
index 7dd76a6..df73182 100644 (file)
@@ -20,7 +20,7 @@
 #include <stdlib.h>
 #include <dali/public-api/dali-core.h>
 #include <dali/integration-api/events/hover-event-integ.h>
-#include <dali/integration-api/system-overlay.h>
+#include <dali/integration-api/render-task-list-integ.h>
 #include <dali-test-suite-utils.h>
 
 using namespace Dali;
@@ -1166,42 +1166,6 @@ int UtcDaliHoverActorUnStaged(void)
   END_TEST;
 }
 
-int UtcDaliHoverSystemOverlayActor(void)
-{
-  TestApplication application;
-  Dali::Integration::Core& core( application.GetCore() );
-  Dali::Integration::SystemOverlay& systemOverlay( core.GetSystemOverlay() );
-  systemOverlay.GetOverlayRenderTasks().CreateTask();
-
-  // Create an actor and add it to the system overlay.
-  Actor systemActor = Actor::New();
-  systemActor.SetSize(100.0f, 100.0f);
-  systemActor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  systemOverlay.Add( systemActor );
-
-  // Create an actor and add it to the stage as per normal, same position and size as systemActor
-  Actor actor = Actor::New();
-  actor.SetSize(100.0f, 100.0f);
-  actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  Stage::GetCurrent().Add(actor);
-
-  // Connect to the hover signals.
-  SignalData data;
-  HoverEventFunctor functor( data );
-  systemActor.HoveredSignal().Connect( &application, functor );
-  actor.HoveredSignal().Connect( &application, functor );
-
-  // Render and notify
-  application.SendNotification();
-  application.Render();
-
-  // Emit a started signal, the system overlay is drawn last so is at the top, should hit the systemActor.
-  application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) );
-  DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
-  DALI_TEST_CHECK( systemActor == data.hoveredActor );
-  END_TEST;
-}
-
 int UtcDaliHoverLeaveActorReadded(void)
 {
   TestApplication application;
@@ -1248,41 +1212,54 @@ int UtcDaliHoverLeaveActorReadded(void)
   END_TEST;
 }
 
-
-int UtcDaliHoverStencilNonRenderableActor(void)
+int UtcDaliHoverClippingActor(void)
 {
   TestApplication application;
   Stage stage = Stage::GetCurrent();
 
   Actor actor = Actor::New();
-  actor.SetSize(100.0f, 100.0f);
-  actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  stage.Add(actor);
+  actor.SetSize( 100.0f, 100.0f );
+  actor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+  stage.Add( actor );
 
-  Actor stencil = Actor::New();
-  stencil.SetSize(50.0f, 50.0f);
-  stencil.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  stencil.SetDrawMode( DrawMode::STENCIL );
-  stage.Add(stencil);
+  Actor clippingActor = Actor::New();
+  clippingActor.SetSize( 50.0f, 50.0f );
+  clippingActor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+  clippingActor.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
+  stage.Add( clippingActor );
 
-  // Render and notify
+  // Add a child to the clipped region.
+  Actor clippingChild = Actor::New();
+  clippingChild.SetSize( 50.0f, 50.0f );
+  clippingChild.SetPosition( 25.0f, 25.0f );
+  clippingChild.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+  clippingActor.Add( clippingChild );
+
+  // Render and notify.
   application.SendNotification();
   application.Render();
 
-  // Connect to actor's hovered signal
+  // Connect to actor's hovered signal.
   SignalData data;
   HoverEventFunctor functor( data );
   actor.HoveredSignal().Connect( &application, functor );
 
-  // Emit an event within stencil area
+  // Emit an event within clipped area - no hit.
   application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) );
-  DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
+  DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
   data.Reset();
 
-  // Emit an event outside the stencil area but within the actor area, we should have a hit!
+  // Emit an event outside the clipped area but within the actor area, we should have a hit.
   application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 60.0f, 60.0f ) ) );
   DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
   data.Reset();
 
+  clippingChild.HoveredSignal().Connect( &application, functor );
+
+  // Emit an event inside part of the child which is within the clipped area, we should have a hit.
+  application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 30.0f, 30.0f ) ) );
+  DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
+  data.Reset();
+
   END_TEST;
 }