| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 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 var pass = chrome.test.callbackPass; | |
| 6 var fail = chrome.test.callbackFail; | |
| 7 | |
| 8 function getTestFunctionFor(keys, fails) { | |
| 9 return function generatedTest () { | |
| 10 // Debug. | |
| 11 console.warn('keys: ' + keys + '; fails: ' + fails); | |
| 12 | |
| 13 chrome.chromeosInfoPrivate.get( | |
| 14 keys, | |
| 15 pass( | |
| 16 function(values) { | |
| 17 for (var i = 0; i < keys.length; ++i) { | |
| 18 // Debug | |
| 19 if (keys[i] in values) { | |
| 20 console.log(' values["' + keys[i] + '"] = ' + | |
| 21 values[keys[i]]); | |
| 22 } else { | |
| 23 console.log(' ' + keys[i] + ' is missing in values'); | |
| 24 } | |
| 25 | |
| 26 chrome.test.assertEq(fails.indexOf(keys[i]) == -1, | |
| 27 keys[i] in values); | |
| 28 } | |
| 29 } | |
| 30 ) | |
| 31 ); | |
| 32 } | |
| 33 } | |
| 34 | |
| 35 // Automatically generates tests for the given possible keys. Note, this | |
| 36 // tests do not check return value, only the fact that it is presented. | |
| 37 function generateTestsForKeys(keys) { | |
| 38 var tests = []; | |
| 39 // Test with all the keys at one. | |
| 40 tests.push(getTestFunctionFor(keys, [])); | |
| 41 // Tests with key which hasn't corresponding value. | |
| 42 var noValueKey = 'noValueForThisKey'; | |
| 43 tests.push(getTestFunctionFor([noValueKey], [noValueKey])); | |
| 44 | |
| 45 if (keys.length > 1) { | |
| 46 // Tests with the separate keys. | |
| 47 for (var i = 0; i < keys.length; ++i) { | |
| 48 tests.push(getTestFunctionFor([keys[i]], [])); | |
| 49 } | |
| 50 } | |
| 51 if (keys.length >= 2) { | |
| 52 tests.push(getTestFunctionFor([keys[0], keys[1]], [])); | |
| 53 tests.push(getTestFunctionFor([keys[0], noValueKey, keys[1]], | |
| 54 [noValueKey])); | |
| 55 } | |
| 56 return tests; | |
| 57 } | |
| 58 | |
| 59 function timezoneSetTest() { | |
| 60 chrome.chromeosInfoPrivate.set('timezone', 'Pacific/Kiritimati'); | |
| 61 chrome.chromeosInfoPrivate.get( | |
| 62 ['timezone'], | |
| 63 pass( | |
| 64 function(values) { | |
| 65 chrome.test.assertEq(values['timezone'], | |
| 66 'Pacific/Kiritimati'); | |
| 67 } | |
| 68 )); | |
| 69 } | |
| 70 | |
| 71 function prefsTest() { | |
| 72 chrome.chromeosInfoPrivate.set('a11yLargeCursorEnabled', true); | |
| 73 chrome.chromeosInfoPrivate.set('a11yStickyKeysEnabled', true); | |
| 74 chrome.chromeosInfoPrivate.set('a11ySpokenFeedbackEnabled', true); | |
| 75 chrome.chromeosInfoPrivate.set('a11yHighContrastEnabled', true); | |
| 76 chrome.chromeosInfoPrivate.set('a11yScreenMagnifierEnabled', true); | |
| 77 chrome.chromeosInfoPrivate.set('a11yAutoClickEnabled', true); | |
| 78 chrome.chromeosInfoPrivate.set('a11yVirtualKeyboardEnabled', true); | |
| 79 chrome.chromeosInfoPrivate.set('sendFunctionKeys', true); | |
| 80 chrome.chromeosInfoPrivate.get( | |
| 81 ['a11yLargeCursorEnabled', | |
| 82 'a11yStickyKeysEnabled', | |
| 83 'a11ySpokenFeedbackEnabled', | |
| 84 'a11yHighContrastEnabled', | |
| 85 'a11yScreenMagnifierEnabled', | |
| 86 'a11yAutoClickEnabled', | |
| 87 'a11yVirtualKeyboardEnabled', | |
| 88 'sendFunctionKeys'], | |
| 89 pass( | |
| 90 function(values) { | |
| 91 chrome.test.assertEq(values['a11yLargeCursorEnabled'], true); | |
| 92 chrome.test.assertEq(values['a11yStickyKeysEnabled'], true); | |
| 93 chrome.test.assertEq(values['a11ySpokenFeedbackEnabled'], true); | |
| 94 chrome.test.assertEq(values['a11yHighContrastEnabled'], true); | |
| 95 chrome.test.assertEq(values['a11yScreenMagnifierEnabled'], true); | |
| 96 chrome.test.assertEq(values['a11yAutoClickEnabled'], true); | |
| 97 chrome.test.assertEq(values['a11yVirtualKeyboardEnabled'], true); | |
| 98 chrome.test.assertEq(values['sendFunctionKeys'], true); | |
| 99 } | |
| 100 )); | |
| 101 } | |
| 102 | |
| 103 // Run generated chrome.chromeosInfoPrivate.get() tests. | |
| 104 var tests = generateTestsForKeys(['hwid', | |
| 105 'customizationId', | |
| 106 'homeProvider', | |
| 107 'initialLocale', | |
| 108 'board', | |
| 109 'isOwner', | |
| 110 'clientId', | |
| 111 'a11yLargeCursorEnabled', | |
| 112 'a11yStickyKeysEnabled', | |
| 113 'a11ySpokenFeedbackEnabled', | |
| 114 'a11yHighContrastEnabled', | |
| 115 'a11yScreenMagnifierEnabled', | |
| 116 'a11yAutoClickEnabled', | |
| 117 'a11yVirtualKeyboardEnabled', | |
| 118 'sendFunctionKeys', | |
| 119 'timezone', | |
| 120 'supportedTimezones']) | |
| 121 | |
| 122 // Add chrome.chromeosInfoPrivate.set() test. | |
| 123 tests.push(timezoneSetTest); | |
| 124 tests.push(prefsTest); | |
| 125 | |
| 126 chrome.test.runTests(tests); | |
| OLD | NEW |