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

Side by Side Diff: chrome/browser/autofill/autofill_interactive_uitest.cc

Issue 214823011: Autofill/rAc: dispatch "input"/"change" on <input>, <textarea>, and <select> (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: d'oh Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | components/autofill/content/renderer/form_autofill_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #include <string> 5 #include <string>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 #include "content/public/test/test_utils.h" 51 #include "content/public/test/test_utils.h"
52 #include "net/url_request/test_url_fetcher_factory.h" 52 #include "net/url_request/test_url_fetcher_factory.h"
53 #include "testing/gmock/include/gmock/gmock.h" 53 #include "testing/gmock/include/gmock/gmock.h"
54 #include "testing/gtest/include/gtest/gtest.h" 54 #include "testing/gtest/include/gtest/gtest.h"
55 #include "ui/events/keycodes/keyboard_codes.h" 55 #include "ui/events/keycodes/keyboard_codes.h"
56 56
57 using base::ASCIIToUTF16; 57 using base::ASCIIToUTF16;
58 58
59 namespace autofill { 59 namespace autofill {
60 60
61 static const char* kDataURIPrefix = "data:text/html;charset=utf-8,"; 61 static const char kDataURIPrefix[] = "data:text/html;charset=utf-8,";
62 static const char* kTestFormString = 62 static const char kTestFormString[] =
63 "<form action=\"http://www.example.com/\" method=\"POST\">" 63 "<form action=\"http://www.example.com/\" method=\"POST\">"
64 "<label for=\"firstname\">First name:</label>" 64 "<label for=\"firstname\">First name:</label>"
65 " <input type=\"text\" id=\"firstname\"" 65 " <input type=\"text\" id=\"firstname\""
66 " onFocus=\"domAutomationController.send(true)\"><br>" 66 " onfocus=\"domAutomationController.send(true)\"><br>"
67 "<label for=\"lastname\">Last name:</label>" 67 "<label for=\"lastname\">Last name:</label>"
68 " <input type=\"text\" id=\"lastname\"><br>" 68 " <input type=\"text\" id=\"lastname\"><br>"
69 "<label for=\"address1\">Address line 1:</label>" 69 "<label for=\"address1\">Address line 1:</label>"
70 " <input type=\"text\" id=\"address1\"><br>" 70 " <input type=\"text\" id=\"address1\"><br>"
71 "<label for=\"address2\">Address line 2:</label>" 71 "<label for=\"address2\">Address line 2:</label>"
72 " <input type=\"text\" id=\"address2\"><br>" 72 " <input type=\"text\" id=\"address2\"><br>"
73 "<label for=\"city\">City:</label>" 73 "<label for=\"city\">City:</label>"
74 " <input type=\"text\" id=\"city\"><br>" 74 " <input type=\"text\" id=\"city\"><br>"
75 "<label for=\"state\">State:</label>" 75 "<label for=\"state\">State:</label>"
76 " <select id=\"state\">" 76 " <select id=\"state\">"
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 // form. 482 // form.
483 SendKeyToPopupAndWait(ui::VKEY_DOWN); 483 SendKeyToPopupAndWait(ui::VKEY_DOWN);
484 484
485 // Press tab to accept the autofill suggestions. 485 // Press tab to accept the autofill suggestions.
486 SendKeyToPopupAndWait(ui::VKEY_TAB); 486 SendKeyToPopupAndWait(ui::VKEY_TAB);
487 487
488 // The form should be filled. 488 // The form should be filled.
489 ExpectFilledTestForm(); 489 ExpectFilledTestForm();
490 } 490 }
491 491
492 // Test that a JavaScript onchange event is fired after auto-filling a form. 492 // Test that a JavaScript oninput event is fired after auto-filling a form.
493 // Temporarily disabled for crbug.com/353691. 493 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, OnInputAfterAutofill) {
494 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest,
495 DISABLED_OnChangeAfterAutofill) {
496 CreateTestProfile(); 494 CreateTestProfile();
497 495
498 const char* kOnChangeScript = 496 const char kOnInputScript[] =
499 "<script>" 497 "<script>"
500 "focused_fired = false;" 498 "focused_fired = false;"
501 "unfocused_fired = false;" 499 "unfocused_fired = false;"
500 "changed_select_fired = false;"
501 "unchanged_select_fired = false;"
502 "document.getElementById('firstname').oninput = function() {"
503 " focused_fired = true;"
504 "};"
505 "document.getElementById('lastname').oninput = function() {"
506 " unfocused_fired = true;"
507 "};"
508 "document.getElementById('state').oninput = function() {"
509 " changed_select_fired = true;"
510 "};"
511 "document.getElementById('country').oninput = function() {"
512 " unchanged_select_fired = true;"
513 "};"
514 "document.getElementById('country').value = 'US';"
515 "</script>";
516
517 // Load the test page.
518 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(),
519 GURL(std::string(kDataURIPrefix) + kTestFormString + kOnInputScript)));
520
521 // Invoke Autofill.
522 FocusFirstNameField();
523
524 // Start filling the first name field with "M" and wait for the popup to be
525 // shown.
526 SendKeyToPageAndWait(ui::VKEY_M);
527
528 // Press the down arrow to select the suggestion and preview the autofilled
529 // form.
530 SendKeyToPopupAndWait(ui::VKEY_DOWN);
531
532 // Press Enter to accept the autofill suggestions.
533 SendKeyToPopupAndWait(ui::VKEY_RETURN);
534
535 // The form should be filled.
536 ExpectFilledTestForm();
537
538 bool focused_fired = false;
539 bool unfocused_fired = false;
540 bool changed_select_fired = false;
541 bool unchanged_select_fired = false;
542 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
543 GetRenderViewHost(),
544 "domAutomationController.send(focused_fired);",
545 &focused_fired));
546 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
547 GetRenderViewHost(),
548 "domAutomationController.send(unfocused_fired);",
549 &unfocused_fired));
550 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
551 GetRenderViewHost(),
552 "domAutomationController.send(changed_select_fired);",
553 &changed_select_fired));
554 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
555 GetRenderViewHost(),
556 "domAutomationController.send(unchanged_select_fired);",
557 &unchanged_select_fired));
558 EXPECT_TRUE(focused_fired);
559 EXPECT_TRUE(unfocused_fired);
560 EXPECT_TRUE(changed_select_fired);
561 EXPECT_FALSE(unchanged_select_fired);
562 }
563
564 // Test that a JavaScript onchange event is fired after auto-filling a form.
565 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, OnChangeAfterAutofill) {
566 CreateTestProfile();
567
568 const char kOnChangeScript[] =
569 "<script>"
570 "focused_fired = false;"
571 "unfocused_fired = false;"
502 "changed_select_fired = false;" 572 "changed_select_fired = false;"
503 "unchanged_select_fired = false;" 573 "unchanged_select_fired = false;"
504 "document.getElementById('firstname').onchange = function() {" 574 "document.getElementById('firstname').onchange = function() {"
505 " focused_fired = true;" 575 " focused_fired = true;"
506 "};" 576 "};"
507 "document.getElementById('lastname').onchange = function() {" 577 "document.getElementById('lastname').onchange = function() {"
508 " unfocused_fired = true;" 578 " unfocused_fired = true;"
509 "};" 579 "};"
510 "document.getElementById('state').onchange = function() {" 580 "document.getElementById('state').onchange = function() {"
511 " changed_select_fired = true;" 581 " changed_select_fired = true;"
(...skipping 18 matching lines...) Expand all
530 // Press the down arrow to select the suggestion and preview the autofilled 600 // Press the down arrow to select the suggestion and preview the autofilled
531 // form. 601 // form.
532 SendKeyToPopupAndWait(ui::VKEY_DOWN); 602 SendKeyToPopupAndWait(ui::VKEY_DOWN);
533 603
534 // Press Enter to accept the autofill suggestions. 604 // Press Enter to accept the autofill suggestions.
535 SendKeyToPopupAndWait(ui::VKEY_RETURN); 605 SendKeyToPopupAndWait(ui::VKEY_RETURN);
536 606
537 // The form should be filled. 607 // The form should be filled.
538 ExpectFilledTestForm(); 608 ExpectFilledTestForm();
539 609
540 // The change event should have already fired for unfocused fields, both of
541 // <input> and of <select> type. However, it should not yet have fired for the
542 // focused field.
543 bool focused_fired = false; 610 bool focused_fired = false;
544 bool unfocused_fired = false; 611 bool unfocused_fired = false;
545 bool changed_select_fired = false; 612 bool changed_select_fired = false;
546 bool unchanged_select_fired = false; 613 bool unchanged_select_fired = false;
547 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 614 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
548 GetRenderViewHost(), 615 GetRenderViewHost(),
549 "domAutomationController.send(focused_fired);", 616 "domAutomationController.send(focused_fired);",
550 &focused_fired)); 617 &focused_fired));
551 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 618 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
552 GetRenderViewHost(), 619 GetRenderViewHost(),
553 "domAutomationController.send(unfocused_fired);", 620 "domAutomationController.send(unfocused_fired);",
554 &unfocused_fired)); 621 &unfocused_fired));
555 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 622 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
556 GetRenderViewHost(), 623 GetRenderViewHost(),
557 "domAutomationController.send(changed_select_fired);", 624 "domAutomationController.send(changed_select_fired);",
558 &changed_select_fired)); 625 &changed_select_fired));
559 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 626 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
560 GetRenderViewHost(), 627 GetRenderViewHost(),
561 "domAutomationController.send(unchanged_select_fired);", 628 "domAutomationController.send(unchanged_select_fired);",
562 &unchanged_select_fired)); 629 &unchanged_select_fired));
563 EXPECT_FALSE(focused_fired); 630 EXPECT_TRUE(focused_fired);
564 EXPECT_TRUE(unfocused_fired); 631 EXPECT_TRUE(unfocused_fired);
565 EXPECT_TRUE(changed_select_fired); 632 EXPECT_TRUE(changed_select_fired);
566 EXPECT_FALSE(unchanged_select_fired); 633 EXPECT_FALSE(unchanged_select_fired);
634 }
567 635
568 // Unfocus the first name field. Its change event should fire. 636 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, InputFiresBeforeChange) {
569 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 637 CreateTestProfile();
638
639 const char kInputFiresBeforeChangeScript[] =
640 "<script>"
641 "inputElementEvents = [];"
642 "function recordInputElementEvent(e) {"
643 " if (e.target.tagName != 'INPUT') throw 'only <input> tags allowed';"
644 " inputElementEvents.push(e.type);"
645 "}"
646 "selectElementEvents = [];"
647 "function recordSelectElementEvent(e) {"
648 " if (e.target.tagName != 'SELECT') throw 'only <select> tags allowed';"
649 " selectElementEvents.push(e.type);"
650 "}"
651 "document.getElementById('lastname').oninput = recordInputElementEvent;"
652 "document.getElementById('lastname').onchange = recordInputElementEvent;"
653 "document.getElementById('country').oninput = recordSelectElementEvent;"
654 "document.getElementById('country').onchange = recordSelectElementEvent;"
655 "</script>";
656
657 // Load the test page.
658 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(),
659 GURL(std::string(kDataURIPrefix) + kTestFormString +
660 kInputFiresBeforeChangeScript)));
661
662 // Invoke and accept the Autofill popup and verify the form was filled.
663 FocusFirstNameField();
664 SendKeyToPageAndWait(ui::VKEY_M);
665 SendKeyToPopupAndWait(ui::VKEY_DOWN);
666 SendKeyToPopupAndWait(ui::VKEY_RETURN);
667 ExpectFilledTestForm();
668
669 int num_input_element_events = -1;
670 ASSERT_TRUE(content::ExecuteScriptAndExtractInt(
570 GetRenderViewHost(), 671 GetRenderViewHost(),
571 "document.getElementById('firstname').blur();" 672 "domAutomationController.send(inputElementEvents.length);",
572 "domAutomationController.send(focused_fired);", &focused_fired)); 673 &num_input_element_events));
573 EXPECT_TRUE(focused_fired); 674 EXPECT_EQ(2, num_input_element_events);
675
676 std::vector<std::string> input_element_events;
677 input_element_events.resize(2);
678
679 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
680 GetRenderViewHost(),
681 "domAutomationController.send(inputElementEvents[0]);",
682 &input_element_events[0]));
683 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
684 GetRenderViewHost(),
685 "domAutomationController.send(inputElementEvents[1]);",
686 &input_element_events[1]));
687
688 EXPECT_EQ("input", input_element_events[0]);
689 EXPECT_EQ("change", input_element_events[1]);
690
691 int num_select_element_events = -1;
692 ASSERT_TRUE(content::ExecuteScriptAndExtractInt(
693 GetRenderViewHost(),
694 "domAutomationController.send(selectElementEvents.length);",
695 &num_select_element_events));
696 EXPECT_EQ(2, num_select_element_events);
697
698 std::vector<std::string> select_element_events;
699 select_element_events.resize(2);
700
701 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
702 GetRenderViewHost(),
703 "domAutomationController.send(selectElementEvents[0]);",
704 &select_element_events[0]));
705 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
706 GetRenderViewHost(),
707 "domAutomationController.send(selectElementEvents[1]);",
708 &select_element_events[1]));
709
710 EXPECT_EQ("input", select_element_events[0]);
711 EXPECT_EQ("change", select_element_events[1]);
574 } 712 }
575 713
576 // Test that we can autofill forms distinguished only by their |id| attribute. 714 // Test that we can autofill forms distinguished only by their |id| attribute.
577 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, 715 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest,
578 AutofillFormsDistinguishedById) { 716 AutofillFormsDistinguishedById) {
579 CreateTestProfile(); 717 CreateTestProfile();
580 718
581 // Load the test page. 719 // Load the test page.
582 const std::string kURL = 720 const std::string kURL =
583 std::string(kDataURIPrefix) + kTestFormString + 721 std::string(kDataURIPrefix) + kTestFormString +
(...skipping 18 matching lines...) Expand all
602 // JavaScript, with only one actually visible at any given time. 740 // JavaScript, with only one actually visible at any given time.
603 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillFormWithRepeatedField) { 741 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillFormWithRepeatedField) {
604 CreateTestProfile(); 742 CreateTestProfile();
605 743
606 // Load the test page. 744 // Load the test page.
607 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), 745 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(),
608 GURL(std::string(kDataURIPrefix) + 746 GURL(std::string(kDataURIPrefix) +
609 "<form action=\"http://www.example.com/\" method=\"POST\">" 747 "<form action=\"http://www.example.com/\" method=\"POST\">"
610 "<label for=\"firstname\">First name:</label>" 748 "<label for=\"firstname\">First name:</label>"
611 " <input type=\"text\" id=\"firstname\"" 749 " <input type=\"text\" id=\"firstname\""
612 " onFocus=\"domAutomationController.send(true)\"><br>" 750 " onfocus=\"domAutomationController.send(true)\"><br>"
613 "<label for=\"lastname\">Last name:</label>" 751 "<label for=\"lastname\">Last name:</label>"
614 " <input type=\"text\" id=\"lastname\"><br>" 752 " <input type=\"text\" id=\"lastname\"><br>"
615 "<label for=\"address1\">Address line 1:</label>" 753 "<label for=\"address1\">Address line 1:</label>"
616 " <input type=\"text\" id=\"address1\"><br>" 754 " <input type=\"text\" id=\"address1\"><br>"
617 "<label for=\"address2\">Address line 2:</label>" 755 "<label for=\"address2\">Address line 2:</label>"
618 " <input type=\"text\" id=\"address2\"><br>" 756 " <input type=\"text\" id=\"address2\"><br>"
619 "<label for=\"city\">City:</label>" 757 "<label for=\"city\">City:</label>"
620 " <input type=\"text\" id=\"city\"><br>" 758 " <input type=\"text\" id=\"city\"><br>"
621 "<label for=\"state\">State:</label>" 759 "<label for=\"state\">State:</label>"
622 " <select id=\"state\">" 760 " <select id=\"state\">"
(...skipping 25 matching lines...) Expand all
648 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, 786 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest,
649 AutofillFormWithNonAutofillableField) { 787 AutofillFormWithNonAutofillableField) {
650 CreateTestProfile(); 788 CreateTestProfile();
651 789
652 // Load the test page. 790 // Load the test page.
653 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), 791 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(),
654 GURL(std::string(kDataURIPrefix) + 792 GURL(std::string(kDataURIPrefix) +
655 "<form action=\"http://www.example.com/\" method=\"POST\">" 793 "<form action=\"http://www.example.com/\" method=\"POST\">"
656 "<label for=\"firstname\">First name:</label>" 794 "<label for=\"firstname\">First name:</label>"
657 " <input type=\"text\" id=\"firstname\"" 795 " <input type=\"text\" id=\"firstname\""
658 " onFocus=\"domAutomationController.send(true)\"><br>" 796 " onfocus=\"domAutomationController.send(true)\"><br>"
659 "<label for=\"middlename\">Middle name:</label>" 797 "<label for=\"middlename\">Middle name:</label>"
660 " <input type=\"text\" id=\"middlename\" autocomplete=\"off\" /><br>" 798 " <input type=\"text\" id=\"middlename\" autocomplete=\"off\" /><br>"
661 "<label for=\"lastname\">Last name:</label>" 799 "<label for=\"lastname\">Last name:</label>"
662 " <input type=\"text\" id=\"lastname\"><br>" 800 " <input type=\"text\" id=\"lastname\"><br>"
663 "<label for=\"address1\">Address line 1:</label>" 801 "<label for=\"address1\">Address line 1:</label>"
664 " <input type=\"text\" id=\"address1\"><br>" 802 " <input type=\"text\" id=\"address1\"><br>"
665 "<label for=\"address2\">Address line 2:</label>" 803 "<label for=\"address2\">Address line 2:</label>"
666 " <input type=\"text\" id=\"address2\"><br>" 804 " <input type=\"text\" id=\"address2\"><br>"
667 "<label for=\"city\">City:</label>" 805 "<label for=\"city\">City:</label>"
668 " <input type=\"text\" id=\"city\"><br>" 806 " <input type=\"text\" id=\"city\"><br>"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 " var option2 = new Option('United States', 'US');" 866 " var option2 = new Option('United States', 'US');"
729 " select_element.appendChild(option2);" 867 " select_element.appendChild(option2);"
730 " }" 868 " }"
731 "" 869 ""
732 " form.appendChild(select_element);" 870 " form.appendChild(select_element);"
733 " } else {" 871 " } else {"
734 " var input_element = document.createElement('input');" 872 " var input_element = document.createElement('input');"
735 " input_element.setAttribute('id', name);" 873 " input_element.setAttribute('id', name);"
736 " input_element.setAttribute('name', name);" 874 " input_element.setAttribute('name', name);"
737 "" 875 ""
738 " /* Add the onFocus listener to the 'firstname' field. */" 876 " /* Add the onfocus listener to the 'firstname' field. */"
739 " if (name === 'firstname') {" 877 " if (name === 'firstname') {"
740 " input_element.setAttribute(" 878 " input_element.onfocus = function() {"
741 " 'onFocus', 'domAutomationController.send(true)');" 879 " domAutomationController.send(true);"
880 " };"
742 " }" 881 " }"
743 "" 882 ""
744 " form.appendChild(input_element);" 883 " form.appendChild(input_element);"
745 " }" 884 " }"
746 "" 885 ""
747 " form.appendChild(document.createElement('br'));" 886 " form.appendChild(document.createElement('br'));"
748 "};" 887 "};"
749 "" 888 ""
750 "function BuildForm() {" 889 "function BuildForm() {"
751 " var elements = [" 890 " var elements = ["
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 TryBasicFormFill(); 931 TryBasicFormFill();
793 } 932 }
794 933
795 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillAfterTranslate) { 934 IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, AutofillAfterTranslate) {
796 CreateTestProfile(); 935 CreateTestProfile();
797 936
798 GURL url(std::string(kDataURIPrefix) + 937 GURL url(std::string(kDataURIPrefix) +
799 "<form action=\"http://www.example.com/\" method=\"POST\">" 938 "<form action=\"http://www.example.com/\" method=\"POST\">"
800 "<label for=\"fn\">なまえ</label>" 939 "<label for=\"fn\">なまえ</label>"
801 " <input type=\"text\" id=\"fn\"" 940 " <input type=\"text\" id=\"fn\""
802 " onFocus=\"domAutomationController.send(true)\"" 941 " onfocus=\"domAutomationController.send(true)\""
803 "><br>" 942 "><br>"
804 "<label for=\"ln\">みょうじ</label>" 943 "<label for=\"ln\">みょうじ</label>"
805 " <input type=\"text\" id=\"ln\"><br>" 944 " <input type=\"text\" id=\"ln\"><br>"
806 "<label for=\"a1\">Address line 1:</label>" 945 "<label for=\"a1\">Address line 1:</label>"
807 " <input type=\"text\" id=\"a1\"><br>" 946 " <input type=\"text\" id=\"a1\"><br>"
808 "<label for=\"a2\">Address line 2:</label>" 947 "<label for=\"a2\">Address line 2:</label>"
809 " <input type=\"text\" id=\"a2\"><br>" 948 " <input type=\"text\" id=\"a2\"><br>"
810 "<label for=\"ci\">City:</label>" 949 "<label for=\"ci\">City:</label>"
811 " <input type=\"text\" id=\"ci\"><br>" 950 " <input type=\"text\" id=\"ci\"><br>"
812 "<label for=\"st\">State:</label>" 951 "<label for=\"st\">State:</label>"
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 ASSERT_TRUE(content::ExecuteScript( 1231 ASSERT_TRUE(content::ExecuteScript(
1093 GetRenderViewHost(), 1232 GetRenderViewHost(),
1094 "document.querySelector('input').autocomplete = 'off';")); 1233 "document.querySelector('input').autocomplete = 'off';"));
1095 1234
1096 // Press the down arrow to select the suggestion and attempt to preview the 1235 // Press the down arrow to select the suggestion and attempt to preview the
1097 // autofilled form. 1236 // autofilled form.
1098 SendKeyToPopupAndWait(ui::VKEY_DOWN); 1237 SendKeyToPopupAndWait(ui::VKEY_DOWN);
1099 } 1238 }
1100 1239
1101 } // namespace autofill 1240 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | components/autofill/content/renderer/form_autofill_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698