<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
'use strict';

test(t => {
  let data_view = new DataView(Uint8Array.from([1, 2, 3, 4]).buffer);
  let packet_data_view = new DataView(data_view.buffer);
  let packets = [
      new USBIsochronousInTransferPacket('ok', packet_data_view),
      new USBIsochronousInTransferPacket('stall')
  ];

  let result = new USBIsochronousInTransferResult(packets, data_view);
  assert_equals(result.data.getInt32(0), 16909060);
  assert_equals(result.packets.length, 2);
  assert_equals(result.packets[0].status, 'ok');
  assert_equals(result.packets[0].data.getInt32(0), 16909060);
  assert_equals(result.packets[1].status, 'stall');
  assert_equals(result.packets[1].data, null);
}, 'Can construct a USBIsochronousInTransferResult');

test(t => {
  let packets = [
      new USBIsochronousInTransferPacket('stall'),
      new USBIsochronousInTransferPacket('stall')
  ];
  let result = new USBIsochronousInTransferResult(packets);
  assert_equals(result.data, null);
  assert_equals(result.packets.length, 2);
  assert_equals(result.packets[0].status, 'stall');
  assert_equals(result.packets[0].data, null);
  assert_equals(result.packets[1].status, 'stall');
  assert_equals(result.packets[1].data, null);
}, 'Can construct a USBIsochronousInTransferResult without a DataView');

test(t => {
  assert_throws(TypeError(), () => new USBIsochronousInTransferResult());
}, 'Cannot construct a USBIsochronousInTransferResult without packets');
</script>
