| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| <style> |
| #target { |
| height: 200px; |
| width: 220px; |
| border: 5px solid blue; |
| } |
| </style> |
| </head> |
| <body onload="runTest()"> |
| <p id="description"></p> |
| <div contenteditable=true id="target"></div> |
| <div><img id="source" src="resources/apple.gif" alt="alt-text" itemprop="somedata" arbitrary="green"></div> |
| <div id="console"></div> |
| |
| <script> |
| description('This test verify dragging an image in the page keeps its attributes. To test manually, drag the image and drop it in the rect with a blue border.'); |
| var jsTestIsAsync = true; |
| var target = document.getElementById('target'); |
| |
| function contentInserted() { |
| shouldBe('target.getElementsByTagName("img").length', '1'); |
| shouldBe('target.getElementsByTagName("img")[0].attributes.length', '5'); |
| shouldBeEqualToString('target.getElementsByTagName("img")[0].id', 'source'); |
| shouldBeEqualToString('target.getElementsByTagName("img")[0].alt', 'alt-text'); |
| shouldBeEqualToString('target.getElementsByTagName("img")[0].attributes["itemprop"].value', 'somedata'); |
| shouldBeEqualToString('target.getElementsByTagName("img")[0].attributes["arbitrary"].value', 'green'); |
| |
| finishJSTest(); |
| } |
| |
| function runTest() { |
| target.addEventListener('DOMNodeInserted', contentInserted, false); |
| if (!window.testRunner) |
| return; |
| |
| e = document.getElementById("source"); |
| x = e.offsetLeft + e.offsetWidth / 2; |
| y = e.offsetTop + e.offsetHeight / 2; |
| |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| eventSender.leapForward(100); |
| e = document.getElementById("target"); |
| x = e.offsetLeft + e.offsetWidth / 2; |
| y = e.offsetTop + e.offsetHeight / 2; |
| |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseUp(); |
| } |
| </script> |
| </body> |
| </html> |