[Tizen] Use update object size in CalculateActorScreenPosition
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Actor.cpp
index 35a756c..3755f84 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -7014,6 +7014,51 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
   END_TEST;
 }
 
+int UtcDaliActorGetScreenPositionResizeScene(void)
+{
+  tet_infoline("UtcDaliActorGetScreenPositionResizeScene Check screen position after resizing the scene size");
+
+  TestApplication    application;
+  Integration::Scene scene = application.GetScene();
+
+  Actor actorA = Actor::New();
+  actorA.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
+  actorA.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+  actorA.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f));
+
+  scene.Add(actorA);
+
+  application.SendNotification();
+  application.Render();
+
+  Vector2 sceneSize           = scene.GetSize();
+  Vector2 actorScreenPosition = actorA.GetProperty(Actor::Property::SCREEN_POSITION).Get<Vector2>();
+
+  DALI_TEST_EQUALS(actorScreenPosition, sceneSize / 2, TEST_LOCATION);
+
+  // Resize the scene
+  Vector2 newSize(1000.0f, 2000.0f);
+  DALI_TEST_CHECK(scene.GetSize() != newSize);
+
+  scene.SurfaceResized(newSize.width, newSize.height);
+
+  actorScreenPosition = actorA.GetProperty(Actor::Property::SCREEN_POSITION).Get<Vector2>();
+
+  // The screen position should not be updated yet
+  DALI_TEST_EQUALS(actorScreenPosition, sceneSize / 2, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  actorScreenPosition = actorA.GetProperty(Actor::Property::SCREEN_POSITION).Get<Vector2>();
+
+  // The screen position should be updated
+  sceneSize = scene.GetSize();
+  DALI_TEST_EQUALS(actorScreenPosition, sceneSize / 2, TEST_LOCATION);
+
+  END_TEST;
+}
+
 int utcDaliActorPositionUsesAnchorPoint(void)
 {
   TestApplication application;