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 449fe4bfdceca12bf9ed74702f136e24bdcc3139..d7d258c252ff4d063b159f90c675268f79ce0765 100644 |
--- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
+++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
@@ -63,25 +63,60 @@ AsyncExtensionSettingsWebUITest.prototype = { |
/** @override */ |
isAsync: true, |
-}; |
-TEST_F('AsyncExtensionSettingsWebUITest', 'testDeveloperModeA11y', function() { |
- var devControls = $('dev-controls'); |
+ /** @override */ |
+ testGenPreamble: function() { |
+ GEN(' InstallGoodExtension();'); |
+ GEN(' InstallErrorsExtension();'); |
+ }, |
+ |
+ enableDeveloperMode: function(callback) { |
+ var devControls = $('dev-controls'); |
- // Make sure developer controls are hidden before checkbox is clicked. |
- assertEquals(0, devControls.offsetHeight); |
- $('toggle-dev-on').click(); |
+ // Make sure developer controls are hidden before checkbox is clicked. |
+ assertEquals(0, devControls.offsetHeight); |
+ $('toggle-dev-on').click(); |
- document.addEventListener('webkitTransitionEnd', function f(e) { |
- if (e.target == devControls) { |
- // Make sure developer controls are not hidden after checkbox is clicked. |
- assertGT(devControls.offsetHeight, 0); |
+ document.addEventListener('webkitTransitionEnd', function f(e) { |
+ if (e.target == devControls) { |
+ // Make sure developer controls are not hidden after checkbox is |
+ // clicked. |
+ assertGT(devControls.offsetHeight, 0); |
- document.removeEventListener(f, 'webkitTransitionEnd'); |
- testDone(); |
- } |
+ document.removeEventListener(f, 'webkitTransitionEnd'); |
+ callback(); |
+ } |
+ }); |
+ ensureTransitionEndEvent(devControls, 4000); |
+ }, |
+}; |
+ |
+TEST_F('AsyncExtensionSettingsWebUITest', 'testDeveloperModeA11y', function() { |
+ this.enableDeveloperMode(testDone); |
+}); |
+ |
+TEST_F('AsyncExtensionSettingsWebUITest', 'testErrorListButtonVisibility', |
+ function() { |
+ this.enableDeveloperMode(function() { |
+ // 2 extensions are loaded: |
+ // The 'good' extension will have 0 errors wich means no error list |
+ // buttons. |
+ // 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')); |
+ |
+ testDone(); |
}); |
- ensureTransitionEndEvent(devControls, 4000); |
}); |
/** |