static void UtcDaliKeyInputFocusManagerSignalKeyInputFocusChanged() { ToolkitTestApplication application; KeyInputFocusManager manager = KeyInputFocusManager::Get(); Stage stage = Stage::GetCurrent(); tet_infoline(" UtcDaliKeyInputFocusManagerSignalKeyInputFocusChanged"); PushButton pushButton1 = PushButton::New(); PushButton pushButton2 = PushButton::New(); stage.Add( pushButton1 ); stage.Add( pushButton2 ); PushButton gainActor, lostActor; KeyInputFocusChangedCallback callback( gainActor, lostActor ); manager.KeyInputFocusChangedSignal().Connect( &callback, &KeyInputFocusChangedCallback::Callback ); manager.SetFocus(pushButton1); DALI_TEST_CHECK( gainActor == pushButton1 ); DALI_TEST_CHECK( lostActor == Control() ); gainActor = lostActor = NULL; manager.SetFocus(pushButton2); DALI_TEST_CHECK( gainActor == pushButton2 ); DALI_TEST_CHECK( lostActor == pushButton1 ); gainActor = lostActor = NULL; // Removing the focus actor from the stage would also result in signal emission. stage.Remove( pushButton1 ); stage.Remove( pushButton2 ); DALI_TEST_CHECK( gainActor == Control() ); DALI_TEST_CHECK( lostActor == Control() ); }
int UtcDaliStageRemoveN2(void) { TestApplication application; Stage stage = Stage::GetCurrent(); Actor actor = Actor::New(); DALI_TEST_CHECK( !actor.OnStage() ); bool asserted = false; try { // Actor is not on stage, confirm a removal attempt does not assert / segfault. stage.Remove( actor ); } catch( Dali::DaliException& e ) { DALI_TEST_PRINT_ASSERT( e ); asserted = true; } DALI_TEST_CHECK( !asserted ); END_TEST; }
int UtcDaliStageRemoveN1(void) { TestApplication application; Stage stage = Stage::GetCurrent(); Actor actor; bool asserted = false; try { // Actor is not valid, confirm a removal attempt does assert. stage.Remove( actor ); } catch( Dali::DaliException& e ) { DALI_TEST_PRINT_ASSERT( e ); DALI_TEST_ASSERT( e, "actor && \"Actor handle is empty\"", TEST_LOCATION ); asserted = true; } DALI_TEST_CHECK( asserted ); END_TEST; }