| 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);
|
| + });
|
| + });
|
| +});
|
|
|