| <body> | |
| <script src="../resources/magnitude-perf.js"></script> | |
| <style> | |
| .outer { | |
| position: relative; | |
| margin: 0.25px; | |
| padding: 0.25px; | |
| } | |
| .inner { | |
| width: 100px; | |
| height: 100px; | |
| background: red; | |
| } | |
| </style> | |
| <div id="test"></div> | |
| <script> | |
| var innerElement, reportedPosition; | |
| var testElement = document.getElementById('test'); | |
| function setupFunction(magnitude) | |
| { | |
| testElement.innerHTML = ''; | |
| var element, parent = testElement; | |
| for (var i = 0; i < magnitude; i++) { | |
| element = document.createElement('div'); | |
| element.className = 'outer'; | |
| parent.appendChild(element); | |
| parent = element; | |
| } | |
| element = document.createElement('div'); | |
| element.className = 'inner'; | |
| parent.appendChild(element); | |
| element.onmouseover = function(e) { | |
| reportedPosition = e.offsetX + ', ' + e.offsetY; | |
| }; | |
| innerElement = element; | |
| } | |
| function test(magnitude) | |
| { | |
| if (window.eventSender) { | |
| var rect = innerElement.getBoundingClientRect(); | |
| eventSender.mouseMoveTo(0, 0); | |
| eventSender.mouseMoveTo(rect.left, rect.top); | |
| eventSender.mouseMoveTo(0, 0); | |
| } | |
| } | |
| Magnitude.description("Tests that mouse event dispatch is linear with respect to the number of parent elements."); | |
| Magnitude.run(setupFunction, test, Magnitude.LINEAR); | |
| </script> | |
| </body> |