Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_settings_browsertest.js

Issue 1049483003: [Extensions] Update extensions UI to observe events and add test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 assertEquals(this.browsePreload, document.location.href); 49 assertEquals(this.browsePreload, document.location.href);
50 50
51 // This dialog should be hidden at first. 51 // This dialog should be hidden at first.
52 assertFalse($('pack-extension-overlay').classList.contains('showing')); 52 assertFalse($('pack-extension-overlay').classList.contains('showing'));
53 53
54 // Show the dialog, which triggers a chrome.send() for metrics purposes. 54 // Show the dialog, which triggers a chrome.send() for metrics purposes.
55 cr.dispatchSimpleEvent($('pack-extension'), 'click'); 55 cr.dispatchSimpleEvent($('pack-extension'), 'click');
56 assertTrue($('pack-extension-overlay').classList.contains('showing')); 56 assertTrue($('pack-extension-overlay').classList.contains('showing'));
57 }); 57 });
58 58
59 function BasicExtensionSettingsWebUITest() {}
60
61 BasicExtensionSettingsWebUITest.prototype = {
62 __proto__: ExtensionSettingsWebUITest.prototype,
63
64 /** @override */
65 isAsync: true,
66
67 /** @override */
68 testGenPreamble: function() {
69 // Install different types of extensions to try and exercise as many code
70 // paths as possible.
Dan Beam 2015/04/01 23:12:04 this generally sounds like a recipe for flakiness.
Devlin 2015/04/02 00:01:39 Fair enough. I try to avoid it when possible, bec
71 // TODO(devlin): There are more types to add here.
72 GEN(' InstallGoodExtension();');
73 GEN(' InstallErrorsExtension();');
74 GEN(' InstallSharedModule();');
75
76 GEN(' SetAutoConfirmUninstall();');
77 },
78
Dan Beam 2015/04/01 23:12:04 /** @protected {Array<!Function>} */
Devlin 2015/04/02 00:01:38 Done.
79 steps: [],
80
Dan Beam 2015/04/01 23:12:04 all these should be @protected
Devlin 2015/04/02 00:01:39 Done.
81 nextStep: function() {
82 assertTrue(this.steps.length > 0);
83 this.steps.shift().bind(this)();
84 },
85
86 waitForPageLoad: function() {
87 extensionList = $('extension-settings-list');
88 extensionList.extensionsUpdated.then(this.nextStep.bind(this));
89 },
90
91 verifyDisabledWorks: function() {
92 chrome.management.setEnabled(GOOD_CRX_ID, false, function() {
93 var node = $(GOOD_CRX_ID);
94 assertTrue(node != null);
95 assertTrue(node.classList.contains('inactive-extension'));
96 this.nextStep();
97 }.bind(this));
98 },
99
100 verifyEnabledWorks: function() {
101 chrome.management.setEnabled(GOOD_CRX_ID, true, function() {
102 var node = $(GOOD_CRX_ID);
103 assertTrue(node != null);
104 assertFalse(node.classList.contains('inactive-extension'));
105 this.nextStep();
106 }.bind(this));
107 },
108
109 verifyUninstallWorks: function() {
110 var next = this.nextStep.bind(this);
111 chrome.test.runWithUserGesture(function() {
112 chrome.management.uninstall(GOOD_CRX_ID, function() {
113 assertTrue($(GOOD_CRX_ID) == null);
114 next();
115 });
116 });
117 },
118 };
119
120 TEST_F('BasicExtensionSettingsWebUITest', 'testBasic', function() {
121 this.steps = [this.waitForPageLoad,
122 this.verifyDisabledWorks,
123 this.verifyEnabledWorks,
124 this.verifyUninstallWorks,
125 testDone];
126 this.nextStep();
127 });
128
59 function AsyncExtensionSettingsWebUITest() {} 129 function AsyncExtensionSettingsWebUITest() {}
60 130
61 AsyncExtensionSettingsWebUITest.prototype = { 131 AsyncExtensionSettingsWebUITest.prototype = {
62 __proto__: ExtensionSettingsWebUITest.prototype, 132 __proto__: ExtensionSettingsWebUITest.prototype,
63 133
64 /** @override */ 134 /** @override */
65 isAsync: true, 135 isAsync: true,
66 136
67 /** @override */ 137 /** @override */
68 testGenPreamble: function() { 138 testGenPreamble: function() {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 296
227 ExtensionOptionsDialogWebUITest.prototype = { 297 ExtensionOptionsDialogWebUITest.prototype = {
228 __proto__: InstalledExtensionSettingsWebUITest.prototype, 298 __proto__: InstalledExtensionSettingsWebUITest.prototype,
229 299
230 /** @override */ 300 /** @override */
231 browsePreload: ExtensionSettingsWebUITest.prototype.browsePreload + 301 browsePreload: ExtensionSettingsWebUITest.prototype.browsePreload +
232 '?options=' + GOOD_CRX_ID, 302 '?options=' + GOOD_CRX_ID,
233 }; 303 };
234 304
235 TEST_F('ExtensionOptionsDialogWebUITest', 'testAccessibility', runAudit); 305 TEST_F('ExtensionOptionsDialogWebUITest', 'testAccessibility', runAudit);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698