| 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 |