<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<svg><a id="a" href="#1"></a></svg>
<script>
async_test(t => {
  navigation.onnavigate = t.step_func(e => {
    assert_equals(e.navigationType, "push");
    assert_true(e.cancelable);
    assert_true(e.canIntercept);
    assert_false(e.userInitiated);
    assert_true(e.hashChange);
    assert_equals(e.downloadRequest, null);
    assert_equals(e.formData, null);
    assert_equals(new URL(e.destination.url).hash, "#1");
    assert_true(e.destination.sameDocument);
    assert_equals(e.destination.key, "");
    assert_equals(e.destination.id, "");
    assert_equals(e.destination.index, -1);
    assert_equals(e.sourceElement, document.getElementById("a"));
    e.preventDefault();
    t.step_timeout(t.step_func_done(() => assert_equals(location.hash, "")), 0);
  });
  document.getElementById("a").dispatchEvent(new MouseEvent('click'));
}, "<svg:a> click fires navigate event");
</script>
