<!DOCTYPE html>
<html>
<head>
    <script src="../../resources/js-test.js"></script>
    <script>
        window.jsTestIsAsync = true;

        document.addEventListener('DOMContentLoaded', function () {
            document.querySelector('#inner3').addEventListener('mouseenter', function () {
                document.write("Please don't crash under ASAN.");
                document.close();
            });

            if (window.testRunner) {
                eventSender.mouseMoveTo(1, 1);
                debug("// Entering #inner3 (and therefore also #inner2)");
                eventSender.mouseMoveTo(170,140);
            }

            setTimeout(finishJSTest, 0);
        });

    </script>

    <style>
        #outer {
            background: blue;
            height: 100px;
            left: 100px;
            position: absolute;
            top: 100px;
            width: 100px;
        }

        #inner1 {
            background: red;
            height: 50px;
            left: 20px;
            position: absolute;
            top: 20px;
            width: 50px;
        }

        #inner2 {
            background: yellow;
            height: 20px;
            left: 60px;
            position: absolute;
            top: 30px;
            width: 20px;
        }

        #inner3 {
            background-color: green;
            height: 10px;
            margin: 5px;
            width: 10px;
        }
    </style>
</head>
<body>
    <div id="outer">
        <div id="inner1"></div>
        <div id="inner2">
            <div id="inner3"></div>
        </div>
    </div>
</body>
</html>
