blob: 729f3cc5ada571178287a4482de46ef0d1d1ab4e [file] [edit]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../../resources/ui-helper.js"></script>
<meta name=viewport content="width=device-width, initial-scale=1">
<style>
body, html {
width: 100%;
height: 100%;
margin: 0;
}
h1 {
font-size: 40px;
}
#target {
border: solid tomato 1px;
padding: 2px;
}
iframe {
width: 300px;
height: 100px;
}
</style>
<script>
jsTestIsAsync = true;
subFrameLoaded = true;
description("This test verifies that subframe navigation does not dismiss the edit menu. This test requires WebKitTestRunner.");
addEventListener("load", async () => {
const subframe = document.querySelector("iframe");
subframe.addEventListener("load", () => { subFrameLoaded = true; });
subframe.srcdoc = "<p>subframe before reload</p>";
await shouldBecomeEqual("subFrameLoaded", "true");
if (!window.testRunner)
return;
const target = document.getElementById("target");
await UIHelper.activateElementAndWaitForInputSession(target);
document.execCommand("SelectAll", true);
testPassed("Selected text");
await UIHelper.activateElement(target);
await UIHelper.waitForMenuToShow();
subframe.srcdoc = `<p>subframe after reloading</p>`;
await UIHelper.delayFor(800);
if (await UIHelper.isShowingMenu())
testPassed("Menu is still showing");
else
testFailed("Menu is no longer showing");
finishJSTest();
});
</script>
</head>
<body>
<h1 contenteditable><span id="target">Select</span> me</h1>
<div><iframe></iframe></div>
<div id="description"></div>
<div id="console"></div>
</body>
</html>