tor-browser

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

101-manual.html (4806B)


      1 <!doctype html>
      2 <html>
      3  <head>
      4    <title>.origin for all 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/crossorigin.sub.js"></script>
     12    <script type="text/javascript" src="/resources/testharness.js"></script>
     13    <script type="text/javascript" src="/resources/testharnessreport.js"></script>
     14    <script type="text/javascript">
     15 setup(function () {},{explicit_done:true});
     16 window.onload = function () {
     17  var origin = 'http://'+httpHostMain;
     18  if( location.href.indexOf(origin+'/') ) {
     19    done();
     20    document.body.innerHTML = 'This must be tested on '+origin+'/';
     21    return;
     22  }
     23  var orange  = document.getElementsByTagName('blockquote')[0],
     24      blue    = document.getElementsByTagName('blockquote')[1],
     25      fuchsia = document.getElementsByTagName('blockquote')[2],
     26      evtdone = {};
     27  orange.ondragstart = function (e) {
     28    e.dataTransfer.effectAllowed = 'copy';
     29    e.dataTransfer.setData('text','dummy text');
     30    if( evtdone[e.type] ) { return; }
     31    evtdone[e.type] = true;
     32    test(function() {
     33      assert_equals( e.dataTransfer.origin, origin );
     34    }, '.origin should exist in '+e.type );
     35    test(function () {
     36      //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter
     37      //ES5 makes [[Put]] fail but not throw
     38      var failed = false, oldorigin = e.dataTransfer.origin;
     39      try {
     40        e.dataTransfer.origin = 'http://example.com';
     41      } catch(e) {
     42        failed = e;
     43      }
     44      assert_equals(e.dataTransfer.origin,oldorigin);
     45      assert_false(failed,'an error was thrown');
     46    }, '.origin must be read-only in '+e.type);
     47  };
     48  blue.ondragenter = blue.ondragover = function (e) {
     49    e.preventDefault();
     50  };
     51  orange.ondrag = blue.ondragleave = function (e) {
     52    if( evtdone[e.type] ) { return; }
     53    evtdone[e.type] = true;
     54    test(function() {
     55      assert_equals( e.dataTransfer.origin, origin );
     56    }, '.origin should exist in '+e.type );
     57    test(function () {
     58      var failed = false, oldorigin = e.dataTransfer.origin;
     59      try {
     60        e.dataTransfer.origin = 'http://example.com';
     61      } catch(e) {
     62        failed = e;
     63      }
     64      assert_equals(e.dataTransfer.origin,oldorigin);
     65      assert_false(failed,'an error was thrown');
     66    }, '.origin must be read-only in '+e.type);
     67  };
     68  fuchsia.ondragenter = fuchsia.ondragover = fuchsia.ondrop = function (e) {
     69    e.preventDefault();
     70    if( evtdone[e.type] ) { return; }
     71    evtdone[e.type] = true;
     72    test(function() {
     73      assert_equals( e.dataTransfer.origin, origin );
     74    }, '.origin should exist in '+e.type );
     75    test(function () {
     76      var failed = false, oldorigin = e.dataTransfer.origin;
     77      try {
     78        e.dataTransfer.origin = 'http://example.com';
     79      } catch(e) {
     80        failed = e;
     81      }
     82      assert_equals(e.dataTransfer.origin,oldorigin);
     83      assert_false(failed,'an error was thrown');
     84    }, '.origin must be read-only in '+e.type);
     85  };
     86  orange.ondragend = function (e) {
     87    if( evtdone[e.type] ) { return; }
     88    evtdone[e.type] = true;
     89    test(function() {
     90      assert_equals( e.dataTransfer.origin, origin );
     91    }, '.origin should exist in '+e.type );
     92    test(function () {
     93      var failed = false, oldorigin = e.dataTransfer.origin;
     94      try {
     95        e.dataTransfer.origin = 'http://example.com';
     96      } catch(e) {
     97        failed = e;
     98      }
     99      assert_equals(e.dataTransfer.origin,oldorigin);
    100      assert_false(failed,'an error was thrown');
    101    }, '.origin must be read-only in '+e.type);
    102    test(function() {
    103      var failtxt = '- Reload and try again';
    104      assert_true( evtdone.dragstart, 'dragstart event was not tested'+failtxt );
    105      assert_true( evtdone.drag, 'drag event was not tested'+failtxt );
    106      assert_true( evtdone.dragenter, 'dragenter event was not tested'+failtxt );
    107      assert_true( evtdone.dragleave, 'dragleave event was not tested'+failtxt );
    108      assert_true( evtdone.dragover, 'dragover event was not tested'+failtxt );
    109      assert_true( evtdone.drop, 'drop event was not tested'+failtxt );
    110      assert_true( evtdone.dragend, 'dragend event was not tested'+failtxt );
    111    }, 'all event types must now have been tested' );
    112    done();
    113  };
    114 };
    115    </script>
    116  </head>
    117  <body>
    118    <blockquote draggable="true"></blockquote>
    119    <blockquote></blockquote>
    120    <blockquote></blockquote>
    121    <div id="log">Drag the orange square over the blue square then the fuchsia square, then release it.</div>
    122    <noscript><p>Enable JavaScript and reload</p></noscript>
    123  </body>
    124 </html>