(Automated Tests) Get ObjectRegistry from Core rather than Stage
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-ControlWrapper.cpp
index cc1a62e..120f6b0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -51,6 +51,15 @@ void utc_dali_toolkit_control_wrapper_cleanup(void)
 namespace
 {
 bool gOnRelayout = false;
+
+static bool gKeyInputFocusCallBackCalled;
+
+static void TestKeyInputFocusCallback( Control control )
+{
+  tet_infoline(" TestKeyInputFocusCallback");
+
+  gKeyInputFocusCallBackCalled = true;
+}
 } // namespace
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -78,9 +87,11 @@ struct TestCustomControl : public Toolkit::Internal::ControlWrapper
           mDaliProperty( Property::INVALID_INDEX ),
           mSizeSet( Vector3::ZERO ),
           mTargetSize( Vector3::ZERO ),
-          mNego( nego )
+          mNego( nego ),
+          mDepth( 0u )
   {
   }
+
   /**
    * Destructor
    */
@@ -95,6 +106,7 @@ struct TestCustomControl : public Toolkit::Internal::ControlWrapper
     OnInitialize( name );
   }
 
+  using Control::OnInitialize; ///< To tell the compiler that we really do want to overload OnInitialize in this class & were not trying to override it
   virtual void OnInitialize( const char* name ) {}
 
   // From Toolkit::Internal::ControlWrapper
@@ -307,7 +319,7 @@ int UtcDaliControlWrapperRelayoutRequest(void)
   Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
   ControlWrapper controlWrapper = ControlWrapper::New( customControlTypeName, *controlWrapperImpl );
 
-  Stage::GetCurrent().Add( controlWrapper );
+  application.GetScene().Add( controlWrapper );
 
   application.SendNotification();
   application.Render();
@@ -373,7 +385,7 @@ int UtcDaliControlWrapperCalculateChildSizeBase(void)
 
   Actor child = Actor::New();
   child.SetResizePolicy( Dali::ResizePolicy::FIXED, Dali::Dimension::ALL_DIMENSIONS );
-  child.SetSize(150, 150);
+  child.SetProperty( Actor::Property::SIZE, Vector2(150, 150) );
 
   application.SendNotification();
   application.Render();
@@ -413,7 +425,7 @@ int UtcDaliControlWrapperRegisterVisualToSelf(void)
 {
   ToolkitTestApplication application;
 
-  Test::ObjectDestructionTracker objectDestructionTracker;
+  Test::ObjectDestructionTracker objectDestructionTracker( application.GetCore().GetObjectRegistry() );
 
   {
     Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
@@ -449,7 +461,7 @@ int UtcDaliControlWrapperRegisterVisualWithDepthIndexToSelf(void)
 {
   ToolkitTestApplication application;
 
-  Test::ObjectDestructionTracker objectDestructionTracker;
+  Test::ObjectDestructionTracker objectDestructionTracker( application.GetCore().GetObjectRegistry() );
 
   {
     Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
@@ -507,7 +519,7 @@ int UtcDaliControlWrapperRegisterDisabledVisual(void)
   DALI_TEST_EQUALS( controlWrapperImpl->GetVisual( TEST_PROPERTY ), visual, TEST_LOCATION );
   DALI_TEST_EQUALS( controlWrapperImpl->IsVisualEnabled( TEST_PROPERTY ), false, TEST_LOCATION );
 
-  Stage::GetCurrent().Add( controlWrapper );
+  application.GetScene().Add( controlWrapper );
 
   // Render and notify
   application.SendNotification();
@@ -515,7 +527,7 @@ int UtcDaliControlWrapperRegisterDisabledVisual(void)
 
   DALI_TEST_EQUALS( controlWrapperImpl->IsVisualEnabled( TEST_PROPERTY ), false, TEST_LOCATION );
 
-  DALI_TEST_EQUALS( controlWrapper.OnStage(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( controlWrapper.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ), true, TEST_LOCATION );
 
   controlWrapperImpl->EnableVisual( TEST_PROPERTY, true );
 
@@ -550,7 +562,7 @@ int UtcDaliControlWrapperRegisterDisabledVisualWithDepthIndex(void)
   DALI_TEST_EQUALS( controlWrapperImpl->IsVisualEnabled( TEST_PROPERTY ), false, TEST_LOCATION );
   DALI_TEST_EQUALS( visual.GetDepthIndex(), 10, TEST_LOCATION );
 
-  Stage::GetCurrent().Add( controlWrapper );
+  application.GetScene().Add( controlWrapper );
 
   // Render and notify
   application.SendNotification();
@@ -558,7 +570,7 @@ int UtcDaliControlWrapperRegisterDisabledVisualWithDepthIndex(void)
 
   DALI_TEST_EQUALS( controlWrapperImpl->IsVisualEnabled( TEST_PROPERTY ), false, TEST_LOCATION );
 
-  DALI_TEST_EQUALS( controlWrapper.OnStage(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( controlWrapper.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ), true, TEST_LOCATION );
 
   controlWrapperImpl->EnableVisual( TEST_PROPERTY, true );
 
@@ -621,9 +633,9 @@ int UtcDaliControlWrapperTransitionDataMap1N(void)
 
   //DummyControl actor = DummyControl::New();
   controlWrapper.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);
-  controlWrapper.SetName("Actor1");
-  controlWrapper.SetColor(Color::CYAN);
-  Stage::GetCurrent().Add(controlWrapper);
+  controlWrapper.SetProperty( Dali::Actor::Property::NAME,"Actor1");
+  controlWrapper.SetProperty( Actor::Property::COLOR,Color::CYAN);
+  application.GetScene().Add(controlWrapper);
 
   Animation anim = controlWrapperImpl->CreateTransition( transition );
   DALI_TEST_CHECK( ! anim );
@@ -685,7 +697,7 @@ int UtcDaliControlWrapperTestControlProperties(void)
   Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
   ControlWrapper controlWrapper = ControlWrapper::New( customControlTypeName, *controlWrapperImpl );
 
-  Stage::GetCurrent().Add( controlWrapper );
+  application.GetScene().Add( controlWrapper );
 
   // "background" property
   Property::Map rendererMap;
@@ -737,7 +749,7 @@ int UtcDaliControlWrapperAnimateVisual(void)
   tet_infoline("Test that the control wrapper's visuals can be animated by name when registered");
 
   ToolkitTestApplication application;
-  Test::ObjectDestructionTracker objectDestructionTracker;
+  Test::ObjectDestructionTracker objectDestructionTracker( application.GetCore().GetObjectRegistry() );
 
   {
     Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
@@ -762,8 +774,8 @@ int UtcDaliControlWrapperAnimateVisual(void)
     // Register to self
     controlWrapperImpl->TestRegisterVisual( index, visual );
 
-    Stage::GetCurrent().Add( controlWrapper );
-    controlWrapper.SetSize( 100, 100 );
+    application.GetScene().Add( controlWrapper );
+    controlWrapper.SetProperty( Actor::Property::SIZE, Vector2( 100, 100 ) );
     application.SendNotification();
     application.Render(0); // Trigger animation start
 
@@ -800,10 +812,30 @@ int UtcDaliControlWrapperAnimateVisual(void)
     DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), false, TEST_LOCATION ); // Control not destroyed yet
     DALI_TEST_EQUALS( controlWrapperImpl->GetVisual( index ), visual, TEST_LOCATION );
 
-    Stage::GetCurrent().Remove( controlWrapper );
+    application.GetScene().Remove( controlWrapper );
   }
 
   DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), true, TEST_LOCATION ); // Should be destroyed
 
   END_TEST;
 }
+
+int UtcDaliControlWrapperEmitKeyFocusSignal(void)
+{
+  ToolkitTestApplication application;
+
+  Impl::TestCustomControl* controlWrapperImpl = new ::Impl::TestCustomControl( Toolkit::Internal::ControlWrapper::CONTROL_BEHAVIOUR_DEFAULT );
+  ControlWrapper controlWrapper = ControlWrapper::New( customControlTypeName, *controlWrapperImpl );
+
+  gKeyInputFocusCallBackCalled = false;
+  controlWrapper.KeyInputFocusGainedSignal().Connect(&TestKeyInputFocusCallback);
+
+  application.SendNotification();
+  application.Render();
+
+  controlWrapperImpl->EmitKeyInputFocusSignal( true );
+
+  DALI_TEST_CHECK( gKeyInputFocusCallBackCalled );
+
+  END_TEST;
+}