| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <script src="../../../../resources/basic-gestures.js"></script> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| async function runTest() |
| { |
| if (!testRunner.runUIScript) |
| return; |
| |
| var output = ''; |
| var firstTargetRect = document.getElementById('firstSelection').getBoundingClientRect(); |
| var secondTargetRect = document.getElementById('secondSelection').getBoundingClientRect(); |
| var thirdTargetRect = document.getElementById('thirdSelection').getBoundingClientRect(); |
| |
| var pressPointX = firstTargetRect.x + firstTargetRect.width / 2; |
| var pressPointY = firstTargetRect.y + firstTargetRect.height / 2; |
| var dragY = firstTargetRect.y + firstTargetRect.height; |
| var dragX = firstTargetRect.x + firstTargetRect.width; |
| var dragY2 = secondTargetRect.y + secondTargetRect.height; |
| var dragY3 = thirdTargetRect.y + thirdTargetRect.height; |
| var dragY4 = firstTargetRect.y - firstTargetRect.height; |
| |
| await longPressAtPoint(pressPointX,pressPointY); |
| if (document.getSelection().toString() == "sed") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to select a word as a result of a long press. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| |
| await touchAndDragFromPointToPoint(dragX, dragY, dragX, dragY2); |
| if (document.getSelection().toString() == "sed do eiusmod tempor incididun") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to select additional line after a drag. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| |
| await touchAndDragFromPointToPoint(dragX, dragY2, dragX, dragY3); |
| if (document.getSelection().toString() == "sed do eiusmod tempor incididunt ut labore et dolore ma") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to select additional line after a drag. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| |
| await touchAndDragFromPointToPoint(dragX, dragY3, dragX, dragY2); |
| if (document.getSelection().toString() == "sed do eiusmod tempor incididun") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to deselect line after a drag. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| |
| await touchAndDragFromPointToPoint(dragX, dragY2, dragX, dragY); |
| if (document.getSelection().toString() == "sed") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to deselect line after a drag. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| |
| var result = await touchAndDragFromPointToPoint(dragX, dragY, dragX, dragY4); |
| if (document.getSelection().toString() == "sed") |
| output += 'PASS: Correct Selection'; |
| else |
| output += 'FAIL: failed to reduce selection to a single character by dragging up. Incorrect Selection: ' + document.getSelection().toString(); |
| output += '<br>'; |
| output += result; |
| document.getElementById('target').innerHTML = output; |
| testRunner.notifyDone(); |
| } |
| |
| window.addEventListener('load', runTest, false); |
| </script> |
| <style> |
| #target { |
| height: 400px; |
| width: 300px; |
| background-color: silver; |
| font-family: monospace; |
| font-size: 18px; |
| } |
| </style> |
| <meta name="viewport" content="initial-scale=1"> |
| </head> |
| <body> |
| <div id="target"> |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, <span id="firstSelection">sed</span> do eiusmod tempor incididun<span id="secondSelection"></span>t ut labore et dolore mag<span id="thirdSelection"></span>na aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> |
| |
| This test requires UIScriptController to run. |
| </div> |
| </body> |
| </html> |