X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=4d0d54e884785f25f74785af051eff4d59d6cc21;hb=cc3e05c92b5b85abed449a979f72e7ec52317312;hp=9a40691ed295df75bd82bdedbde003d8356b25e1;hpb=784f6b2b1f66c24b1b7d920aef5b5bbff7878a99;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp index 9a40691..4d0d54e 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -2260,98 +2260,6 @@ int UtcDaliKeyboardFocusManagerWithUserInteractionEnabled(void) END_TEST; } - -int UtcDaliKeyboardFocusManagerWithHide(void) -{ - ToolkitTestApplication application; - - tet_infoline(" UtcDaliKeyboardFocusManagerWithHide"); - - KeyboardFocusManager manager = KeyboardFocusManager::Get(); - DALI_TEST_CHECK(manager); - - // Create the first control and add it to the stage - Control first = Control::New(); - first.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - application.GetScene().Add(first); - - // Create the second control and add it to the first control. - Control second = Control::New(); - second.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - first.Add(second); - - - // flush the queue and render once - application.SendNotification(); - application.Render(); - - // Check that no actor is being focused yet. - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - // Check that the focus is set on the actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(first) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); - - // If the currently focused actor becomes VISIBLE false, it loses focus. - first.SetProperty(Actor::Property::VISIBLE, false); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - first.SetProperty(Actor::Property::VISIBLE, true); - // Check that the focus is set on the actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second); - - // If the currently focused actor becomes VISIBLE false, When the parent is hidden, the child also loses focus. - first.SetProperty(Actor::Property::VISIBLE, false); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - - END_TEST; -} - -int UtcDaliKeyboardFocusManagerWithVisible(void) -{ - ToolkitTestApplication application; - - tet_infoline(" UtcDaliKeyboardFocusManagerWithVisible"); - - KeyboardFocusManager manager = KeyboardFocusManager::Get(); - DALI_TEST_CHECK(manager); - - // Create the first actor and add it to the stage - Actor first = Actor::New(); - first.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - application.GetScene().Add(first); - - // Create the second actor and add it to the first actor. - Actor second = Actor::New(); - second.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - first.Add(second); - - // Check that no actor is being focused yet. - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - // Check that the focus is set on the first actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(first) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); - - // Set visible false. - first.SetProperty(Actor::Property::VISIBLE, false); - - // Check that it will fail to set focus on the second actor as it's not focusable - DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == false); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); - - // Set visible true. - first.SetProperty(Actor::Property::VISIBLE, true); - - // Check that the focus is set on the second actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second); - - END_TEST; -} - int UtcDaliKeyboardFocusManagerFocusFinderRootActor(void) { ToolkitTestApplication application; @@ -2480,4 +2388,71 @@ int UtcDaliKeyboardFocusManagerFocusFinderRootActor(void) Dali::Toolkit::DevelKeyboardFocusManager::ResetFocusFinderRootActor(manager); END_TEST; +} + +int UtcDaliKeyboardFocusManagerKeyEventOtherWindow(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliKeyboardFocusManagerKeyEventOtherWindow"); + + Dali::Integration::Scene scene = application.GetScene(); + + // Register Type + TypeInfo type; + type = TypeRegistry::Get().GetTypeInfo("KeyboardFocusManager"); + DALI_TEST_CHECK(type); + BaseHandle handle = type.CreateInstance(); + DALI_TEST_CHECK(handle); + + KeyboardFocusManager manager = KeyboardFocusManager::Get(); + DALI_TEST_CHECK(manager); + + + PushButton button1 = PushButton::New(); + PushButton button2 = PushButton::New(); + button1.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); + button2.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); + application.GetScene().Add(button1); + application.GetScene().Add(button2); + + // Set the focus to the button1 + DALI_TEST_CHECK(manager.SetCurrentFocusActor(button1) == true); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == button1); + + // set the navigation properties of button1 + button1.SetProperty(Toolkit::DevelControl::Property::LEFT_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty(Actor::Property::ID))); + button1.SetProperty(Toolkit::DevelControl::Property::RIGHT_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty(Actor::Property::ID))); + button1.SetProperty(Toolkit::DevelControl::Property::UP_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty(Actor::Property::ID))); + button1.SetProperty(Toolkit::DevelControl::Property::DOWN_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty(Actor::Property::ID))); + button1.SetProperty(Toolkit::DevelControl::Property::CLOCKWISE_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty< int >( Actor::Property::ID))); + button1.SetProperty(Toolkit::DevelControl::Property::COUNTER_CLOCKWISE_FOCUSABLE_ACTOR_ID, Property::Value((int)button2.GetProperty< int >( Actor::Property::ID))); + + Integration::KeyEvent event("Right", "", "Right", 0, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE); + // It makes mIsFocusIndicatorEnabled true + application.ProcessEvent(event); + + // Move the focus towards right + application.ProcessEvent(event); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == button2); + + DALI_TEST_CHECK(manager.SetCurrentFocusActor(button1) == true); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == button1); + + Integration::KeyEvent event1("Right", "", "Right", 0, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE); + event1.windowId = 3; + application.ProcessEvent(event1); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == button1); + + END_TEST; } \ No newline at end of file