| <!DOCTYPE html> |
| <script src='../../../resources/testharness.js'></script> |
| <script src='../../../resources/testharnessreport.js'></script> |
| <p>Selected Text</p> |
| <label> |
| <img src="../resources/green.jpg" width=100 height=100> |
| <br><input type=radio> Then click the image |
| </label> |
| <script> |
| var radio = document.querySelector("input[type=radio]"); |
| var targetTextRect = document.querySelector("p").getBoundingClientRect(); |
| var textLeft = targetTextRect.left; |
| var textTop = targetTextRect.top; |
| var textWidth = targetTextRect.width; |
| var targetImageRect = document.querySelector("img").getBoundingClientRect(); |
| var imageLeft = targetImageRect.left; |
| var imageTop = targetImageRect.top; |
| |
| var testLabelClickWithSelectedText = async_test("Tests that Radio Input gets checked if label clicked along with a text selection."); |
| |
| // This test runs as follows: |
| // 1. Select the text. |
| // 2. Then click on label element image. |
| // 3. Radio button should be checked. |
| |
| testLabelClickWithSelectedText.step(() => { |
| assert_own_property(window, "chrome"); |
| assert_own_property(chrome, "gpuBenchmarking"); |
| |
| var pointerActions = |
| [{ source: "mouse", |
| actions: [ |
| { name: "pointerDown", x: textLeft, y: textTop }, |
| { name: "pointerMove", x: textLeft + textWidth, y: textTop }, |
| { name: "pointerUp" }, |
| { name: "pause" }, |
| { name: "pointerDown", x: imageLeft, y: imageTop }, |
| { name: "pointerUp" }]}]; |
| chrome.gpuBenchmarking.pointerActionSequence(pointerActions, testLabelClickWithSelectedText.step_func_done(() => { |
| assert_equals(window.getSelection().toString(), "Selected Text"); |
| assert_true(radio.checked); |
| })); |
| }); |
| </script> |