Protecting test cases from memory scribbling
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-Slider.cpp
index 1ec25ce..de98918 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
@@ -20,7 +20,6 @@
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.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;
@@ -66,7 +65,7 @@ int UtcDaliSliderNew(void)
   DALI_TEST_CHECK( slider2 == slider );
 
   //Additional check to ensure object is created by checking if it's registered
-  ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
+  ObjectRegistry registry = application.GetCore().GetObjectRegistry();
   DALI_TEST_CHECK( registry );
 
   gObjectCreatedCallBackCalled = false;
@@ -78,6 +77,71 @@ int UtcDaliSliderNew(void)
   END_TEST;
 }
 
+int UtcDaliSliderCopyConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  Slider slider = Slider::New();
+  DALI_TEST_CHECK( slider );
+
+  Slider copy( slider );
+  DALI_TEST_CHECK( copy );
+
+  END_TEST;
+}
+
+int UtcDaliSliderCopyAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  Slider slider = Slider::New();
+  DALI_TEST_CHECK( slider );
+
+  Slider copy;
+  copy = slider;
+  DALI_TEST_CHECK( copy );
+  DALI_TEST_EQUALS( slider, copy, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliSliderMoveConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  Slider slider = Slider::New();
+  DALI_TEST_EQUALS( 1, slider.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  slider.SetProperty( Actor::Property::SENSITIVE, false );
+  DALI_TEST_CHECK( false == slider.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+
+  Slider moved = std::move( slider );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+  DALI_TEST_CHECK( !slider );
+
+  END_TEST;
+}
+
+int UtcDaliSliderMoveAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  Slider slider = Slider::New();
+  DALI_TEST_EQUALS( 1, slider.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  slider.SetProperty( Actor::Property::SENSITIVE, false );
+  DALI_TEST_CHECK( false == slider.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+
+  Slider moved;
+  moved = std::move( slider );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+  DALI_TEST_CHECK( !slider );
+
+  END_TEST;
+}
+
 int UtcDaliSliderDestructor(void)
 {
   ToolkitTestApplication application;
@@ -101,20 +165,27 @@ int UtcDaliSliderDownCast(void)
   END_TEST;
 }
 
-static bool gSliderValueChangedCallBackCalled;
+static bool gSliderValueChangedCallBackCalled=false;
 static bool OnSliderValueChanged( Slider slider, float value )
 {
   gSliderValueChangedCallBackCalled = true;
   return true;
 }
 
-static bool gSliderMarkCallBackCalled;
+static bool gSliderMarkCallBackCalled=false;
 static bool OnSliderMark( Slider slider, int value )
 {
   gSliderMarkCallBackCalled = true;
   return true;
 }
 
+static bool gSliderSlidingFinishedCallBackCalled=false;
+static bool OnSlidingFinished( Slider slider, float value )
+{
+  gSliderSlidingFinishedCallBackCalled = true;
+  return true;
+}
+
 int UtcDaliSliderSignals1(void)
 {
   ToolkitTestApplication application;  // Exceptions require ToolkitTestApplication
@@ -122,11 +193,11 @@ int UtcDaliSliderSignals1(void)
 
   // Create the Popup actor
   Slider slider = Slider::New();
-  Stage::GetCurrent().Add( slider );
-  slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
-  slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  slider.SetPosition( 0.0f, 0.0f );
+  application.GetScene().Add( slider );
+  slider.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  slider.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
 
   const float MIN_BOUND = 0.0f;
   const float MAX_BOUND = 1.0f;
@@ -141,42 +212,57 @@ int UtcDaliSliderSignals1(void)
 
   slider.ValueChangedSignal().Connect( &OnSliderValueChanged );
   slider.MarkReachedSignal().Connect( &OnSliderMark );
+  slider.SlidingFinishedSignal().Connect( &OnSlidingFinished );
 
   application.SendNotification();
   application.Render();
 
   gSliderValueChangedCallBackCalled = false;
   gSliderMarkCallBackCalled = false;
+  gSliderSlidingFinishedCallBackCalled = false;
 
-  Dali::Integration::TouchEvent event;
-
-  event = Dali::Integration::TouchEvent();
-
-  Integration::Point pointDown;
-  pointDown.SetState( PointState::DOWN );
-  pointDown.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
-  event.AddPoint( pointDown );
+  {
+    Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
+    Integration::Point pointDown;
+    pointDown.SetState( PointState::DOWN );
+    pointDown.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+    event.AddPoint( pointDown );
+
+    application.ProcessEvent( event );
+    application.SendNotification();
+    application.Render();
+  }
 
   for( int i = 0; i < 5; ++i )
   {
+    Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
     Integration::Point pointMotion;
     pointMotion.SetState( PointState::MOTION );
     pointMotion.SetScreenPosition( Vector2( 10.0f + i * 10.0f, 10.0f ) );
     event.AddPoint( pointMotion );
-  }
-
-  Integration::Point pointUp;
-  pointUp.SetState( PointState::UP );
-  pointUp.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
-  event.AddPoint( pointUp );
 
-  application.ProcessEvent( event );
+    application.ProcessEvent( event );
+    application.SendNotification();
+    application.Render();
+  }
 
-  application.SendNotification();
-  application.Render();
+  {
+    Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
+    Integration::Point pointUp;
+    pointUp.SetState( PointState::UP );
+    pointUp.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+    event.AddPoint( pointUp );
+
+    application.ProcessEvent( event );
+    application.SendNotification();
+    application.Render();
+  }
 
   DALI_TEST_CHECK(gSliderValueChangedCallBackCalled);
   DALI_TEST_CHECK(gSliderMarkCallBackCalled);
+  DALI_TEST_CHECK(gSliderSlidingFinishedCallBackCalled);
+
+  UnparentAndReset(slider);
   END_TEST;
 }
 
@@ -206,11 +292,11 @@ int UtcDaliSliderSignals2(void)
 
   // Create the Popup actor
   Slider slider = Slider::New();
-  Stage::GetCurrent().Add( slider );
-  slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
-  slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  slider.SetPosition( 0.0f, 0.0f );
+  application.GetScene().Add( slider );
+  slider.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  slider.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
 
   const float MIN_BOUND = 0.0f;
   const float MAX_BOUND = 1.0f;
@@ -270,12 +356,12 @@ int UtcDaliSetPropertyP(void)
   tet_infoline( "UtcDaliSetPropertyP" );
 
   Slider slider = Slider::New();
-  slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
-  slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
-  slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  slider.SetPosition( 0.0f, 0.0f );
+  slider.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
+  slider.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  slider.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
 
-  Stage::GetCurrent().Add(slider);
+  application.GetScene().Add(slider);
   application.SendNotification();
   application.Render();
 
@@ -313,7 +399,7 @@ int UtcDaliSetPropertyP(void)
 
   {
     Property::Map map;
-    map["rendererType"] = "image";
+    map["visualType"] = "IMAGE";
     map["size"] = Vector2(200, 200);
     map["url"] = "track2.png";
     slider.SetProperty(Slider::Property::TRACK_VISUAL,       map);
@@ -362,6 +448,7 @@ int UtcDaliSetPropertyP(void)
     DALI_TEST_EQUALS( *url, "popupArrow2.png", TEST_LOCATION );
   }
 
+  UnparentAndReset(slider);
   END_TEST;
 }