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