| 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 8183dc84cac804e3b2b14191ee045603b73a5346..96a69a5b2cca1df6b8f4c5821bb124dd76a904c8 100644
|
| --- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js
|
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js
|
| @@ -151,6 +151,32 @@ TEST_F('ExtensionSettingsWebUITest', 'testChromeSendHandled', function() {
|
| this.nextStep();
|
| });
|
|
|
| +/**
|
| + * @param {chrome.developerPrivate.EventType} eventType
|
| + * @param {function():void} callback
|
| + * @constructor
|
| + */
|
| +function UpdateListener(eventType, callback) {
|
| + this.callback_ = callback;
|
| + this.eventType_ = eventType;
|
| + this.onItemStateChangedListener_ = this.onItemStateChanged_.bind(this);
|
| + chrome.developerPrivate.onItemStateChanged.addListener(
|
| + this.onItemStateChangedListener_);
|
| +}
|
| +
|
| +UpdateListener.prototype = {
|
| + /** @private */
|
| + onItemStateChanged_: function(data) {
|
| + if (this.eventType_ == data.event_type) {
|
| + window.setTimeout(function() {
|
| + chrome.developerPrivate.onItemStateChanged.removeListener(
|
| + this.onItemStateChangedListener_);
|
| + this.callback_();
|
| + }.bind(this), 0);
|
| + }
|
| + }
|
| +};
|
| +
|
| function BasicExtensionSettingsWebUITest() {}
|
|
|
| BasicExtensionSettingsWebUITest.prototype = {
|
| @@ -170,30 +196,38 @@ BasicExtensionSettingsWebUITest.prototype = {
|
|
|
| /** @protected */
|
| verifyDisabledWorks: function() {
|
| - chrome.management.setEnabled(GOOD_CRX_ID, false, function() {
|
| + var listener = new UpdateListener(
|
| + chrome.developerPrivate.EventType.UNLOADED,
|
| + function() {
|
| var node = getRequiredElement(GOOD_CRX_ID);
|
| assertTrue(node.classList.contains('inactive-extension'));
|
| this.nextStep();
|
| }.bind(this));
|
| + chrome.management.setEnabled(GOOD_CRX_ID, false);
|
| },
|
|
|
| /** @protected */
|
| verifyEnabledWorks: function() {
|
| - chrome.management.setEnabled(GOOD_CRX_ID, true, function() {
|
| + var listener = new UpdateListener(
|
| + chrome.developerPrivate.EventType.LOADED,
|
| + function() {
|
| var node = getRequiredElement(GOOD_CRX_ID);
|
| assertFalse(node.classList.contains('inactive-extension'));
|
| this.nextStep();
|
| }.bind(this));
|
| + chrome.management.setEnabled(GOOD_CRX_ID, true);
|
| },
|
|
|
| /** @protected */
|
| verifyUninstallWorks: function() {
|
| - var next = this.nextStep.bind(this);
|
| + var listener = new UpdateListener(
|
| + chrome.developerPrivate.EventType.UNINSTALLED,
|
| + function() {
|
| + assertEquals(null, $(GOOD_CRX_ID));
|
| + this.nextStep();
|
| + }.bind(this));
|
| chrome.test.runWithUserGesture(function() {
|
| - chrome.management.uninstall(GOOD_CRX_ID, function() {
|
| - assertEquals(null, $(GOOD_CRX_ID));
|
| - next();
|
| - });
|
| + chrome.management.uninstall(GOOD_CRX_ID);
|
| });
|
| },
|
| };
|
|
|