006-manual.html (2819B)
1 <!doctype html> 2 <html> 3 <head> 4 <title>Synthetic events using real dataTransfer in new thread</title> 5 <style type="text/css"> 6 blockquote { height: 100px; width: 100px; background: orange; margin: 0; padding: 0; float: left; } 7 blockquote + blockquote { background: blue; } 8 blockquote + blockquote + blockquote { background: fuchsia; } 9 blockquote + div { clear: left; } 10 </style> 11 <script type="text/javascript" src="/resources/testharness.js"></script> 12 <script type="text/javascript" src="/resources/testharnessreport.js"></script> 13 <script type="text/javascript"> 14 setup(function () {},{explicit_done:true,explicit_timeout:true}); 15 window.onload = function () { 16 17 var orange = document.getElementsByTagName('blockquote')[0], 18 blue = document.getElementsByTagName('blockquote')[1], 19 fuchsia = document.getElementsByTagName('blockquote')[2], 20 evtdone = {}; 21 22 orange.ondragstart = function (e) { 23 e.dataTransfer.effectAllowed = 'copy'; 24 e.dataTransfer.setData('text','dragstart real data'); 25 var dataTransfer = e.dataTransfer; 26 setTimeout(function () { 27 var t = async_test('new thread should see data store in protected mode after dragstart'); 28 blue.ondragstart = function (e) { 29 t.step(function() { 30 assert_equals( e.dataTransfer.getData('text'), '', 'step 1' ); 31 e.dataTransfer.setData('text','new thread after dragstart'); 32 assert_equals( e.dataTransfer.getData('text'), '', 'step 2' ); 33 }); 34 }; 35 t.step(function() { 36 var evt = new DragEvent('dragstart', {dataTransfer:dataTransfer}); 37 blue.dispatchEvent(evt); 38 }); 39 t.done(); 40 },0); 41 }; 42 43 fuchsia.ondragenter = fuchsia.ondragover = function (e) { 44 e.preventDefault(); 45 }; 46 47 fuchsia.ondrop = function (e) { 48 e.preventDefault(); 49 var dataTransfer = e.dataTransfer; 50 setTimeout(function () { 51 var t = async_test('new thread should see data store in protected mode after drop'); 52 blue.ondragstart = function (e) { 53 t.step(function() { 54 assert_equals( e.dataTransfer.getData('text'), '', 'step 1' ); 55 e.dataTransfer.setData('text','new thread after dragstart'); 56 assert_equals( e.dataTransfer.getData('text'), '', 'step 2' ); 57 }); 58 }; 59 t.step(function() { 60 var evt = new DragEvent('dragstart', {dataTransfer:dataTransfer}); 61 blue.dispatchEvent(evt); 62 }); 63 t.done(); 64 done(); 65 },0); 66 }; 67 68 }; 69 </script> 70 </head> 71 <body> 72 <p>Drag the orange square over the blue square then the fuchsia square, then release it.</p> 73 <blockquote draggable="true"></blockquote> 74 <blockquote></blockquote> 75 <blockquote></blockquote> 76 <div id="log"></div> 77 <noscript><p>Enable JavaScript and reload</p></noscript> 78 </body> 79 </html>