<!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>