(KeyboardFocusManager) Fixed ConnectSignal handling & SVACE error
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-KeyboardFocusManager.cpp
index e58375a..6ef6e9e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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/dali-toolkit.h>
 #include <dali/integration-api/events/key-event-integ.h>
-#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
 
 
 using namespace Dali;
@@ -52,11 +51,11 @@ public:
   : mSignalVerified(signalReceived),
     mCurrentFocusedActor(),
     mProposedActorToFocus(),
-    mDirection(Control::Left)
+    mDirection(Control::KeyboardFocus::LEFT)
   {
   }
 
-  Actor Callback(Actor currentFocusedActor, Actor proposedActorToFocus, Control::KeyboardFocusNavigationDirection direction)
+  Actor Callback(Actor currentFocusedActor, Actor proposedActorToFocus, Control::KeyboardFocus::Direction direction)
   {
     tet_infoline("Verifying PreFocusChangeCallback()");
 
@@ -74,13 +73,13 @@ public:
     mSignalVerified = false;
     mCurrentFocusedActor = Actor();
     mProposedActorToFocus = Actor();
-    mDirection = Control::Left;
+    mDirection = Control::KeyboardFocus::LEFT;
   }
 
   bool& mSignalVerified;
   Actor mCurrentFocusedActor;
   Actor mProposedActorToFocus;
-  Control::KeyboardFocusNavigationDirection mDirection;
+  Control::KeyboardFocus::Direction mDirection;
 };
 
 // Functors to test whether focus changed signal is emitted when the keyboard focus is changed
@@ -176,8 +175,19 @@ public:
   Actor mActivatedActor;
 };
 
-} // namespace
+// Used to connect to signals via the ConnectSignal Handle method
+struct CallbackFunctor
+{
+  CallbackFunctor()
+  {
+  }
 
+  void operator()()
+  {
+  }
+};
+
+} // namespace
 
 int UtcDaliKeyboardFocusManagerGet(void)
 {
@@ -296,13 +306,13 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   Stage::GetCurrent().Add(second);
 
   // Move the focus to the right
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Right) == false);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == false);
 
   // Because no layout control in the stage and no actor is focused, it should emit the PreFocusChange signal
   DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
   DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == Actor());
   DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor());
-  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::Right);
+  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::KeyboardFocus::RIGHT);
   preFocusChangeCallback.Reset();
 
   // Check that the focus is set on the first actor
@@ -314,13 +324,13 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards right
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Right) == false);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == false);
 
   // Because no layout control in the stage and the first actor is focused, it should emit the PreFocusChange signal
   DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
   DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == first);
   DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor());
-  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::Right);
+  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::KeyboardFocus::RIGHT);
   preFocusChangeCallback.Reset();
 
   // Check that the focus is set on the second actor
@@ -332,13 +342,13 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards up
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Up) == false);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::UP) == false);
 
   // Because no layout control in the stage and no actor is focused, it should emit the PreFocusChange signal
   DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
   DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == second);
   DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor());
-  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::Up);
+  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::KeyboardFocus::UP);
   preFocusChangeCallback.Reset();
   DALI_TEST_CHECK(!focusChangedCallback.mSignalVerified);
 
@@ -369,7 +379,7 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards right
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Right) == true);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == true);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second);
   DALI_TEST_CHECK(focusChangedCallback.mSignalVerified);
   DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == first);
@@ -377,7 +387,7 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards down
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Down) == true);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::DOWN) == true);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == fourth);
   DALI_TEST_CHECK(focusChangedCallback.mSignalVerified);
   DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == second);
@@ -385,7 +395,7 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards left
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Left) == true);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == true);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == third);
   DALI_TEST_CHECK(focusChangedCallback.mSignalVerified);
   DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == fourth);
@@ -393,7 +403,7 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards up
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Up) == true);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::UP) == true);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first);
   DALI_TEST_CHECK(focusChangedCallback.mSignalVerified);
   DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == third);
@@ -401,12 +411,12 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   focusChangedCallback.Reset();
 
   // Move the focus towards left. The focus move will fail as no way to move it upwards
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Left) == false);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == false);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first);
   DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
   DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == first);
   DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor());
-  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::Left);
+  DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::KeyboardFocus::LEFT);
   preFocusChangeCallback.Reset();
   DALI_TEST_CHECK(!focusChangedCallback.mSignalVerified);
 
@@ -415,7 +425,7 @@ int UtcDaliKeyboardFocusManagerMoveFocus(void)
   DALI_TEST_CHECK(manager.GetFocusGroupLoop() == true);
 
   // Move the focus towards left again. The focus should move to the fourth actor.
-  DALI_TEST_CHECK(manager.MoveFocus(Control::Left) == true);
+  DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == true);
   DALI_TEST_CHECK(manager.GetCurrentFocusActor() == fourth);
   DALI_TEST_CHECK(focusChangedCallback.mSignalVerified);
   DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == first);
@@ -595,7 +605,7 @@ int UtcDaliKeyboardFocusManagerSignalFocusedActorActivated(void)
 
   bool focusedActorActivatedSignalVerified = false;
   FocusedActorActivatedCallback focusedActorActivatedCallback(focusedActorActivatedSignalVerified);
-  manager.FocusedActorActivatedSignal().Connect( &focusedActorActivatedCallback, &FocusedActorActivatedCallback::Callback );
+  manager.FocusedActorEnterKeySignal().Connect( &focusedActorActivatedCallback, &FocusedActorActivatedCallback::Callback );
 
   Integration::KeyEvent returnEvent("Return", "", 0, 0, 0, Integration::KeyEvent::Up);
 
@@ -669,3 +679,19 @@ int UtcDaliKeyboardFocusManagerSignalFocusGroupChanged(void)
   focusGroupChangedCallback.Reset();
   END_TEST;
 }
+
+int UtcDaliKeyboardFocusManagerSignals(void)
+{
+  ToolkitTestApplication application;
+
+  KeyboardFocusManager manager = KeyboardFocusManager::Get();
+  DALI_TEST_CHECK( manager );
+
+  ConnectionTracker* testTracker = new ConnectionTracker();
+  DALI_TEST_EQUALS( true, manager.ConnectSignal( testTracker, "keyboardPreFocusChange", CallbackFunctor() ), TEST_LOCATION );
+  DALI_TEST_EQUALS( true, manager.ConnectSignal( testTracker, "keyboardFocusChanged", CallbackFunctor() ), TEST_LOCATION );
+  DALI_TEST_EQUALS( true, manager.ConnectSignal( testTracker, "keyboardFocusGroupChanged", CallbackFunctor() ), TEST_LOCATION );
+  DALI_TEST_EQUALS( true, manager.ConnectSignal( testTracker, "keyboardFocusedActorEnterKey", CallbackFunctor() ), TEST_LOCATION );
+
+  END_TEST;
+}