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

Side by Side Diff: chrome/test/data/extensions/api_test/screenlockPrivate/test.js

Issue 60583003: The chrome.screenlockPrivate API allows select apps to control the ChromeOS ScreenLocker. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up apitest.cc Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // getLocked(). if true then fail.
2 // setLocked(true)
3 // wait for onChanged. if timeout then fail.
4 // getLocked(). if false then fail.
5 // setLocked(false)
6 // wait for onChanged. if timeout then fail.
7 // getLocked(). if true then fail.
8 // succeed
9
10 var stage = 0;
11
12 function now() {
13 return (new Date()).getTime();
14 }
15
16 function watchdog(wrapped) {
Matt Perry 2013/11/13 01:01:14 Cool addition, but the test fixture has a built in
benjhayden 2013/11/13 17:17:51 Done.
17 return function() {
18 watchdog.clear();
19 var result = wrapped.apply(this, arguments);
20 watchdog.clear();
21 if (result) {
22 watchdog.timer = window.setTimeout(function() {
23 chrome.test.fail('timeout after ' + (now() - watchdog.started) +
24 'ms at stage ' + stage);
25 }, watchdog.timeoutMs);
26 watchdog.started = now();
27 console.debug('watchdog started at ' + watchdog.started +
28 ' at stage ' + stage);
29 }
30 return result;
31 }
32 }
33 watchdog.timer = null;
34 watchdog.timeoutMs = 2000;
35 watchdog.started = 0;
36 watchdog.clear = function() {
37 if (!watchdog.timer) {
38 return;
39 }
40 console.debug('watchdog cleared after ' + (now() - watchdog.started) + 'ms');
41 window.clearTimeout(watchdog.timer);
42 watchdog.timer = null;
43 watchdog.started = 0;
44 };
45
46 function gotLocked(locked) {
47 console.log('step stage=' + stage + ' locked=' + locked);
Matt Perry 2013/11/13 01:01:14 remove the logs before checking in to reduce log s
benjhayden 2013/11/13 17:17:51 Done.
48 if (stage === 0) {
49 if (locked) {
50 chrome.test.fail('locked at stage ' + stage);
51 } else {
52 chrome.screenlockPrivate.setLocked(true);
53 ++stage;
54 return true;
55 }
56 } else if (stage === 1) {
57 if (!locked) {
58 chrome.test.fail('unlocked at stage ' + stage);
59 } else {
60 chrome.screenlockPrivate.setLocked(false);
61 ++stage;
62 return true;
63 }
64 } else if (stage === 2) {
65 if (locked) {
66 chrome.test.fail('locked at stage ' + stage);
67 } else {
68 chrome.test.succeed();
69 }
70 }
71 }
72
73 var step = watchdog(function() {
74 chrome.screenlockPrivate.getLocked(watchdog(gotLocked));
75 });
76
77 chrome.screenlockPrivate.onChanged.addListener(watchdog(function(locked) {
78 console.log('onChanged stage=' + stage + ' locked=' + locked);
79 if (locked != (1 == (stage % 2))) {
80 chrome.test.fail((locked ? '' : 'un') + 'locked at stage ' + stage +
81 ' onChanged');
82 } else {
83 return step();
84 }
85 }));
86
87 step();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698