| <!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><object id="source" data="resources/apple.gif" type="image/png" itemprop="somedata" arbitrary="green" draggable=true></object></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("object").length', '1'); |
| shouldBe('target.getElementsByTagName("object")[0].attributes.length', '6'); |
| shouldBeEqualToString('target.getElementsByTagName("object")[0].id', 'source'); |
| shouldBeEqualToString('target.getElementsByTagName("object")[0].type', 'image/png'); |
| shouldBeTrue('target.getElementsByTagName("object")[0].draggable'); |
| shouldBeEqualToString('target.getElementsByTagName("object")[0].attributes["itemprop"].value', 'somedata'); |
| shouldBeEqualToString('target.getElementsByTagName("object")[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> |