const Size CONTROL_SIZE(300.f, 60.f);
-std::string gClipboardText;
-void ContentSelectedCallback(TextClipboardEventNotifier& notifier)
-{
- gClipboardText = notifier.GetContent();
-}
-
// Generate a KeyEvent to send to Core.
Dali::KeyEvent GenerateKey(const std::string& keyName,
const std::string& keyString,
controller->GetText(text);
DALI_TEST_CHECK(text.empty());
- TextClipboardEventNotifier clipboardEventNotifier = TextClipboardEventNotifier::Get();
- clipboardEventNotifier.ContentSelectedSignal().Connect(&ContentSelectedCallback);
-
// Paste the text.
button = PushButton::DownCast(textPopup.FindChildByName(OPTION_PASTE));
DALI_TEST_CHECK(button);
// Call relayout to process the input events.
controller->Relayout(CONTROL_SIZE);
+ controller->GetText(text);
- DALI_TEST_EQUALS("Hello world", gClipboardText, TEST_LOCATION);
+ DALI_TEST_EQUALS("Hello world", text.c_str(), TEST_LOCATION);
// Show the clipboard.
button = PushButton::DownCast(textPopup.FindChildByName(OPTION_CLIPBOARD));
END_TEST;
}
+
+int UtcDaliTextControllerMultipleInsert(void)
+{
+ tet_infoline(" UtcDaliTextControllerMultipleInsert");
+ ToolkitTestApplication application;
+
+ // Creates a text controller.
+ ControllerPtr controller = Controller::New();
+
+ ConfigureTextField(controller);
+
+ // Get the implementation of the text controller
+ Controller::Impl& mImpl = Controller::Impl::GetImplementation(*controller.Get());
+
+ DALI_TEST_EQUALS(EventData::INACTIVE, mImpl.mEventData->mState, TEST_LOCATION);
+
+ InputMethodContext inputMethodContext = InputMethodContext::New();
+
+ // When maid thread is busy, multiple event might be executed.
+ InputMethodContext::EventData imfEvent1 = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "A", 0, 1);
+ InputMethodContext::EventData imfEvent2 = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "AAAAA", 0, 5);
+ controller->OnInputMethodContextEvent(inputMethodContext, imfEvent1);
+ controller->OnInputMethodContextEvent(inputMethodContext, imfEvent2);
+
+ // Perform a relayout
+ const Size size(application.GetScene().GetSize());
+
+ application.SendNotification();
+ application.Render();
+
+ controller->Relayout(size);
+
+ std::string text;
+ controller->GetText(text);
+
+ DALI_TEST_EQUALS("AAAAA", text, TEST_LOCATION);
+
+ tet_result(TET_PASS);
+
+ END_TEST;
+}