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

Unified Diff: chrome/test/data/webui/settings/metrics_reporting_tests.js

Issue 2233443002: MD Settings: implement metrics reporting checkbox on desktop (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@desktop-uma
Patch Set: remove 2 using Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/settings/metrics_reporting_tests.js
diff --git a/chrome/test/data/webui/settings/metrics_reporting_tests.js b/chrome/test/data/webui/settings/metrics_reporting_tests.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf684d7ecfcd6defba86274572c0983d25f291b5
--- /dev/null
+++ b/chrome/test/data/webui/settings/metrics_reporting_tests.js
@@ -0,0 +1,80 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @constructor
+ * @extends {TestBrowserProxy}
+ * @implements {settings.PrivacyPageBrowserProxy}
+ */
+function TestPrivacyPageBrowserProxy() {
+ settings.TestBrowserProxy.call(this, [
+ 'getMetricsReporting',
+ 'setMetricsReportingEnabled',
+ ]);
+}
+
+TestPrivacyPageBrowserProxy.prototype = {
+ __proto__: settings.TestBrowserProxy.prototype,
+
+ /** @type {!MetricsReporting} */
+ metricsReporting: {
+ enabled: true,
+ managed: true,
+ },
+
+ /** @override */
+ getMetricsReporting: function() {
+ this.methodCalled('getMetricsReporting');
+ return Promise.resolve(this.metricsReporting);
+ },
+
+ /** @override */
+ setMetricsReportingEnabled: function(enabled) {
+ this.methodCalled('setMetricsReportingEnabled', enabled);
+ },
+};
+
+suite('metrics reporting', function() {
+ /** @type {settings.TestPrivacyPageBrowserProxy} */
+ var testBrowserProxy;
+
+ /** @type {SettingsPrivacyPageElement} */
+ var page;
+
+ setup(function() {
+ testBrowserProxy = new TestPrivacyPageBrowserProxy();
+ settings.PrivacyPageBrowserProxyImpl.instance_ = testBrowserProxy;
+ PolymerTest.clearBody();
+ page = document.createElement('settings-privacy-page');
+ });
+
+ teardown(function() { page.remove(); });
+
+ test('changes to whether metrics reporting is enabled/managed', function() {
+ return testBrowserProxy.whenCalled('getMetricsReporting').then(function() {
+ Polymer.dom.flush();
+
+ var checkbox = page.$.metricsReportingCheckbox;
+ assertEquals(testBrowserProxy.metricsReporting.enabled, checkbox.checked);
+ var indicatorVisible = !!page.$$('#indicator');
+ assertEquals(testBrowserProxy.metricsReporting.managed, indicatorVisible);
+
+ var changedMetrics = {
+ enabled: !testBrowserProxy.metricsReporting.enabled,
+ managed: !testBrowserProxy.metricsReporting.managed,
+ };
+ cr.webUIListenerCallback('metrics-reporting-change', changedMetrics);
+ Polymer.dom.flush();
+
+ assertEquals(changedMetrics.enabled, checkbox.checked);
+ indicatorVisible = !!page.$$('#indicator');
+ assertEquals(changedMetrics.managed, indicatorVisible);
+
+ var toggled = !changedMetrics.enabled;
+
+ MockInteractions.tap(checkbox);
+ return testBrowserProxy.whenCalled('setMetricsReportingEnabled', toggled);
+ });
+ });
+});

Powered by Google App Engine
This is Rietveld 408576698