Commit 118b5d25 authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov Committed by Commit Bot

Add test for color setting policy.

Bug: 878550
Change-Id: I2702b90cf5e59d211a93dfd18daa3d8977117005
Reviewed-on: https://chromium-review.googlesource.com/1193897
Commit-Queue: Vladislav Kuzkokov <vkuzkokov@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588849}
parent 3c4d3843
......@@ -154,6 +154,10 @@ TEST_F('PrintPreviewSettingsSectionsTest', 'PresetDuplex', function() {
this.runMochaTest(settings_sections_tests.TestNames.PresetDuplex);
});
TEST_F('PrintPreviewSettingsSectionsTest', 'ColorManaged', function() {
this.runMochaTest(settings_sections_tests.TestNames.ColorManaged);
});
PrintPreviewPolicyTest = class extends NewPrintPreviewTest {
/** @override */
get browsePreload() {
......
......@@ -28,6 +28,7 @@ cr.define('settings_sections_tests', function() {
PresetCopies: 'preset copies',
PresetDuplex: 'preset duplex',
DisableMarginsByPagesPerSheet: 'disable margins by pages per sheet',
ColorManaged: 'color selection disabled by policy',
};
const suiteName = 'SettingsSectionsTests';
......@@ -247,12 +248,16 @@ cr.define('settings_sections_tests', function() {
print_preview_test_utils.getCddTemplate('FooPrinter').capabilities;
capabilities.printer.color = capabilityAndValue.colorCap;
page.set('destination_.capabilities', capabilities);
const selectElement = colorElement.$$('select');
assertFalse(colorElement.hidden);
assertEquals(
capabilityAndValue.expectedValue ? 'color' : 'bw',
colorElement.$$('select').value);
selectElement.value);
assertEquals(
capabilityAndValue.expectedValue, page.getSettingValue('color'));
// Check that setting is not marked as managed.
assertFalse(colorElement.$$('print-preview-settings-section').managed);
assertFalse(selectElement.disabled);
});
});
......@@ -993,6 +998,66 @@ cr.define('settings_sections_tests', function() {
assertTrue(page.settings.duplex.value);
assertTrue(checkbox.checked);
});
test(assert(TestNames.ColorManaged), function() {
const colorElement = page.$$('print-preview-color-settings');
assertFalse(colorElement.hidden);
// Remove color capability.
let capabilities =
print_preview_test_utils.getCddTemplate('FooPrinter').capabilities;
delete capabilities.printer.color;
[{
// Policy has no effect.
colorCap: {option: [{type: 'STANDARD_COLOR', is_default: true}]},
colorPolicy: print_preview.ColorMode.COLOR,
expectedValue: true,
expectedHidden: true,
},
{
// Policy contradicts actual capabilities and should be ignored.
colorCap: {option: [{type: 'STANDARD_COLOR', is_default: true}]},
colorPolicy: print_preview.ColorMode.GRAY,
expectedValue: true,
expectedHidden: true,
},
{
// Policy overrides default.
colorCap: {
option: [
{type: 'STANDARD_MONOCHROME', is_default: true},
{type: 'STANDARD_COLOR'}
]
},
colorPolicy: print_preview.ColorMode.COLOR,
expectedValue: true,
expectedHidden: false,
expectedManaged: true,
}].forEach(subtestParams => {
capabilities =
print_preview_test_utils.getCddTemplate('FooPrinter').capabilities;
capabilities.printer.color = subtestParams.colorCap;
const policies = {allowedColorModes: subtestParams.colorPolicy};
// In practice |capabilities| are always set after |policies| and
// observers only check for |capabilities|, so the order is important.
page.set('destination_.policies', policies);
page.set('destination_.capabilities', capabilities);
assertEquals(
subtestParams.expectedValue, page.getSettingValue('color'));
assertEquals(subtestParams.expectedHidden, colorElement.hidden);
if (!subtestParams.expectedHidden) {
const selectElement = colorElement.$$('select');
assertEquals(
subtestParams.expectedValue ? 'color' : 'bw',
selectElement.value);
assertEquals(
subtestParams.expectedManaged,
colorElement.$$('print-preview-settings-section').managed);
assertEquals(subtestParams.expectedManaged, selectElement.disabled);
}
});
});
});
return {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment