| Index: third_party/WebKit/Source/web/tests/WebViewTest.cpp
|
| diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
|
| index 3240966d898bafd2d579b4dbd84fa9b1a1bc8f07..9404cf82ce29fa5ea0f493f5c921e4f854838d35 100644
|
| --- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp
|
| +++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
|
| @@ -751,15 +751,18 @@ void WebViewTest::testTextInputType(WebTextInputType expectedType,
|
| URLTestHelpers::registerMockedURLFromBaseURL(
|
| WebString::fromUTF8(m_baseURL.c_str()),
|
| WebString::fromUTF8(htmlFile.c_str()));
|
| - WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + htmlFile);
|
| - EXPECT_EQ(WebTextInputTypeNone, webView->textInputType());
|
| - EXPECT_EQ(WebTextInputTypeNone, webView->textInputInfo().type);
|
| + WebViewImpl* webView =
|
| + m_webViewHelper.initializeAndLoad(m_baseURL + htmlFile);
|
| + WebInputMethodControllerImpl* controller =
|
| + webView->mainFrameImpl()->inputMethodController();
|
| + EXPECT_EQ(WebTextInputTypeNone, controller->textInputType());
|
| + EXPECT_EQ(WebTextInputTypeNone, controller->textInputInfo().type);
|
| webView->setInitialFocus(false);
|
| - EXPECT_EQ(expectedType, webView->textInputType());
|
| - EXPECT_EQ(expectedType, webView->textInputInfo().type);
|
| + EXPECT_EQ(expectedType, controller->textInputType());
|
| + EXPECT_EQ(expectedType, controller->textInputInfo().type);
|
| webView->clearFocusedElement();
|
| - EXPECT_EQ(WebTextInputTypeNone, webView->textInputType());
|
| - EXPECT_EQ(WebTextInputTypeNone, webView->textInputInfo().type);
|
| + EXPECT_EQ(WebTextInputTypeNone, controller->textInputType());
|
| + EXPECT_EQ(WebTextInputTypeNone, controller->textInputInfo().type);
|
| }
|
|
|
| TEST_P(WebViewTest, TextInputType) {
|
| @@ -801,7 +804,10 @@ TEST_P(WebViewTest, TextInputInfoUpdateStyleAndLayout) {
|
| ->setIdAttribute("foo");
|
|
|
| // This should not DCHECK.
|
| - EXPECT_EQ(WebTextInputTypeText, webViewImpl->textInputInfo().type);
|
| + EXPECT_EQ(WebTextInputTypeText, webViewImpl->mainFrameImpl()
|
| + ->inputMethodController()
|
| + ->textInputInfo()
|
| + .type);
|
| }
|
|
|
| void WebViewTest::testInputMode(WebTextInputMode expectedInputMode,
|
| @@ -809,9 +815,13 @@ void WebViewTest::testInputMode(WebTextInputMode expectedInputMode,
|
| URLTestHelpers::registerMockedURLFromBaseURL(
|
| WebString::fromUTF8(m_baseURL.c_str()),
|
| WebString::fromUTF8(htmlFile.c_str()));
|
| - WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + htmlFile);
|
| - webView->setInitialFocus(false);
|
| - EXPECT_EQ(expectedInputMode, webView->textInputInfo().inputMode);
|
| + WebViewImpl* webViewImpl =
|
| + m_webViewHelper.initializeAndLoad(m_baseURL + htmlFile);
|
| + webViewImpl->setInitialFocus(false);
|
| + EXPECT_EQ(expectedInputMode, webViewImpl->mainFrameImpl()
|
| + ->inputMethodController()
|
| + ->textInputInfo()
|
| + .inputMode);
|
| }
|
|
|
| TEST_P(WebViewTest, InputMode) {
|
| @@ -856,9 +866,10 @@ TEST_P(WebViewTest, TextInputInfoWithReplacedElements) {
|
| URLTestHelpers::registerMockedURLLoad(toKURL(url), "div_with_image.html");
|
| URLTestHelpers::registerMockedURLLoad(toKURL("http://www.test.com/foo.png"),
|
| "white-1x1.png");
|
| - WebView* webView = m_webViewHelper.initializeAndLoad(url);
|
| - webView->setInitialFocus(false);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebViewImpl* webViewImpl = m_webViewHelper.initializeAndLoad(url);
|
| + webViewImpl->setInitialFocus(false);
|
| + WebTextInputInfo info =
|
| + webViewImpl->mainFrameImpl()->inputMethodController()->textInputInfo();
|
|
|
| EXPECT_EQ("foo\xef\xbf\xbc", info.value.utf8());
|
| }
|
| @@ -871,9 +882,11 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) {
|
| m_baseURL + "input_field_populated.html");
|
| webView->setInitialFocus(false);
|
| WebLocalFrameImpl* frame = webView->mainFrameImpl();
|
| + WebInputMethodControllerImpl* activeInputMethodController =
|
| + frame->inputMethodController();
|
| frame->setEditableSelectionOffsets(5, 13);
|
| EXPECT_EQ("56789abc", frame->selectionAsText());
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value);
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(13, info.selectionEnd);
|
| @@ -889,7 +902,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) {
|
| frame = webView->mainFrameImpl();
|
| frame->setEditableSelectionOffsets(8, 19);
|
| EXPECT_EQ("89abcdefghi", frame->selectionAsText());
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value);
|
| EXPECT_EQ(8, info.selectionStart);
|
| EXPECT_EQ(19, info.selectionEnd);
|
| @@ -948,7 +961,7 @@ TEST_P(WebViewTest, FinishComposingTextCursorPositionChange) {
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 3, 3);
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| @@ -957,7 +970,7 @@ TEST_P(WebViewTest, FinishComposingTextCursorPositionChange) {
|
|
|
| activeInputMethodController->finishComposingText(
|
| WebInputMethodController::KeepSelection);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| EXPECT_EQ(-1, info.compositionStart);
|
| @@ -965,7 +978,7 @@ TEST_P(WebViewTest, FinishComposingTextCursorPositionChange) {
|
|
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 3, 3);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helhellolo", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(6, info.selectionStart);
|
| EXPECT_EQ(6, info.selectionEnd);
|
| @@ -974,7 +987,7 @@ TEST_P(WebViewTest, FinishComposingTextCursorPositionChange) {
|
|
|
| activeInputMethodController->finishComposingText(
|
| WebInputMethodController::DoNotKeepSelection);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(8, info.selectionStart);
|
| EXPECT_EQ(8, info.selectionEnd);
|
| EXPECT_EQ(-1, info.compositionStart);
|
| @@ -995,7 +1008,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
|
|
| activeInputMethodController->commitText("hello", 0);
|
| activeInputMethodController->commitText("world", -5);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1009,7 +1022,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is on the left of composing text.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 0, 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1019,7 +1032,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is on the right of composing text.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 3, 3);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(8, info.selectionStart);
|
| EXPECT_EQ(8, info.selectionEnd);
|
| @@ -1029,7 +1042,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is between composing text and left boundary.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, -2, -2);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| @@ -1039,7 +1052,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is between composing text and right boundary.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 5, 5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(10, info.selectionStart);
|
| EXPECT_EQ(10, info.selectionEnd);
|
| @@ -1049,7 +1062,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is on the left boundary.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, -5, -5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1059,7 +1072,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret is on the right boundary.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 8, 8);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(13, info.selectionStart);
|
| EXPECT_EQ(13, info.selectionEnd);
|
| @@ -1070,7 +1083,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, -100,
|
| -100);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1080,7 +1093,7 @@ TEST_P(WebViewTest, SetCompositionForNewCaretPositions) {
|
| // Caret exceeds the right boundary.
|
| activeInputMethodController->setComposition(
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 100, 100);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloABCworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(13, info.selectionStart);
|
| EXPECT_EQ(13, info.selectionEnd);
|
| @@ -1101,7 +1114,7 @@ TEST_P(WebViewTest, SetCompositionWithEmptyText) {
|
| ->getActiveWebInputMethodController();
|
|
|
| activeInputMethodController->commitText("hello", 0);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1112,7 +1125,7 @@ TEST_P(WebViewTest, SetCompositionWithEmptyText) {
|
|
|
| activeInputMethodController->setComposition(WebString::fromUTF8(""),
|
| emptyUnderlines, 0, 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1121,7 +1134,7 @@ TEST_P(WebViewTest, SetCompositionWithEmptyText) {
|
|
|
| activeInputMethodController->setComposition(WebString::fromUTF8(""),
|
| emptyUnderlines, -2, -2);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| @@ -1143,7 +1156,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret is on the left of composing text.
|
| activeInputMethodController->commitText("ab", -2);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("ab", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1152,7 +1165,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret is on the right of composing text.
|
| activeInputMethodController->commitText("c", 1);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("cab", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(2, info.selectionStart);
|
| EXPECT_EQ(2, info.selectionEnd);
|
| @@ -1161,7 +1174,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret is on the left boundary.
|
| activeInputMethodController->commitText("def", -5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("cadefb", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1170,7 +1183,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret is on the right boundary.
|
| activeInputMethodController->commitText("g", 6);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("gcadefb", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(7, info.selectionStart);
|
| EXPECT_EQ(7, info.selectionEnd);
|
| @@ -1179,7 +1192,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret exceeds the left boundary.
|
| activeInputMethodController->commitText("hi", -100);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("gcadefbhi", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1188,7 +1201,7 @@ TEST_P(WebViewTest, CommitTextForNewCaretPositions) {
|
|
|
| // Caret exceeds the right boundary.
|
| activeInputMethodController->commitText("jk", 100);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("jkgcadefbhi", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(11, info.selectionStart);
|
| EXPECT_EQ(11, info.selectionEnd);
|
| @@ -1211,7 +1224,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
| WebVector<WebCompositionUnderline> emptyUnderlines;
|
| activeInputMethodController->setComposition(WebString::fromUTF8("abc"),
|
| emptyUnderlines, 0, 0);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("abc", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1221,7 +1234,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
| // Deletes ongoing composition, inserts the specified text and moves the
|
| // caret.
|
| activeInputMethodController->commitText("hello", -2);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| @@ -1230,7 +1243,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
|
|
| activeInputMethodController->setComposition(WebString::fromUTF8("abc"),
|
| emptyUnderlines, 0, 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helabclo", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(3, info.selectionStart);
|
| EXPECT_EQ(3, info.selectionEnd);
|
| @@ -1239,7 +1252,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
|
|
| // Deletes ongoing composition and moves the caret.
|
| activeInputMethodController->commitText("", 2);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1248,7 +1261,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
|
|
| // Inserts the specified text and moves the caret.
|
| activeInputMethodController->commitText("world", -5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| @@ -1257,7 +1270,7 @@ TEST_P(WebViewTest, CommitTextWhileComposing) {
|
|
|
| // Only moves the caret.
|
| activeInputMethodController->commitText("", 5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("helloworld", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(10, info.selectionStart);
|
| EXPECT_EQ(10, info.selectionEnd);
|
| @@ -1290,7 +1303,7 @@ TEST_P(WebViewTest, FinishCompositionDoesNotRevealSelection) {
|
| EXPECT_EQ(0, webView->mainFrame()->scrollOffset().width);
|
| EXPECT_LT(0, offsetHeight);
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = frame->inputMethodController()->textInputInfo();
|
| EXPECT_EQ("hello", std::string(info.value.utf8().data()));
|
|
|
| // Verify that the input field is not scrolled back into the viewport.
|
| @@ -1312,10 +1325,12 @@ TEST_P(WebViewTest, InsertNewLinePlacementAfterFinishComposingText) {
|
| WebVector<WebCompositionUnderline> emptyUnderlines;
|
|
|
| WebLocalFrameImpl* frame = webView->mainFrameImpl();
|
| + WebInputMethodController* activeInputMethodController =
|
| + frame->inputMethodController();
|
| frame->setEditableSelectionOffsets(4, 4);
|
| frame->setCompositionFromExistingText(8, 12, emptyUnderlines);
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz",
|
| std::string(info.value.utf8().data()));
|
| EXPECT_EQ(4, info.selectionStart);
|
| @@ -1323,11 +1338,9 @@ TEST_P(WebViewTest, InsertNewLinePlacementAfterFinishComposingText) {
|
| EXPECT_EQ(8, info.compositionStart);
|
| EXPECT_EQ(12, info.compositionEnd);
|
|
|
| - WebInputMethodController* activeInputMethodController =
|
| - frame->frameWidget()->getActiveWebInputMethodController();
|
| activeInputMethodController->finishComposingText(
|
| WebInputMethodController::KeepSelection);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(4, info.selectionStart);
|
| EXPECT_EQ(4, info.selectionEnd);
|
| EXPECT_EQ(-1, info.compositionStart);
|
| @@ -1336,7 +1349,7 @@ TEST_P(WebViewTest, InsertNewLinePlacementAfterFinishComposingText) {
|
| std::string compositionText("\n");
|
| activeInputMethodController->commitText(
|
| WebString::fromUTF8(compositionText.c_str()), 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| EXPECT_EQ(-1, info.compositionStart);
|
| @@ -1355,12 +1368,14 @@ TEST_P(WebViewTest, ExtendSelectionAndDelete) {
|
| webView->setInitialFocus(false);
|
| frame->setEditableSelectionOffsets(10, 10);
|
| frame->extendSelectionAndDelete(5, 8);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebInputMethodController* activeInputMethodController =
|
| + frame->inputMethodController();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("01234ijklmnopqrstuvwxyz", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
| frame->extendSelectionAndDelete(10, 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("ijklmnopqrstuvwxyz", std::string(info.value.utf8().data()));
|
| }
|
|
|
| @@ -1371,37 +1386,39 @@ TEST_P(WebViewTest, DeleteSurroundingText) {
|
| WebView* webView = m_webViewHelper.initializeAndLoad(
|
| m_baseURL + "input_field_populated.html");
|
| WebLocalFrameImpl* frame = toWebLocalFrameImpl(webView->mainFrame());
|
| + WebInputMethodController* activeInputMethodController =
|
| + frame->inputMethodController();
|
| webView->setInitialFocus(false);
|
|
|
| frame->setEditableSelectionOffsets(10, 10);
|
| frame->deleteSurroundingText(5, 8);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("01234ijklmnopqrstuvwxyz", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(5, info.selectionStart);
|
| EXPECT_EQ(5, info.selectionEnd);
|
|
|
| frame->setEditableSelectionOffsets(5, 10);
|
| frame->deleteSurroundingText(3, 5);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("01ijklmstuvwxyz", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(2, info.selectionStart);
|
| EXPECT_EQ(7, info.selectionEnd);
|
|
|
| frame->setEditableSelectionOffsets(5, 5);
|
| frame->deleteSurroundingText(10, 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("lmstuvwxyz", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
|
|
| frame->deleteSurroundingText(0, 20);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
|
|
| frame->deleteSurroundingText(10, 10);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ(0, info.selectionEnd);
|
| @@ -1417,16 +1434,18 @@ TEST_P(WebViewTest, SetCompositionFromExistingText) {
|
| WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1));
|
| underlines[0] = WebCompositionUnderline(0, 4, 0, false, 0);
|
| WebLocalFrameImpl* frame = webView->mainFrameImpl();
|
| + WebInputMethodController* activeInputMethodController =
|
| + frame->inputMethodController();
|
| frame->setEditableSelectionOffsets(4, 10);
|
| frame->setCompositionFromExistingText(8, 12, underlines);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(4, info.selectionStart);
|
| EXPECT_EQ(10, info.selectionEnd);
|
| EXPECT_EQ(8, info.compositionStart);
|
| EXPECT_EQ(12, info.compositionEnd);
|
| WebVector<WebCompositionUnderline> emptyUnderlines;
|
| frame->setCompositionFromExistingText(0, 0, emptyUnderlines);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(4, info.selectionStart);
|
| EXPECT_EQ(10, info.selectionEnd);
|
| EXPECT_EQ(-1, info.compositionStart);
|
| @@ -1449,13 +1468,13 @@ TEST_P(WebViewTest, SetCompositionFromExistingTextInTextArea) {
|
| std::string newLineText("\n");
|
| activeInputMethodController->commitText(
|
| WebString::fromUTF8(newLineText.c_str()), 0);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz",
|
| std::string(info.value.utf8().data()));
|
|
|
| frame->setEditableSelectionOffsets(31, 31);
|
| frame->setCompositionFromExistingText(30, 34, underlines);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz",
|
| std::string(info.value.utf8().data()));
|
| EXPECT_EQ(31, info.selectionStart);
|
| @@ -1466,7 +1485,7 @@ TEST_P(WebViewTest, SetCompositionFromExistingTextInTextArea) {
|
| std::string compositionText("yolo");
|
| activeInputMethodController->commitText(
|
| WebString::fromUTF8(compositionText.c_str()), 0);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopq\nrsyoloxyz",
|
| std::string(info.value.utf8().data()));
|
| EXPECT_EQ(34, info.selectionStart);
|
| @@ -1513,7 +1532,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
| WebString::fromUTF8(compositionTextSecond.c_str()), emptyUnderlines, 5,
|
| 5);
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(11, info.selectionStart);
|
| EXPECT_EQ(11, info.selectionEnd);
|
| @@ -1522,7 +1541,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
|
|
| WebLocalFrameImpl* frame = webView->mainFrameImpl();
|
| frame->setEditableSelectionOffsets(6, 6);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(6, info.selectionStart);
|
| EXPECT_EQ(6, info.selectionEnd);
|
| @@ -1530,7 +1549,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
| EXPECT_EQ(11, info.compositionEnd);
|
|
|
| frame->setEditableSelectionOffsets(8, 8);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(8, info.selectionStart);
|
| EXPECT_EQ(8, info.selectionEnd);
|
| @@ -1538,7 +1557,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
| EXPECT_EQ(11, info.compositionEnd);
|
|
|
| frame->setEditableSelectionOffsets(11, 11);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(11, info.selectionStart);
|
| EXPECT_EQ(11, info.selectionEnd);
|
| @@ -1546,7 +1565,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
| EXPECT_EQ(11, info.compositionEnd);
|
|
|
| frame->setEditableSelectionOffsets(6, 11);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(6, info.selectionStart);
|
| EXPECT_EQ(11, info.selectionEnd);
|
| @@ -1554,7 +1573,7 @@ TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
|
| EXPECT_EQ(11, info.compositionEnd);
|
|
|
| frame->setEditableSelectionOffsets(2, 2);
|
| - info = webView->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
|
| EXPECT_EQ(2, info.selectionStart);
|
| EXPECT_EQ(2, info.selectionEnd);
|
| @@ -2706,7 +2725,7 @@ TEST_P(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) {
|
| WebVector<WebCompositionUnderline> emptyUnderlines;
|
| frame->setEditableSelectionOffsets(4, 10);
|
| frame->setCompositionFromExistingText(8, 12, emptyUnderlines);
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = frame->inputMethodController()->textInputInfo();
|
| EXPECT_EQ(4, info.selectionStart);
|
| EXPECT_EQ(10, info.selectionEnd);
|
| EXPECT_EQ(8, info.compositionStart);
|
| @@ -2721,13 +2740,14 @@ TEST_P(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) {
|
| frame->setAutofillClient(0);
|
| }
|
|
|
| -static void verifySelectionAndComposition(WebView* webView,
|
| +static void verifySelectionAndComposition(WebViewImpl* webView,
|
| int selectionStart,
|
| int selectionEnd,
|
| int compositionStart,
|
| int compositionEnd,
|
| const char* failMessage) {
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info =
|
| + webView->mainFrameImpl()->inputMethodController()->textInputInfo();
|
| EXPECT_EQ(selectionStart, info.selectionStart) << failMessage;
|
| EXPECT_EQ(selectionEnd, info.selectionEnd) << failMessage;
|
| EXPECT_EQ(compositionStart, info.compositionStart) << failMessage;
|
| @@ -2801,7 +2821,7 @@ TEST_P(WebViewTest, FinishComposingTextTriggersAutofillTextChange) {
|
| WebString::fromUTF8(compositionText.c_str()), emptyUnderlines, 0,
|
| compositionText.length());
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(0, info.selectionStart);
|
| EXPECT_EQ((int)compositionText.length(), info.selectionEnd);
|
| EXPECT_EQ(0, info.compositionStart);
|
| @@ -2832,7 +2852,7 @@ TEST_P(WebViewTest, SetCompositionFromExistingTextTriggersAutofillTextChange) {
|
| client.clearChangeCounts();
|
| frame->setCompositionFromExistingText(8, 12, emptyUnderlines);
|
|
|
| - WebTextInputInfo info = webView->textInputInfo();
|
| + WebTextInputInfo info = frame->inputMethodController()->textInputInfo();
|
| EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz",
|
| std::string(info.value.utf8().data()));
|
| EXPECT_EQ(8, info.compositionStart);
|
| @@ -3498,6 +3518,8 @@ TEST_P(WebViewTest, TextInputFlags) {
|
| webViewImpl->setInitialFocus(false);
|
|
|
| WebLocalFrameImpl* frame = webViewImpl->mainFrameImpl();
|
| + WebInputMethodControllerImpl* activeInputMethodController =
|
| + frame->inputMethodController();
|
| Document* document = frame->frame()->document();
|
|
|
| // (A) <input>
|
| @@ -3509,7 +3531,7 @@ TEST_P(WebViewTest, TextInputFlags) {
|
| inputElement,
|
| FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
|
| webViewImpl->setFocus(true);
|
| - WebTextInputInfo info1 = webViewImpl->textInputInfo();
|
| + WebTextInputInfo info1 = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(WebTextInputFlagAutocompleteOff | WebTextInputFlagAutocorrectOff |
|
| WebTextInputFlagSpellcheckOff |
|
| WebTextInputFlagAutocapitalizeNone,
|
| @@ -3522,7 +3544,7 @@ TEST_P(WebViewTest, TextInputFlags) {
|
| inputElement,
|
| FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
|
| webViewImpl->setFocus(true);
|
| - WebTextInputInfo info2 = webViewImpl->textInputInfo();
|
| + WebTextInputInfo info2 = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(WebTextInputFlagAutocompleteOn | WebTextInputFlagAutocorrectOn |
|
| WebTextInputFlagSpellcheckOn |
|
| WebTextInputFlagAutocapitalizeSentences,
|
| @@ -3536,7 +3558,7 @@ TEST_P(WebViewTest, TextInputFlags) {
|
| textAreaElement,
|
| FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
|
| webViewImpl->setFocus(true);
|
| - WebTextInputInfo info3 = webViewImpl->textInputInfo();
|
| + WebTextInputInfo info3 = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ(WebTextInputFlagAutocapitalizeSentences, info3.flags);
|
|
|
| // (C) Verifies the WebTextInputInfo's don't equal.
|
| @@ -3580,7 +3602,7 @@ TEST_P(WebViewTest, NonUserInputTextUpdate) {
|
| // Emulate value change from script.
|
| inputElement->setValue("testA");
|
| EXPECT_TRUE(client.textIsUpdated());
|
| - WebTextInputInfo info = webViewImpl->textInputInfo();
|
| + WebTextInputInfo info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("testA", std::string(info.value.utf8().data()));
|
|
|
| // (A.2) Focused and user input modifies value.
|
| @@ -3593,7 +3615,7 @@ TEST_P(WebViewTest, NonUserInputTextUpdate) {
|
| activeInputMethodController->finishComposingText(
|
| WebInputMethodController::KeepSelection);
|
| EXPECT_FALSE(client.textIsUpdated());
|
| - info = webViewImpl->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("testA2", std::string(info.value.utf8().data()));
|
|
|
| // (A.3) Unfocused and value is changed by script.
|
| @@ -3618,7 +3640,7 @@ TEST_P(WebViewTest, NonUserInputTextUpdate) {
|
| EXPECT_EQ(document->focusedElement(), static_cast<Element*>(textAreaElement));
|
| textAreaElement->setValue("testB");
|
| EXPECT_TRUE(client.textIsUpdated());
|
| - info = webViewImpl->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("testB", std::string(info.value.utf8().data()));
|
|
|
| // (B.2) Focused and user input modifies value.
|
| @@ -3628,7 +3650,7 @@ TEST_P(WebViewTest, NonUserInputTextUpdate) {
|
| emptyUnderlines, 1, 1);
|
| activeInputMethodController->finishComposingText(
|
| WebInputMethodController::KeepSelection);
|
| - info = webViewImpl->textInputInfo();
|
| + info = activeInputMethodController->textInputInfo();
|
| EXPECT_EQ("testB2", std::string(info.value.utf8().data()));
|
|
|
| // (B.3) Unfocused and value is changed by script.
|
|
|