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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillDialogControllerTest.java

Issue 572013002: Removing ContentViewCore dependencies from direct WebContents functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased the patch and addressed review comments. Created 6 years, 2 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 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.autofill; 5 package org.chromium.chrome.browser.autofill;
6 6
7 import android.test.suitebuilder.annotation.MediumTest; 7 import android.test.suitebuilder.annotation.MediumTest;
8 import android.test.suitebuilder.annotation.SmallTest; 8 import android.test.suitebuilder.annotation.SmallTest;
9 import android.text.TextUtils; 9 import android.text.TextUtils;
10 10
11 import org.chromium.base.CommandLine; 11 import org.chromium.base.CommandLine;
12 import org.chromium.base.test.util.Feature; 12 import org.chromium.base.test.util.Feature;
13 import org.chromium.base.test.util.UrlUtils; 13 import org.chromium.base.test.util.UrlUtils;
14 import org.chromium.chrome.shell.ChromeShellTestBase; 14 import org.chromium.chrome.shell.ChromeShellTestBase;
15 import org.chromium.content.browser.ContentViewCore; 15 import org.chromium.content.browser.ContentViewCore;
16 import org.chromium.content.browser.test.util.Criteria; 16 import org.chromium.content.browser.test.util.Criteria;
17 import org.chromium.content.browser.test.util.CriteriaHelper; 17 import org.chromium.content.browser.test.util.CriteriaHelper;
18 import org.chromium.content.browser.test.util.DOMUtils; 18 import org.chromium.content.browser.test.util.DOMUtils;
19 import org.chromium.content_public.browser.WebContents;
19 20
20 import java.util.concurrent.TimeoutException; 21 import java.util.concurrent.TimeoutException;
21 22
22 /** 23 /**
23 * Integration tests for the AutofillPopup. 24 * Integration tests for the AutofillPopup.
24 */ 25 */
25 public class AutofillDialogControllerTest extends ChromeShellTestBase { 26 public class AutofillDialogControllerTest extends ChromeShellTestBase {
26 private static final String SWITCH_REDUCE_SECURITY_FOR_TESTING = "reduce-sec urity-for-testing"; 27 private static final String SWITCH_REDUCE_SECURITY_FOR_TESTING = "reduce-sec urity-for-testing";
27 private static final long DIALOG_CALLBACK_DELAY_MILLISECONDS = 50; 28 private static final long DIALOG_CALLBACK_DELAY_MILLISECONDS = 50;
28 29
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 ? "<input id=\"id-opt-cc-csc\" autocomplete=\"cc-csc\">" 530 ? "<input id=\"id-opt-cc-csc\" autocomplete=\"cc-csc\">"
530 : ""; 531 : "";
531 final String url = UrlUtils.encodeHtmlDataUri( 532 final String url = UrlUtils.encodeHtmlDataUri(
532 HTML_PRELUDE 533 HTML_PRELUDE
533 + htmlFragment 534 + htmlFragment
534 + optionalCcFragment 535 + optionalCcFragment
535 + HTML_POSTLUDE); 536 + HTML_POSTLUDE);
536 537
537 setUpAndRequestAutocomplete(url, requestFullBilling, requestShipping, re questPhoneNumbers); 538 setUpAndRequestAutocomplete(url, requestFullBilling, requestShipping, re questPhoneNumbers);
538 539
539 final ContentViewCore viewCore = getActivity().getActiveContentViewCore( ); 540 final WebContents webContents = getActivity().getActiveContentViewCore() .getWebContents();
540 541
541 assertEquals(actualId + " did not match", 542 assertEquals(actualId + " did not match",
542 expected, DOMUtils.getNodeValue(viewCore, actualId)); 543 expected, DOMUtils.getNodeValue(webContents, actualId));
543 if (requestCcInfo) { 544 if (requestCcInfo) {
544 assertEquals("cc-csc did not match", 545 assertEquals("cc-csc did not match",
545 TEST_CC_CSC, DOMUtils.getNodeValue(viewCore, "id-opt-cc-csc" )); 546 TEST_CC_CSC, DOMUtils.getNodeValue(webContents, "id-opt-cc-c sc"));
546 } 547 }
547 } 548 }
548 549
549 private void verifyFieldsAreFilled(final boolean requestFullBilling, 550 private void verifyFieldsAreFilled(final boolean requestFullBilling,
550 final boolean requestShipping, final boolean requestPhoneNumbers) 551 final boolean requestShipping, final boolean requestPhoneNumbers)
551 throws InterruptedException, TimeoutException { 552 throws InterruptedException, TimeoutException {
552 setUpAndRequestAutocomplete( 553 setUpAndRequestAutocomplete(
553 generatePage(requestFullBilling, requestShipping, requestPhoneNu mbers), 554 generatePage(requestFullBilling, requestShipping, requestPhoneNu mbers),
554 requestFullBilling, requestShipping, requestPhoneNumbers); 555 requestFullBilling, requestShipping, requestPhoneNumbers);
555 556
556 final ContentViewCore viewCore = getActivity().getActiveContentViewCore( ); 557 final WebContents webContents = getActivity().getActiveContentViewCore() .getWebContents();
557 558
558 assertEquals("billing name did not match", 559 assertEquals("billing name did not match",
559 TEST_NAME, DOMUtils.getNodeValue(viewCore, "id-billing-name")); 560 TEST_NAME, DOMUtils.getNodeValue(webContents, "id-billing-name") );
560 assertEquals("email did not match", 561 assertEquals("email did not match",
561 TEST_EMAIL, DOMUtils.getNodeValue(viewCore, "id-email")); 562 TEST_EMAIL, DOMUtils.getNodeValue(webContents, "id-email"));
562 563
563 assertEquals("cc-name did not match", 564 assertEquals("cc-name did not match",
564 TEST_NAME, DOMUtils.getNodeValue(viewCore, "id-cc-name")); 565 TEST_NAME, DOMUtils.getNodeValue(webContents, "id-cc-name"));
565 566
566 assertEquals("cc-number did not match", 567 assertEquals("cc-number did not match",
567 TEST_CC_NUMBER, DOMUtils.getNodeValue(viewCore, "id-cc-number")) ; 568 TEST_CC_NUMBER, DOMUtils.getNodeValue(webContents, "id-cc-number "));
568 assertEquals("cc-csc did not match", 569 assertEquals("cc-csc did not match",
569 TEST_CC_CSC, DOMUtils.getNodeValue(viewCore, "id-cc-csc")); 570 TEST_CC_CSC, DOMUtils.getNodeValue(webContents, "id-cc-csc"));
570 571
571 assertEquals("cc-exp did not match", 572 assertEquals("cc-exp did not match",
572 "" + TEST_CC_EXP_YEAR + "-" + TEST_CC_EXP_MONTH, 573 "" + TEST_CC_EXP_YEAR + "-" + TEST_CC_EXP_MONTH,
573 DOMUtils.getNodeValue(viewCore, "id-cc-exp")); 574 DOMUtils.getNodeValue(webContents, "id-cc-exp"));
574 575
575 assertEquals("cc-exp-month did not match", 576 assertEquals("cc-exp-month did not match",
576 "" + TEST_CC_EXP_MONTH, 577 "" + TEST_CC_EXP_MONTH,
577 DOMUtils.getNodeValue(viewCore, "id-cc-exp-month")); 578 DOMUtils.getNodeValue(webContents, "id-cc-exp-month"));
578 assertEquals("cc-exp-year did not match", 579 assertEquals("cc-exp-year did not match",
579 "" + TEST_CC_EXP_YEAR, 580 "" + TEST_CC_EXP_YEAR,
580 DOMUtils.getNodeValue(viewCore, "id-cc-exp-year")); 581 DOMUtils.getNodeValue(webContents, "id-cc-exp-year"));
581 582
582 assertEquals("billing postal-code did not match", 583 assertEquals("billing postal-code did not match",
583 TEST_BILLING_ZIP, DOMUtils.getNodeValue(viewCore, "id-cc-zip")); 584 TEST_BILLING_ZIP, DOMUtils.getNodeValue(webContents, "id-cc-zip" ));
584 585
585 if (requestFullBilling) { 586 if (requestFullBilling) {
586 assertEquals("billing address-line1 did not match", 587 assertEquals("billing address-line1 did not match",
587 TEST_BILLING1, DOMUtils.getNodeValue(viewCore, "id-cc-1")); 588 TEST_BILLING1, DOMUtils.getNodeValue(webContents, "id-cc-1") );
588 assertEquals("billing address-line2 did not match", 589 assertEquals("billing address-line2 did not match",
589 TEST_BILLING2, DOMUtils.getNodeValue(viewCore, "id-cc-2")); 590 TEST_BILLING2, DOMUtils.getNodeValue(webContents, "id-cc-2") );
590 assertEquals("billing street-address did not match", 591 assertEquals("billing street-address did not match",
591 TEST_BILLING_STREET, DOMUtils.getNodeValue(viewCore, "id-cc- str")); 592 TEST_BILLING_STREET, DOMUtils.getNodeValue(webContents, "id- cc-str"));
592 assertEquals("billing locality did not match", 593 assertEquals("billing locality did not match",
593 TEST_BILLING_CITY, DOMUtils.getNodeValue(viewCore, "id-cc-ci ty")); 594 TEST_BILLING_CITY, DOMUtils.getNodeValue(webContents, "id-cc -city"));
594 assertEquals("billing region did not match", 595 assertEquals("billing region did not match",
595 TEST_BILLING_STATE, DOMUtils.getNodeValue(viewCore, "id-cc-s tate")); 596 TEST_BILLING_STATE, DOMUtils.getNodeValue(webContents, "id-c c-state"));
596 assertEquals("billing country did not match", 597 assertEquals("billing country did not match",
597 TEST_BILLING_COUNTRY, DOMUtils.getNodeValue(viewCore, "id-cc -country")); 598 TEST_BILLING_COUNTRY, DOMUtils.getNodeValue(webContents, "id -cc-country"));
598 599
599 if (requestPhoneNumbers) { 600 if (requestPhoneNumbers) {
600 assertEquals("billing tel did not match", 601 assertEquals("billing tel did not match",
601 TEST_PHONE_UNFORMATTED, 602 TEST_PHONE_UNFORMATTED,
602 DOMUtils.getNodeValue(viewCore, "id-cc-tel")); 603 DOMUtils.getNodeValue(webContents, "id-cc-tel"));
603 } 604 }
604 } 605 }
605 606
606 if (requestShipping) { 607 if (requestShipping) {
607 assertEquals("shipping name did not match", 608 assertEquals("shipping name did not match",
608 TEST_SHIPPING_NAME, DOMUtils.getNodeValue(viewCore, "id-h-na me")); 609 TEST_SHIPPING_NAME, DOMUtils.getNodeValue(webContents, "id-h -name"));
609 assertEquals("shipping postal-code did not match", 610 assertEquals("shipping postal-code did not match",
610 TEST_SHIPPING_ZIP, DOMUtils.getNodeValue(viewCore, "id-h-zip ")); 611 TEST_SHIPPING_ZIP, DOMUtils.getNodeValue(webContents, "id-h- zip"));
611 assertEquals("shipping address-line1 did not match", 612 assertEquals("shipping address-line1 did not match",
612 TEST_SHIPPING1, DOMUtils.getNodeValue(viewCore, "id-h-1")); 613 TEST_SHIPPING1, DOMUtils.getNodeValue(webContents, "id-h-1") );
613 assertEquals("shipping address-line2 did not match", 614 assertEquals("shipping address-line2 did not match",
614 TEST_SHIPPING2, DOMUtils.getNodeValue(viewCore, "id-h-2")); 615 TEST_SHIPPING2, DOMUtils.getNodeValue(webContents, "id-h-2") );
615 assertEquals("shipping street-address did not match", 616 assertEquals("shipping street-address did not match",
616 TEST_SHIPPING_STREET, DOMUtils.getNodeValue(viewCore, "id-h- str")); 617 TEST_SHIPPING_STREET, DOMUtils.getNodeValue(webContents, "id -h-str"));
617 assertEquals("shipping locality did not match", 618 assertEquals("shipping locality did not match",
618 TEST_SHIPPING_CITY, DOMUtils.getNodeValue(viewCore, "id-h-ci ty")); 619 TEST_SHIPPING_CITY, DOMUtils.getNodeValue(webContents, "id-h -city"));
619 assertEquals("shipping region did not match", 620 assertEquals("shipping region did not match",
620 TEST_SHIPPING_STATE, DOMUtils.getNodeValue(viewCore, "id-h-s tate")); 621 TEST_SHIPPING_STATE, DOMUtils.getNodeValue(webContents, "id- h-state"));
621 assertEquals("shipping country did not match", 622 assertEquals("shipping country did not match",
622 TEST_SHIPPING_COUNTRY, 623 TEST_SHIPPING_COUNTRY,
623 DOMUtils.getNodeValue(viewCore, "id-h-country")); 624 DOMUtils.getNodeValue(webContents, "id-h-country"));
624 625
625 // It is currently unspecified whether autocomplete="name" gives a S HIPPING or 626 // It is currently unspecified whether autocomplete="name" gives a S HIPPING or
626 // a BILLING name. I'm assuming here that this is a shipping name. 627 // a BILLING name. I'm assuming here that this is a shipping name.
627 assertEquals("name did not match", 628 assertEquals("name did not match",
628 TEST_SHIPPING_NAME, DOMUtils.getNodeValue(viewCore, "id-name ")); 629 TEST_SHIPPING_NAME, DOMUtils.getNodeValue(webContents, "id-n ame"));
629 630
630 if (requestPhoneNumbers) { 631 if (requestPhoneNumbers) {
631 assertEquals("shipping tel did not match", 632 assertEquals("shipping tel did not match",
632 TEST_SHIPPING_PHONE_UNFORMATTED, 633 TEST_SHIPPING_PHONE_UNFORMATTED,
633 DOMUtils.getNodeValue(viewCore, "id-h-tel")); 634 DOMUtils.getNodeValue(webContents, "id-h-tel"));
634 635
635 // It is currently unspecified whether autocomplete="name" gives a SHIPPING or 636 // It is currently unspecified whether autocomplete="name" gives a SHIPPING or
636 // a BILLING phone. I'm assuming here that this is a shipping ph one. 637 // a BILLING phone. I'm assuming here that this is a shipping ph one.
637 assertEquals("tel did not match", 638 assertEquals("tel did not match",
638 TEST_SHIPPING_PHONE_UNFORMATTED, 639 TEST_SHIPPING_PHONE_UNFORMATTED,
639 DOMUtils.getNodeValue(viewCore, "id-tel")); 640 DOMUtils.getNodeValue(webContents, "id-tel"));
640 } 641 }
641 } 642 }
642 } 643 }
643 644
644 // Wait and assert helper methods ------------------------------------------ ------------------- 645 // Wait and assert helper methods ------------------------------------------ -------------------
645 646
646 private void setUpAndRequestAutocomplete(final String url, 647 private void setUpAndRequestAutocomplete(final String url,
647 final boolean requestFullBilling, 648 final boolean requestFullBilling,
648 final boolean requestShipping, 649 final boolean requestShipping,
649 final boolean requestPhoneNumbers) throws InterruptedException, Time outException { 650 final boolean requestPhoneNumbers) throws InterruptedException, Time outException {
(...skipping 14 matching lines...) Expand all
664 private void setUpAndRequestAutocompleteImpl(final String url, 665 private void setUpAndRequestAutocompleteImpl(final String url,
665 final boolean requestFullBilling, 666 final boolean requestFullBilling,
666 final boolean requestShipping, 667 final boolean requestShipping,
667 final boolean requestPhoneNumbers, 668 final boolean requestPhoneNumbers,
668 final boolean expectFailure) 669 final boolean expectFailure)
669 throws InterruptedException, TimeoutException { 670 throws InterruptedException, TimeoutException {
670 launchChromeShellWithUrl(url); 671 launchChromeShellWithUrl(url);
671 assertTrue(waitForActiveShellToBeDoneLoading()); 672 assertTrue(waitForActiveShellToBeDoneLoading());
672 673
673 final ContentViewCore viewCore = getActivity().getActiveContentViewCore( ); 674 final ContentViewCore viewCore = getActivity().getActiveContentViewCore( );
675 final WebContents webContents = getActivity().getActiveContentViewCore() .getWebContents();
674 676
675 AutofillDialogResult.ResultWallet result = new AutofillDialogResult.Resu ltWallet( 677 AutofillDialogResult.ResultWallet result = new AutofillDialogResult.Resu ltWallet(
676 TEST_EMAIL, "Google Transaction ID", 678 TEST_EMAIL, "Google Transaction ID",
677 new AutofillDialogResult.ResultCard( 679 new AutofillDialogResult.ResultCard(
678 TEST_CC_EXP_MONTH, TEST_CC_EXP_YEAR, 680 TEST_CC_EXP_MONTH, TEST_CC_EXP_YEAR,
679 TEST_CC_NUMBER, TEST_CC_CSC), 681 TEST_CC_NUMBER, TEST_CC_CSC),
680 new AutofillDialogResult.ResultAddress( 682 new AutofillDialogResult.ResultAddress(
681 TEST_NAME, TEST_PHONE, 683 TEST_NAME, TEST_PHONE,
682 TEST_BILLING_STREET, 684 TEST_BILLING_STREET,
683 TEST_BILLING_CITY, TEST_BILLING_DL, TEST_BILLING_STATE, 685 TEST_BILLING_CITY, TEST_BILLING_DL, TEST_BILLING_STATE,
684 TEST_BILLING_ZIP, TEST_BILLING_SORTING_CODE, TEST_BILLIN G_COUNTRY, 686 TEST_BILLING_ZIP, TEST_BILLING_SORTING_CODE, TEST_BILLIN G_COUNTRY,
685 TEST_BILLING_LANGUAGE), 687 TEST_BILLING_LANGUAGE),
686 new AutofillDialogResult.ResultAddress( 688 new AutofillDialogResult.ResultAddress(
687 TEST_SHIPPING_NAME, TEST_SHIPPING_PHONE, 689 TEST_SHIPPING_NAME, TEST_SHIPPING_PHONE,
688 TEST_SHIPPING_STREET, 690 TEST_SHIPPING_STREET,
689 TEST_SHIPPING_CITY, TEST_SHIPPING_DL, TEST_SHIPPING_STAT E, 691 TEST_SHIPPING_CITY, TEST_SHIPPING_DL, TEST_SHIPPING_STAT E,
690 TEST_SHIPPING_ZIP, TEST_SHIPPING_SORTING_CODE, TEST_SHIP PING_COUNTRY, 692 TEST_SHIPPING_ZIP, TEST_SHIPPING_SORTING_CODE, TEST_SHIP PING_COUNTRY,
691 TEST_SHIPPING_LANGUAGE)); 693 TEST_SHIPPING_LANGUAGE));
692 MockAutofillDialogController.installMockFactory( 694 MockAutofillDialogController.installMockFactory(
693 DIALOG_CALLBACK_DELAY_MILLISECONDS, 695 DIALOG_CALLBACK_DELAY_MILLISECONDS,
694 result, 696 result,
695 true, "", "", "", "", 697 true, "", "", "", "",
696 requestFullBilling, requestShipping, requestPhoneNumbers); 698 requestFullBilling, requestShipping, requestPhoneNumbers);
697 699
698 DOMUtils.clickNode(this, viewCore, "id-button"); 700 DOMUtils.clickNode(this, viewCore, "id-button");
699 waitForInputFieldFill(viewCore); 701 waitForInputFieldFill(webContents);
700 702
701 if (!expectFailure) { 703 if (!expectFailure) {
702 assertEquals("requestAutocomplete failed", 704 assertEquals("requestAutocomplete failed",
703 "succeeded", 705 "succeeded",
704 DOMUtils.getNodeContents(viewCore, "was-autocompleted")); 706 DOMUtils.getNodeContents(webContents, "was-autocompleted"));
705 } else { 707 } else {
706 assertEquals("requestAutocomplete succeeded when it should be failin g", 708 assertEquals("requestAutocomplete succeeded when it should be failin g",
707 "failed", 709 "failed",
708 DOMUtils.getNodeContents(viewCore, "was-autocompleted")); 710 DOMUtils.getNodeContents(webContents, "was-autocompleted"));
709 } 711 }
710 } 712 }
711 713
712 private void waitForInputFieldFill(final ContentViewCore viewCore) throws In terruptedException { 714 private void waitForInputFieldFill(final WebContents webContents) throws Int erruptedException {
713 assertTrue("requestAutocomplete() never completed.", 715 assertTrue("requestAutocomplete() never completed.",
714 CriteriaHelper.pollForCriteria(new Criteria() { 716 CriteriaHelper.pollForCriteria(new Criteria() {
715 @Override 717 @Override
716 public boolean isSatisfied() { 718 public boolean isSatisfied() {
717 String wasAutocompleted; 719 String wasAutocompleted;
718 try { 720 try {
719 wasAutocompleted = DOMUtils.getNodeContents( 721 wasAutocompleted = DOMUtils.getNodeContents(
720 viewCore, "was-autocompleted"); 722 webContents, "was-autocompleted");
721 } catch (InterruptedException e) { 723 } catch (InterruptedException e) {
722 return false; 724 return false;
723 } catch (TimeoutException e) { 725 } catch (TimeoutException e) {
724 return false; 726 return false;
725 } 727 }
726 return TextUtils.equals("succeeded", wasAutocompleted) 728 return TextUtils.equals("succeeded", wasAutocompleted)
727 || TextUtils.equals("failed", wasAutocompleted); 729 || TextUtils.equals("failed", wasAutocompleted);
728 } 730 }
729 })); 731 }));
730 } 732 }
731 } 733 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698