https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 638ae889cf11d1a233720a5ef2d6bfb773c45a16 authored by jgraham on 23 February 2018, 18:35:24 UTC
Revert "Switch external_host to host_ip. (#9258)"
Tip revision: 638ae88
auxclick_event-manual.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Clicking with primary vs non-primary buttons</title>
    <link rel="help" href="https://wicg.github.io/auxclick/">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <style>
#target {
  background-color: green;
  height: 200px;
  width: 200px;
}
    </style>
  </head>
  <body>
    <h1>Clicking with primary vs non-primary buttons</h1>
    <p>Double-click on the green box with a non-primary button. When using mouse any button other than the left button is non-primary. If a "PASS" result appears, the test passes; otherwise, it fails.</p>
    <div id="target"></div>
    <script>
    var test_auxclick = async_test("auxclick event sequence received.");
    var target = document.querySelector('#target');
    document.addEventListener('contextmenu', event => { event.preventDefault(); });
    ['click', 'dblclick'].forEach(eventName => {
        target.addEventListener(eventName, () => {
            test_auxclick.step(() => {
                assert_unreached(eventName + ' event should not be dispatched for non-primary buttons.');
            });
        });
        document.addEventListener(eventName, () => {
            test_auxclick.step(() => {
                assert_unreached('document should not receive ' + eventName + ' for non-primary buttons.');
            });
        }, true);
    });
    var click_count = 0;
    var events = [];
    ['mousedown', 'mouseup'].forEach(eventName => {
        target.addEventListener(eventName, event => {
            events.push(event.type);
        });
    });
    target.addEventListener('auxclick', event => {
        events.push(event.type);
        click_count++;
        if (click_count==1) {
           test (() => {
               assert_equals(event.detail, click_count, 'detail attribute of auxclick should be the click count.');
           }, "First auxclick should have detail=1 indicating the fire click");
        } else {
           test (() => {
               assert_equals(event.detail, click_count, 'detail attribute of auxclick should be the click count.');
           }, "Second auxclick should have detail=2 indicating the fire click");
            test_auxclick.step(() => {
                assert_array_equals(events, ['mousedown', 'mouseup', 'auxclick', 'mousedown', 'mouseup', 'auxclick'],
                    'There should be two auxclick events for a non-primary button double click each preceded by one mousemove and one mouseup');
                assert_equals(event.detail, click_count, 'detail attribute of auxclick should be the click count.');
            });
            test_auxclick.done();
        }
    });
    </script>
  </body>
</html>
back to top