| 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 Suite of tests for settings-languages-page. */ | 5 /** @fileoverview Suite of tests for settings-languages-page. */ |
| 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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 languagesPage = languagesSection.querySelector('settings-languages-page'); | 60 languagesPage = languagesSection.querySelector('settings-languages-page'); |
| 61 assertTrue(!!languagesPage); | 61 assertTrue(!!languagesPage); |
| 62 | 62 |
| 63 languageHelper = languagesPage.languageHelper; | 63 languageHelper = languagesPage.languageHelper; |
| 64 return languageHelper.whenReady(); | 64 return languageHelper.whenReady(); |
| 65 }.bind(this)); | 65 }.bind(this)); |
| 66 | 66 |
| 67 teardown(function(done) { | 67 teardown(function(done) { |
| 68 // Close the section if we're in a sub-page. | 68 // Close the section if we're in a sub-page. |
| 69 if (settings.getCurrentRoute().isSubpage()) { | 69 if (settings.getCurrentRoute().isSubpage()) { |
| 70 settings.navigateTo(settings.Route.ADVANCED); | 70 settings.navigateTo(settings.Route.BASIC); |
| 71 setTimeout(done); | 71 setTimeout(done); |
| 72 } else { | 72 } else { |
| 73 done(); | 73 done(); |
| 74 } | 74 } |
| 75 }); | 75 }); |
| 76 | 76 |
| 77 test('manage languages', function() { | 77 suite('add languages dialog', function() { |
| 78 var manageLanguagesButton = | 78 var dialog; |
| 79 languagesPage.$.languagesCollapse.querySelector( | 79 var addLanguagesButton; |
| 80 '.list-button:last-of-type'); | 80 var cancelButton; |
| 81 MockInteractions.tap(manageLanguagesButton); | 81 var actionButton; |
| 82 assertTrue(!!languagesPage.$$('settings-manage-languages-page')); | 82 |
| 83 setup(function(done) { |
| 84 addLanguagesButton = languagesPage.$.languagesCollapse.querySelector( |
| 85 '.list-button:last-of-type'); |
| 86 MockInteractions.tap(addLanguagesButton); |
| 87 |
| 88 // The page stamps the dialog and registers listeners asynchronously. |
| 89 Polymer.Base.async(function() { |
| 90 dialog = languagesPage.$$('settings-add-languages-dialog'); |
| 91 assertTrue(!!dialog); |
| 92 |
| 93 actionButton = dialog.$$('.action-button'); |
| 94 cancelButton = dialog.$$('.cancel-button'); |
| 95 done(); |
| 96 }); |
| 97 }); |
| 98 |
| 99 teardown(function() { |
| 100 // Test the dialog is removed from the DOM. |
| 101 Polymer.dom.flush(); |
| 102 assertEquals(null, languagesPage.$$('settings-add-languages-dialog')); |
| 103 }); |
| 104 |
| 105 test('cancel', function() { |
| 106 assertFalse(cancelButton.disabled); |
| 107 MockInteractions.tap(cancelButton); |
| 108 }); |
| 109 |
| 110 test('add', function() { |
| 111 // The fixed-height dialog's iron-list should stamp well below 50 items. |
| 112 var items = |
| 113 dialog.$.dialog.querySelectorAll('.list-item:not([hidden])'); |
| 114 assertGT(items.length, 1); |
| 115 assertLT(items.length, 50); |
| 116 |
| 117 // No languages have been checked. |
| 118 assertTrue(actionButton.disabled); |
| 119 MockInteractions.tap(actionButton); |
| 120 Polymer.dom.flush(); |
| 121 assertEquals(dialog, languagesPage.$$('settings-add-languages-dialog')); |
| 122 |
| 123 // Check and uncheck one language. |
| 124 MockInteractions.tap(items[0]); |
| 125 assertFalse(actionButton.disabled); |
| 126 MockInteractions.tap(items[0]); |
| 127 assertTrue(actionButton.disabled); |
| 128 |
| 129 // Check multiple languages. |
| 130 MockInteractions.tap(items[0]); |
| 131 MockInteractions.tap(items[1]); |
| 132 assertFalse(actionButton.disabled); |
| 133 |
| 134 MockInteractions.tap(actionButton); |
| 135 }); |
| 83 }); | 136 }); |
| 84 | 137 |
| 85 test('Should not set UI language', function() { | 138 test('Should not set UI language', function() { |
| 86 var languagesCollapse = languagesPage.$.languagesCollapse; | 139 var languagesCollapse = languagesPage.$.languagesCollapse; |
| 87 var languageOptionsDropdownTrigger = languagesCollapse.querySelector( | 140 var languageOptionsDropdownTrigger = languagesCollapse.querySelector( |
| 88 'paper-icon-button'); | 141 'paper-icon-button'); |
| 89 assertTrue(!!languageOptionsDropdownTrigger); | 142 assertTrue(!!languageOptionsDropdownTrigger); |
| 90 | 143 |
| 91 // This shouldn't get called. | 144 // This shouldn't get called. |
| 92 languageHelper.setUILanguage = assertNotReached; | 145 languageHelper.setUILanguage = assertNotReached; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page')); | 186 assertTrue(!!languagesPage.$$('settings-edit-dictionary-page')); |
| 134 } | 187 } |
| 135 }); | 188 }); |
| 136 }.bind(this)); | 189 }.bind(this)); |
| 137 | 190 |
| 138 // TODO(michaelpg): Test more aspects of the languages UI. | 191 // TODO(michaelpg): Test more aspects of the languages UI. |
| 139 | 192 |
| 140 // Run all registered tests. | 193 // Run all registered tests. |
| 141 mocha.run(); | 194 mocha.run(); |
| 142 }); | 195 }); |
| OLD | NEW |