<!DOCTYPE html>
<link rel="help" href="https://wicg.github.io/shape-detection-api/#dom-barcodedetector-getsupportedformats">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/shapedetection-helpers.js"></script>
<script>

detection_test('BarcodeDetectionTest', async t => {
  const result = await BarcodeDetector.getSupportedFormats();
  assert_equals(result.length, 3, 'Number of supported formats');
  assert_equals(result[0], 'aztec', 'format 1');
  assert_equals(result[1], 'data_matrix', 'format 2');
  assert_equals(result[2], 'qr_code', 'format 3');
}, 'get supported barcode formats');

detection_test('BarcodeDetectionTest', async (t, detectionTest) => {
  // Disable built-in support for barcode detection to test fallback handling.
  detectionTest.MockBarcodeDetectionProvider().simulateNoImplementation();

  const result = await BarcodeDetector.getSupportedFormats();
  assert_equals(result.length, 0, 'result.length');

}, 'getSupportedFormats() resolves with empty list when unsupported');

</script>
