Call LoadTexture() for ReleasePolicy
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-DragAndDropDetector.cpp
index 8e574b4..07f400a 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 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.
@@ -24,7 +24,6 @@
 
 #include <dali-toolkit/devel-api/drag-drop-detector/drag-and-drop-detector.h>
 #include <dali/integration-api/events/touch-event-integ.h>
-#include <dali/integration-api/events/pan-gesture-event.h>
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -91,25 +90,6 @@ namespace
     touchEvent.points.push_back(point);
     return touchEvent;
   }
-
-  Integration::PanGestureEvent GeneratePan(
-    Gesture::State state,
-    Vector2 previousPosition,
-    Vector2 currentPosition,
-    unsigned long timeDelta,
-    unsigned int numberOfTouches = 1,
-    unsigned int time = 1u)
-  {
-    Integration::PanGestureEvent pan(state);
-    pan.previousPosition = previousPosition;
-    pan.currentPosition = currentPosition;
-    pan.timeDelta = timeDelta;
-    pan.numberOfTouches = numberOfTouches;
-    pan.time = time;
-
-    return pan;
-  }
-
 }
 
 int UtcDaliDragAndDropDetectorConstructorN(void)
@@ -286,12 +266,12 @@ int UtcDaliDragAndDropDetectorGetAttachedControlP(void)
 
 int UtcDaliDragAndDropDetectorStartSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control = Control::New();
-  control.SetSize(100.0f, 100.0f);
-  control.SetAnchorPoint(AnchorPoint::TOP_LEFT);
+  control.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
   Stage::GetCurrent().Add(control);
   detector.Attach(control);
 
@@ -305,12 +285,11 @@ int UtcDaliDragAndDropDetectorStartSignal(void)
   DragSignalFunctor functor(data);
   detector.StartedSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
   DALI_TEST_EQUALS(true, data.functorCalled, TEST_LOCATION);
   DALI_TEST_EQUALS(control, data.control, TEST_LOCATION);
-  DALI_TEST_EQUALS(Vector2(10.0f, 10.0f), data.detector.GetCurrentScreenPosition(), TEST_LOCATION);
+  DALI_TEST_EQUALS(Vector2(20.0f, 40.0f), data.detector.GetCurrentScreenPosition(), TEST_LOCATION);
   data.Reset();
 
   END_TEST;
@@ -318,19 +297,19 @@ int UtcDaliDragAndDropDetectorStartSignal(void)
 
 int UtcDaliDragAndDropDetectorEnteredSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f,100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -345,11 +324,9 @@ int UtcDaliDragAndDropDetectorEnteredSignal(void)
   DragSignalFunctor functor(data);
   detector.EnteredSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
-  screenCoordinates.x = 10.0f;
-  screenCoordinates.y = 110.0f;
+  Vector2 screenCoordinates(10.0f, 110.0f);
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Motion, screenCoordinates));
 
   DALI_TEST_EQUALS(true, data.functorCalled, TEST_LOCATION);
@@ -363,19 +340,19 @@ int UtcDaliDragAndDropDetectorEnteredSignal(void)
 
 int UtcDaliDragAndDropDetectorMovedSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f,100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -390,11 +367,9 @@ int UtcDaliDragAndDropDetectorMovedSignal(void)
   DragSignalFunctor functor(data);
   detector.MovedSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
-  screenCoordinates.x = 10.0f;
-  screenCoordinates.y = 110.0f;
+  Vector2 screenCoordinates(10.0f, 110.0f);
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Motion, screenCoordinates));
 
   screenCoordinates.x = 10.0f;
@@ -412,22 +387,22 @@ int UtcDaliDragAndDropDetectorMovedSignal(void)
 
 int UtcDaliDragAndDropDetectorExitedSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
-
-  control1.SetLeaveRequired(true);
-  control2.SetLeaveRequired(true);
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f,100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
+
+  control1.SetProperty( Actor::Property::LEAVE_REQUIRED,true);
+  control2.SetProperty( Actor::Property::LEAVE_REQUIRED,true);
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -442,11 +417,9 @@ int UtcDaliDragAndDropDetectorExitedSignal(void)
   DragSignalFunctor functor(data);
   detector.ExitedSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
-  screenCoordinates.x = 10.0f;
-  screenCoordinates.y = 110.0f;
+  Vector2 screenCoordinates(10.0f, 110.0f);
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Motion, screenCoordinates));
 
   screenCoordinates.x = 20.0f;
@@ -462,19 +435,19 @@ int UtcDaliDragAndDropDetectorExitedSignal(void)
 
 int UtcDaliDragAndDropDetectorDroppedSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f,100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -489,11 +462,9 @@ int UtcDaliDragAndDropDetectorDroppedSignal(void)
   DragSignalFunctor functor(data);
   detector.DroppedSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
-  screenCoordinates.x = 10.0f;
-  screenCoordinates.y = 110.0f;
+  Vector2 screenCoordinates(10.0f, 110.0f);
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Motion, screenCoordinates));
 
   screenCoordinates.x = 10.0f;
@@ -512,19 +483,19 @@ int UtcDaliDragAndDropDetectorDroppedSignal(void)
 
 int UtcDaliDragAndDropDetectorEndedSignal(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f,100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -539,14 +510,10 @@ int UtcDaliDragAndDropDetectorEndedSignal(void)
   DragSignalFunctor functor(data);
   detector.EndedSignal().Connect(&application, functor);
 
-  application.ProcessEvent(GeneratePan(Gesture::Possible, Vector2(10.0f, 10.0f), Vector2(12.0f, 12.0f), 10));
-  application.ProcessEvent(GeneratePan(Gesture::Started, Vector2(10.0f, 10.0f), Vector2(12.0f, 12.0f), 10));
+  TestGenerateMiniPan(application);
 
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, Vector2(10.0f, 10.0f)));
 
-  application.ProcessEvent(GeneratePan(Gesture::Continuing, Vector2(10.0f, 10.0f), Vector2(120.0f, 12.0f), 10));
-  application.ProcessEvent(GeneratePan(Gesture::Finished, Vector2(120.0f, 12.0f), Vector2(120.0f, 20.0f), 10));
-
   DALI_TEST_EQUALS(true, data.functorCalled, TEST_LOCATION);
   DALI_TEST_EQUALS(control1, data.control, TEST_LOCATION);
   data.Reset();
@@ -556,21 +523,21 @@ int UtcDaliDragAndDropDetectorEndedSignal(void)
 
 int UtcDaliDragAndDropDetectorGetContent(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   Dali::Toolkit::DragAndDropDetector detector = Dali::Toolkit::DragAndDropDetector::New();
   Control control1 = Control::New();
   Control control2 = Control::New();
-  control1.SetName("control1");
-  control2.SetName("control2");
-  control1.SetSize(100.0f,100.0f);
-  control2.SetSize(100.0f, 100.0f);
-  control1.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
-  control1.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control2.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  control1.SetPosition(0.0f, 0.0f);
-  control2.SetPosition(0.0f, 100.0f);
+  control1.SetProperty( Dali::Actor::Property::NAME,"control1");
+  control2.SetProperty( Dali::Actor::Property::NAME,"control2");
+  control1.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control2.SetProperty( Actor::Property::SIZE, Vector2(100.0f, 100.0f) );
+  control1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+  control1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  control1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  control2.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f));
 
   Stage::GetCurrent().Add(control1);
   Stage::GetCurrent().Add(control2);
@@ -585,11 +552,9 @@ int UtcDaliDragAndDropDetectorGetContent(void)
   DragSignalFunctor functor(data);
   detector.DroppedSignal().Connect(&application, functor);
 
-  Vector2 screenCoordinates(10.0f, 10.0f);
-  application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordinates));
+  TestGenerateMiniPan(application);
 
-  screenCoordinates.x = 10.0f;
-  screenCoordinates.y = 110.0f;
+  Vector2 screenCoordinates(10.0f, 110.0f);
   application.ProcessEvent(GenerateSingleTouch(TouchPoint::Motion, screenCoordinates));
 
   screenCoordinates.x = 10.0f;