X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-KeyboardFocusManager.cpp;h=58221021f4d008bcdff186cc35a7dac7ea059145;hb=f66c8a201b4ca45d2b65229bdae411b6e18633fa;hp=8b9547a1bf3cdfa2c5b219c416a6f20f76fc965f;hpb=e37f48bb34e81585a6ed436bd7a2f9dce02c19f5;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 8b9547a..5822102 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -1182,10 +1182,68 @@ int UtcDaliKeyboardFocusManagerChangeFocusDirectionByKeyEvents(void) DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor()); DALI_TEST_CHECK(preFocusChangeCallback.mDirection == Control::KeyboardFocus::RIGHT); + // Clear the focus again + manager.ClearFocus(); + + // Send the up event for line coverage, but nothing was focued so focus manager will try the initial focus + preFocusChangeCallback.Reset(); + application.ProcessEvent(upEvent); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified); + DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor()); + + // Clear the focus again + manager.ClearFocus(); + + // Send the down event for line coverage, but nothing was focued so focus manager will try the initial focus + preFocusChangeCallback.Reset(); + application.ProcessEvent(downEvent); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified); + DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor()); + END_TEST; } +int UtcDaliKeyboardFocusManagerSignalChangedBySpaceKeyEvent(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliKeyboardFocusManagerSignalChangedBySpaceKeyEvent"); + + KeyboardFocusManager manager = KeyboardFocusManager::Get(); + DALI_TEST_CHECK(manager); + + bool preFocusChangeSignalVerified = false; + PreFocusChangeCallback preFocusChangeCallback(preFocusChangeSignalVerified); + manager.PreFocusChangeSignal().Connect( &preFocusChangeCallback, &PreFocusChangeCallback::Callback ); + + Integration::KeyEvent spaceEvent( "space", "", 0, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ); + + // Press Any key to notice physical keyboard event is comming to KeyboardFocusManager + // It makes mIsFocusIndicatorEnabled true + application.ProcessEvent(spaceEvent); + + // Send the space event + application.ProcessEvent(spaceEvent); + DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified); + DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == Actor()); + + // Clear the focus again + manager.ClearFocus(); + + // Send the space event again for line coverage + preFocusChangeCallback.Reset(); + application.ProcessEvent(spaceEvent); + DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified); + DALI_TEST_CHECK(preFocusChangeCallback.mCurrentFocusedActor == Actor()); + DALI_TEST_CHECK(preFocusChangeCallback.mProposedActorToFocus == Actor()); + + END_TEST; +} @@ -1425,3 +1483,39 @@ int UtcDaliKeyboardFocusManagerFocusedActorUnstaged(void) END_TEST; } + +int UtcDaliKeyboardFocusManagerEnableFocusIndicator(void) +{ + ToolkitTestApplication application; + + tet_infoline( "Ensure we cannot set an actor to be focused if it is not staged and that we do not retrieve an actor if it has been unstaged" ); + + KeyboardFocusManager manager = KeyboardFocusManager::Get(); + DALI_TEST_CHECK( ! manager.GetCurrentFocusActor() ); + + Actor actor = Actor::New(); + actor.SetKeyboardFocusable( true ); + Stage::GetCurrent().Add( actor ); + manager.SetCurrentFocusActor( actor ); + + // 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 rightEvent( "Right", "", 0, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ); + application.ProcessEvent(rightEvent); + + Actor indicatorActor = manager.GetFocusIndicatorActor(); + + tet_infoline( "Indicator is added to focused actor" ); + DALI_TEST_CHECK( actor == indicatorActor.GetParent() ); + + Dali::Toolkit::DevelKeyboardFocusManager::EnableFocusIndicator(manager, false); + DALI_TEST_CHECK( !Dali::Toolkit::DevelKeyboardFocusManager::IsFocusIndicatorEnabled(manager) ); + + tet_infoline( "Indicator is removed from focused actor because mUseFocusIndicator is false" ); + DALI_TEST_CHECK( !indicatorActor.GetParent() ); + + END_TEST; +} + + +