OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 cr.define('languages_page_tests', function() { | 5 cr.define('languages_page_tests', function() { |
6 /** @enum {string} */ | 6 /** @enum {string} */ |
7 const TestNames = { | 7 const TestNames = { |
8 AddLanguagesDialog: 'add languages dialog', | 8 AddLanguagesDialog: 'add languages dialog', |
9 LanguageMenu: 'language menu', | 9 LanguageMenu: 'language menu', |
10 InputMethods: 'input methods', | 10 InputMethods: 'input methods', |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 assertTrue(actionMenu.open); | 209 assertTrue(actionMenu.open); |
210 for (var buttonKey of Object.keys(buttonVisibility)) { | 210 for (var buttonKey of Object.keys(buttonVisibility)) { |
211 var buttonItem = getMenuItem(buttonKey); | 211 var buttonItem = getMenuItem(buttonKey); |
212 assertEquals(!buttonVisibility[buttonKey], buttonItem.hidden, | 212 assertEquals(!buttonVisibility[buttonKey], buttonItem.hidden, |
213 'Menu item "' + buttonKey + '" hidden'); | 213 'Menu item "' + buttonKey + '" hidden'); |
214 } | 214 } |
215 } | 215 } |
216 | 216 |
217 test('structure', function() { | 217 test('structure', function() { |
218 var languageOptionsDropdownTrigger = languagesCollapse.querySelector( | 218 var languageOptionsDropdownTrigger = languagesCollapse.querySelector( |
219 'paper-icon-button'); | 219 'button'); |
220 assertTrue(!!languageOptionsDropdownTrigger); | 220 assertTrue(!!languageOptionsDropdownTrigger); |
221 MockInteractions.tap(languageOptionsDropdownTrigger); | 221 MockInteractions.tap(languageOptionsDropdownTrigger); |
222 assertTrue(actionMenu.open); | 222 assertTrue(actionMenu.open); |
223 | 223 |
224 var separator = actionMenu.querySelector('hr'); | 224 var separator = actionMenu.querySelector('hr'); |
225 assertEquals(1, separator.offsetHeight); | 225 assertEquals(1, separator.offsetHeight); |
226 | 226 |
227 // Disable Translate. On platforms that can't change the UI language, | 227 // Disable Translate. On platforms that can't change the UI language, |
228 // this hides all the checkboxes, so the separator isn't needed. | 228 // this hides all the checkboxes, so the separator isn't needed. |
229 // Chrome OS and Windows still show a checkbox and thus the separator. | 229 // Chrome OS and Windows still show a checkbox and thus the separator. |
(...skipping 15 matching lines...) Expand all Loading... |
245 | 245 |
246 // Clicking on the toggle switches it to true again. | 246 // Clicking on the toggle switches it to true again. |
247 MockInteractions.tap(paperToggle); | 247 MockInteractions.tap(paperToggle); |
248 newToggleValue = languageHelper.prefs.translate.enabled.value; | 248 newToggleValue = languageHelper.prefs.translate.enabled.value; |
249 assertTrue(newToggleValue); | 249 assertTrue(newToggleValue); |
250 }); | 250 }); |
251 | 251 |
252 test('toggle translate for a specific language', function(done) { | 252 test('toggle translate for a specific language', function(done) { |
253 // Open options for 'sw'. | 253 // Open options for 'sw'. |
254 var languageOptionsDropdownTrigger = | 254 var languageOptionsDropdownTrigger = |
255 languagesCollapse.querySelectorAll('paper-icon-button')[1]; | 255 languagesCollapse.querySelectorAll('button')[1]; |
256 assertTrue(!!languageOptionsDropdownTrigger); | 256 assertTrue(!!languageOptionsDropdownTrigger); |
257 MockInteractions.tap(languageOptionsDropdownTrigger); | 257 MockInteractions.tap(languageOptionsDropdownTrigger); |
258 assertTrue(actionMenu.open); | 258 assertTrue(actionMenu.open); |
259 | 259 |
260 // 'sw' supports translate to the target language ('en'). | 260 // 'sw' supports translate to the target language ('en'). |
261 var translateOption = getMenuItem('offerToTranslateInThisLanguage'); | 261 var translateOption = getMenuItem('offerToTranslateInThisLanguage'); |
262 assertFalse(translateOption.disabled); | 262 assertFalse(translateOption.disabled); |
263 assertTrue(translateOption.checked); | 263 assertTrue(translateOption.checked); |
264 | 264 |
265 // Toggle the translate option. | 265 // Toggle the translate option. |
(...skipping 10 matching lines...) Expand all Loading... |
276 done(); | 276 done(); |
277 }, settings.kMenuCloseDelay + 1); | 277 }, settings.kMenuCloseDelay + 1); |
278 }); | 278 }); |
279 | 279 |
280 test('disable translate hides language-specific option', function() { | 280 test('disable translate hides language-specific option', function() { |
281 // Disables translate. | 281 // Disables translate. |
282 languageHelper.setPrefValue('translate.enabled', false); | 282 languageHelper.setPrefValue('translate.enabled', false); |
283 | 283 |
284 // Open options for 'sw'. | 284 // Open options for 'sw'. |
285 var languageOptionsDropdownTrigger = | 285 var languageOptionsDropdownTrigger = |
286 languagesCollapse.querySelectorAll('paper-icon-button')[1]; | 286 languagesCollapse.querySelectorAll('button')[1]; |
287 assertTrue(!!languageOptionsDropdownTrigger); | 287 assertTrue(!!languageOptionsDropdownTrigger); |
288 MockInteractions.tap(languageOptionsDropdownTrigger); | 288 MockInteractions.tap(languageOptionsDropdownTrigger); |
289 assertTrue(actionMenu.open); | 289 assertTrue(actionMenu.open); |
290 | 290 |
291 // The language-specific translation option should be hidden. | 291 // The language-specific translation option should be hidden. |
292 var translateOption = actionMenu.querySelector('#offerTranslations'); | 292 var translateOption = actionMenu.querySelector('#offerTranslations'); |
293 assertTrue(!!translateOption); | 293 assertTrue(!!translateOption); |
294 assertTrue(translateOption.hidden); | 294 assertTrue(translateOption.hidden); |
295 }); | 295 }); |
296 | 296 |
297 test('remove language', function() { | 297 test('remove language', function() { |
298 // Enable a language which we can then disable. | 298 // Enable a language which we can then disable. |
299 languageHelper.enableLanguage('no'); | 299 languageHelper.enableLanguage('no'); |
300 | 300 |
301 // Populate the dom-repeat. | 301 // Populate the dom-repeat. |
302 Polymer.dom.flush(); | 302 Polymer.dom.flush(); |
303 | 303 |
304 // Find the new language item. | 304 // Find the new language item. |
305 var items = languagesCollapse.querySelectorAll('.list-item'); | 305 var items = languagesCollapse.querySelectorAll('.list-item'); |
306 var domRepeat = assert( | 306 var domRepeat = assert( |
307 languagesCollapse.querySelector('template[is="dom-repeat"]')); | 307 languagesCollapse.querySelector('template[is="dom-repeat"]')); |
308 var item = Array.from(items).find(function(el) { | 308 var item = Array.from(items).find(function(el) { |
309 return domRepeat.itemForElement(el) && | 309 return domRepeat.itemForElement(el) && |
310 domRepeat.itemForElement(el).language.code == 'no'; | 310 domRepeat.itemForElement(el).language.code == 'no'; |
311 }); | 311 }); |
312 | 312 |
313 // Open the menu and select Remove. | 313 // Open the menu and select Remove. |
314 MockInteractions.tap(item.querySelector('paper-icon-button')); | 314 MockInteractions.tap(item.querySelector('button')); |
315 | 315 |
316 assertTrue(actionMenu.open); | 316 assertTrue(actionMenu.open); |
317 var removeMenuItem = getMenuItem('removeLanguage'); | 317 var removeMenuItem = getMenuItem('removeLanguage'); |
318 assertFalse(removeMenuItem.disabled); | 318 assertFalse(removeMenuItem.disabled); |
319 MockInteractions.tap(removeMenuItem); | 319 MockInteractions.tap(removeMenuItem); |
320 assertFalse(actionMenu.open); | 320 assertFalse(actionMenu.open); |
321 | 321 |
322 assertEquals( | 322 assertEquals( |
323 initialLanguages, languageHelper.getPref(languagesPref).value); | 323 initialLanguages, languageHelper.getPref(languagesPref).value); |
324 }); | 324 }); |
325 | 325 |
326 test('move up/down buttons', function() { | 326 test('move up/down buttons', function() { |
327 // Add several languages. | 327 // Add several languages. |
328 for (var language of ['en-CA', 'en-US', 'tk', 'no']) | 328 for (var language of ['en-CA', 'en-US', 'tk', 'no']) |
329 languageHelper.enableLanguage(language); | 329 languageHelper.enableLanguage(language); |
330 | 330 |
331 Polymer.dom.flush(); | 331 Polymer.dom.flush(); |
332 | 332 |
333 var menuButtons = | 333 var menuButtons = |
334 languagesCollapse.querySelectorAll( | 334 languagesCollapse.querySelectorAll( |
335 '.list-item paper-icon-button[icon="cr:more-vert"]'); | 335 '.list-item button.icon-more-vert'); |
336 | 336 |
337 // First language should not have "Move up" or "Move to top". | 337 // First language should not have "Move up" or "Move to top". |
338 MockInteractions.tap(menuButtons[0]); | 338 MockInteractions.tap(menuButtons[0]); |
339 assertMenuItemButtonsVisible({ | 339 assertMenuItemButtonsVisible({ |
340 moveToTop: false, moveUp: false, moveDown: true, | 340 moveToTop: false, moveUp: false, moveDown: true, |
341 }); | 341 }); |
342 actionMenu.close(); | 342 actionMenu.close(); |
343 | 343 |
344 // Second language should not have "Move up". | 344 // Second language should not have "Move up". |
345 MockInteractions.tap(menuButtons[1]); | 345 MockInteractions.tap(menuButtons[1]); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 // Now the secondary row is empty, so it shouldn't be shown. | 412 // Now the secondary row is empty, so it shouldn't be shown. |
413 assertFalse(triggerRow.classList.contains('two-line')); | 413 assertFalse(triggerRow.classList.contains('two-line')); |
414 assertEquals( | 414 assertEquals( |
415 0, triggerRow.querySelector('.secondary').textContent.length); | 415 0, triggerRow.querySelector('.secondary').textContent.length); |
416 } | 416 } |
417 }); | 417 }); |
418 }); | 418 }); |
419 | 419 |
420 return {TestNames: TestNames}; | 420 return {TestNames: TestNames}; |
421 }); | 421 }); |
OLD | NEW |