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 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1543 EXPECT_EQ(6, info.selectionStart); | 1543 EXPECT_EQ(6, info.selectionStart); |
1544 EXPECT_EQ(11, info.selectionEnd); | 1544 EXPECT_EQ(11, info.selectionEnd); |
1545 EXPECT_EQ(6, info.compositionStart); | 1545 EXPECT_EQ(6, info.compositionStart); |
1546 EXPECT_EQ(11, info.compositionEnd); | 1546 EXPECT_EQ(11, info.compositionEnd); |
1547 | 1547 |
1548 frame->setEditableSelectionOffsets(2, 2); | 1548 frame->setEditableSelectionOffsets(2, 2); |
1549 info = activeInputMethodController->textInputInfo(); | 1549 info = activeInputMethodController->textInputInfo(); |
1550 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); | 1550 EXPECT_EQ("hello world", std::string(info.value.utf8().data())); |
1551 EXPECT_EQ(2, info.selectionStart); | 1551 EXPECT_EQ(2, info.selectionStart); |
1552 EXPECT_EQ(2, info.selectionEnd); | 1552 EXPECT_EQ(2, info.selectionEnd); |
1553 EXPECT_EQ(-1, info.compositionStart); | 1553 // Composition range should be reset by browser process or keyboard apps. |
1554 EXPECT_EQ(-1, info.compositionEnd); | 1554 EXPECT_EQ(6, info.compositionStart); |
| 1555 EXPECT_EQ(11, info.compositionEnd); |
1555 } | 1556 } |
1556 | 1557 |
1557 TEST_P(WebViewTest, IsSelectionAnchorFirst) { | 1558 TEST_P(WebViewTest, IsSelectionAnchorFirst) { |
1558 registerMockedHttpURLLoad("input_field_populated.html"); | 1559 registerMockedHttpURLLoad("input_field_populated.html"); |
1559 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( | 1560 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( |
1560 m_baseURL + "input_field_populated.html"); | 1561 m_baseURL + "input_field_populated.html"); |
1561 WebLocalFrame* frame = webView->mainFrameImpl(); | 1562 WebLocalFrame* frame = webView->mainFrameImpl(); |
1562 | 1563 |
1563 webView->setInitialFocus(false); | 1564 webView->setInitialFocus(false); |
1564 frame->setEditableSelectionOffsets(4, 10); | 1565 frame->setEditableSelectionOffsets(4, 10); |
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2358 WebInputMethodController* activeInputMethodController = | 2359 WebInputMethodController* activeInputMethodController = |
2359 frame->frameWidget()->getActiveWebInputMethodController(); | 2360 frame->frameWidget()->getActiveWebInputMethodController(); |
2360 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, target)); | 2361 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, target)); |
2361 WebVector<WebCompositionUnderline> emptyUnderlines; | 2362 WebVector<WebCompositionUnderline> emptyUnderlines; |
2362 frame->setEditableSelectionOffsets(8, 8); | 2363 frame->setEditableSelectionOffsets(8, 8); |
2363 EXPECT_TRUE(activeInputMethodController->setComposition( | 2364 EXPECT_TRUE(activeInputMethodController->setComposition( |
2364 "12345", emptyUnderlines, 8, 13)); | 2365 "12345", emptyUnderlines, 8, 13)); |
2365 EXPECT_TRUE(frame->frame()->inputMethodController().hasComposition()); | 2366 EXPECT_TRUE(frame->frame()->inputMethodController().hasComposition()); |
2366 EXPECT_EQ("", std::string(frame->selectionAsText().utf8().data())); | 2367 EXPECT_EQ("", std::string(frame->selectionAsText().utf8().data())); |
2367 EXPECT_FALSE(frame->frame()->selection().isHandleVisible()); | 2368 EXPECT_FALSE(frame->frame()->selection().isHandleVisible()); |
| 2369 EXPECT_TRUE(frame->frame()->inputMethodController().hasComposition()); |
2368 | 2370 |
2369 EXPECT_TRUE(tapElementById(WebInputEvent::GestureLongPress, target)); | 2371 EXPECT_TRUE(tapElementById(WebInputEvent::GestureLongPress, target)); |
2370 EXPECT_EQ("testword12345", | 2372 EXPECT_EQ("testword12345", |
2371 std::string(frame->selectionAsText().utf8().data())); | 2373 std::string(frame->selectionAsText().utf8().data())); |
2372 EXPECT_TRUE(frame->frame()->selection().isHandleVisible()); | 2374 EXPECT_TRUE(frame->frame()->selection().isHandleVisible()); |
| 2375 EXPECT_TRUE(frame->frame()->inputMethodController().hasComposition()); |
2373 | 2376 |
2374 // Check that finishComposingText(KeepSelection) does not dismiss handles. | 2377 // Check that finishComposingText(KeepSelection) does not dismiss handles. |
2375 activeInputMethodController->finishComposingText( | 2378 activeInputMethodController->finishComposingText( |
2376 WebInputMethodController::KeepSelection); | 2379 WebInputMethodController::KeepSelection); |
2377 EXPECT_TRUE(frame->frame()->selection().isHandleVisible()); | 2380 EXPECT_TRUE(frame->frame()->selection().isHandleVisible()); |
2378 } | 2381 } |
2379 | 2382 |
2380 #if !OS(MACOSX) | 2383 #if !OS(MACOSX) |
2381 TEST_P(WebViewTest, TouchDoesntSelectEmptyTextarea) { | 2384 TEST_P(WebViewTest, TouchDoesntSelectEmptyTextarea) { |
2382 registerMockedHttpURLLoad("longpress_textarea.html"); | 2385 registerMockedHttpURLLoad("longpress_textarea.html"); |
(...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4235 EXPECT_EQ(expectedWidth, vwElement->offsetWidth()); | 4238 EXPECT_EQ(expectedWidth, vwElement->offsetWidth()); |
4236 EXPECT_EQ(expectedHeight, vwElement->offsetHeight()); | 4239 EXPECT_EQ(expectedHeight, vwElement->offsetHeight()); |
4237 | 4240 |
4238 webView->resize(WebSize(800, 600)); | 4241 webView->resize(WebSize(800, 600)); |
4239 frame->printEnd(); | 4242 frame->printEnd(); |
4240 | 4243 |
4241 EXPECT_EQ(800, vwElement->offsetWidth()); | 4244 EXPECT_EQ(800, vwElement->offsetWidth()); |
4242 } | 4245 } |
4243 | 4246 |
4244 } // namespace blink | 4247 } // namespace blink |
OLD | NEW |