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 9f1b86756ae5586369cfbfdc861291ad541839e9..90e8a8c78e52cf707e4b0e897dc930378efdf187 100644 |
--- a/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
+++ b/chrome/browser/ui/webui/extensions/extension_settings_browsertest.js |
@@ -56,6 +56,100 @@ TEST_F('ExtensionSettingsWebUITest', 'testChromeSendHandled', function() { |
assertTrue($('pack-extension-overlay').classList.contains('showing')); |
}); |
+function BasicExtensionSettingsWebUITest() {} |
+ |
+BasicExtensionSettingsWebUITest.prototype = { |
+ __proto__: ExtensionSettingsWebUITest.prototype, |
+ |
+ /** @override */ |
+ isAsync: true, |
+ |
+ /** @override */ |
+ testGenPreamble: function() { |
+ // Install multiple types of extensions to ensure we handle each type. |
+ // TODO(devlin): There are more types to add here. |
+ GEN(' InstallGoodExtension();'); |
+ GEN(' InstallErrorsExtension();'); |
+ GEN(' InstallSharedModule();'); |
+ GEN(' InstallPackagedApp();'); |
Dan Beam
2015/04/02 01:34:54
why do we need to install all types for this test?
Devlin
2015/04/02 21:50:05
It's not so much that we need all types for any of
|
+ |
+ GEN(' SetAutoConfirmUninstall();'); |
+ }, |
+ |
+ /** @protected {Array<!Function>} */ |
+ steps: [], |
+ |
+ /** @protected */ |
+ nextStep: function() { |
+ assertTrue(this.steps.length > 0); |
+ this.steps.shift().bind(this)(); |
+ }, |
+ |
+ /** @protected */ |
+ waitForPageLoad: function() { |
+ extensionList = $('extension-settings-list'); |
+ extensionList.extensionsUpdated.then(this.nextStep.bind(this)); |
+ }, |
+ |
+ /** @protected */ |
+ verifyDisabledWorks: function() { |
+ chrome.management.setEnabled(GOOD_CRX_ID, false, function() { |
+ var node = $(GOOD_CRX_ID); |
+ assertTrue(node != null); |
+ assertTrue(node.classList.contains('inactive-extension')); |
+ this.nextStep(); |
+ }.bind(this)); |
+ }, |
+ |
+ /** @protected */ |
+ verifyEnabledWorks: function() { |
+ chrome.management.setEnabled(GOOD_CRX_ID, true, function() { |
+ var node = $(GOOD_CRX_ID); |
+ assertTrue(node != null); |
+ assertFalse(node.classList.contains('inactive-extension')); |
+ this.nextStep(); |
+ }.bind(this)); |
+ }, |
+ |
+ /** @protected */ |
+ verifyUninstallWorks: function() { |
+ var next = this.nextStep.bind(this); |
+ chrome.test.runWithUserGesture(function() { |
+ chrome.management.uninstall(GOOD_CRX_ID, function() { |
+ assertTrue($(GOOD_CRX_ID) == null); |
Dan Beam
2015/04/02 01:34:54
assertEQ(null, $(GOOD_CRX_ID))
or
assertFalse($(
Devlin
2015/04/02 21:50:05
Done.
|
+ next(); |
+ }); |
+ }); |
+ }, |
+}; |
+ |
+TEST_F('BasicExtensionSettingsWebUITest', 'testDisable', function() { |
+ this.steps = [this.waitForPageLoad, |
+ this.verifyDisabledWorks, |
+ testDone]; |
+ this.nextStep(); |
+}); |
+ |
+TEST_F('BasicExtensionSettingsWebUITest', 'testEnable', function() { |
+ var disable = function() { |
+ chrome.management.setEnabled(GOOD_CRX_ID, false, function() { |
Dan Beam
2015/04/02 01:34:54
, this.nextStep.bind(this));
Devlin
2015/04/02 21:50:05
Obselete.
|
+ this.nextStep(); |
+ }.bind(this)); |
+ }.bind(this); |
+ this.steps = [this.waitForPageLoad, |
+ disable, |
Dan Beam
2015/04/02 01:34:54
can't this just be this.verifyDisableWorks in this
Devlin
2015/04/02 21:50:05
Yeah, can be - wasn't sure if that was too much ov
|
+ this.verifyEnabledWorks, |
+ testDone]; |
+ this.nextStep(); |
+}); |
+ |
+TEST_F('BasicExtensionSettingsWebUITest', 'testUninstall', function() { |
+ this.steps = [this.waitForPageLoad, |
+ this.verifyUninstallWorks, |
+ testDone]; |
+ this.nextStep(); |
+}); |
+ |
function AsyncExtensionSettingsWebUITest() {} |
AsyncExtensionSettingsWebUITest.prototype = { |