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