Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: third_party/WebKit/Source/web/tests/WebViewTest.cpp

Issue 1995333002: Handle newCursorPosition correctly for Android's commitText() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync. Almost the same to the previous patch. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 EXPECT_EQ(12, info.compositionEnd); 883 EXPECT_EQ(12, info.compositionEnd);
884 884
885 webView->confirmComposition(WebWidget::KeepSelection); 885 webView->confirmComposition(WebWidget::KeepSelection);
886 info = webView->textInputInfo(); 886 info = webView->textInputInfo();
887 EXPECT_EQ(4, info.selectionStart); 887 EXPECT_EQ(4, info.selectionStart);
888 EXPECT_EQ(4, info.selectionEnd); 888 EXPECT_EQ(4, info.selectionEnd);
889 EXPECT_EQ(-1, info.compositionStart); 889 EXPECT_EQ(-1, info.compositionStart);
890 EXPECT_EQ(-1, info.compositionEnd); 890 EXPECT_EQ(-1, info.compositionEnd);
891 891
892 std::string compositionText("\n"); 892 std::string compositionText("\n");
893 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str())); 893 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str()), 1) ;
894 info = webView->textInputInfo(); 894 info = webView->textInputInfo();
895 EXPECT_EQ(5, info.selectionStart); 895 EXPECT_EQ(5, info.selectionStart);
896 EXPECT_EQ(5, info.selectionEnd); 896 EXPECT_EQ(5, info.selectionEnd);
897 EXPECT_EQ(-1, info.compositionStart); 897 EXPECT_EQ(-1, info.compositionStart);
898 EXPECT_EQ(-1, info.compositionEnd); 898 EXPECT_EQ(-1, info.compositionEnd);
899 EXPECT_EQ("0123\n456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.u tf8().data())); 899 EXPECT_EQ("0123\n456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.u tf8().data()));
900 } 900 }
901 901
902 TEST_F(WebViewTest, ExtendSelectionAndDelete) 902 TEST_F(WebViewTest, ExtendSelectionAndDelete)
903 { 903 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 TEST_F(WebViewTest, SetCompositionFromExistingTextInTextArea) 943 TEST_F(WebViewTest, SetCompositionFromExistingTextInTextArea)
944 { 944 {
945 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("text_area_populated.html")); 945 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("text_area_populated.html"));
946 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "text_a rea_populated.html"); 946 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "text_a rea_populated.html");
947 webView->setInitialFocus(false); 947 webView->setInitialFocus(false);
948 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); 948 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1));
949 underlines[0] = WebCompositionUnderline(0, 4, 0, false, 0); 949 underlines[0] = WebCompositionUnderline(0, 4, 0, false, 0);
950 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 950 WebLocalFrameImpl* frame = webView->mainFrameImpl();
951 frame->setEditableSelectionOffsets(27, 27); 951 frame->setEditableSelectionOffsets(27, 27);
952 std::string newLineText("\n"); 952 std::string newLineText("\n");
953 webView->confirmComposition(WebString::fromUTF8(newLineText.c_str())); 953 webView->confirmComposition(WebString::fromUTF8(newLineText.c_str()), 1);
954 WebTextInputInfo info = webView->textInputInfo(); 954 WebTextInputInfo info = webView->textInputInfo();
955 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u tf8().data())); 955 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u tf8().data()));
956 956
957 frame->setEditableSelectionOffsets(31, 31); 957 frame->setEditableSelectionOffsets(31, 31);
958 frame->setCompositionFromExistingText(30, 34, underlines); 958 frame->setCompositionFromExistingText(30, 34, underlines);
959 info = webView->textInputInfo(); 959 info = webView->textInputInfo();
960 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u tf8().data())); 960 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u tf8().data()));
961 EXPECT_EQ(31, info.selectionStart); 961 EXPECT_EQ(31, info.selectionStart);
962 EXPECT_EQ(31, info.selectionEnd); 962 EXPECT_EQ(31, info.selectionEnd);
963 EXPECT_EQ(30, info.compositionStart); 963 EXPECT_EQ(30, info.compositionStart);
964 EXPECT_EQ(34, info.compositionEnd); 964 EXPECT_EQ(34, info.compositionEnd);
965 965
966 std::string compositionText("yolo"); 966 std::string compositionText("yolo");
967 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str())); 967 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str()), 1) ;
968 info = webView->textInputInfo(); 968 info = webView->textInputInfo();
969 EXPECT_EQ("0123456789abcdefghijklmnopq\nrsyoloxyz", std::string(info.value.u tf8().data())); 969 EXPECT_EQ("0123456789abcdefghijklmnopq\nrsyoloxyz", std::string(info.value.u tf8().data()));
970 EXPECT_EQ(34, info.selectionStart); 970 EXPECT_EQ(34, info.selectionStart);
971 EXPECT_EQ(34, info.selectionEnd); 971 EXPECT_EQ(34, info.selectionEnd);
972 EXPECT_EQ(-1, info.compositionStart); 972 EXPECT_EQ(-1, info.compositionStart);
973 EXPECT_EQ(-1, info.compositionEnd); 973 EXPECT_EQ(-1, info.compositionEnd);
974 } 974 }
975 975
976 TEST_F(WebViewTest, SetCompositionFromExistingTextInRichText) 976 TEST_F(WebViewTest, SetCompositionFromExistingTextInRichText)
977 { 977 {
(...skipping 13 matching lines...) Expand all
991 TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) 991 TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition)
992 { 992 {
993 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("input_field_populated.html")); 993 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("input_field_populated.html"));
994 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_ field_populated.html"); 994 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_ field_populated.html");
995 webView->setInitialFocus(false); 995 webView->setInitialFocus(false);
996 996
997 std::string compositionTextFirst("hello "); 997 std::string compositionTextFirst("hello ");
998 std::string compositionTextSecond("world"); 998 std::string compositionTextSecond("world");
999 WebVector<WebCompositionUnderline> emptyUnderlines; 999 WebVector<WebCompositionUnderline> emptyUnderlines;
1000 1000
1001 webView->confirmComposition(WebString::fromUTF8(compositionTextFirst.c_str() )); 1001 webView->confirmComposition(WebString::fromUTF8(compositionTextFirst.c_str() ), 1);
1002 webView->setComposition(WebString::fromUTF8(compositionTextSecond.c_str()), emptyUnderlines, 5, 5); 1002 webView->setComposition(WebString::fromUTF8(compositionTextSecond.c_str()), emptyUnderlines, 5, 5);
1003 1003
1004 WebTextInputInfo info = webView->textInputInfo(); 1004 WebTextInputInfo info = webView->textInputInfo();
1005 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); 1005 EXPECT_EQ("hello world", std::string(info.value.utf8().data()));
1006 EXPECT_EQ(11, info.selectionStart); 1006 EXPECT_EQ(11, info.selectionStart);
1007 EXPECT_EQ(11, info.selectionEnd); 1007 EXPECT_EQ(11, info.selectionEnd);
1008 EXPECT_EQ(6, info.compositionStart); 1008 EXPECT_EQ(6, info.compositionStart);
1009 EXPECT_EQ(11, info.compositionEnd); 1009 EXPECT_EQ(11, info.compositionEnd);
1010 1010
1011 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 1011 WebLocalFrameImpl* frame = webView->mainFrameImpl();
(...skipping 2190 matching lines...) Expand 10 before | Expand all | Expand 10 after
3202 3202
3203 TEST_F(WebViewTest, PasswordFieldEditingIsUserGesture) 3203 TEST_F(WebViewTest, PasswordFieldEditingIsUserGesture)
3204 { 3204 {
3205 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("input_field_password.html")); 3205 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("input_field_password.html"));
3206 MockAutofillClient client; 3206 MockAutofillClient client;
3207 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_ field_password.html", true); 3207 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_ field_password.html", true);
3208 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 3208 WebLocalFrameImpl* frame = webView->mainFrameImpl();
3209 frame->setAutofillClient(&client); 3209 frame->setAutofillClient(&client);
3210 webView->setInitialFocus(false); 3210 webView->setInitialFocus(false);
3211 3211
3212 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str()))); 3212 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str()), 1));
3213 EXPECT_EQ(1, client.textChangesFromUserGesture()); 3213 EXPECT_EQ(1, client.textChangesFromUserGesture());
3214 EXPECT_FALSE(UserGestureIndicator::processingUserGesture()); 3214 EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
3215 frame->setAutofillClient(0); 3215 frame->setAutofillClient(0);
3216 } 3216 }
3217 3217
3218 // Verify that a WebView created with a ScopedPageLoadDeferrer already on the 3218 // Verify that a WebView created with a ScopedPageLoadDeferrer already on the
3219 // stack defers its loads. 3219 // stack defers its loads.
3220 TEST_F(WebViewTest, CreatedDuringLoadDeferral) 3220 TEST_F(WebViewTest, CreatedDuringLoadDeferral)
3221 { 3221 {
3222 { 3222 {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
3280 EXPECT_TRUE(webView->page()->defersLoading()); 3280 EXPECT_TRUE(webView->page()->defersLoading());
3281 } 3281 }
3282 3282
3283 EXPECT_TRUE(webView->page()->defersLoading()); 3283 EXPECT_TRUE(webView->page()->defersLoading());
3284 } 3284 }
3285 3285
3286 EXPECT_FALSE(webView->page()->defersLoading()); 3286 EXPECT_FALSE(webView->page()->defersLoading());
3287 } 3287 }
3288 3288
3289 } // namespace blink 3289 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698