X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=4d0d54e884785f25f74785af051eff4d59d6cc21;hb=4255529cd62def14c042f78edd30b6919fa591e1;hp=ccab3e045103b787a10fe76ef9c9c12063326d2d;hpb=c520fcd59e2aa883434b555b53cdb6a6df5dcf60;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 ccab3e0..4d0d54e 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -2260,55 +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 UtcDaliKeyboardFocusManagerFocusFinderRootActor(void) { ToolkitTestApplication application; @@ -2438,3 +2389,70 @@ int UtcDaliKeyboardFocusManagerFocusFinderRootActor(void) 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