| 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);
|
| });
|
|
|
| /**
|
|
|