002-manual.html (3763B)
1 <!doctype html> 2 <html> 3 <head> 4 <title>allowTargetOrigin events</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}); 15 window.onload = function () { 16 var orange = document.getElementsByTagName('blockquote')[0], 17 blue = document.getElementsByTagName('blockquote')[1], 18 fuchsia = document.getElementsByTagName('blockquote')[2], 19 evtdone = {}; 20 orange.ondragstart = function (e) { 21 e.dataTransfer.effectAllowed = 'copy'; 22 e.dataTransfer.setData('text','dummy text'); 23 if( evtdone[e.type] ) { return; } 24 evtdone[e.type] = true; 25 test(function() { 26 assert_true( !!e.dataTransfer.allowTargetOrigin ); 27 }, 'allowTargetOrigin should exist in '+e.type ); 28 test(function() { 29 e.dataTransfer.allowTargetOrigin('*'); 30 }, 'allowTargetOrigin should work in '+e.type ); 31 }; 32 blue.ondragenter = blue.ondragover = function (e) { 33 e.preventDefault(); 34 }; 35 orange.ondrag = blue.ondragleave = function (e) { 36 if( evtdone[e.type] ) { return; } 37 evtdone[e.type] = true; 38 test(function() { 39 assert_true( !!e.dataTransfer.allowTargetOrigin ); 40 }, 'allowTargetOrigin should exist in '+e.type ); 41 test(function() { 42 assert_throws_dom( 'SECURITY_ERR', function () { e.dataTransfer.allowTargetOrigin('*'); } ); 43 }, 'allowTargetOrigin should throw a SECURITY_ERR in '+e.type ); 44 }; 45 fuchsia.ondragenter = fuchsia.ondragover = fuchsia.ondrop = function (e) { 46 e.preventDefault(); 47 if( evtdone[e.type] ) { return; } 48 evtdone[e.type] = true; 49 test(function() { 50 assert_true( !!e.dataTransfer.allowTargetOrigin ); 51 }, 'allowTargetOrigin should exist in '+e.type ); 52 test(function() { 53 assert_throws_dom( 'SECURITY_ERR', function () { e.dataTransfer.allowTargetOrigin('*'); } ); 54 }, 'allowTargetOrigin should throw a SECURITY_ERR in '+e.type ); 55 }; 56 orange.ondragend = function (e) { 57 if( evtdone[e.type] ) { return; } 58 evtdone[e.type] = true; 59 test(function() { 60 assert_true( !!e.dataTransfer.allowTargetOrigin ); 61 }, 'allowTargetOrigin should exist in '+e.type ); 62 test(function() { 63 assert_throws_dom( 'SECURITY_ERR', function () { e.dataTransfer.allowTargetOrigin('*'); } ); 64 }, 'allowTargetOrigin should throw a SECURITY_ERR in '+e.type ); 65 test(function() { 66 var failtxt = '- Reload and try again'; 67 assert_true( evtdone.dragstart, 'dragstart event was not tested'+failtxt ); 68 assert_true( evtdone.drag, 'drag event was not tested'+failtxt ); 69 assert_true( evtdone.dragenter, 'dragenter event was not tested'+failtxt ); 70 assert_true( evtdone.dragleave, 'dragleave event was not tested'+failtxt ); 71 assert_true( evtdone.dragover, 'dragover event was not tested'+failtxt ); 72 assert_true( evtdone.drop, 'drop event was not tested'+failtxt ); 73 assert_true( evtdone.dragend, 'dragend event was not tested'+failtxt ); 74 }, 'all event types must now have been tested' ); 75 done(); 76 }; 77 }; 78 </script> 79 </head> 80 <body> 81 <blockquote draggable="true"></blockquote> 82 <blockquote></blockquote> 83 <blockquote></blockquote> 84 <div id="log">Drag the orange square over the blue square then the fuchsia square, then release it.</div> 85 <noscript><p>Enable JavaScript and reload</p></noscript> 86 </body> 87 </html>