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; |
stevenjb
2016/08/23 17:08:04
Not needed.
michaelpg
2016/08/23 23:37:07
Done.
| |
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'); | |
stevenjb
2016/08/23 17:08:04
assert these?
michaelpg
2016/08/23 23:37:07
Done.
| |
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); | |
stevenjb
2016/08/23 17:08:04
Does this test anything?
michaelpg
2016/08/23 23:37:07
Yes, it tests that the cancel button closes the di
| |
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 |