blob: 2788e039b2560336d78a62ae7420270f4955db16 [file] [log] [blame]
// Copyright 2019 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.
// clang-format off
// #import 'chrome://settings/lazy_load.js';
// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// #import {PrivacyPageBrowserProxyImpl, SyncBrowserProxyImpl, MetricsBrowserProxyImpl, PrivacyElementInteractions} from 'chrome://settings/settings.js';
// #import {TestMetricsBrowserProxy} from 'chrome://test/settings/test_metrics_browser_proxy.m.js';
// #import {TestSyncBrowserProxy} from 'chrome://test/settings/test_sync_browser_proxy.m.js';
// #import {TestPrivacyPageBrowserProxy} from 'chrome://test/settings/test_privacy_page_browser_proxy.m.js';
// #import {isMac, isWindows} from 'chrome://resources/js/cr.m.js';
// clang-format on
suite('CrSettingsSecurityPageTest', function() {
/** @type {settings.TestMetricsBrowserProxy} */
let testMetricsBrowserProxy;
/** @type {settings.SyncBrowserProxy} */
let syncBrowserProxy;
/** @type {settings.TestPrivacyPageBrowserProxy} */
let testPrivacyBrowserProxy;
/** @type {SettingsSecurityPageElement} */
let page;
setup(function() {
testMetricsBrowserProxy = new TestMetricsBrowserProxy();
settings.MetricsBrowserProxyImpl.instance_ = testMetricsBrowserProxy;
testPrivacyBrowserProxy = new TestPrivacyPageBrowserProxy();
settings.PrivacyPageBrowserProxyImpl.instance_ = testPrivacyBrowserProxy;
syncBrowserProxy = new TestSyncBrowserProxy();
settings.SyncBrowserProxyImpl.instance_ = syncBrowserProxy;
PolymerTest.clearBody();
page = document.createElement('settings-security-page');
page.prefs = {
profile: {password_manager_leak_detection: {value: true}},
signin: {
allowed_on_next_startup:
{type: chrome.settingsPrivate.PrefType.BOOLEAN, value: true}
},
safebrowsing: {
enabled: {value: true},
scout_reporting_enabled: {value: true},
enhanced: {value: false}
},
};
document.body.appendChild(page);
Polymer.dom.flush();
});
teardown(function() {
page.remove();
});
if (cr.isMac || cr.isWindows) {
test('NativeCertificateManager', function() {
page.$$('#manageCertificates').click();
return testPrivacyBrowserProxy.whenCalled('showManageSSLCertificates');
});
}
test('LogManageCerfificatesClick', function() {
page.$$('#manageCertificates').click();
return testMetricsBrowserProxy.whenCalled('recordSettingsPageHistogram')
.then(result => {
assertEquals(
settings.PrivacyElementInteractions.MANAGE_CERTIFICATES, result);
});
});
test('safeBrowsingReportingToggle', function() {
page.$$('#safeBrowsingStandard').click();
const safeBrowsingReportingToggle = page.$.safeBrowsingReportingToggle;
assertTrue(
page.prefs.safebrowsing.enabled.value &&
!page.prefs.safebrowsing.enhanced.value);
assertFalse(safeBrowsingReportingToggle.disabled);
assertTrue(safeBrowsingReportingToggle.checked);
// This could also be set to disabled, anything other than standard.
page.$$('#safeBrowsingEnhanced').click();
Polymer.dom.flush();
assertFalse(
page.prefs.safebrowsing.enabled.value &&
!page.prefs.safebrowsing.enhanced.value);
assertTrue(safeBrowsingReportingToggle.disabled);
assertTrue(safeBrowsingReportingToggle.checked);
assertTrue(page.prefs.safebrowsing.scout_reporting_enabled.value);
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
assertTrue(
page.prefs.safebrowsing.enabled.value &&
!page.prefs.safebrowsing.enhanced.value);
assertFalse(safeBrowsingReportingToggle.disabled);
assertTrue(safeBrowsingReportingToggle.checked);
});
test('noControlSafeBrowsingReportingInEnhanced', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
assertFalse(page.$.safeBrowsingReportingToggle.disabled);
page.$$('#safeBrowsingEnhanced').click();
Polymer.dom.flush();
assertTrue(page.$.safeBrowsingReportingToggle.disabled);
});
test('noValueChangeSafeBrowsingReportingInEnhanced', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
const previous = page.prefs.safebrowsing.scout_reporting_enabled.value;
page.$$('#safeBrowsingEnhanced').click();
Polymer.dom.flush();
assertTrue(
page.prefs.safebrowsing.scout_reporting_enabled.value == previous);
});
test('noControlSafeBrowsingReportingInDisabled', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
assertFalse(page.$.safeBrowsingReportingToggle.disabled);
page.$$('#safeBrowsingEnhanced').click();
Polymer.dom.flush();
assertTrue(page.$.safeBrowsingReportingToggle.disabled);
});
test('noValueChangeSafeBrowsingReportingInDisabled', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
const previous = page.prefs.safebrowsing.scout_reporting_enabled.value;
page.$$('#safeBrowsingDisabled').click();
Polymer.dom.flush();
assertTrue(
page.prefs.safebrowsing.scout_reporting_enabled.value == previous);
});
test('noValueChangePasswordLeakSwitchToEnhanced', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
const previous = page.prefs.profile.password_manager_leak_detection.value;
page.$$('#safeBrowsingEnhanced').click();
Polymer.dom.flush();
assertTrue(
page.prefs.profile.password_manager_leak_detection.value == previous);
});
test('noValuePasswordLeakSwitchToDisabled', function() {
page.$$('#safeBrowsingStandard').click();
Polymer.dom.flush();
const previous = page.prefs.profile.password_manager_leak_detection.value;
page.$$('#safeBrowsingDisabled').click();
Polymer.dom.flush();
assertTrue(
page.prefs.profile.password_manager_leak_detection.value == previous);
});
});