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

Side by Side Diff: chrome/browser/ui/webui/options/autofill_options_browsertest.js

Issue 273533003: autofill/options: address some nits I had on one of rouslan@'s CLs[1]. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: asdf Created 6 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 /** 5 /**
6 * Returns the HTML element for the |field|. 6 * Returns the HTML element for the |field|.
7 * @param {string} field The field name for the element. 7 * @param {string} field The field name for the element.
8 * @return {HTMLElement} The HTML element. 8 * @return {HTMLElement} The HTML element.
9 */ 9 */
10 function getField(field) { 10 function getField(field) {
11 return document.querySelector( 11 return document.querySelector(
12 '#autofill-edit-address-overlay [field=' + field + ']'); 12 '#autofill-edit-address-overlay [field=' + field + ']');
13 } 13 }
14 14
15 /** 15 /**
16 * Returns the size of the |list|. 16 * Returns the size of the |list|.
17 * @param {HTMLElement} list The list to check. 17 * @param {HTMLElement} list The list to check.
18 * @return {int} The size of the list. 18 * @return {number} The size of the list.
19 */ 19 */
20 function getListSize(list) { 20 function getListSize(list) {
21 // Remove 1 for placeholder input field. 21 // Remove 1 for placeholder input field.
22 return list.items.length - 1; 22 return list.items.length - 1;
23 } 23 }
24 24
25 /** 25 /**
26 * TestFixture for autofill options WebUI testing. 26 * TestFixture for autofill options WebUI testing.
27 * @extends {testing.Test} 27 * @extends {testing.Test}
28 * @constructor 28 * @constructor
(...skipping 17 matching lines...) Expand all
46 /** 46 /**
47 * TestFixture for autofill edit address overlay WebUI testing. 47 * TestFixture for autofill edit address overlay WebUI testing.
48 * @extends {testing.Test} 48 * @extends {testing.Test}
49 * @constructor 49 * @constructor
50 */ 50 */
51 function AutofillEditAddressWebUITest() {} 51 function AutofillEditAddressWebUITest() {}
52 52
53 AutofillEditAddressWebUITest.prototype = { 53 AutofillEditAddressWebUITest.prototype = {
54 __proto__: testing.Test.prototype, 54 __proto__: testing.Test.prototype,
55 55
56 /** 56 /** @override */
57 * Browse to autofill edit address overlay.
58 */
59 browsePreload: 'chrome://settings-frame/autofillEditAddress', 57 browsePreload: 'chrome://settings-frame/autofillEditAddress',
60
61 /** @override */
62 isAsync: true,
63 }; 58 };
64 59
65 TEST_F('AutofillEditAddressWebUITest', 60 TEST_F('AutofillEditAddressWebUITest', 'testInitialFormLayout', function() {
66 'testAutofillPhoneValueListDoneValidating',
67 function() {
68 assertEquals(this.browsePreload, document.location.href);
69
70 var phoneList = getField('phone');
71 expectEquals(0, phoneList.validationRequests_);
72 phoneList.doneValidating().then(function() {
73 phoneList.focus();
74 var input = phoneList.querySelector('input');
75 input.focus();
76 document.execCommand('insertText', false, '111-222-333');
77 assertEquals('111-222-333', input.value);
78 input.blur();
79 phoneList.doneValidating().then(function() {
80 testDone();
81 });
82 });
83 });
84
85 TEST_F('AutofillEditAddressWebUITest',
86 'testInitialFormLayout',
87 function() {
88 assertEquals(this.browsePreload, document.location.href); 61 assertEquals(this.browsePreload, document.location.href);
89 62
90 assertEquals(getField('country').value, ''); 63 assertEquals(getField('country').value, '');
91 assertEquals(0, getListSize(getField('phone'))); 64 assertEquals(0, getListSize(getField('phone')));
92 assertEquals(0, getListSize(getField('email'))); 65 assertEquals(0, getListSize(getField('email')));
93 assertEquals(0, getListSize(getField('fullName'))); 66 assertEquals(0, getListSize(getField('fullName')));
94 assertEquals('', getField('city').value); 67 assertEquals('', getField('city').value);
95 68
96 testDone(); 69 testDone();
97 }); 70 });
98 71
99 TEST_F('AutofillEditAddressWebUITest', 72 TEST_F('AutofillEditAddressWebUITest', 'testLoadAddress', function() {
100 'testLoadAddress',
101 function() {
102 assertEquals(this.browsePreload, document.location.href); 73 assertEquals(this.browsePreload, document.location.href);
103 74
104 var testAddress = { 75 var testAddress = {
105 guid: 'GUID Value', 76 guid: 'GUID Value',
106 fullName: ['Full Name 1', 'Full Name 2'], 77 fullName: ['Full Name 1', 'Full Name 2'],
107 companyName: 'Company Name Value', 78 companyName: 'Company Name Value',
108 addrLines: 'First Line Value\nSecond Line Value', 79 addrLines: 'First Line Value\nSecond Line Value',
109 dependentLocality: 'Dependent Locality Value', 80 dependentLocality: 'Dependent Locality Value',
110 city: 'City Value', 81 city: 'City Value',
111 state: 'State Value', 82 state: 'State Value',
(...skipping 10 matching lines...) Expand all
122 {field: 'city', length: 'short'}, 93 {field: 'city', length: 'short'},
123 {field: 'state', length: 'short'}, 94 {field: 'state', length: 'short'},
124 {field: 'addrLines', length: 'long'}, 95 {field: 'addrLines', length: 'long'},
125 {field: 'companyName', length: 'long'}, 96 {field: 'companyName', length: 'long'},
126 {field: 'country', length: 'long'}, 97 {field: 'country', length: 'long'},
127 {field: 'fullName', length: 'long', placeholder: 'Add name'} 98 {field: 'fullName', length: 'long', placeholder: 'Add name'}
128 ]] 99 ]]
129 }; 100 };
130 AutofillEditAddressOverlay.loadAddress(testAddress); 101 AutofillEditAddressOverlay.loadAddress(testAddress);
131 102
132 assertEquals(testAddress.guid, AutofillEditAddressOverlay.getInstance().guid); 103 var overlay = AutofillEditAddressOverlay.getInstance();
133 assertEquals(testAddress.languageCode, 104 assertEquals(testAddress.guid, overlay.guid_);
134 AutofillEditAddressOverlay.getInstance().languageCode); 105 assertEquals(testAddress.languageCode, overlay.languageCode_);
135 106
136 var lists = ['fullName', 'email', 'phone']; 107 var lists = ['fullName', 'email', 'phone'];
137 for (var i in lists) { 108 for (var i in lists) {
138 var field = getField(lists[i]); 109 var field = getField(lists[i]);
139 assertEquals(testAddress[lists[i]].length, getListSize(field)); 110 assertEquals(testAddress[lists[i]].length, getListSize(field));
140 assertTrue(field.getAttribute('placeholder').length > 0); 111 assertTrue(field.getAttribute('placeholder').length > 0);
141 assertTrue(field instanceof cr.ui.List); 112 assertTrue(field instanceof cr.ui.List);
142 } 113 }
143 114
144 var inputs = ['companyName', 'dependentLocality', 'city', 'state', 115 var inputs = ['companyName', 'dependentLocality', 'city', 'state',
145 'postalCode', 'sortingCode']; 116 'postalCode', 'sortingCode'];
146 for (var i in inputs) { 117 for (var i in inputs) {
147 var field = getField(inputs[i]); 118 var field = getField(inputs[i]);
148 assertEquals(testAddress[inputs[i]], field.value); 119 assertEquals(testAddress[inputs[i]], field.value);
149 assertTrue(field instanceof HTMLInputElement); 120 assertTrue(field instanceof HTMLInputElement);
150 } 121 }
151 122
152 var addrLines = getField('addrLines'); 123 var addrLines = getField('addrLines');
153 assertEquals(testAddress.addrLines, addrLines.value); 124 assertEquals(testAddress.addrLines, addrLines.value);
154 assertTrue(addrLines instanceof HTMLTextAreaElement); 125 assertTrue(addrLines instanceof HTMLTextAreaElement);
155 126
156 var country = getField('country'); 127 var country = getField('country');
157 assertEquals(testAddress.country, country.value); 128 assertEquals(testAddress.country, country.value);
158 assertTrue(country instanceof HTMLSelectElement); 129 assertTrue(country instanceof HTMLSelectElement);
159
160 testDone();
161 }); 130 });
162 131
163 TEST_F('AutofillEditAddressWebUITest', 132 TEST_F('AutofillEditAddressWebUITest', 'testLoadAddressComponents', function() {
164 'testLoadAddressComponents',
165 function() {
166 assertEquals(this.browsePreload, document.location.href); 133 assertEquals(this.browsePreload, document.location.href);
167 134
168 var testInput = { 135 var testInput = {
169 languageCode: 'fr', 136 languageCode: 'fr',
170 components: [[{field: 'city'}], 137 components: [[{field: 'city'}],
171 [{field: 'state'}]] 138 [{field: 'state'}]]
172 }; 139 };
173 AutofillEditAddressOverlay.loadAddressComponents(testInput); 140 AutofillEditAddressOverlay.loadAddressComponents(testInput);
174 141
175 assertEquals('fr', AutofillEditAddressOverlay.getInstance().languageCode); 142 assertEquals('fr', AutofillEditAddressOverlay.getInstance().languageCode_);
176 expectEquals(2, $('autofill-edit-address-fields').children.length); 143 expectEquals(2, $('autofill-edit-address-fields').children.length);
144 });
177 145
178 testDone(); 146 /**
147 * Class to test the autofill edit address overlay asynchronously.
148 * @extends {testing.Test}
149 * @constructor
150 */
151 function AutofillEditAddressAsyncWebUITest() {}
152
153 AutofillEditAddressAsyncWebUITest.prototype = {
154 __proto__: testing.Test.prototype,
155
156 /** @override */
157 browsePreload: 'chrome://settings-frame/autofillEditAddress',
158
159 /** @override */
160 isAsync: true,
161 };
162
163 TEST_F('AutofillEditAddressAsyncWebUITest',
164 'testAutofillPhoneValueListDoneValidating',
165 function() {
166 assertEquals(this.browsePreload, document.location.href);
167
168 var phoneList = getField('phone');
169 expectEquals(0, phoneList.validationRequests_);
170 phoneList.doneValidating().then(function() {
171 phoneList.focus();
172 var input = phoneList.querySelector('input');
173 input.focus();
174 document.execCommand('insertText', false, '111-222-333');
175 assertEquals('111-222-333', input.value);
176 input.blur();
177 phoneList.doneValidating().then(testDone);
178 });
179 }); 179 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698