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 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 protected: | 217 protected: |
218 void testAutoResize(const WebSize& minAutoResize, const WebSize& maxAutoResi
ze, | 218 void testAutoResize(const WebSize& minAutoResize, const WebSize& maxAutoResi
ze, |
219 const std::string& pageWidth, const std::string& pageHei
ght, | 219 const std::string& pageWidth, const std::string& pageHei
ght, |
220 int expectedWidth, int expectedHeight, | 220 int expectedWidth, int expectedHeight, |
221 HorizontalScrollbarState expectedHorizontalState, Vertic
alScrollbarState expectedVerticalState); | 221 HorizontalScrollbarState expectedHorizontalState, Vertic
alScrollbarState expectedVerticalState); |
222 | 222 |
223 void testTextInputType(WebTextInputType expectedType, const std::string& htm
lFile); | 223 void testTextInputType(WebTextInputType expectedType, const std::string& htm
lFile); |
224 void testInputMode(const WebString& expectedInputMode, const std::string& ht
mlFile); | 224 void testInputMode(const WebString& expectedInputMode, const std::string& ht
mlFile); |
225 | 225 |
226 std::string m_baseURL; | 226 std::string m_baseURL; |
| 227 FrameTestHelpers::WebViewHelper m_webViewHelper; |
227 }; | 228 }; |
228 | 229 |
229 TEST_F(WebViewTest, SetBaseBackgroundColor) | 230 TEST_F(WebViewTest, SetBaseBackgroundColor) |
230 { | 231 { |
231 const WebColor kWhite = 0xFFFFFFFF; | 232 const WebColor kWhite = 0xFFFFFFFF; |
232 const WebColor kBlue = 0xFF0000FF; | 233 const WebColor kBlue = 0xFF0000FF; |
233 const WebColor kDarkCyan = 0xFF227788; | 234 const WebColor kDarkCyan = 0xFF227788; |
234 const WebColor kTranslucentPutty = 0x80BFB196; | 235 const WebColor kTranslucentPutty = 0x80BFB196; |
235 | 236 |
236 WebView* webView = FrameTestHelpers::createWebView(); | 237 WebView* webView = m_webViewHelper.initialize(); |
237 EXPECT_EQ(kWhite, webView->backgroundColor()); | 238 EXPECT_EQ(kWhite, webView->backgroundColor()); |
238 | 239 |
239 webView->setBaseBackgroundColor(kBlue); | 240 webView->setBaseBackgroundColor(kBlue); |
240 EXPECT_EQ(kBlue, webView->backgroundColor()); | 241 EXPECT_EQ(kBlue, webView->backgroundColor()); |
241 | 242 |
242 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); | 243 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); |
243 webView->mainFrame()->loadHTMLString( | 244 webView->mainFrame()->loadHTMLString( |
244 "<html><head><style>body {background-color:#227788}</style></head></html
>", baseURL); | 245 "<html><head><style>body {background-color:#227788}</style></head></html
>", baseURL); |
245 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 246 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
246 EXPECT_EQ(kDarkCyan, webView->backgroundColor()); | 247 EXPECT_EQ(kDarkCyan, webView->backgroundColor()); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 testInputMode(WebString("verbatim"), "input_mode_default_verbatim.html"); | 472 testInputMode(WebString("verbatim"), "input_mode_default_verbatim.html"); |
472 testInputMode(WebString("verbatim"), "input_mode_type_text_verbatim.html"); | 473 testInputMode(WebString("verbatim"), "input_mode_type_text_verbatim.html"); |
473 testInputMode(WebString("verbatim"), "input_mode_type_search_verbatim.html")
; | 474 testInputMode(WebString("verbatim"), "input_mode_type_search_verbatim.html")
; |
474 testInputMode(WebString(), "input_mode_type_url_verbatim.html"); | 475 testInputMode(WebString(), "input_mode_type_url_verbatim.html"); |
475 testInputMode(WebString("verbatim"), "input_mode_textarea_verbatim.html"); | 476 testInputMode(WebString("verbatim"), "input_mode_textarea_verbatim.html"); |
476 } | 477 } |
477 | 478 |
478 TEST_F(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) | 479 TEST_F(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) |
479 { | 480 { |
480 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 481 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
481 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 482 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
482 webView->setInitialFocus(false); | 483 webView->setInitialFocus(false); |
483 webView->setEditableSelectionOffsets(5, 13); | 484 webView->setEditableSelectionOffsets(5, 13); |
484 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); | 485 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); |
485 EXPECT_EQ("56789abc", frame->selectionAsText()); | 486 EXPECT_EQ("56789abc", frame->selectionAsText()); |
486 WebTextInputInfo info = webView->textInputInfo(); | 487 WebTextInputInfo info = webView->textInputInfo(); |
487 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value); | 488 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value); |
488 EXPECT_EQ(5, info.selectionStart); | 489 EXPECT_EQ(5, info.selectionStart); |
489 EXPECT_EQ(13, info.selectionEnd); | 490 EXPECT_EQ(13, info.selectionEnd); |
490 EXPECT_EQ(-1, info.compositionStart); | 491 EXPECT_EQ(-1, info.compositionStart); |
491 EXPECT_EQ(-1, info.compositionEnd); | 492 EXPECT_EQ(-1, info.compositionEnd); |
492 webView->close(); | 493 webView->close(); |
493 | 494 |
494 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("content_editable_populated.html")); | 495 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("content_editable_populated.html")); |
495 webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "content_editab
le_populated.html"); | 496 m_webViewHelper.reset(); |
| 497 webView = m_webViewHelper.initializeAndLoad(m_baseURL + "content_editable_po
pulated.html"); |
496 webView->setInitialFocus(false); | 498 webView->setInitialFocus(false); |
497 webView->setEditableSelectionOffsets(8, 19); | 499 webView->setEditableSelectionOffsets(8, 19); |
498 frame = toWebFrameImpl(webView->mainFrame()); | 500 frame = toWebFrameImpl(webView->mainFrame()); |
499 EXPECT_EQ("89abcdefghi", frame->selectionAsText()); | 501 EXPECT_EQ("89abcdefghi", frame->selectionAsText()); |
500 info = webView->textInputInfo(); | 502 info = webView->textInputInfo(); |
501 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value); | 503 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", info.value); |
502 EXPECT_EQ(8, info.selectionStart); | 504 EXPECT_EQ(8, info.selectionStart); |
503 EXPECT_EQ(19, info.selectionEnd); | 505 EXPECT_EQ(19, info.selectionEnd); |
504 EXPECT_EQ(-1, info.compositionStart); | 506 EXPECT_EQ(-1, info.compositionStart); |
505 EXPECT_EQ(-1, info.compositionEnd); | 507 EXPECT_EQ(-1, info.compositionEnd); |
506 webView->close(); | 508 webView->close(); |
507 } | 509 } |
508 | 510 |
509 TEST_F(WebViewTest, ConfirmCompositionCursorPositionChange) | 511 TEST_F(WebViewTest, ConfirmCompositionCursorPositionChange) |
510 { | 512 { |
511 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 513 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
512 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 514 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
513 webView->setInitialFocus(false); | 515 webView->setInitialFocus(false); |
514 | 516 |
515 // Set up a composition that needs to be committed. | 517 // Set up a composition that needs to be committed. |
516 std::string compositionText("hello"); | 518 std::string compositionText("hello"); |
517 | 519 |
518 WebVector<WebCompositionUnderline> emptyUnderlines; | 520 WebVector<WebCompositionUnderline> emptyUnderlines; |
519 webView->setComposition(WebString::fromUTF8(compositionText.c_str()), emptyU
nderlines, 3, 3); | 521 webView->setComposition(WebString::fromUTF8(compositionText.c_str()), emptyU
nderlines, 3, 3); |
520 | 522 |
521 WebTextInputInfo info = webView->textInputInfo(); | 523 WebTextInputInfo info = webView->textInputInfo(); |
522 EXPECT_EQ("hello", std::string(info.value.utf8().data())); | 524 EXPECT_EQ("hello", std::string(info.value.utf8().data())); |
(...skipping 23 matching lines...) Expand all Loading... |
546 EXPECT_EQ(8, info.selectionEnd); | 548 EXPECT_EQ(8, info.selectionEnd); |
547 EXPECT_EQ(-1, info.compositionStart); | 549 EXPECT_EQ(-1, info.compositionStart); |
548 EXPECT_EQ(-1, info.compositionEnd); | 550 EXPECT_EQ(-1, info.compositionEnd); |
549 | 551 |
550 webView->close(); | 552 webView->close(); |
551 } | 553 } |
552 | 554 |
553 TEST_F(WebViewTest, InsertNewLinePlacementAfterConfirmComposition) | 555 TEST_F(WebViewTest, InsertNewLinePlacementAfterConfirmComposition) |
554 { | 556 { |
555 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("text_area_populated.html")); | 557 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("text_area_populated.html")); |
556 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "text_
area_populated.html"); | 558 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "text_area_
populated.html"); |
557 webView->setInitialFocus(false); | 559 webView->setInitialFocus(false); |
558 | 560 |
559 WebVector<WebCompositionUnderline> emptyUnderlines; | 561 WebVector<WebCompositionUnderline> emptyUnderlines; |
560 | 562 |
561 webView->setEditableSelectionOffsets(4, 4); | 563 webView->setEditableSelectionOffsets(4, 4); |
562 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); | 564 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); |
563 | 565 |
564 WebTextInputInfo info = webView->textInputInfo(); | 566 WebTextInputInfo info = webView->textInputInfo(); |
565 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.utf
8().data())); | 567 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.utf
8().data())); |
566 EXPECT_EQ(4, info.selectionStart); | 568 EXPECT_EQ(4, info.selectionStart); |
(...skipping 18 matching lines...) Expand all Loading... |
585 EXPECT_EQ("0123\n456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.u
tf8().data())); | 587 EXPECT_EQ("0123\n456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.u
tf8().data())); |
586 | 588 |
587 webView->close(); | 589 webView->close(); |
588 } | 590 } |
589 | 591 |
590 TEST_F(WebViewTest, FormChange) | 592 TEST_F(WebViewTest, FormChange) |
591 { | 593 { |
592 FormChangeWebViewClient client; | 594 FormChangeWebViewClient client; |
593 client.reset(); | 595 client.reset(); |
594 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_set_value_while_focused.html")); | 596 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_set_value_while_focused.html")); |
595 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_set_value_while_focused.html", true, 0, &client); | 597 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_set_value_while_focused.html", true, 0, &client); |
596 EXPECT_TRUE(client.called()); | 598 EXPECT_TRUE(client.called()); |
597 EXPECT_TRUE(client.focused()); | 599 EXPECT_TRUE(client.focused()); |
598 client.reset(); | 600 client.reset(); |
| 601 m_webViewHelper.reset(); |
599 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_set_value_while_not_focused.html")); | 602 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_set_value_while_not_focused.html")); |
600 webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input_field_se
t_value_while_not_focused.html", true, 0, &client); | 603 webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_field_set_val
ue_while_not_focused.html", true, 0, &client); |
601 EXPECT_TRUE(client.called()); | 604 EXPECT_TRUE(client.called()); |
602 EXPECT_FALSE(client.focused()); | 605 EXPECT_FALSE(client.focused()); |
603 webView->close(); | 606 webView->close(); |
604 } | 607 } |
605 | 608 |
606 TEST_F(WebViewTest, ExtendSelectionAndDelete) | 609 TEST_F(WebViewTest, ExtendSelectionAndDelete) |
607 { | 610 { |
608 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 611 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
609 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 612 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
610 webView->setInitialFocus(false); | 613 webView->setInitialFocus(false); |
611 webView->setEditableSelectionOffsets(10, 10); | 614 webView->setEditableSelectionOffsets(10, 10); |
612 webView->extendSelectionAndDelete(5, 8); | 615 webView->extendSelectionAndDelete(5, 8); |
613 WebTextInputInfo info = webView->textInputInfo(); | 616 WebTextInputInfo info = webView->textInputInfo(); |
614 EXPECT_EQ("01234ijklmnopqrstuvwxyz", std::string(info.value.utf8().data())); | 617 EXPECT_EQ("01234ijklmnopqrstuvwxyz", std::string(info.value.utf8().data())); |
615 EXPECT_EQ(5, info.selectionStart); | 618 EXPECT_EQ(5, info.selectionStart); |
616 EXPECT_EQ(5, info.selectionEnd); | 619 EXPECT_EQ(5, info.selectionEnd); |
617 webView->extendSelectionAndDelete(10, 0); | 620 webView->extendSelectionAndDelete(10, 0); |
618 info = webView->textInputInfo(); | 621 info = webView->textInputInfo(); |
619 EXPECT_EQ("ijklmnopqrstuvwxyz", std::string(info.value.utf8().data())); | 622 EXPECT_EQ("ijklmnopqrstuvwxyz", std::string(info.value.utf8().data())); |
620 webView->close(); | 623 webView->close(); |
621 } | 624 } |
622 | 625 |
623 TEST_F(WebViewTest, SetCompositionFromExistingText) | 626 TEST_F(WebViewTest, SetCompositionFromExistingText) |
624 { | 627 { |
625 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 628 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
626 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 629 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
627 webView->setInitialFocus(false); | 630 webView->setInitialFocus(false); |
628 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); | 631 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); |
629 underlines[0] = WebKit::WebCompositionUnderline(0, 4, 0, false); | 632 underlines[0] = WebKit::WebCompositionUnderline(0, 4, 0, false); |
630 webView->setEditableSelectionOffsets(4, 10); | 633 webView->setEditableSelectionOffsets(4, 10); |
631 webView->setCompositionFromExistingText(8, 12, underlines); | 634 webView->setCompositionFromExistingText(8, 12, underlines); |
632 WebVector<WebCompositionUnderline> underlineResults = toWebViewImpl(webView)
->compositionUnderlines(); | 635 WebVector<WebCompositionUnderline> underlineResults = toWebViewImpl(webView)
->compositionUnderlines(); |
633 EXPECT_EQ(8u, underlineResults[0].startOffset); | 636 EXPECT_EQ(8u, underlineResults[0].startOffset); |
634 EXPECT_EQ(12u, underlineResults[0].endOffset); | 637 EXPECT_EQ(12u, underlineResults[0].endOffset); |
635 WebTextInputInfo info = webView->textInputInfo(); | 638 WebTextInputInfo info = webView->textInputInfo(); |
636 EXPECT_EQ(4, info.selectionStart); | 639 EXPECT_EQ(4, info.selectionStart); |
637 EXPECT_EQ(10, info.selectionEnd); | 640 EXPECT_EQ(10, info.selectionEnd); |
638 EXPECT_EQ(8, info.compositionStart); | 641 EXPECT_EQ(8, info.compositionStart); |
639 EXPECT_EQ(12, info.compositionEnd); | 642 EXPECT_EQ(12, info.compositionEnd); |
640 WebVector<WebCompositionUnderline> emptyUnderlines; | 643 WebVector<WebCompositionUnderline> emptyUnderlines; |
641 webView->setCompositionFromExistingText(0, 0, emptyUnderlines); | 644 webView->setCompositionFromExistingText(0, 0, emptyUnderlines); |
642 info = webView->textInputInfo(); | 645 info = webView->textInputInfo(); |
643 EXPECT_EQ(4, info.selectionStart); | 646 EXPECT_EQ(4, info.selectionStart); |
644 EXPECT_EQ(10, info.selectionEnd); | 647 EXPECT_EQ(10, info.selectionEnd); |
645 EXPECT_EQ(-1, info.compositionStart); | 648 EXPECT_EQ(-1, info.compositionStart); |
646 EXPECT_EQ(-1, info.compositionEnd); | 649 EXPECT_EQ(-1, info.compositionEnd); |
647 webView->close(); | 650 webView->close(); |
648 } | 651 } |
649 | 652 |
650 TEST_F(WebViewTest, SetCompositionFromExistingTextInTextArea) | 653 TEST_F(WebViewTest, SetCompositionFromExistingTextInTextArea) |
651 { | 654 { |
652 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("text_area_populated.html")); | 655 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("text_area_populated.html")); |
653 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "text_
area_populated.html"); | 656 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "text_area_
populated.html"); |
654 webView->setInitialFocus(false); | 657 webView->setInitialFocus(false); |
655 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); | 658 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); |
656 underlines[0] = WebKit::WebCompositionUnderline(0, 4, 0, false); | 659 underlines[0] = WebKit::WebCompositionUnderline(0, 4, 0, false); |
657 webView->setEditableSelectionOffsets(27, 27); | 660 webView->setEditableSelectionOffsets(27, 27); |
658 std::string newLineText("\n"); | 661 std::string newLineText("\n"); |
659 webView->confirmComposition(WebString::fromUTF8(newLineText.c_str())); | 662 webView->confirmComposition(WebString::fromUTF8(newLineText.c_str())); |
660 WebTextInputInfo info = webView->textInputInfo(); | 663 WebTextInputInfo info = webView->textInputInfo(); |
661 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u
tf8().data())); | 664 EXPECT_EQ("0123456789abcdefghijklmnopq\nrstuvwxyz", std::string(info.value.u
tf8().data())); |
662 | 665 |
663 webView->setEditableSelectionOffsets(31, 31); | 666 webView->setEditableSelectionOffsets(31, 31); |
(...skipping 15 matching lines...) Expand all Loading... |
679 EXPECT_EQ(34, info.selectionStart); | 682 EXPECT_EQ(34, info.selectionStart); |
680 EXPECT_EQ(34, info.selectionEnd); | 683 EXPECT_EQ(34, info.selectionEnd); |
681 EXPECT_EQ(-1, info.compositionStart); | 684 EXPECT_EQ(-1, info.compositionStart); |
682 EXPECT_EQ(-1, info.compositionEnd); | 685 EXPECT_EQ(-1, info.compositionEnd); |
683 webView->close(); | 686 webView->close(); |
684 } | 687 } |
685 | 688 |
686 TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) | 689 TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) |
687 { | 690 { |
688 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 691 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"); | 692 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
690 webView->setInitialFocus(false); | 693 webView->setInitialFocus(false); |
691 | 694 |
692 std::string compositionTextFirst("hello "); | 695 std::string compositionTextFirst("hello "); |
693 std::string compositionTextSecond("world"); | 696 std::string compositionTextSecond("world"); |
694 WebVector<WebCompositionUnderline> emptyUnderlines; | 697 WebVector<WebCompositionUnderline> emptyUnderlines; |
695 | 698 |
696 webView->confirmComposition(WebString::fromUTF8(compositionTextFirst.c_str()
)); | 699 webView->confirmComposition(WebString::fromUTF8(compositionTextFirst.c_str()
)); |
697 webView->setComposition(WebString::fromUTF8(compositionTextSecond.c_str()),
emptyUnderlines, 5, 5); | 700 webView->setComposition(WebString::fromUTF8(compositionTextSecond.c_str()),
emptyUnderlines, 5, 5); |
698 | 701 |
699 WebTextInputInfo info = webView->textInputInfo(); | 702 WebTextInputInfo info = webView->textInputInfo(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 EXPECT_EQ(2, info.selectionStart); | 744 EXPECT_EQ(2, info.selectionStart); |
742 EXPECT_EQ(2, info.selectionEnd); | 745 EXPECT_EQ(2, info.selectionEnd); |
743 EXPECT_EQ(-1, info.compositionStart); | 746 EXPECT_EQ(-1, info.compositionStart); |
744 EXPECT_EQ(-1, info.compositionEnd); | 747 EXPECT_EQ(-1, info.compositionEnd); |
745 webView->close(); | 748 webView->close(); |
746 } | 749 } |
747 | 750 |
748 TEST_F(WebViewTest, IsSelectionAnchorFirst) | 751 TEST_F(WebViewTest, IsSelectionAnchorFirst) |
749 { | 752 { |
750 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 753 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
751 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 754 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
752 WebFrame* frame = webView->mainFrame(); | 755 WebFrame* frame = webView->mainFrame(); |
753 | 756 |
754 webView->setInitialFocus(false); | 757 webView->setInitialFocus(false); |
755 webView->setEditableSelectionOffsets(4, 10); | 758 webView->setEditableSelectionOffsets(4, 10); |
756 EXPECT_TRUE(webView->isSelectionAnchorFirst()); | 759 EXPECT_TRUE(webView->isSelectionAnchorFirst()); |
757 WebRect anchor; | 760 WebRect anchor; |
758 WebRect focus; | 761 WebRect focus; |
759 webView->selectionBounds(anchor, focus); | 762 webView->selectionBounds(anchor, focus); |
760 frame->selectRange(WebPoint(focus.x, focus.y), WebPoint(anchor.x, anchor.y))
; | 763 frame->selectRange(WebPoint(focus.x, focus.y), WebPoint(anchor.x, anchor.y))
; |
761 EXPECT_FALSE(webView->isSelectionAnchorFirst()); | 764 EXPECT_FALSE(webView->isSelectionAnchorFirst()); |
762 webView->close(); | 765 webView->close(); |
763 } | 766 } |
764 | 767 |
765 TEST_F(WebViewTest, HistoryResetScrollAndScaleState) | 768 TEST_F(WebViewTest, HistoryResetScrollAndScaleState) |
766 { | 769 { |
767 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); | 770 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); |
768 WebViewImpl* webViewImpl = toWebViewImpl(FrameTestHelpers::createWebViewAndL
oad(m_baseURL + "hello_world.html")); | 771 WebViewImpl* webViewImpl = toWebViewImpl(m_webViewHelper.initializeAndLoad(m
_baseURL + "hello_world.html")); |
769 webViewImpl->resize(WebSize(640, 480)); | 772 webViewImpl->resize(WebSize(640, 480)); |
770 webViewImpl->layout(); | 773 webViewImpl->layout(); |
771 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); | 774 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); |
772 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); | 775 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); |
773 | 776 |
774 // Make the page scale and scroll with the given paremeters. | 777 // Make the page scale and scroll with the given paremeters. |
775 webViewImpl->setPageScaleFactor(2.0f, WebPoint(116, 84)); | 778 webViewImpl->setPageScaleFactor(2.0f, WebPoint(116, 84)); |
776 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); | 779 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); |
777 EXPECT_EQ(116, webViewImpl->mainFrame()->scrollOffset().width); | 780 EXPECT_EQ(116, webViewImpl->mainFrame()->scrollOffset().width); |
778 EXPECT_EQ(84, webViewImpl->mainFrame()->scrollOffset().height); | 781 EXPECT_EQ(84, webViewImpl->mainFrame()->scrollOffset().height); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 // WebViewClient methods | 815 // WebViewClient methods |
813 virtual bool enterFullScreen() { return true; } | 816 virtual bool enterFullScreen() { return true; } |
814 virtual void exitFullScreen() { } | 817 virtual void exitFullScreen() { } |
815 }; | 818 }; |
816 | 819 |
817 | 820 |
818 TEST_F(WebViewTest, EnterFullscreenResetScrollAndScaleState) | 821 TEST_F(WebViewTest, EnterFullscreenResetScrollAndScaleState) |
819 { | 822 { |
820 EnterFullscreenWebViewClient client; | 823 EnterFullscreenWebViewClient client; |
821 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); | 824 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); |
822 WebViewImpl* webViewImpl = toWebViewImpl(FrameTestHelpers::createWebViewAndL
oad(m_baseURL + "hello_world.html", true, 0, &client)); | 825 WebViewImpl* webViewImpl = toWebViewImpl(m_webViewHelper.initializeAndLoad(m
_baseURL + "hello_world.html", true, 0, &client)); |
823 webViewImpl->settings()->setFullScreenEnabled(true); | 826 webViewImpl->settings()->setFullScreenEnabled(true); |
824 webViewImpl->resize(WebSize(640, 480)); | 827 webViewImpl->resize(WebSize(640, 480)); |
825 webViewImpl->layout(); | 828 webViewImpl->layout(); |
826 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); | 829 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); |
827 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); | 830 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); |
828 | 831 |
829 // Make the page scale and scroll with the given paremeters. | 832 // Make the page scale and scroll with the given paremeters. |
830 webViewImpl->setPageScaleFactor(2.0f, WebPoint(116, 84)); | 833 webViewImpl->setPageScaleFactor(2.0f, WebPoint(116, 84)); |
831 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); | 834 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); |
832 EXPECT_EQ(116, webViewImpl->mainFrame()->scrollOffset().width); | 835 EXPECT_EQ(116, webViewImpl->mainFrame()->scrollOffset().width); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
913 webView->handleInputEvent(event); | 916 webView->handleInputEvent(event); |
914 runPendingTasks(); | 917 runPendingTasks(); |
915 return true; | 918 return true; |
916 } | 919 } |
917 | 920 |
918 TEST_F(WebViewTest, DetectContentAroundPosition) | 921 TEST_F(WebViewTest, DetectContentAroundPosition) |
919 { | 922 { |
920 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("content_listeners.html")); | 923 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("content_listeners.html")); |
921 | 924 |
922 ContentDetectorClient client; | 925 ContentDetectorClient client; |
923 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "conte
nt_listeners.html", true, 0, &client); | 926 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "content_li
steners.html", true, 0, &client); |
924 webView->resize(WebSize(500, 300)); | 927 webView->resize(WebSize(500, 300)); |
925 webView->layout(); | 928 webView->layout(); |
926 runPendingTasks(); | 929 runPendingTasks(); |
927 | 930 |
928 WebString clickListener = WebString::fromUTF8("clickListener"); | 931 WebString clickListener = WebString::fromUTF8("clickListener"); |
929 WebString touchstartListener = WebString::fromUTF8("touchstartListener"); | 932 WebString touchstartListener = WebString::fromUTF8("touchstartListener"); |
930 WebString mousedownListener = WebString::fromUTF8("mousedownListener"); | 933 WebString mousedownListener = WebString::fromUTF8("mousedownListener"); |
931 WebString noListener = WebString::fromUTF8("noListener"); | 934 WebString noListener = WebString::fromUTF8("noListener"); |
932 WebString link = WebString::fromUTF8("link"); | 935 WebString link = WebString::fromUTF8("link"); |
933 | 936 |
(...skipping 28 matching lines...) Expand all Loading... |
962 webView->handleInputEvent(event); | 965 webView->handleInputEvent(event); |
963 runPendingTasks(); | 966 runPendingTasks(); |
964 EXPECT_TRUE(client.pendingIntentsCancelled()); | 967 EXPECT_TRUE(client.pendingIntentsCancelled()); |
965 webView->close(); | 968 webView->close(); |
966 } | 969 } |
967 | 970 |
968 TEST_F(WebViewTest, ClientTapHandling) | 971 TEST_F(WebViewTest, ClientTapHandling) |
969 { | 972 { |
970 TapHandlingWebViewClient client; | 973 TapHandlingWebViewClient client; |
971 client.reset(); | 974 client.reset(); |
972 WebView* webView = FrameTestHelpers::createWebViewAndLoad("about:blank", tru
e, 0, &client); | 975 WebView* webView = m_webViewHelper.initializeAndLoad("about:blank", true, 0,
&client); |
973 WebGestureEvent event; | 976 WebGestureEvent event; |
974 event.type = WebInputEvent::GestureTap; | 977 event.type = WebInputEvent::GestureTap; |
975 event.x = 3; | 978 event.x = 3; |
976 event.y = 8; | 979 event.y = 8; |
977 webView->handleInputEvent(event); | 980 webView->handleInputEvent(event); |
978 runPendingTasks(); | 981 runPendingTasks(); |
979 EXPECT_EQ(3, client.tapX()); | 982 EXPECT_EQ(3, client.tapX()); |
980 EXPECT_EQ(8, client.tapY()); | 983 EXPECT_EQ(8, client.tapY()); |
981 client.reset(); | 984 client.reset(); |
982 event.type = WebInputEvent::GestureLongPress; | 985 event.type = WebInputEvent::GestureLongPress; |
983 event.x = 25; | 986 event.x = 25; |
984 event.y = 7; | 987 event.y = 7; |
985 webView->handleInputEvent(event); | 988 webView->handleInputEvent(event); |
986 runPendingTasks(); | 989 runPendingTasks(); |
987 EXPECT_EQ(25, client.longpressX()); | 990 EXPECT_EQ(25, client.longpressX()); |
988 EXPECT_EQ(7, client.longpressY()); | 991 EXPECT_EQ(7, client.longpressY()); |
989 webView->close(); | 992 webView->close(); |
990 } | 993 } |
991 | 994 |
992 #if OS(ANDROID) | 995 #if OS(ANDROID) |
993 TEST_F(WebViewTest, LongPressSelection) | 996 TEST_F(WebViewTest, LongPressSelection) |
994 { | 997 { |
995 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("longpress_selection.html")); | 998 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("longpress_selection.html")); |
996 | 999 |
997 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "longp
ress_selection.html", true); | 1000 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "longpress_
selection.html", true); |
998 webView->resize(WebSize(500, 300)); | 1001 webView->resize(WebSize(500, 300)); |
999 webView->layout(); | 1002 webView->layout(); |
1000 runPendingTasks(); | 1003 runPendingTasks(); |
1001 | 1004 |
1002 WebString target = WebString::fromUTF8("target"); | 1005 WebString target = WebString::fromUTF8("target"); |
1003 WebString onselectstartfalse = WebString::fromUTF8("onselectstartfalse"); | 1006 WebString onselectstartfalse = WebString::fromUTF8("onselectstartfalse"); |
1004 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); | 1007 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); |
1005 | 1008 |
1006 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, onselec
tstartfalse)); | 1009 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, onselec
tstartfalse)); |
1007 EXPECT_EQ("", std::string(frame->selectionAsText().utf8().data())); | 1010 EXPECT_EQ("", std::string(frame->selectionAsText().utf8().data())); |
1008 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, target)
); | 1011 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, target)
); |
1009 EXPECT_EQ("testword", std::string(frame->selectionAsText().utf8().data())); | 1012 EXPECT_EQ("testword", std::string(frame->selectionAsText().utf8().data())); |
1010 webView->close(); | 1013 webView->close(); |
1011 } | 1014 } |
1012 #endif | 1015 #endif |
1013 | 1016 |
1014 TEST_F(WebViewTest, SelectionOnDisabledInput) | 1017 TEST_F(WebViewTest, SelectionOnDisabledInput) |
1015 { | 1018 { |
1016 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("selection_disabled.html")); | 1019 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("selection_disabled.html")); |
1017 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "selec
tion_disabled.html", true); | 1020 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "selection_
disabled.html", true); |
1018 webView->resize(WebSize(640, 480)); | 1021 webView->resize(WebSize(640, 480)); |
1019 webView->layout(); | 1022 webView->layout(); |
1020 runPendingTasks(); | 1023 runPendingTasks(); |
1021 | 1024 |
1022 std::string testWord = "This text should be selected."; | 1025 std::string testWord = "This text should be selected."; |
1023 | 1026 |
1024 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); | 1027 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); |
1025 EXPECT_EQ(testWord, std::string(frame->selectionAsText().utf8().data())); | 1028 EXPECT_EQ(testWord, std::string(frame->selectionAsText().utf8().data())); |
1026 | 1029 |
1027 size_t location; | 1030 size_t location; |
1028 size_t length; | 1031 size_t length; |
1029 EXPECT_TRUE(toWebViewImpl(webView)->caretOrSelectionRange(&location, &length
)); | 1032 EXPECT_TRUE(toWebViewImpl(webView)->caretOrSelectionRange(&location, &length
)); |
1030 EXPECT_EQ(location, 0UL); | 1033 EXPECT_EQ(location, 0UL); |
1031 EXPECT_EQ(length, testWord.length()); | 1034 EXPECT_EQ(length, testWord.length()); |
1032 | 1035 |
1033 webView->close(); | 1036 webView->close(); |
1034 } | 1037 } |
1035 | 1038 |
1036 TEST_F(WebViewTest, SelectionOnReadOnlyInput) | 1039 TEST_F(WebViewTest, SelectionOnReadOnlyInput) |
1037 { | 1040 { |
1038 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("selection_readonly.html")); | 1041 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("selection_readonly.html")); |
1039 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "selec
tion_readonly.html", true); | 1042 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "selection_
readonly.html", true); |
1040 webView->resize(WebSize(640, 480)); | 1043 webView->resize(WebSize(640, 480)); |
1041 webView->layout(); | 1044 webView->layout(); |
1042 runPendingTasks(); | 1045 runPendingTasks(); |
1043 | 1046 |
1044 std::string testWord = "This text should be selected."; | 1047 std::string testWord = "This text should be selected."; |
1045 | 1048 |
1046 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); | 1049 WebFrameImpl* frame = toWebFrameImpl(webView->mainFrame()); |
1047 EXPECT_EQ(testWord, std::string(frame->selectionAsText().utf8().data())); | 1050 EXPECT_EQ(testWord, std::string(frame->selectionAsText().utf8().data())); |
1048 | 1051 |
1049 size_t location; | 1052 size_t location; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 bool m_ignoreTextChanges; | 1089 bool m_ignoreTextChanges; |
1087 int m_textChangesWhileIgnored; | 1090 int m_textChangesWhileIgnored; |
1088 int m_textChangesWhileNotIgnored; | 1091 int m_textChangesWhileNotIgnored; |
1089 }; | 1092 }; |
1090 | 1093 |
1091 | 1094 |
1092 TEST_F(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) | 1095 TEST_F(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) |
1093 { | 1096 { |
1094 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 1097 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
1095 MockAutofillClient client; | 1098 MockAutofillClient client; |
1096 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 1099 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
1097 webView->setAutofillClient(&client); | 1100 webView->setAutofillClient(&client); |
1098 webView->setInitialFocus(false); | 1101 webView->setInitialFocus(false); |
1099 | 1102 |
1100 // Set up a composition that needs to be committed. | 1103 // Set up a composition that needs to be committed. |
1101 WebVector<WebCompositionUnderline> emptyUnderlines; | 1104 WebVector<WebCompositionUnderline> emptyUnderlines; |
1102 webView->setEditableSelectionOffsets(4, 10); | 1105 webView->setEditableSelectionOffsets(4, 10); |
1103 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); | 1106 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); |
1104 WebTextInputInfo info = webView->textInputInfo(); | 1107 WebTextInputInfo info = webView->textInputInfo(); |
1105 EXPECT_EQ(4, info.selectionStart); | 1108 EXPECT_EQ(4, info.selectionStart); |
1106 EXPECT_EQ(10, info.selectionEnd); | 1109 EXPECT_EQ(10, info.selectionEnd); |
1107 EXPECT_EQ(8, info.compositionStart); | 1110 EXPECT_EQ(8, info.compositionStart); |
1108 EXPECT_EQ(12, info.compositionEnd); | 1111 EXPECT_EQ(12, info.compositionEnd); |
1109 | 1112 |
1110 // Clear the focus and track that the subsequent composition commit does not
trigger a | 1113 // Clear the focus and track that the subsequent composition commit does not
trigger a |
1111 // text changed notification for autofill. | 1114 // text changed notification for autofill. |
1112 client.clearChangeCounts(); | 1115 client.clearChangeCounts(); |
1113 webView->setFocus(false); | 1116 webView->setFocus(false); |
1114 EXPECT_EQ(1, client.textChangesWhileIgnored()); | 1117 EXPECT_EQ(1, client.textChangesWhileIgnored()); |
1115 EXPECT_EQ(0, client.textChangesWhileNotIgnored()); | 1118 EXPECT_EQ(0, client.textChangesWhileNotIgnored()); |
1116 | 1119 |
1117 webView->setAutofillClient(0); | 1120 webView->setAutofillClient(0); |
1118 webView->close(); | 1121 webView->close(); |
1119 } | 1122 } |
1120 | 1123 |
1121 TEST_F(WebViewTest, ConfirmCompositionTriggersAutofillTextChange) | 1124 TEST_F(WebViewTest, ConfirmCompositionTriggersAutofillTextChange) |
1122 { | 1125 { |
1123 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 1126 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
1124 MockAutofillClient client; | 1127 MockAutofillClient client; |
1125 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html"); | 1128 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html"); |
1126 webView->setAutofillClient(&client); | 1129 webView->setAutofillClient(&client); |
1127 webView->setInitialFocus(false); | 1130 webView->setInitialFocus(false); |
1128 | 1131 |
1129 // Set up a composition that needs to be committed. | 1132 // Set up a composition that needs to be committed. |
1130 std::string compositionText("testingtext"); | 1133 std::string compositionText("testingtext"); |
1131 | 1134 |
1132 WebVector<WebCompositionUnderline> emptyUnderlines; | 1135 WebVector<WebCompositionUnderline> emptyUnderlines; |
1133 webView->setComposition(WebString::fromUTF8(compositionText.c_str()), emptyU
nderlines, 0, compositionText.length()); | 1136 webView->setComposition(WebString::fromUTF8(compositionText.c_str()), emptyU
nderlines, 0, compositionText.length()); |
1134 | 1137 |
1135 WebTextInputInfo info = webView->textInputInfo(); | 1138 WebTextInputInfo info = webView->textInputInfo(); |
1136 EXPECT_EQ(0, info.selectionStart); | 1139 EXPECT_EQ(0, info.selectionStart); |
1137 EXPECT_EQ((int) compositionText.length(), info.selectionEnd); | 1140 EXPECT_EQ((int) compositionText.length(), info.selectionEnd); |
1138 EXPECT_EQ(0, info.compositionStart); | 1141 EXPECT_EQ(0, info.compositionStart); |
1139 EXPECT_EQ((int) compositionText.length(), info.compositionEnd); | 1142 EXPECT_EQ((int) compositionText.length(), info.compositionEnd); |
1140 | 1143 |
1141 client.clearChangeCounts(); | 1144 client.clearChangeCounts(); |
1142 webView->confirmComposition(); | 1145 webView->confirmComposition(); |
1143 EXPECT_EQ(0, client.textChangesWhileIgnored()); | 1146 EXPECT_EQ(0, client.textChangesWhileIgnored()); |
1144 EXPECT_EQ(1, client.textChangesWhileNotIgnored()); | 1147 EXPECT_EQ(1, client.textChangesWhileNotIgnored()); |
1145 | 1148 |
1146 webView->setAutofillClient(0); | 1149 webView->setAutofillClient(0); |
1147 webView->close(); | 1150 webView->close(); |
1148 } | 1151 } |
1149 | 1152 |
1150 TEST_F(WebViewTest, SetCompositionFromExistingTextTriggersAutofillTextChange) | 1153 TEST_F(WebViewTest, SetCompositionFromExistingTextTriggersAutofillTextChange) |
1151 { | 1154 { |
1152 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); | 1155 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("input_field_populated.html")); |
1153 MockAutofillClient client; | 1156 MockAutofillClient client; |
1154 WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input
_field_populated.html", true); | 1157 WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "input_fiel
d_populated.html", true); |
1155 webView->setAutofillClient(&client); | 1158 webView->setAutofillClient(&client); |
1156 webView->setInitialFocus(false); | 1159 webView->setInitialFocus(false); |
1157 | 1160 |
1158 WebVector<WebCompositionUnderline> emptyUnderlines; | 1161 WebVector<WebCompositionUnderline> emptyUnderlines; |
1159 | 1162 |
1160 client.clearChangeCounts(); | 1163 client.clearChangeCounts(); |
1161 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); | 1164 webView->setCompositionFromExistingText(8, 12, emptyUnderlines); |
1162 | 1165 |
1163 WebTextInputInfo info = webView->textInputInfo(); | 1166 WebTextInputInfo info = webView->textInputInfo(); |
1164 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.utf
8().data())); | 1167 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.utf
8().data())); |
1165 EXPECT_EQ(8, info.compositionStart); | 1168 EXPECT_EQ(8, info.compositionStart); |
1166 EXPECT_EQ(12, info.compositionEnd); | 1169 EXPECT_EQ(12, info.compositionEnd); |
1167 | 1170 |
1168 EXPECT_EQ(0, client.textChangesWhileIgnored()); | 1171 EXPECT_EQ(0, client.textChangesWhileIgnored()); |
1169 EXPECT_EQ(0, client.textChangesWhileNotIgnored()); | 1172 EXPECT_EQ(0, client.textChangesWhileNotIgnored()); |
1170 | 1173 |
1171 WebDocument document = webView->mainFrame()->document(); | 1174 WebDocument document = webView->mainFrame()->document(); |
1172 EXPECT_EQ(WebString::fromUTF8("none"), document.getElementById("inputEvent"
).firstChild().nodeValue()); | 1175 EXPECT_EQ(WebString::fromUTF8("none"), document.getElementById("inputEvent"
).firstChild().nodeValue()); |
1173 | 1176 |
1174 webView->setAutofillClient(0); | 1177 webView->setAutofillClient(0); |
1175 webView->close(); | 1178 webView->close(); |
1176 } | 1179 } |
1177 | 1180 |
1178 TEST_F(WebViewTest, ShadowRoot) | 1181 TEST_F(WebViewTest, ShadowRoot) |
1179 { | 1182 { |
1180 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("shadow_dom_test.html")); | 1183 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("shadow_dom_test.html")); |
1181 WebViewImpl* webViewImpl = toWebViewImpl(FrameTestHelpers::createWebViewAndL
oad(m_baseURL + "shadow_dom_test.html", true)); | 1184 WebViewImpl* webViewImpl = toWebViewImpl(m_webViewHelper.initializeAndLoad(m
_baseURL + "shadow_dom_test.html", true)); |
1182 | 1185 |
1183 WebDocument document = webViewImpl->mainFrame()->document(); | 1186 WebDocument document = webViewImpl->mainFrame()->document(); |
1184 { | 1187 { |
1185 WebElement elementWithShadowRoot = document.getElementById("shadowroot")
; | 1188 WebElement elementWithShadowRoot = document.getElementById("shadowroot")
; |
1186 EXPECT_FALSE(elementWithShadowRoot.isNull()); | 1189 EXPECT_FALSE(elementWithShadowRoot.isNull()); |
1187 WebNode shadowRoot = elementWithShadowRoot.shadowRoot(); | 1190 WebNode shadowRoot = elementWithShadowRoot.shadowRoot(); |
1188 EXPECT_FALSE(shadowRoot.isNull()); | 1191 EXPECT_FALSE(shadowRoot.isNull()); |
1189 } | 1192 } |
1190 { | 1193 { |
1191 WebElement elementWithoutShadowRoot = document.getElementById("noshadowr
oot"); | 1194 WebElement elementWithoutShadowRoot = document.getElementById("noshadowr
oot"); |
1192 EXPECT_FALSE(elementWithoutShadowRoot.isNull()); | 1195 EXPECT_FALSE(elementWithoutShadowRoot.isNull()); |
1193 WebNode shadowRoot = elementWithoutShadowRoot.shadowRoot(); | 1196 WebNode shadowRoot = elementWithoutShadowRoot.shadowRoot(); |
1194 EXPECT_TRUE(shadowRoot.isNull()); | 1197 EXPECT_TRUE(shadowRoot.isNull()); |
1195 } | 1198 } |
1196 webViewImpl->close(); | 1199 webViewImpl->close(); |
1197 } | 1200 } |
1198 | 1201 |
1199 TEST_F(WebViewTest, HelperPlugin) | 1202 TEST_F(WebViewTest, HelperPlugin) |
1200 { | 1203 { |
1201 HelperPluginCreatingWebViewClient client; | 1204 HelperPluginCreatingWebViewClient client; |
1202 WebViewImpl* webViewImpl = toWebViewImpl(FrameTestHelpers::createWebView(tru
e, 0, &client)); | 1205 WebViewImpl* webViewImpl = toWebViewImpl(m_webViewHelper.initialize(true, 0,
&client)); |
1203 | 1206 |
1204 WebFrameImpl* frame = toWebFrameImpl(webViewImpl->mainFrame()); | 1207 WebFrameImpl* frame = toWebFrameImpl(webViewImpl->mainFrame()); |
1205 client.setWebFrameClient(frame->client()); | 1208 client.setWebFrameClient(frame->client()); |
1206 | 1209 |
1207 WebHelperPluginImpl* helperPlugin = webViewImpl->createHelperPlugin("dummy-p
lugin-type", frame->document()); | 1210 WebHelperPluginImpl* helperPlugin = webViewImpl->createHelperPlugin("dummy-p
lugin-type", frame->document()); |
1208 EXPECT_TRUE(helperPlugin); | 1211 EXPECT_TRUE(helperPlugin); |
1209 EXPECT_EQ(0, helperPlugin->getPlugin()); // Invalid plugin type means no plu
gin. | 1212 EXPECT_EQ(0, helperPlugin->getPlugin()); // Invalid plugin type means no plu
gin. |
1210 | 1213 |
1211 webViewImpl->closeHelperPluginSoon(helperPlugin); | 1214 webViewImpl->closeHelperPluginSoon(helperPlugin); |
1212 | 1215 |
1213 webViewImpl->close(); | 1216 webViewImpl->close(); |
1214 } | 1217 } |
1215 | 1218 |
1216 } | 1219 } |
OLD | NEW |