focus-utils.js (856B)
1 'use strict'; 2 3 function waitForRender() { 4 return new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); 5 } 6 7 async function pressKey(keyCode) { 8 await waitForRender(); 9 await new test_driver.Actions() 10 .keyDown(keyCode) 11 .keyUp(keyCode) 12 .send(); 13 await waitForRender(); 14 } 15 16 async function arrowUp() { 17 const kArrowUp = '\uE013'; 18 await pressKey(kArrowUp); 19 } 20 21 async function arrowDown() { 22 const kArrowDown = '\uE015'; 23 await pressKey(kArrowDown); 24 } 25 26 async function navigateFocusForward() { 27 const kTab = '\uE004'; 28 await pressKey(kTab); 29 } 30 31 async function navigateFocusBackward() { 32 await waitForRender(); 33 const kShift = '\uE008'; 34 const kTab = '\uE004'; 35 await new test_driver.Actions() 36 .keyDown(kShift) 37 .keyDown(kTab) 38 .keyUp(kTab) 39 .keyUp(kShift) 40 .send(); 41 await waitForRender(); 42 }