OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // TODO(dbeam): test for loading upacked extensions? | 5 // TODO(dbeam): test for loading upacked extensions? |
6 | 6 |
7 GEN('#include "chrome/browser/ui/webui/extensions/' + | 7 GEN('#include "chrome/browser/ui/webui/extensions/' + |
8 'extension_settings_browsertest.h"'); | 8 'extension_settings_browsertest.h"'); |
9 | 9 |
10 // chrome/test/data/extensions/good.crx's extension ID. good.crx is loaded by | 10 // chrome/test/data/extensions/good.crx's extension ID. good.crx is loaded by |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 assertTrue(this.steps.length > 0); | 84 assertTrue(this.steps.length > 0); |
85 this.steps.shift().call(this); | 85 this.steps.shift().call(this); |
86 }, | 86 }, |
87 | 87 |
88 /** @protected */ | 88 /** @protected */ |
89 waitForPageLoad: function() { | 89 waitForPageLoad: function() { |
90 var extensionList = getRequiredElement('extension-settings-list'); | 90 var extensionList = getRequiredElement('extension-settings-list'); |
91 extensionList.extensionsUpdated_.then(this.nextStep.bind(this)); | 91 extensionList.extensionsUpdated_.then(this.nextStep.bind(this)); |
92 }, | 92 }, |
93 | 93 |
94 /** | |
95 * A silly hack because we re-fetch extension data after every event, which is | |
96 * asynchronous. This will be unneeded once we transition to observing events | |
97 * on the developerPrivate API. | |
98 * @param {Function} after The function to run after the pending requests. | |
99 * @protected | |
100 */ | |
101 runPendingRequests: function(after) { | |
102 window.setTimeout(function() { | |
103 chrome.developerPrivate.getExtensionsInfo(after); | |
104 }, 0); | |
105 }, | |
106 | |
107 /** @protected */ | 94 /** @protected */ |
108 verifyDisabledWorks: function() { | 95 verifyDisabledWorks: function() { |
109 chrome.management.setEnabled(GOOD_CRX_ID, false, | 96 chrome.management.setEnabled(GOOD_CRX_ID, false, function() { |
110 this.runPendingRequests.bind(this, function() { | |
111 var node = getRequiredElement(GOOD_CRX_ID); | 97 var node = getRequiredElement(GOOD_CRX_ID); |
112 assertTrue(node.classList.contains('inactive-extension')); | 98 assertTrue(node.classList.contains('inactive-extension')); |
113 this.nextStep(); | 99 this.nextStep(); |
114 }.bind(this))); | 100 }.bind(this)); |
115 }, | 101 }, |
116 | 102 |
117 /** @protected */ | 103 /** @protected */ |
118 verifyEnabledWorks: function() { | 104 verifyEnabledWorks: function() { |
119 chrome.management.setEnabled(GOOD_CRX_ID, true, | 105 chrome.management.setEnabled(GOOD_CRX_ID, true, function() { |
120 this.runPendingRequests.bind(this, function() { | |
121 var node = getRequiredElement(GOOD_CRX_ID); | 106 var node = getRequiredElement(GOOD_CRX_ID); |
122 assertFalse(node.classList.contains('inactive-extension')); | 107 assertFalse(node.classList.contains('inactive-extension')); |
123 this.nextStep(); | 108 this.nextStep(); |
124 }.bind(this))); | 109 }.bind(this)); |
125 }, | 110 }, |
126 | 111 |
127 /** @protected */ | 112 /** @protected */ |
128 verifyUninstallWorks: function() { | 113 verifyUninstallWorks: function() { |
| 114 var next = this.nextStep.bind(this); |
129 chrome.test.runWithUserGesture(function() { | 115 chrome.test.runWithUserGesture(function() { |
130 chrome.management.uninstall(GOOD_CRX_ID, | 116 chrome.management.uninstall(GOOD_CRX_ID, function() { |
131 this.runPendingRequests.bind(this, function() { | |
132 assertEquals(null, $(GOOD_CRX_ID)); | 117 assertEquals(null, $(GOOD_CRX_ID)); |
133 this.nextStep(); | 118 next(); |
134 }.bind(this))); | 119 }); |
135 }.bind(this)); | 120 }); |
136 }, | 121 }, |
137 }; | 122 }; |
138 | 123 |
139 TEST_F('BasicExtensionSettingsWebUITest', 'testDisable', function() { | 124 TEST_F('BasicExtensionSettingsWebUITest', 'testDisable', function() { |
140 this.steps = [this.waitForPageLoad, | 125 this.steps = [this.waitForPageLoad, |
141 this.verifyDisabledWorks, | 126 this.verifyDisabledWorks, |
142 testDone]; | 127 testDone]; |
143 this.nextStep(); | 128 this.nextStep(); |
144 }); | 129 }); |
145 | 130 |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 | 313 |
329 ExtensionOptionsDialogWebUITest.prototype = { | 314 ExtensionOptionsDialogWebUITest.prototype = { |
330 __proto__: InstalledExtensionSettingsWebUITest.prototype, | 315 __proto__: InstalledExtensionSettingsWebUITest.prototype, |
331 | 316 |
332 /** @override */ | 317 /** @override */ |
333 browsePreload: ExtensionSettingsWebUITest.prototype.browsePreload + | 318 browsePreload: ExtensionSettingsWebUITest.prototype.browsePreload + |
334 '?options=' + GOOD_CRX_ID, | 319 '?options=' + GOOD_CRX_ID, |
335 }; | 320 }; |
336 | 321 |
337 TEST_F('ExtensionOptionsDialogWebUITest', 'testAccessibility', runAudit); | 322 TEST_F('ExtensionOptionsDialogWebUITest', 'testAccessibility', runAudit); |
OLD | NEW |