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

Side by Side Diff: LayoutTests/gamepad/page-visibility.html

Issue 872373002: Fix gamepad/page-visibility.html flakiness. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <body> 3 <body>
4 <script src="../resources/js-test.js"></script> 4 <script src="../resources/js-test.js"></script>
5 <script> 5 <script>
6 description("Tests that gamepad events are not fired when page is hidden but kep t as pending and fired when the page becomes visible again."); 6 description("Tests that gamepad events are not fired when page is hidden but kep t as pending and fired when the page becomes visible again.");
7 window.jsTestIsAsync = true; 7 window.jsTestIsAsync = true;
8 8
9 var listeners; 9 var listeners;
10 function addListener(eventName, handler) { 10 function addListener(eventName, handler) {
(...skipping 24 matching lines...) Expand all
35 }, 35 },
36 { index: 1, connected: true, check: 36 { index: 1, connected: true, check:
37 function(event) { 37 function(event) {
38 shouldBeEqualToString('event.gamepad.id', "new"); 38 shouldBeEqualToString('event.gamepad.id', "new");
39 } 39 }
40 }, 40 },
41 { index: 2, connected: true, check: null } 41 { index: 2, connected: true, check: null }
42 ]; 42 ];
43 var expected; 43 var expected;
44 44
45 function allTestsCompleted() {
46 return eventCounter == expectations.length;
47 }
48
45 function testWithPageVisibleAgain() { 49 function testWithPageVisibleAgain() {
46 shouldBeEqualToString('document.visibilityState', 'hidden'); 50 shouldBeEqualToString('document.visibilityState', 'hidden');
47 removeListeners(); 51 removeListeners();
48 52
49 window.addEventListener('gamepadconnected', function(event) { 53 window.addEventListener('gamepadconnected', function(event) {
50 shouldBeTrue('eventCounter < expectations.length'); 54 shouldBeTrue('eventCounter < expectations.length');
51 expected = expectations[eventCounter++]; 55 expected = expectations[eventCounter++];
52 shouldBeEqualToNumber('event.gamepad.index', expected.index); 56 shouldBeEqualToNumber('event.gamepad.index', expected.index);
53 shouldBeTrue('expected.connected'); 57 shouldBeTrue('expected.connected');
54 shouldBeTrue('event.gamepad.connected'); 58 shouldBeTrue('event.gamepad.connected');
55 if (expected.check) 59 if (expected.check)
56 expected.check(event); 60 expected.check(event);
57 61
58 if (eventCounter == expectations.length) 62 if (allTestsCompleted())
59 finishSoon(); // Give some time to fail if unexpecteds events are co ming. 63 finishSoon(); // Give some time to fail if unexpecteds events are co ming.
60 }); 64 });
61 window.addEventListener('gamepaddisconnected', function(event) { 65 window.addEventListener('gamepaddisconnected', function(event) {
62 shouldBeTrue('eventCounter < expectations.length'); 66 shouldBeTrue('eventCounter < expectations.length');
63 expected = expectations[eventCounter++]; 67 expected = expectations[eventCounter++];
64 shouldBeEqualToNumber('event.gamepad.index', expected.index); 68 shouldBeEqualToNumber('event.gamepad.index', expected.index);
65 shouldBeFalse('expected.connected'); 69 shouldBeFalse('expected.connected');
66 shouldBeFalse('event.gamepad.connected'); 70 shouldBeFalse('event.gamepad.connected');
67 if (expected.check) 71 if (expected.check)
68 expected.check(event); 72 expected.check(event);
69 73
70 if (eventCounter == expectations.length) 74 if (allTestsCompleted())
71 finishSoon(); // Give some time to fail if unexpecteds events are co ming. 75 finishSoon(); // Give some time to fail if unexpecteds events are co ming.
72 }); 76 });
73 77
74 testRunner.setPageVisibility('visible'); 78 testRunner.setPageVisibility('visible');
75
76 setTimeout(function() {
77 testFailed('More gamepad events should have been received');
78 finishJSTest();
79 }, 100);
80 } 79 }
81 80
82 function testWithPageHidden() { 81 function testWithPageHidden() {
83 testRunner.setPageVisibility('hidden'); 82 testRunner.setPageVisibility('hidden');
84 var shouldNotReceive = function() { 83 var shouldNotReceive = function() {
85 testFailed('Should not have received gamepad events while the page was h idden'); 84 testFailed('Should not have received gamepad events while the page was h idden');
86 finishJSTest(); 85 finishJSTest();
87 }; 86 };
88 addListener('gamepadconnected', shouldNotReceive); 87 addListener('gamepadconnected', shouldNotReceive);
89 addListener('gamepaddisconnected', shouldNotReceive); 88 addListener('gamepaddisconnected', shouldNotReceive);
(...skipping 29 matching lines...) Expand all
119 }); 118 });
120 119
121 gamepadController.connect(0); 120 gamepadController.connect(0);
122 gamepadController.dispatchConnected(0); 121 gamepadController.dispatchConnected(0);
123 gamepadController.setId(1, "old"); 122 gamepadController.setId(1, "old");
124 gamepadController.connect(1); 123 gamepadController.connect(1);
125 gamepadController.dispatchConnected(1); 124 gamepadController.dispatchConnected(1);
126 125
127 </script> 126 </script>
128 </html> 127 </html>
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698