OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** @fileoverview Suite of tests for cr-slider. */ | 5 /** @fileoverview Suite of tests for cr-slider. */ |
6 cr.define('cr_slider', function() { | 6 cr.define('cr_slider', function() { |
7 function registerTests() { | 7 function registerTests() { |
8 suite('cr-slider', function() { | 8 suite('cr-slider', function() { |
9 /** @type {!CrSliderElement} */ | 9 /** @type {!CrSliderElement} */ |
10 var slider; | 10 var slider; |
11 | 11 |
12 /** | 12 /** |
13 * paper-slider instance wrapped by cr-slider. | 13 * paper-slider instance wrapped by cr-slider. |
14 * @type {!PaperSliderElement} | 14 * @type {!PaperSliderElement} |
15 */ | 15 */ |
16 var paperSlider; | 16 var paperSlider; |
17 | 17 |
18 var tickValues = [2, 4, 8, 16, 32, 64, 128]; | 18 var tickValues = [2, 4, 8, 16, 32, 64, 128]; |
19 | 19 |
20 setup(function() { | 20 setup(function() { |
21 PolymerTest.clearBody(); | 21 PolymerTest.clearBody(); |
22 slider = document.createElement('cr-slider'); | 22 slider = document.createElement('cr-slider'); |
| 23 slider.pref = { |
| 24 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 25 value: 16, |
| 26 }; |
23 document.body.appendChild(slider); | 27 document.body.appendChild(slider); |
24 paperSlider = slider.$$('paper-slider'); | 28 paperSlider = slider.$$('paper-slider'); |
25 }); | 29 }); |
26 | 30 |
| 31 test('enforce value', function() { |
| 32 // Test that the indicator is not present until after the pref is |
| 33 // enforced. |
| 34 indicator = slider.$$('cr-policy-pref-indicator'); |
| 35 assertFalse(!!indicator); |
| 36 slider.pref = { |
| 37 controlledBy: chrome.settingsPrivate.ControlledBy.DEVICE_POLICY, |
| 38 enforcement: chrome.settingsPrivate.Enforcement.ENFORCED, |
| 39 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 40 value: 16, |
| 41 }; |
| 42 Polymer.dom.flush(); |
| 43 indicator = slider.$$('cr-policy-pref-indicator'); |
| 44 assertTrue(!!indicator); |
| 45 }); |
| 46 |
27 test('set value', function() { | 47 test('set value', function() { |
28 slider.tickValues = tickValues; | 48 slider.tickValues = tickValues; |
29 slider.value = 16; | 49 slider.set('pref.value', 16); |
30 expectEquals(6, paperSlider.max); | 50 expectEquals(6, paperSlider.max); |
31 expectEquals(3, paperSlider.value); | 51 expectEquals(3, paperSlider.value); |
32 expectEquals(3, paperSlider.immediateValue); | 52 expectEquals(3, paperSlider.immediateValue); |
33 | 53 |
34 // cr-slider only supports snapping to a range of tick values. Setting | 54 // cr-slider only supports snapping to a range of tick values. Setting |
35 // to an in-between value should snap to an indexed value. | 55 // to an in-between value should snap to an indexed value. |
36 slider.value = 70; | 56 slider.set('pref.value', 70); |
37 expectEquals(5, paperSlider.value); | 57 expectEquals(5, paperSlider.value); |
38 expectEquals(5, paperSlider.immediateValue); | 58 expectEquals(5, paperSlider.immediateValue); |
39 expectEquals(64, slider.value); | 59 expectEquals(64, slider.pref.value); |
40 | 60 |
41 // Setting the value out-of-range should clamp the slider. | 61 // Setting the value out-of-range should clamp the slider. |
42 slider.value = -100; | 62 slider.set('pref.value', -100); |
43 expectEquals(0, paperSlider.value); | 63 expectEquals(0, paperSlider.value); |
44 expectEquals(0, paperSlider.immediateValue); | 64 expectEquals(0, paperSlider.immediateValue); |
45 expectEquals(2, slider.value); | 65 expectEquals(2, slider.pref.value); |
46 }); | 66 }); |
47 | 67 |
48 test('move slider', function() { | 68 test('move slider', function() { |
49 slider.tickValues = tickValues; | 69 slider.tickValues = tickValues; |
50 slider.value = 30; | 70 slider.set('pref.value', 30); |
51 expectEquals(4, paperSlider.value); | 71 expectEquals(4, paperSlider.value); |
52 | 72 |
53 MockInteractions.pressAndReleaseKeyOn( | 73 MockInteractions.pressAndReleaseKeyOn( |
54 paperSlider, 39 /* right */); | 74 paperSlider, 39 /* right */); |
55 expectEquals(5, paperSlider.value); | 75 expectEquals(5, paperSlider.value); |
56 expectEquals(64, slider.value); | 76 expectEquals(64, slider.pref.value); |
57 | 77 |
58 MockInteractions.pressAndReleaseKeyOn( | 78 MockInteractions.pressAndReleaseKeyOn( |
59 paperSlider, 39 /* right */); | 79 paperSlider, 39 /* right */); |
60 expectEquals(6, paperSlider.value); | 80 expectEquals(6, paperSlider.value); |
61 expectEquals(128, slider.value); | 81 expectEquals(128, slider.pref.value); |
62 | 82 |
63 MockInteractions.pressAndReleaseKeyOn( | 83 MockInteractions.pressAndReleaseKeyOn( |
64 paperSlider, 39 /* right */); | 84 paperSlider, 39 /* right */); |
65 expectEquals(6, paperSlider.value); | 85 expectEquals(6, paperSlider.value); |
66 expectEquals(128, slider.value); | 86 expectEquals(128, slider.pref.value); |
67 | 87 |
68 MockInteractions.pressAndReleaseKeyOn( | 88 MockInteractions.pressAndReleaseKeyOn( |
69 paperSlider, 37 /* left */); | 89 paperSlider, 37 /* left */); |
70 expectEquals(5, paperSlider.value); | 90 expectEquals(5, paperSlider.value); |
71 expectEquals(64, slider.value); | 91 expectEquals(64, slider.pref.value); |
72 }); | 92 }); |
73 | 93 |
74 test('findNearestIndex_', function() { | 94 test('findNearestIndex_', function() { |
75 var slider = document.createElement('cr-slider'); | 95 var slider = document.createElement('cr-slider'); |
76 var testArray = [80, 20, 350, 1000, 200, 100]; | 96 var testArray = [80, 20, 350, 1000, 200, 100]; |
77 var testFindNearestIndex = function(expectedIndex, value) { | 97 var testFindNearestIndex = function(expectedIndex, value) { |
78 expectEquals( | 98 expectEquals( |
79 expectedIndex, slider.findNearestIndex_(testArray, value)); | 99 expectedIndex, slider.findNearestIndex_(testArray, value)); |
80 }; | 100 }; |
81 testFindNearestIndex(0, 51); | 101 testFindNearestIndex(0, 51); |
(...skipping 15 matching lines...) Expand all Loading... |
97 testFindNearestIndex(5, 100); | 117 testFindNearestIndex(5, 100); |
98 testFindNearestIndex(5, 91); | 118 testFindNearestIndex(5, 91); |
99 }); | 119 }); |
100 }); | 120 }); |
101 } | 121 } |
102 | 122 |
103 return { | 123 return { |
104 registerTests: registerTests, | 124 registerTests: registerTests, |
105 }; | 125 }; |
106 }); | 126 }); |
OLD | NEW |