Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / browser / ui / webui / options / autofill_options_browsertest.js
blob29a778f00023ad500a962b4740221cbf4470641f
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 GEN_INCLUDE(['options_browsertest_base.js']);
7 /**
8  * Returns the HTML element for the |field|.
9  * @param {string} field The field name for the element.
10  * @return {HTMLElement} The HTML element.
11  */
12 function getField(field) {
13   return document.querySelector(
14       '#autofill-edit-address-overlay [field=' + field + ']');
17 /**
18  * Returns the size of the |list|.
19  * @param {HTMLElement} list The list to check.
20  * @return {number} The size of the list.
21  */
22 function getListSize(list) {
23   // Remove 1 for placeholder input field.
24   return list.items.length - 1;
27 /**
28  * TestFixture for autofill options WebUI testing.
29  * @extends {testing.Test}
30  * @constructor
31  */
32 function AutofillOptionsWebUITest() {}
34 AutofillOptionsWebUITest.prototype = {
35   __proto__: OptionsBrowsertestBase.prototype,
37   /**
38    * Browse to autofill options.
39    * @override
40    */
41   browsePreload: 'chrome://settings-frame/autofill',
44 // Test opening the autofill options has correct location.
45 TEST_F('AutofillOptionsWebUITest', 'testOpenAutofillOptions', function() {
46   assertEquals(this.browsePreload, document.location.href);
47 });
49 /**
50  * TestFixture for autofill edit address overlay WebUI testing.
51  * @extends {testing.Test}
52  * @constructor
53  */
54 function AutofillEditAddressWebUITest() {}
56 AutofillEditAddressWebUITest.prototype = {
57   __proto__: OptionsBrowsertestBase.prototype,
59   /** @override  */
60   browsePreload: 'chrome://settings-frame/autofillEditAddress',
63 TEST_F('AutofillEditAddressWebUITest', 'testInitialFormLayout', function() {
64   assertEquals(this.browsePreload, document.location.href);
66   var fields = ['country', 'phone', 'email', 'fullName', 'city'];
67   for (field in fields) {
68     assertEquals('', getField(fields[field]).value, 'Field: ' + fields[field]);
69   }
71   testDone();
72 });
74 TEST_F('AutofillEditAddressWebUITest', 'testLoadAddress', function() {
75   // http://crbug.com/434502
76   // Accessibility failure was originally (and consistently) seen on Mac OS and
77   // Chromium OS. Disabling for all OSs because of a flake in Windows. There is
78   // a possibility for flake in linux too.
79   this.disableAccessibilityChecks();
81   assertEquals(this.browsePreload, document.location.href);
83   var testAddress = {
84     guid: 'GUID Value',
85     fullName: 'Full Name 1',
86     companyName: 'Company Name Value',
87     addrLines: 'First Line Value\nSecond Line Value',
88     dependentLocality: 'Dependent Locality Value',
89     city: 'City Value',
90     state: 'State Value',
91     postalCode: 'Postal Code Value',
92     sortingCode: 'Sorting Code Value',
93     country: 'CH',
94     phone: '123',
95     email: 'a@b.c',
96     languageCode: 'de',
97     components: [[
98        {field: 'postalCode', length: 'short'},
99        {field: 'sortingCode', length: 'short'},
100        {field: 'dependentLocality', length: 'short'},
101        {field: 'city', length: 'short'},
102        {field: 'state', length: 'short'},
103        {field: 'addrLines', length: 'long'},
104        {field: 'companyName', length: 'long'},
105        {field: 'country', length: 'long'},
106        {field: 'fullName', length: 'long', placeholder: 'Add name'}
107     ]]
108   };
109   AutofillEditAddressOverlay.loadAddress(testAddress);
111   var overlay = AutofillEditAddressOverlay.getInstance();
112   assertEquals(testAddress.guid, overlay.guid_);
113   assertEquals(testAddress.languageCode, overlay.languageCode_);
115   var inputs = ['companyName', 'dependentLocality', 'city', 'state',
116                 'postalCode', 'sortingCode', 'fullName', 'email', 'phone'];
117   for (var i in inputs) {
118     var field = getField(inputs[i]);
119     assertEquals(testAddress[inputs[i]], field.value);
120     assertTrue(field instanceof HTMLInputElement);
121   }
123   var addrLines = getField('addrLines');
124   assertEquals(testAddress.addrLines, addrLines.value);
125   assertTrue(addrLines instanceof HTMLTextAreaElement);
127   var country = getField('country');
128   assertEquals(testAddress.country, country.value);
129   assertTrue(country instanceof HTMLSelectElement);
132 TEST_F('AutofillEditAddressWebUITest', 'testLoadAddressComponents', function() {
133   assertEquals(this.browsePreload, document.location.href);
135   var testInput = {
136     languageCode: 'fr',
137     components: [[{field: 'city'}],
138                  [{field: 'state'}]]
139   };
140   AutofillEditAddressOverlay.loadAddressComponents(testInput);
142   assertEquals('fr', AutofillEditAddressOverlay.getInstance().languageCode_);
143   expectEquals(2, $('autofill-edit-address-fields').children.length);
146 TEST_F('AutofillEditAddressWebUITest', 'testFieldValuesSaved', function() {
147   assertEquals(this.browsePreload, document.location.href);
149   AutofillEditAddressOverlay.loadAddressComponents({
150     languageCode: 'en',
151     components: [[{field: 'city'}]]
152   });
153   getField('city').value = 'New York';
155   AutofillEditAddressOverlay.loadAddressComponents({
156     languageCode: 'en',
157     components: [[{field: 'state'}]]
158   });
159   assertEquals(null, getField('city'));
161   AutofillEditAddressOverlay.loadAddressComponents({
162     languageCode: 'en',
163     components: [[{field: 'city'}]]
164   });
165   assertEquals('New York', getField('city').value);