OLD | NEW |
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 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str())); | 676 webView->confirmComposition(WebString::fromUTF8(compositionText.c_str())); |
677 info = webView->textInputInfo(); | 677 info = webView->textInputInfo(); |
678 EXPECT_EQ("0123456789abcdefghijklmnopq\nrsyoloxyz", std::string(info.value.u
tf8().data())); | 678 EXPECT_EQ("0123456789abcdefghijklmnopq\nrsyoloxyz", std::string(info.value.u
tf8().data())); |
679 EXPECT_EQ(34, info.selectionStart); | 679 EXPECT_EQ(34, info.selectionStart); |
680 EXPECT_EQ(34, info.selectionEnd); | 680 EXPECT_EQ(34, info.selectionEnd); |
681 EXPECT_EQ(-1, info.compositionStart); | 681 EXPECT_EQ(-1, info.compositionStart); |
682 EXPECT_EQ(-1, info.compositionEnd); | 682 EXPECT_EQ(-1, info.compositionEnd); |
683 webView->close(); | 683 webView->close(); |
684 } | 684 } |
685 | 685 |
| 686 TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) |
| 687 { |
| 688 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
| 689 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); |
| 690 webView->setInitialFocus(false); |
| 691 |
| 692 std::string compositionTextFirst("hello "); |
| 693 std::string compositionTextSecond("world"); |
| 694 WebVector<WebCompositionUnderline> emptyUnderlines; |
| 695 |
| 696 webView->confirmComposition(WebString::fromUTF8(compositionTextFirst.c_str()
)); |
| 697 webView->setComposition(WebString::fromUTF8(compositionTextSecond.c_str()),
emptyUnderlines, 5, 5); |
| 698 |
| 699 WebTextInputInfo info = webView->textInputInfo(); |
| 700 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 701 EXPECT_EQ(11, info.selectionStart); |
| 702 EXPECT_EQ(11, info.selectionEnd); |
| 703 EXPECT_EQ(6, info.compositionStart); |
| 704 EXPECT_EQ(11, info.compositionEnd); |
| 705 |
| 706 webView->setEditableSelectionOffsets(6, 6); |
| 707 info = webView->textInputInfo(); |
| 708 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 709 EXPECT_EQ(6, info.selectionStart); |
| 710 EXPECT_EQ(6, info.selectionEnd); |
| 711 EXPECT_EQ(6, info.compositionStart); |
| 712 EXPECT_EQ(11, info.compositionEnd); |
| 713 |
| 714 webView->setEditableSelectionOffsets(8, 8); |
| 715 info = webView->textInputInfo(); |
| 716 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 717 EXPECT_EQ(8, info.selectionStart); |
| 718 EXPECT_EQ(8, info.selectionEnd); |
| 719 EXPECT_EQ(6, info.compositionStart); |
| 720 EXPECT_EQ(11, info.compositionEnd); |
| 721 |
| 722 webView->setEditableSelectionOffsets(11, 11); |
| 723 info = webView->textInputInfo(); |
| 724 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 725 EXPECT_EQ(11, info.selectionStart); |
| 726 EXPECT_EQ(11, info.selectionEnd); |
| 727 EXPECT_EQ(6, info.compositionStart); |
| 728 EXPECT_EQ(11, info.compositionEnd); |
| 729 |
| 730 webView->setEditableSelectionOffsets(6, 11); |
| 731 info = webView->textInputInfo(); |
| 732 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 733 EXPECT_EQ(6, info.selectionStart); |
| 734 EXPECT_EQ(11, info.selectionEnd); |
| 735 EXPECT_EQ(6, info.compositionStart); |
| 736 EXPECT_EQ(11, info.compositionEnd); |
| 737 |
| 738 webView->setEditableSelectionOffsets(2, 2); |
| 739 info = webView->textInputInfo(); |
| 740 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
| 741 EXPECT_EQ(2, info.selectionStart); |
| 742 EXPECT_EQ(2, info.selectionEnd); |
| 743 EXPECT_EQ(-1, info.compositionStart); |
| 744 EXPECT_EQ(-1, info.compositionEnd); |
| 745 webView->close(); |
| 746 } |
| 747 |
686 TEST_F(WebViewTest, IsSelectionAnchorFirst) | 748 TEST_F(WebViewTest, IsSelectionAnchorFirst) |
687 { | 749 { |
688 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 750 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
689 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 751 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); |
690 WebFrame* frame = webView->mainFrame(); | 752 WebFrame* frame = webView->mainFrame(); |
691 | 753 |
692 webView->setInitialFocus(false); | 754 webView->setInitialFocus(false); |
693 webView->setEditableSelectionOffsets(4, 10); | 755 webView->setEditableSelectionOffsets(4, 10); |
694 EXPECT_TRUE(webView->isSelectionAnchorFirst()); | 756 EXPECT_TRUE(webView->isSelectionAnchorFirst()); |
695 WebRect anchor; | 757 WebRect anchor; |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1145 WebHelperPluginImpl* helperPlugin = webViewImpl->createHelperPlugin("dummy-p
lugin-type", frame->document()); | 1207 WebHelperPluginImpl* helperPlugin = webViewImpl->createHelperPlugin("dummy-p
lugin-type", frame->document()); |
1146 EXPECT_TRUE(helperPlugin); | 1208 EXPECT_TRUE(helperPlugin); |
1147 EXPECT_EQ(0, helperPlugin->getPlugin()); // Invalid plugin type means no plu
gin. | 1209 EXPECT_EQ(0, helperPlugin->getPlugin()); // Invalid plugin type means no plu
gin. |
1148 | 1210 |
1149 webViewImpl->closeHelperPluginSoon(helperPlugin); | 1211 webViewImpl->closeHelperPluginSoon(helperPlugin); |
1150 | 1212 |
1151 webViewImpl->close(); | 1213 webViewImpl->close(); |
1152 } | 1214 } |
1153 | 1215 |
1154 } | 1216 } |
OLD | NEW |