Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / autofill_options_browsertest.js
index d260a21..4cbd76d 100644 (file)
@@ -3,10 +3,30 @@
 // found in the LICENSE file.
 
 /**
+ * Returns the HTML element for the |field|.
+ * @param {string} field The field name for the element.
+ * @return {HTMLElement} The HTML element.
+ */
+function getField(field) {
+  return document.querySelector(
+      '#autofill-edit-address-overlay [field=' + field + ']');
+}
+
+/**
+ * Returns the size of the |list|.
+ * @param {HTMLElement} list The list to check.
+ * @return {int} The size of the list.
+ */
+function getListSize(list) {
+  // Remove 1 for placeholder input field.
+  return list.items.length - 1;
+}
+
+/**
  * TestFixture for autofill options WebUI testing.
  * @extends {testing.Test}
  * @constructor
- **/
+ */
 function AutofillOptionsWebUITest() {}
 
 AutofillOptionsWebUITest.prototype = {
@@ -14,7 +34,7 @@ AutofillOptionsWebUITest.prototype = {
 
   /**
    * Browse to autofill options.
-   **/
+   */
   browsePreload: 'chrome://settings-frame/autofill',
 };
 
@@ -35,16 +55,11 @@ AutofillEditAddressWebUITest.prototype = {
 
   /**
    * Browse to autofill edit address overlay.
-   **/
+   */
   browsePreload: 'chrome://settings-frame/autofillEditAddress',
 
-  /** @inheritDoc  */
+  /** @override  */
   isAsync: true,
-
-  /**
-   * TODO(tkent): Fix an accessibility error.
-   */
-  runAccessibilityChecks: false,
 };
 
 TEST_F('AutofillEditAddressWebUITest',
@@ -52,7 +67,7 @@ TEST_F('AutofillEditAddressWebUITest',
        function() {
   assertEquals(this.browsePreload, document.location.href);
 
-  var phoneList = $('phone-list');
+  var phoneList = getField('phone');
   expectEquals(0, phoneList.validationRequests_);
   phoneList.doneValidating().then(function() {
     phoneList.focus();
@@ -66,3 +81,99 @@ TEST_F('AutofillEditAddressWebUITest',
     });
   });
 });
+
+TEST_F('AutofillEditAddressWebUITest',
+       'testInitialFormLayout',
+       function() {
+  assertEquals(this.browsePreload, document.location.href);
+
+  assertEquals(getField('country').value, '');
+  assertEquals(0, getListSize(getField('phone')));
+  assertEquals(0, getListSize(getField('email')));
+  assertEquals(0, getListSize(getField('fullName')));
+  assertEquals('', getField('city').value);
+
+  testDone();
+});
+
+TEST_F('AutofillEditAddressWebUITest',
+       'testLoadAddress',
+       function() {
+  assertEquals(this.browsePreload, document.location.href);
+
+  var testAddress = {
+    guid: 'GUID Value',
+    fullName: ['Full Name 1', 'Full Name 2'],
+    companyName: 'Company Name Value',
+    addrLines: 'First Line Value\nSecond Line Value',
+    dependentLocality: 'Dependent Locality Value',
+    city: 'City Value',
+    state: 'State Value',
+    postalCode: 'Postal Code Value',
+    sortingCode: 'Sorting Code Value',
+    country: 'CH',
+    phone: ['123', '456'],
+    email: ['a@b.c', 'x@y.z'],
+    languageCode: 'de',
+    components: [[
+       {field: 'postalCode', length: 'short'},
+       {field: 'sortingCode', length: 'short'},
+       {field: 'dependentLocality', length: 'short'},
+       {field: 'city', length: 'short'},
+       {field: 'state', length: 'short'},
+       {field: 'addrLines', length: 'long'},
+       {field: 'companyName', length: 'long'},
+       {field: 'country', length: 'long'},
+       {field: 'fullName', length: 'long', placeholder: 'Add name'}
+    ]]
+  };
+  AutofillEditAddressOverlay.loadAddress(testAddress);
+
+  assertEquals(testAddress.guid, AutofillEditAddressOverlay.getInstance().guid);
+  assertEquals(testAddress.languageCode,
+               AutofillEditAddressOverlay.getInstance().languageCode);
+
+  var lists = ['fullName', 'email', 'phone'];
+  for (var i in lists) {
+    var field = getField(lists[i]);
+    assertEquals(testAddress[lists[i]].length, getListSize(field));
+    assertTrue(field.getAttribute('placeholder').length > 0);
+    assertTrue(field instanceof cr.ui.List);
+  }
+
+  var inputs = ['companyName', 'dependentLocality', 'city', 'state',
+                'postalCode', 'sortingCode'];
+  for (var i in inputs) {
+    var field = getField(inputs[i]);
+    assertEquals(testAddress[inputs[i]], field.value);
+    assertTrue(field instanceof HTMLInputElement);
+  }
+
+  var addrLines = getField('addrLines');
+  assertEquals(testAddress.addrLines, addrLines.value);
+  assertTrue(addrLines instanceof HTMLTextAreaElement);
+
+  var country = getField('country');
+  assertEquals(testAddress.country, country.value);
+  assertTrue(country instanceof HTMLSelectElement);
+
+  testDone();
+});
+
+TEST_F('AutofillEditAddressWebUITest',
+       'testLoadAddressComponents',
+       function() {
+  assertEquals(this.browsePreload, document.location.href);
+
+  var testInput = {
+    languageCode: 'fr',
+    components: [[{field: 'city'}],
+                 [{field: 'state'}]]
+  };
+  AutofillEditAddressOverlay.loadAddressComponents(testInput);
+
+  assertEquals('fr', AutofillEditAddressOverlay.getInstance().languageCode);
+  expectEquals(2, $('autofill-edit-address-fields').children.length);
+
+  testDone();
+});