| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 /** @fileoverview Runs the Polymer Autofill Settings tests. */ | 5 /** @fileoverview Runs the Polymer Autofill Settings tests. */ |
| 6 | 6 |
| 7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */ | 7 /** @const {string} Path to root from chrome/test/data/webui/settings/. */ |
| 8 var ROOT_PATH = '../../../../../'; | 8 var ROOT_PATH = '../../../../../'; |
| 9 | 9 |
| 10 // Polymer BrowserTest fixture. | 10 // Polymer BrowserTest fixture. |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 var title = dialog.$$('.title'); | 422 var title = dialog.$$('.title'); |
| 423 assertEquals(self.i18nStrings.editAddressTitle, title.textContent); | 423 assertEquals(self.i18nStrings.editAddressTitle, title.textContent); |
| 424 // Should be possible to save when editing because fields are populated. | 424 // Should be possible to save when editing because fields are populated. |
| 425 assertFalse(dialog.$.saveButton.disabled); | 425 assertFalse(dialog.$.saveButton.disabled); |
| 426 }); | 426 }); |
| 427 }); | 427 }); |
| 428 | 428 |
| 429 test('verifyCountryIsSaved', function() { | 429 test('verifyCountryIsSaved', function() { |
| 430 var address = FakeDataMaker.emptyAddressEntry(); | 430 var address = FakeDataMaker.emptyAddressEntry(); |
| 431 return self.createAddressDialog_(address).then(function(dialog) { | 431 return self.createAddressDialog_(address).then(function(dialog) { |
| 432 assertEquals(undefined, dialog.$.countryList.selected); | 432 var countrySelect = dialog.$$('select'); |
| 433 assertEquals('', countrySelect.value); |
| 433 assertEquals(undefined, address.countryCode); | 434 assertEquals(undefined, address.countryCode); |
| 434 dialog.$.countryList.selected = 'US'; | 435 countrySelect.value = 'US'; |
| 436 countrySelect.dispatchEvent(new CustomEvent('change')); |
| 435 Polymer.dom.flush(); | 437 Polymer.dom.flush(); |
| 436 assertEquals('US', dialog.$.countryList.selected); | 438 assertEquals('US', countrySelect.value); |
| 437 assertEquals('US', address.countryCode); | 439 assertEquals('US', address.countryCode); |
| 438 }); | 440 }); |
| 439 }); | 441 }); |
| 440 | 442 |
| 441 test('verifyPhoneAndEmailAreSaved', function() { | 443 test('verifyPhoneAndEmailAreSaved', function() { |
| 442 var address = FakeDataMaker.emptyAddressEntry(); | 444 var address = FakeDataMaker.emptyAddressEntry(); |
| 443 return self.createAddressDialog_(address).then(function(dialog) { | 445 return self.createAddressDialog_(address).then(function(dialog) { |
| 444 assertEquals('', dialog.$.phoneInput.value); | 446 assertEquals('', dialog.$.phoneInput.value); |
| 445 assertFalse(!!(address.phoneNumbers && address.phoneNumbers[0])); | 447 assertFalse(!!(address.phoneNumbers && address.phoneNumbers[0])); |
| 446 | 448 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 }); | 518 }); |
| 517 }).then(function() { | 519 }).then(function() { |
| 518 assertTrue(saveButton.disabled); | 520 assertTrue(saveButton.disabled); |
| 519 }); | 521 }); |
| 520 }); | 522 }); |
| 521 }); | 523 }); |
| 522 }); | 524 }); |
| 523 | 525 |
| 524 // Setting the country should allow the address to be saved. | 526 // Setting the country should allow the address to be saved. |
| 525 test('verifySaveIsNotClickableIfCountryNotSet', function() { | 527 test('verifySaveIsNotClickableIfCountryNotSet', function() { |
| 528 var dialog = null; |
| 529 |
| 530 var simulateCountryChange = function(countryCode) { |
| 531 var countrySelect = dialog.$$('select'); |
| 532 countrySelect.value = countryCode; |
| 533 countrySelect.dispatchEvent(new CustomEvent('change')); |
| 534 }; |
| 535 |
| 526 return self.createAddressDialog_( | 536 return self.createAddressDialog_( |
| 527 FakeDataMaker.emptyAddressEntry()).then(function(dialog) { | 537 FakeDataMaker.emptyAddressEntry()).then(function(d) { |
| 528 var saveButton = dialog.$.saveButton; | 538 dialog = d; |
| 529 var countries = dialog.$.countryList; | 539 assertTrue(dialog.$.saveButton.disabled); |
| 530 | 540 |
| 531 return expectEvent(dialog, 'on-update-can-save', function() { | 541 return expectEvent( |
| 532 assertTrue(saveButton.disabled); | 542 dialog, 'on-update-can-save', |
| 533 countries.selected = 'US'; | 543 simulateCountryChange.bind(null, 'US')); |
| 534 }).then(function() { | 544 }).then(function() { |
| 535 assertFalse(saveButton.disabled); | 545 assertFalse(dialog.$.saveButton.disabled); |
| 536 countries.selected = ''; | 546 |
| 537 }).then(function() { | 547 return expectEvent( |
| 538 assertTrue(saveButton.disabled); | 548 dialog, 'on-update-can-save', |
| 539 }); | 549 simulateCountryChange.bind(null, '')); |
| 550 }).then(function() { |
| 551 assertTrue(dialog.$.saveButton.disabled); |
| 540 }); | 552 }); |
| 541 }); | 553 }); |
| 542 | 554 |
| 543 // Test will timeout if save-address event is not fired. | 555 // Test will timeout if save-address event is not fired. |
| 544 test('verifyDefaultCountryIsAppliedWhenSaving', function() { | 556 test('verifyDefaultCountryIsAppliedWhenSaving', function() { |
| 545 var address = FakeDataMaker.emptyAddressEntry(); | 557 var address = FakeDataMaker.emptyAddressEntry(); |
| 546 address.companyName = 'Google'; | 558 address.companyName = 'Google'; |
| 547 return self.createAddressDialog_(address).then(function(dialog) { | 559 return self.createAddressDialog_(address).then(function(dialog) { |
| 548 return expectEvent(dialog, 'save-address', function() { | 560 return expectEvent(dialog, 'save-address', function() { |
| 549 // Verify |countryCode| is not set. | 561 // Verify |countryCode| is not set. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 row = rows[3]; | 633 row = rows[3]; |
| 622 cols = row.querySelectorAll('.address-column'); | 634 cols = row.querySelectorAll('.address-column'); |
| 623 assertEquals(3, cols.length); | 635 assertEquals(3, cols.length); |
| 624 assertEquals(address.addressLevel2, cols[0].value); | 636 assertEquals(address.addressLevel2, cols[0].value); |
| 625 assertEquals(address.addressLevel1, cols[1].value); | 637 assertEquals(address.addressLevel1, cols[1].value); |
| 626 assertEquals(address.postalCode, cols[2].value); | 638 assertEquals(address.postalCode, cols[2].value); |
| 627 // Country | 639 // Country |
| 628 row = rows[4]; | 640 row = rows[4]; |
| 629 cols = row.querySelectorAll('.address-column'); | 641 cols = row.querySelectorAll('.address-column'); |
| 630 assertEquals(1, cols.length); | 642 assertEquals(1, cols.length); |
| 631 assertEquals('United States', cols[0].value); | 643 var countrySelect = /** @type {!HTMLSelectElement} */ (cols[0]); |
| 644 assertEquals( |
| 645 'United States', |
| 646 countrySelect.selectedOptions[0].textContent.trim()); |
| 632 // Phone, Email | 647 // Phone, Email |
| 633 row = rows[5]; | 648 row = rows[5]; |
| 634 cols = row.querySelectorAll('.address-column'); | 649 cols = row.querySelectorAll('.address-column'); |
| 635 assertEquals(2, cols.length); | 650 assertEquals(2, cols.length); |
| 636 assertEquals(address.phoneNumbers[0], cols[0].value); | 651 assertEquals(address.phoneNumbers[0], cols[0].value); |
| 637 assertEquals(address.emailAddresses[0], cols[1].value); | 652 assertEquals(address.emailAddresses[0], cols[1].value); |
| 638 }); | 653 }); |
| 639 }); | 654 }); |
| 640 | 655 |
| 641 // GB address has 1 field per line for all lines that change. | 656 // GB address has 1 field per line for all lines that change. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 assertEquals(address.addressLevel1, cols[0].value); | 698 assertEquals(address.addressLevel1, cols[0].value); |
| 684 // Postal code | 699 // Postal code |
| 685 row = rows[5]; | 700 row = rows[5]; |
| 686 cols = row.querySelectorAll('.address-column'); | 701 cols = row.querySelectorAll('.address-column'); |
| 687 assertEquals(1, cols.length); | 702 assertEquals(1, cols.length); |
| 688 assertEquals(address.postalCode, cols[0].value); | 703 assertEquals(address.postalCode, cols[0].value); |
| 689 // Country | 704 // Country |
| 690 row = rows[6]; | 705 row = rows[6]; |
| 691 cols = row.querySelectorAll('.address-column'); | 706 cols = row.querySelectorAll('.address-column'); |
| 692 assertEquals(1, cols.length); | 707 assertEquals(1, cols.length); |
| 693 assertEquals('United Kingdom', cols[0].value); | 708 assertEquals( |
| 709 'United Kingdom', cols[0].selectedOptions[0].textContent.trim()); |
| 694 // Phone, Email | 710 // Phone, Email |
| 695 row = rows[7]; | 711 row = rows[7]; |
| 696 cols = row.querySelectorAll('.address-column'); | 712 cols = row.querySelectorAll('.address-column'); |
| 697 assertEquals(2, cols.length); | 713 assertEquals(2, cols.length); |
| 698 assertEquals(address.phoneNumbers[0], cols[0].value); | 714 assertEquals(address.phoneNumbers[0], cols[0].value); |
| 699 assertEquals(address.emailAddresses[0], cols[1].value); | 715 assertEquals(address.emailAddresses[0], cols[1].value); |
| 700 }); | 716 }); |
| 701 }); | 717 }); |
| 702 | 718 |
| 703 // IL address has 2 fields on the same line and is an RTL locale. | 719 // IL address has 2 fields on the same line and is an RTL locale. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 // City, Postal code | 752 // City, Postal code |
| 737 row = rows[3]; | 753 row = rows[3]; |
| 738 cols = row.querySelectorAll('.address-column'); | 754 cols = row.querySelectorAll('.address-column'); |
| 739 assertEquals(2, cols.length); | 755 assertEquals(2, cols.length); |
| 740 assertEquals(address.addressLevel2, cols[0].value); | 756 assertEquals(address.addressLevel2, cols[0].value); |
| 741 assertEquals(address.postalCode, cols[1].value); | 757 assertEquals(address.postalCode, cols[1].value); |
| 742 // Country | 758 // Country |
| 743 row = rows[4]; | 759 row = rows[4]; |
| 744 cols = row.querySelectorAll('.address-column'); | 760 cols = row.querySelectorAll('.address-column'); |
| 745 assertEquals(1, cols.length); | 761 assertEquals(1, cols.length); |
| 746 assertEquals('Israel', cols[0].value); | 762 assertEquals( |
| 763 'Israel', cols[0].selectedOptions[0].textContent.trim()); |
| 747 // Phone, Email | 764 // Phone, Email |
| 748 row = rows[5]; | 765 row = rows[5]; |
| 749 cols = row.querySelectorAll('.address-column'); | 766 cols = row.querySelectorAll('.address-column'); |
| 750 assertEquals(2, cols.length); | 767 assertEquals(2, cols.length); |
| 751 assertEquals(address.phoneNumbers[0], cols[0].value); | 768 assertEquals(address.phoneNumbers[0], cols[0].value); |
| 752 assertEquals(address.emailAddresses[0], cols[1].value); | 769 assertEquals(address.emailAddresses[0], cols[1].value); |
| 753 }); | 770 }); |
| 754 }); | 771 }); |
| 755 | 772 |
| 756 // US has an extra field 'State'. Validate that this field is | 773 // US has an extra field 'State'. Validate that this field is |
| 757 // persisted when switching to IL then back to US. | 774 // persisted when switching to IL then back to US. |
| 758 test('verifyAddressPersistanceWhenSwitchingCountries', function() { | 775 test('verifyAddressPersistanceWhenSwitchingCountries', function() { |
| 759 var address = FakeDataMaker.emptyAddressEntry(); | 776 var address = FakeDataMaker.emptyAddressEntry(); |
| 760 address.countryCode = 'US'; | 777 address.countryCode = 'US'; |
| 761 | 778 |
| 762 return self.createAddressDialog_(address).then(function(dialog) { | 779 return self.createAddressDialog_(address).then(function(dialog) { |
| 763 var city = 'Los Angeles'; | 780 var city = 'Los Angeles'; |
| 764 var state = 'CA'; | 781 var state = 'CA'; |
| 765 var zip = '90291'; | 782 var zip = '90291'; |
| 783 var countrySelect = dialog.$$('select'); |
| 766 | 784 |
| 767 return expectEvent(dialog, 'on-update-address-wrapper', function() { | 785 return expectEvent(dialog, 'on-update-address-wrapper', function() { |
| 768 // US: | 786 // US: |
| 769 var rows = dialog.$.dialog.querySelectorAll('.address-row'); | 787 var rows = dialog.$.dialog.querySelectorAll('.address-row'); |
| 770 assertEquals(6, rows.length); | 788 assertEquals(6, rows.length); |
| 771 | 789 |
| 772 // City, State, ZIP code | 790 // City, State, ZIP code |
| 773 var row = rows[3]; | 791 var row = rows[3]; |
| 774 var cols = row.querySelectorAll('.address-column'); | 792 var cols = row.querySelectorAll('.address-column'); |
| 775 assertEquals(3, cols.length); | 793 assertEquals(3, cols.length); |
| 776 cols[0].value = city; | 794 cols[0].value = city; |
| 777 cols[1].value = state; | 795 cols[1].value = state; |
| 778 cols[2].value = zip; | 796 cols[2].value = zip; |
| 779 | 797 |
| 780 dialog.$.countryList.selected = 'IL'; | 798 countrySelect.value = 'IL'; |
| 799 countrySelect.dispatchEvent(new CustomEvent('change')); |
| 781 }).then(function() { | 800 }).then(function() { |
| 782 return expectEvent(dialog, 'on-update-address-wrapper', function() { | 801 return expectEvent(dialog, 'on-update-address-wrapper', function() { |
| 783 // IL: | 802 // IL: |
| 784 rows = dialog.$.dialog.querySelectorAll('.address-row'); | 803 rows = dialog.$.dialog.querySelectorAll('.address-row'); |
| 785 assertEquals(6, rows.length); | 804 assertEquals(6, rows.length); |
| 786 | 805 |
| 787 // City, Postal code | 806 // City, Postal code |
| 788 row = rows[3]; | 807 row = rows[3]; |
| 789 cols = row.querySelectorAll('.address-column'); | 808 cols = row.querySelectorAll('.address-column'); |
| 790 assertEquals(2, cols.length); | 809 assertEquals(2, cols.length); |
| 791 assertEquals(city, cols[0].value); | 810 assertEquals(city, cols[0].value); |
| 792 assertEquals(zip, cols[1].value); | 811 assertEquals(zip, cols[1].value); |
| 793 | 812 |
| 794 dialog.$.countryList.selected = 'US'; | 813 countrySelect.value = 'US'; |
| 814 countrySelect.dispatchEvent(new CustomEvent('change')); |
| 795 }); | 815 }); |
| 796 }).then(function() { | 816 }).then(function() { |
| 797 // US: | 817 // US: |
| 798 var rows = dialog.$.dialog.querySelectorAll('.address-row'); | 818 var rows = dialog.$.dialog.querySelectorAll('.address-row'); |
| 799 assertEquals(6, rows.length); | 819 assertEquals(6, rows.length); |
| 800 | 820 |
| 801 // City, State, ZIP code | 821 // City, State, ZIP code |
| 802 row = rows[3]; | 822 row = rows[3]; |
| 803 cols = row.querySelectorAll('.address-column'); | 823 cols = row.querySelectorAll('.address-column'); |
| 804 assertEquals(3, cols.length); | 824 assertEquals(3, cols.length); |
| 805 assertEquals(city, cols[0].value); | 825 assertEquals(city, cols[0].value); |
| 806 assertEquals(state, cols[1].value); | 826 assertEquals(state, cols[1].value); |
| 807 assertEquals(zip, cols[2].value); | 827 assertEquals(zip, cols[2].value); |
| 808 }); | 828 }); |
| 809 }); | 829 }); |
| 810 }); | 830 }); |
| 811 }); | 831 }); |
| 812 | 832 |
| 813 mocha.run(); | 833 mocha.run(); |
| 814 }); | 834 }); |
| OLD | NEW |