<!doctype html>
<title>Properties of SpeechSynthesisEvent</title>
<link rel="help" href="https://wicg.github.io/speech-api/#utterance-events">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<body>
<script>
// Written for https://github.com/WICG/speech-api/issues/103
promise_test(async (t) => {
  const utterance = new SpeechSynthesisUtterance('test');
  const eventWatcher = new EventWatcher(t, utterance, ['start', 'end', 'error']);
  await test_driver.bless('speechSynthesis.speak',
      () => { speechSynthesis.speak(utterance) });
  const events = await eventWatcher.wait_for(['start', 'end'], { record: 'all' });
  assert_equals(events.length, 2, 'number of events');
  for (const event of events) {
    assert_true(event instanceof SpeechSynthesisEvent, 'is SpeechSynthesisEvent');
    assert_false(event.bubbles, 'bubbles');
    assert_false(event.cancelable, 'cancelable');
    assert_equals(event.utterance, utterance, 'utterance');
  }
});
</script>
