tor-browser

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

imperative-invokers.html (2314B)


      1 <!DOCTYPE html>
      2 <link rel=author href="mailto:masonf@chromium.org">
      3 <link rel=help href="https://github.com/whatwg/html/pull/9144#issuecomment-2195095228">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 
      7 <div id=unrelated></div>
      8 <div id=popover popover=auto>
      9  <div id=contained></div>
     10  popover 1
     11 </div>
     12 <div id=popover2 popover=auto style="top:50px">
     13  popover 2
     14 </div>
     15 
     16 <script>
     17 function testOneCase(shouldBeIndependent,popover2Opener,msg) {
     18  test((t) => {
     19    assert_false(popover.matches(':popover-open'),'starting state');
     20    assert_false(popover2.matches(':popover-open'),'starting state');
     21    t.add_cleanup(() => {popover.hidePopover();popover2.hidePopover()});
     22    popover.showPopover();
     23    assert_true(popover.matches(':popover-open'));
     24    popover2Opener();
     25    assert_true(popover2.matches(':popover-open'),'opener should open popover2');
     26    if (shouldBeIndependent) {
     27      assert_false(popover.matches(':popover-open'),'popovers should not be related');
     28    } else {
     29      assert_true(popover.matches(':popover-open'),'popovers should be related to each other');
     30    }
     31  },msg);
     32 }
     33 
     34 testOneCase(true,() => popover2.showPopover(),'normal opening');
     35 testOneCase(true,() => popover2.showPopover({source: unrelated}),'showPopover(unrelated)');
     36 testOneCase(false,() => popover2.showPopover({source: popover}),'showPopover(popover)');
     37 testOneCase(false,() => popover2.showPopover({source: contained}),'showPopover(contained)');
     38 
     39 testOneCase(true,() => popover2.togglePopover(true),'togglePopover(true)');
     40 testOneCase(true,() => popover2.togglePopover({force:true}),'togglePopover({force})');
     41 testOneCase(true,() => popover2.togglePopover({source:unrelated}),'togglePopover(unrelated)');
     42 testOneCase(false,() => popover2.togglePopover({source: popover}),'togglePopover(popover)');
     43 testOneCase(false,() => popover2.togglePopover({force:true, source: popover}),'togglePopover({force, popover})');
     44 
     45 test(() => {
     46  assert_false(popover.matches(':popover-open'));
     47  assert_throws_js(TypeError,() => popover2.showPopover({source: null}),'showPopover(null)');
     48  assert_throws_js(TypeError,() => popover2.togglePopover({source:null}),'togglePopover(null)');
     49  assert_false(popover.matches(':popover-open'));
     50 },'null isn\'t a valid Element');
     51 </script>