Chromium Code Reviews| Index: chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
| diff --git a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
| index 3fdd656a6686c1b34dbbd6700ee436c706da4871..969572ec0bd8330286de133156bfd646306d06ff 100644 |
| --- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
| @@ -49,14 +49,7 @@ ExtensionSettingsWebUITest.prototype = { |
| /** @override */ |
| setUp: function() { |
| - // Make all transitions take 0ms for testing purposes. |
| - var noTransitionStyle = document.createElement('style'); |
| - noTransitionStyle.textContent = |
| - '* {' + |
| - ' -webkit-transition-duration: 0ms !important;' + |
| - ' -webkit-transition-delay: 0ms !important;' + |
| - '}'; |
| - document.querySelector('head').appendChild(noTransitionStyle); |
| + testing.Test.disableAnimationsAndTransitions(); |
| }, |
| /** |
| @@ -87,18 +80,24 @@ ExtensionSettingsWebUITest.prototype = { |
| }, |
| /** @protected */ |
| - verifyDeveloperModeWorks: function() { |
| - this.ignoreDevModeA11yFailures(); |
| + enableDeveloperMode: function() { |
| + var next = this.nextStep.bind(this); |
| + extensions.ExtensionSettings.getInstance().testingDeveloperModeCallback = |
| + function() { |
| + chrome.developerPrivate.getProfileConfiguration(function(profileInfo) { |
| + assertTrue(extensionSettings.classList.contains('dev-mode')); |
| + assertTrue(profileInfo.inDeveloperMode); |
| + next(); |
| + |
| + // This event isn't thrown because transitions are disabled. |
| + // Ensure transition here so that any dependent code does not break. |
| + ensureTransitionEndEvent($('dev-controls'), 0); |
| + }); |
| + }; |
| + |
| var extensionSettings = getRequiredElement('extension-settings'); |
| assertFalse(extensionSettings.classList.contains('dev-mode')); |
| $('toggle-dev-on').click(); |
| - assertTrue(extensionSettings.classList.contains('dev-mode')); |
| - chrome.developerPrivate.getProfileConfiguration(function(profileInfo) { |
| - assertTrue(profileInfo.inDeveloperMode); |
| - |
| - // A 0ms timeout is necessary so that all the transitions can finish. |
| - window.setTimeout(this.nextStep.bind(this), 0); |
| - }.bind(this)); |
| }, |
| /** @protected */ |
| @@ -112,28 +111,10 @@ ExtensionSettingsWebUITest.prototype = { |
| }; |
| this.steps = [this.waitForPageLoad, |
| checkDevModeIsOff, |
| - this.verifyDeveloperModeWorks, |
| + this.enableDeveloperMode, |
| testDone]; |
| this.nextStep(); |
| }, |
| - |
| - /** |
| - * TODO(hcarmona): Remove this as part of fixing crbug.com/463245. |
| - * Will ignore accessibility failures caused by the transition when developer |
| - * mode is enabled. |
| - * @protected |
| - */ |
| - ignoreDevModeA11yFailures: function() { |
| - this.accessibilityAuditConfig.ignoreSelectors( |
| - 'focusableElementNotVisibleAndNotAriaHidden', |
| - '#load-unpacked'); |
| - this.accessibilityAuditConfig.ignoreSelectors( |
| - 'focusableElementNotVisibleAndNotAriaHidden', |
| - '#pack-extension'); |
| - this.accessibilityAuditConfig.ignoreSelectors( |
| - 'focusableElementNotVisibleAndNotAriaHidden', |
| - '#update-extensions-now'); |
| - }, |
| }; |
| // Verify that developer mode doesn't change behavior when the number of |
| @@ -283,7 +264,6 @@ TEST_F('BasicExtensionSettingsWebUITest', 'testNonEmptyExtensionList', |
| assertFalse($('extension-list-wrapper').hidden); |
| assertTrue($('no-extensions').hidden); |
| assertGT($('extension-settings-list').childNodes.length, 0); |
| - |
| this.nextStep(); |
| }; |
| @@ -303,33 +283,27 @@ AsyncExtensionSettingsWebUITest.prototype = { |
| }, |
| }; |
| -// Often times out on all platforms: http://crbug.com/467528 |
| -TEST_F('AsyncExtensionSettingsWebUITest', |
| - 'DISABLED_testErrorListButtonVisibility', |
| +TEST_F('AsyncExtensionSettingsWebUITest', 'testErrorListButtonVisibility', |
|
hcarmona
2015/04/30 18:42:00
Extensions UI changed so the list of errors is no
|
| function() { |
| var testButtonVisibility = function() { |
| + var extensionList = $('extension-list-wrapper'); |
| + |
| // 2 extensions are loaded: |
| - // The 'good' extension will have 0 errors wich means no error list |
| - // buttons. |
| + // The 'good' extension will have 0 errors wich means no error button. |
| // The 'bad' extension will have >3 manifest errors and <3 runtime errors. |
| - // This means 2 buttons: 1 visible and 1 hidden. |
| - var visibleButtons = document.querySelectorAll( |
| - '.extension-error-list-show-more > a:not([hidden])'); |
| - assertEquals(1, visibleButtons.length); |
| - // Visible buttons must be part of the focusRow. |
| - assertTrue(visibleButtons[0].hasAttribute('column-type')); |
| - |
| - var hiddenButtons = document.querySelectorAll( |
| - '.extension-error-list-show-more > a[hidden]'); |
| - assertEquals(1, hiddenButtons.length); |
| - // Hidden buttons must NOT be part of the focusRow. |
| - assertFalse(hiddenButtons[0].hasAttribute('column-type')); |
| + // This means there will be a single error button. |
| + var visibleButtons = extensionList.querySelectorAll( |
| + '.errors-link:not([hidden])'); |
| + expectEquals(1, visibleButtons.length); |
| + |
| + var hiddenButtons = extensionList.querySelectorAll('.errors-link[hidden]'); |
| + expectEquals(1, hiddenButtons.length); |
| this.nextStep(); |
| }; |
| this.steps = [this.waitForPageLoad, |
| - this.verifyDeveloperModeWorks, |
| + this.enableDeveloperMode, |
| testButtonVisibility, |
| testDone]; |
| this.nextStep(); |