// META: global=window,dedicatedworker
// META: script=/webcodecs/utils.js

function testSharedArrayBufferEncodedAudioChunk(useView) {
  let data = new SharedArrayBuffer(3);
  let view = new Uint8Array(data);
  view[0] = 0x0A;
  view[1] = 0x0B;
  view[2] = 0x0C;

  let chunk = new EncodedAudioChunk(
      {type: 'key', timestamp: 10, duration: 123, data: useView ? view : data});
  assert_equals(chunk.byteLength, 3, 'byteLength');

  let copyDest = new SharedArrayBuffer(3);
  let destView = new Uint8Array(copyDest);
  chunk.copyTo(useView ? destView : copyDest);
  assert_equals(destView[0], 0x0A, 'copyDest[0]');
  assert_equals(destView[1], 0x0B, 'copyDest[1]');
  assert_equals(destView[2], 0x0C, 'copyDest[2]');
}

test(t => {
  testSharedArrayBufferEncodedAudioChunk(/*useView=*/ false);
}, 'Test construction and copyTo() using a SharedArrayBuffer');

test(t => {
  testSharedArrayBufferEncodedAudioChunk(/*useView=*/ true);
}, 'Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)');
