tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>