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

Side by Side Diff: chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.js

Issue 2624003003: WebUI: Add cr-policy-pref-indicator tests (Closed)
Patch Set: Feedback Created 3 years, 10 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /** @fileoverview Suite of tests for cr_policy-pref-indicator. */
michaelpg 2017/02/16 21:36:22 cr-policy
stevenjb 2017/02/17 01:08:29 Done.
6 suite('CrPolicyPrefIndicator', function() {
7 /** @type {!CrPolicyPrefIndicatorElement|undefined} */
8 var indicator;
9
10 /** @type {!PaperTooltipElement|undefined} */
11 var tooltip;
12
13 suiteSetup(function() {
14 // Define chrome.settingsPrivate enums, normally provided by chrome WebUI.
15 // NOTE: These need to be kept in sync with settings_private.idl.
16
17 chrome.settingsPrivate = chrome.settingsPrivate || {};
18
19 /** @enum {string} */
20 chrome.settingsPrivate.ControlledBy = {
21 DEVICE_POLICY: 'DEVICE_POLICY',
22 USER_POLICY: 'USER_POLICY',
23 OWNER: 'OWNER',
24 PRIMARY_USER: 'PRIMARY_USER',
25 EXTENSION: 'EXTENSION',
26 };
27
28 /** @enum {string} */
29 chrome.settingsPrivate.Enforcement = {
30 ENFORCED: 'ENFORCED',
31 RECOMMENDED: 'RECOMMENDED',
32 };
33
34 /** @enum {string} */
35 chrome.settingsPrivate.PrefType = {
36 BOOLEAN: 'BOOLEAN',
37 NUMBER: 'NUMBER',
38 STRING: 'STRING',
39 URL: 'URL',
40 LIST: 'LIST',
41 DICTIONARY: 'DICTIONARY',
42 };
43
44 // Set up strings used by policy indicator elements.
michaelpg 2017/02/16 21:36:22 Given the comment about settings_private.idl, coul
stevenjb 2017/02/17 01:08:29 Done.
45 CrPolicyStrings = {
46 controlledSettingPolicy: 'policy',
47 controlledSettingRecommendedMatches: 'matches',
48 controlledSettingRecommendedDiffers: 'differs',
49 controlledSettingShared: 'shared: $1',
50 controlledSettingOwner: 'owner: $1',
51 };
52 });
53
54 setup(function() {
55 PolymerTest.clearBody();
56
57 indicator = document.createElement('cr-policy-pref-indicator');
58 document.body.appendChild(indicator);
59 tooltip = indicator.$$('paper-tooltip');
60 });
61
62 teardown(function() {
63 PolymerTest.clearBody(); // crbug.com/680169
64 });
65
66 test('none', function() {
67 assertTrue(indicator.$.indicator.hidden);
68 });
69
70 test('pref', function() {
71 /** @type {!chrome.settingsPrivate.PrefObject} */
72 indicator.pref = {
73 key: 'foo',
74 type: chrome.settingsPrivate.PrefType.BOOLEAN,
75 value: false,
76 };
77 Polymer.dom.flush();
78 assertTrue(indicator.$.indicator.hidden);
79
80 indicator.set(
81 'pref.controlledBy', chrome.settingsPrivate.ControlledBy.OWNER);
82 indicator.set('pref.controlledByName', 'owner_name');
83 indicator.set(
84 'pref.enforcement', chrome.settingsPrivate.Enforcement.ENFORCED);
85 Polymer.dom.flush();
86 assertFalse(indicator.$.indicator.hidden);
87 assertEquals('cr:person', indicator.$.indicator.icon);
88 assertEquals('owner: owner_name', tooltip.textContent.trim());
89
90 indicator.set('pref.value', 'foo');
91 indicator.set('pref.recommendedValue', 'bar');
92 indicator.set(
93 'pref.enforcement', chrome.settingsPrivate.Enforcement.RECOMMENDED);
94 Polymer.dom.flush();
95 assertFalse(indicator.$.indicator.hidden);
96 assertEquals('cr20:domain', indicator.$.indicator.icon);
97 assertEquals('differs', tooltip.textContent.trim());
98
99 indicator.set('pref.value', 'bar');
100 Polymer.dom.flush();
101 assertEquals('matches', tooltip.textContent.trim());
102 });
103 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698