X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=0f1d4939dc174d272e7519e5bc47e6096fa4bada;hb=b70dd2c05e10d3bdf7d39b11fdd6f2688191fddb;hp=a0738471b3de1d5b6b2f724b7d757e59beaa6579;hpb=5027b0fded1281b450ec58b6a1309ef8e01bcd47;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 a073847..0f1d493 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -217,6 +217,34 @@ public: Actor mActivatedActor; }; +class KeyEventCallback : public Dali::ConnectionTracker +{ +public: + /** + * Constructor + * @param[in] returnValue Set return value of KeyEvent callback. + * */ + KeyEventCallback( bool consumed ) + : mConsumed( consumed ), + mIsCalled( false ) + { + } + + bool Callback( Control control, const KeyEvent& keyEvent ) + { + mIsCalled = true; + return mConsumed; + } + + void Callback( const KeyEvent& keyEvent ) + { + mIsCalled = true; + } + + bool mConsumed; + bool mIsCalled; +}; + // Used to connect to signals via the ConnectSignal Handle method struct CallbackFunctor { @@ -1517,5 +1545,38 @@ int UtcDaliKeyboardFocusManagerEnableFocusIndicator(void) END_TEST; } +int UtcDaliKeyboardFocusManagerCheckConsumedKeyEvent(void) +{ + ToolkitTestApplication application; + + tet_infoline( "Ensure Window can't receive KeyEvent when Control already consumed it" ); + Dali::Integration::Scene scene = application.GetScene(); + + KeyboardFocusManager manager = KeyboardFocusManager::Get(); + DALI_TEST_CHECK( ! manager.GetCurrentFocusActor() ); + + // Create the first actor and add it to the stage + Control control = Control::New(); + control.SetKeyboardFocusable(true); + scene.Add(control); + + KeyEventCallback controlCallback( true ); + control.KeyEventSignal().Connect( &controlCallback, &KeyEventCallback::Callback ); + + KeyEventCallback sceneCallback( false ); + scene.KeyEventSignal().Connect( &sceneCallback, &KeyEventCallback::Callback ); + + manager.SetCurrentFocusActor( control ); + + // Press Any key to notice physical keyboard event is comming to KeyboardFocusManager + // It makes mIsFocusIndicatorEnabled true and add focus indicator to focused actor. + Integration::KeyEvent event1( "Right", "", "", 0, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ); + application.ProcessEvent(event1); + + DALI_TEST_CHECK( controlCallback.mIsCalled ); + DALI_TEST_CHECK( !sceneCallback.mIsCalled ); + + END_TEST; +}