X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=053b25ce31469750be6ed925e4d19898a45f4bb3;hp=be3cf4410b50c7c12d8ca05f3d624d04b95be308;hb=9b2486f5998dccbc50c3da9c63953a80df15e762;hpb=d239b109fc055baea71d712bf469fc9434c3e022 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp index be3cf44..053b25c 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -20,10 +20,11 @@ // Need to override adaptor classes for toolkit test harness, so include // test harness headers before dali headers. +#include +#include +#include #include - #include -#include #include #include #include @@ -1642,22 +1643,22 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) PushButton button4 = PushButton::New(); PushButton button5 = PushButton::New(); - button1.SetProperty( Actor::Property::SIZE, Vector2( 50, 50 ) ); - button2.SetProperty( Actor::Property::SIZE, Vector2( 50, 50 ) ); - button3.SetProperty( Actor::Property::SIZE, Vector2( 50, 50 ) ); - button4.SetProperty( Actor::Property::SIZE, Vector2( 50, 50 ) ); - button5.SetProperty( Actor::Property::SIZE, Vector2( 50, 50 ) ); + button1.SetProperty(Actor::Property::SIZE, Vector2(50, 50)); + button2.SetProperty(Actor::Property::SIZE, Vector2(50, 50)); + button3.SetProperty(Actor::Property::SIZE, Vector2(50, 50)); + button4.SetProperty(Actor::Property::SIZE, Vector2(50, 50)); + button5.SetProperty(Actor::Property::SIZE, Vector2(50, 50)); - button1.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - button2.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - button3.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - button4.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); - button5.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); + button1.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + button2.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + button3.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + button4.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + button5.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); application.GetScene().Add(button1); application.GetScene().Add(button2); application.GetScene().Add(button3); - application.GetScene().Add(button4); + button5.Add(button4); application.GetScene().Add(button5); // set position @@ -1665,11 +1666,11 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) // | | // | button5| // button3 -- button4 - button1.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 0.0f)); - button2.SetProperty( Actor::Property::POSITION, Vector2(100.0f, 0.0f)); - button3.SetProperty( Actor::Property::POSITION, Vector2(0.0f, 100.0f)); - button4.SetProperty( Actor::Property::POSITION, Vector2(100.0f, 100.0f)); - button5.SetProperty( Actor::Property::POSITION, Vector2(60.0f, 60.0f)); + button1.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f)); + button2.SetProperty(Actor::Property::POSITION, Vector2(100.0f, 0.0f)); + button3.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 100.0f)); + button4.SetProperty(Actor::Property::POSITION, Vector2(40.0f, 40.0f)); + button5.SetProperty(Actor::Property::POSITION, Vector2(60.0f, 60.0f)); // flush the queue and render once application.SendNotification(); @@ -1697,7 +1698,7 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == true); // Confirm whether focus is moved to button2 - DALI_TEST_EQUALS(button2.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button2.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button1); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button2); @@ -1711,7 +1712,7 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::DOWN) == true); // Confirm whether focus is moved to button5 - DALI_TEST_EQUALS(button5.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button5.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button2); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button5); @@ -1725,7 +1726,7 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == true); // Confirm whether focus is moved to button4 - DALI_TEST_EQUALS(button4.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button4.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button5); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button4); @@ -1739,7 +1740,7 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == true); // Confirm whether focus is moved to button5 - DALI_TEST_EQUALS(button5.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button5.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button4); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button5); @@ -1753,7 +1754,35 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == true); // Confirm whether focus is moved to button3 - DALI_TEST_EQUALS(button3.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button3.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); + DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); + DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button5); + DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button3); + focusChangedCallback.Reset(); + + // Move the focus towards right + // button1 -- button2 + // | | + // | [button5]| + // button3 -- button4 + DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::RIGHT) == true); + + // Confirm whether focus is moved to button5 + DALI_TEST_EQUALS(button5.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); + DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); + DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button3); + DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button5); + focusChangedCallback.Reset(); + + // Move the focus towards left + // button1 -- button2 + // | | + // | button5| + //[button3] -- button4 + DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::LEFT) == true); + + // Confirm whether focus is moved to button3 + DALI_TEST_EQUALS(button3.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button5); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button3); @@ -1767,7 +1796,7 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) DALI_TEST_CHECK(manager.MoveFocus(Control::KeyboardFocus::UP) == true); // Confirm whether focus is moved to button1 - DALI_TEST_EQUALS(button1.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION ); + DALI_TEST_EQUALS(button1.GetProperty(DevelControl::Property::STATE), (int)DevelControl::FOCUSED, TEST_LOCATION); DALI_TEST_CHECK(focusChangedCallback.mSignalVerified); DALI_TEST_CHECK(focusChangedCallback.mOriginalFocusedActor == button3); DALI_TEST_CHECK(focusChangedCallback.mCurrentFocusedActor == button1); @@ -1785,3 +1814,88 @@ int UtcDaliKeyboardFocusManagerWithoutFocusablePropertiesMoveFocus(void) END_TEST; } + +int UtcDaliKeyboardFocusManagerSetAndGetCurrentFocusActorInTouchMode(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliKeyboardFocusManagerSetAndGetCurrentFocusActorInTouchMode"); + + 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::SIZE, Vector2( 50, 50 )); + first.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f)); + first.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + first.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + first.SetProperty(DevelActor::Property::TOUCH_FOCUSABLE,true); + application.GetScene().Add(first); + + // Create the second actor and add it to the stage + Actor second = Actor::New(); + second.SetProperty(Actor::Property::SIZE, Vector2( 50, 50 )); + second.SetProperty(Actor::Property::POSITION, Vector2(100.0f, 0.0f)); + second.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + second.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE,true); + application.GetScene().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 it will fail to set focus on an invalid actor + DALI_TEST_CHECK(manager.SetCurrentFocusActor(Actor()) == false); + + + Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent(); + Dali::Integration::Point pointDown1; + pointDown1.SetState( PointState::DOWN ); + pointDown1.SetDeviceId(1); + // touch first actor + pointDown1.SetScreenPosition( Vector2( 10.0f, 10.0f ) ); + event1.AddPoint(pointDown1); + application.ProcessEvent( event1 ); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + + // Check that the focus is successfully to the first actor + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); + + Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent(); + Dali::Integration::Point pointDown2; + pointDown2.SetState( PointState::DOWN ); + pointDown2.SetDeviceId(1); + // touch second actor + pointDown2.SetScreenPosition( Vector2( 110.0f, 10.0f ) ); + event2.AddPoint(pointDown2); + application.ProcessEvent( event2 ); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + + // Check that the focus is successfully to clear + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); + + // Make the second actor focusableInTouchMode + second.SetProperty( DevelActor::Property::TOUCH_FOCUSABLE,true); + + // touch second actor + application.ProcessEvent( event2 ); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + + // Check that the focus is successfully to the second actor + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second); + + END_TEST; +} \ No newline at end of file