<!doctype html>
<title>Test creation of MediaStreamTrackGenerator in a worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
'use strict';

function initWorker(){
  const worker = new Worker('dedicated-worker.js');
  const result = new Promise((resolve, reject) => {
    worker.onmessage = (e) => {
      if (e.data.result === 'Failure') {
        reject('Failed with error ' + e.data.error);
      } else {
        resolve();
      }
    };
  });
  return [worker,result];
}

promise_test(async t => {
  const [worker,result] = initWorker();
  worker.postMessage({msg: 'Hello there'});
  return result;
}, 'A worker is able to initialize a MediaStreamTrackGenerator without crashing');

promise_test(async t => {
  const [worker,result] = initWorker();
  worker.postMessage({enable: true});
  return result;
}, 'A worker is able to enable a MediaStreamTrackGenerator without crashing');

promise_test(async t => {
  const [worker,result] = initWorker();
  worker.postMessage({enable: false});
  return result;
}, 'A worker is able to disable a MediaStreamTrackGenerator without crashing');
</script>
