int UtcDaliTextInputStartSignalEmit(void) { ToolkitTestApplication application; tet_infoline("Testing SetEditable emits start signal"); TextInput textInput = TextInput::New(); // create empty TextInput Stage::GetCurrent().Add(textInput); textInput.InputStartedSignal().Connect( &OnStartInput ); gHasStartSignalBeenReceived = false; textInput.SetEditable(true); // Set editable first time DALI_TEST_EQUALS(true, gHasStartSignalBeenReceived, TEST_LOCATION); gHasStartSignalBeenReceived = false; textInput.SetEditable(true); // Set editable second time, signal should not be sent again. DALI_TEST_EQUALS(false, gHasStartSignalBeenReceived, TEST_LOCATION); textInput.SetEditable(false); gHasStartSignalBeenReceived = false; textInput.SetEditable(true); // Set editable again DALI_TEST_EQUALS(true, gHasStartSignalBeenReceived, TEST_LOCATION); END_TEST; }
int UtcDaliTextInputSetEditableAndIsEditable(void) { ToolkitTestApplication application; tet_infoline("Testing SetEditable And IsEditable"); const std::string initialString = "initial text"; TextInput textInput = TextInput::New(); // create empty TextInput textInput.SetInitialText( initialString ); Stage::GetCurrent().Add(textInput); application.SendNotification(); application.Render(); bool editableStateFalse ( false ); bool editableStateTrue ( true ); textInput.SetEditable ( editableStateFalse ); application.SendNotification(); application.Render(); DALI_TEST_EQUALS( editableStateFalse, textInput.IsEditable() , TEST_LOCATION); textInput.SetEditable ( editableStateTrue ); application.SendNotification(); application.Render(); DALI_TEST_EQUALS( editableStateTrue, textInput.IsEditable() , TEST_LOCATION); END_TEST; }
int UtcDaliTextInputExceedMaxCharacters(void) { ToolkitTestApplication application; tet_infoline("Testing Max characters is obeyed when inputting key events "); TextInput textInput = TextInput::New(); // create empty TextInput Stage::GetCurrent().Add(textInput); textInput.SetMaxCharacterLength(4); textInput.SetInitialText(""); textInput.SetEditable(true); application.SendNotification(); application.Render(); Integration::KeyEvent eventA("a", "a", 0, 0, 0, Integration::KeyEvent::Down ); Integration::KeyEvent eventB("b", "b", 0, 0, 0, Integration::KeyEvent::Down ); application.ProcessEvent(eventA); application.ProcessEvent(eventB); application.ProcessEvent(eventA); application.ProcessEvent(eventB); application.ProcessEvent(eventA); application.ProcessEvent(eventB); tet_printf( "Get text result : %s\n", textInput.GetText().c_str()); DALI_TEST_EQUALS("abab",textInput.GetText(), TEST_LOCATION); // Get text which should be only 4 characters END_TEST; }
int UtcDaliTextInputTextSelection(void) { ToolkitTestApplication application; tet_infoline("Testing Text Selection"); const std::string initialString = "initial text"; TextInput textInput = TextInput::New(); textInput.SetInitialText( initialString ); Stage::GetCurrent().Add(textInput); application.SendNotification(); application.Render(); textInput.SetEditable( true ); tet_infoline("Testing IsTextSelected negative"); DALI_TEST_EQUALS( false, textInput.IsTextSelected(), TEST_LOCATION); textInput.SelectText(1,7); DALI_TEST_EQUALS( true, textInput.IsTextSelected(), TEST_LOCATION); textInput.DeSelectText(); DALI_TEST_EQUALS( false, textInput.IsTextSelected(), TEST_LOCATION); END_TEST; }
int UtcDaliTextInputEndSignalEmit(void) { ToolkitTestApplication application; tet_infoline("Testing Set editable false emits end signal"); TextInput textInput = TextInput::New(); // create empty TextInput Stage::GetCurrent().Add(textInput); textInput.InputFinishedSignal().Connect( &OnEndInput ); textInput.SetEditable(true) ; gHasEndSignalBeenReceived = false; textInput.SetEditable(false) ; DALI_TEST_EQUALS(true, gHasEndSignalBeenReceived, TEST_LOCATION); END_TEST; }
int UtcDaliTextInputSetMaxCharacterLength(void) { ToolkitTestApplication application; tet_infoline("Testing Setting of max characters"); const int maxChars = 4; const char* testChar = "v"; TextInput textInput = TextInput::New(); // create empty TextInput Stage::GetCurrent().Add(textInput); application.SendNotification(); application.Render(); textInput.SetMaxCharacterLength(maxChars); Integration::KeyEvent event(testChar, testChar, 0, 0, 0, Integration::KeyEvent::Down ); std::string testString = ""; tet_infoline("Starting editmode"); textInput.SetEditable( true ); tet_infoline("Sending Key Events"); // Send max number of characters for (int i=0; i < maxChars; i++) { application.ProcessEvent(event); testString.append(testChar); } tet_printf( "Get text result : %s\n", textInput.GetText().c_str()); DALI_TEST_EQUALS(testString, textInput.GetText(), TEST_LOCATION); tet_infoline("Sending Key Event which exceeds max characters"); application.ProcessEvent(event); // try to append additional character DALI_TEST_EQUALS(testString,textInput.GetText(), TEST_LOCATION); tet_infoline("Increase max characters limit"); textInput.SetMaxCharacterLength(maxChars+1); // increment max characters by 1 tet_infoline("Send character again which should now fit"); application.ProcessEvent(event); // append additional character testString.append(testChar); DALI_TEST_EQUALS(testString,textInput.GetText(), TEST_LOCATION); END_TEST; }