X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=d0bb94b538b0b27d2d2c3b453c9458a275276858;hb=4bc73f2e78812b262f09830bb2b1d87034f34496;hp=f32a64fe43626ca4f3e235b88c6791121e37bfac;hpb=a2c1293114a5e1ab31bf6bcea8d6574ccaf1fcfb;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 f32a64f..d0bb94b 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -2210,3 +2210,101 @@ int UtcDaliKeyboardFocusManagerChangeFocusDirectionByCustomWheelEvent(void) END_TEST; } + +int UtcDaliKeyboardFocusManagerWithUserInteractionEnabled(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliKeyboardFocusManagerWithUserInteractionEnabled"); + + 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); + + // 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 USER_INTERACTION_ENABLED false. + second.SetProperty(DevelActor::Property::USER_INTERACTION_ENABLED, false); + + // Check that it will fail to set focus on the second actor as it's not userInteractionEnabled + DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == false); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); + + // Set KeyboardFocusableChildren true. + second.SetProperty(DevelActor::Property::USER_INTERACTION_ENABLED, true); + + // Check that the focus is set on the second actor + DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == true); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second); + + // If the currently focused actor becomes USER_INTERACTION_ENABLED false, it loses focus. + second.SetProperty(DevelActor::Property::USER_INTERACTION_ENABLED, false); + + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); + + + 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; +} \ No newline at end of file