OLD | NEW |
(Empty) | |
| 1 // Automatically add doNextStepButton to document for manual tests. |
| 2 if (!window.testRunner) { |
| 3 setTimeout(function () { |
| 4 if (window.doNextStepButtonDisabled) |
| 5 return; |
| 6 doNextStepButton = document.body.insertBefore(document.createElement("bu
tton"), document.body.firstChild); |
| 7 doNextStepButton.onclick = doNextStep; |
| 8 doNextStepButton.innerText = "doNextStep button for manual testing. Use
keyboard to select button and press (TAB, then SPACE)."; |
| 9 }, 0); |
| 10 } |
| 11 |
| 12 function runOnKeyPress(fn) |
| 13 { |
| 14 function keypressHandler() { |
| 15 document.removeEventListener('keypress', keypressHandler, false); |
| 16 fn(); |
| 17 } |
| 18 document.addEventListener('keypress', keypressHandler, false); |
| 19 |
| 20 if (window.testRunner) |
| 21 eventSender.keyDown(" ", []); |
| 22 } |
| 23 |
| 24 function doNextStep(args) |
| 25 { |
| 26 args = args || {}; |
| 27 if (!window.testRunner && args.withUserGesture) |
| 28 return; // Wait for human to press doNextStep button. |
| 29 |
| 30 if (typeof(currentStep) == "undefined") |
| 31 currentStep = 0; |
| 32 |
| 33 setTimeout(function () { |
| 34 var thisStep = currentStep++; |
| 35 if (thisStep < todo.length) |
| 36 if (args.withUserGesture) |
| 37 runOnKeyPress(todo[thisStep]); |
| 38 else |
| 39 todo[thisStep](); |
| 40 else if (thisStep == todo.length) |
| 41 setTimeout(function () { finishJSTest(); }, 0); // Deferred so that
excessive doNextStep calls will be observed. |
| 42 else |
| 43 testFailed("doNextStep called too many times."); |
| 44 }, 0); |
| 45 } |
| 46 |
| 47 function doNextStepWithUserGesture() |
| 48 { |
| 49 doNextStep({withUserGesture: true}); |
| 50 } |
| 51 |
| 52 function eventExpected(eventHandlerName, message, expectedCalls, targetHanderNod
e) |
| 53 { |
| 54 targetHanderNode[eventHandlerName] = function () { |
| 55 switch (expectedCalls--) { |
| 56 case 0: |
| 57 testFailed(eventHandlerName + " received after: " + message); |
| 58 finishJSTest(); |
| 59 break; |
| 60 case 1: |
| 61 doNextStep(); |
| 62 default: |
| 63 testPassed(eventHandlerName + " received after: " + message); |
| 64 }; |
| 65 }; |
| 66 }; |
| 67 |
| 68 function expectOnlyChangeEvent(message, targetDocument) { |
| 69 debug(" " + message); |
| 70 targetDocument = targetDocument !== undefined ? targetDocument : document; |
| 71 eventExpected("onwebkitpointerlockchange", message, 1, targetDocument); |
| 72 eventExpected("onwebkitpointerlockerror", message, 0, targetDocument); |
| 73 }; |
| 74 |
| 75 function expectOnlyErrorEvent(message, targetDocument) { |
| 76 debug(" " + message); |
| 77 targetDocument = targetDocument !== undefined ? targetDocument : document; |
| 78 eventExpected("onwebkitpointerlockchange", message, 0, targetDocument); |
| 79 eventExpected("onwebkitpointerlockerror", message, 1, targetDocument); |
| 80 }; |
| 81 |
| 82 function expectNoEvents(message, targetDocument) { |
| 83 debug(" " + message); |
| 84 targetDocument = targetDocument !== undefined ? targetDocument : document; |
| 85 eventExpected("onwebkitpointerlockchange", message, 0, targetDocument); |
| 86 eventExpected("onwebkitpointerlockerror", message, 0, targetDocument); |
| 87 }; |
| 88 |
OLD | NEW |