fc63f726794bf1e00dad7d68a3512306f22d35ac
[WebKit-https.git] / LayoutTests / fast / events / touch / ios / content-observation / hover-when-style-change-is-async.html
1 <html>
2 <head>
3 <title>This test that we trigger hover when the content change is async.</title>
4 <script src="../../../../../resources/basic-gestures.js"></script>
5 <style>
6 #tapthis {
7     width: 400px;
8     height: 400px;
9     border: 1px solid green;
10 }
11
12 #hiddenFirst {
13     visibility: hidden;
14     width: 100px;
15     height: 100px;
16     background-color: green;
17 }
18 </style>
19 <script>
20 async function test() {
21     if (!window.testRunner || !testRunner.runUIScript)
22         return;
23     if (window.internals)
24         internals.settings.setContentChangeObserverEnabled(true);
25
26     testRunner.dumpAsText();
27     testRunner.waitUntilDone();
28
29     let rect = tapthis.getBoundingClientRect();
30     let x = rect.left + rect.width / 2;
31     let y = rect.top + rect.height / 2;
32
33     await tapAtPoint(x, y);
34 }
35 </script>
36 </head>
37 <body onload="test()">
38 <div id=tapthis>PASS if no 'clicked' text is shown below.</div>
39 <div id=hiddenFirst></div>
40 <pre id=result></pre>
41 <script>
42 tapthis.addEventListener("mouseover", function( event ) {
43     // 1. Install a timer on hover
44     setTimeout(function() {
45         // 2. Trigger a non-forcing style change
46         hiddenFirst.style.visibility = "visible";
47         // 3. Install a timer for style recalc
48         setTimeout(function() {
49             document.body.offsetHeight;
50             if (window.testRunner)
51                 testRunner.notifyDone();
52         }, 10);
53     }, 0);
54 }, false);
55
56 hiddenFirst.addEventListener("click", function( event ) {   
57     result.innerHTML = "clicked";
58 }, false);
59
60 tapthis.addEventListener("click", function( event ) {   
61     result.innerHTML = "clicked";
62 }, false);
63 </script>
64 </body>
65 </html>