chromium/extensions/test/data/api_test/usb/device_handling/test.js

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

var usb = chrome.usb;

function getDevices() {
  usb.getDevices({
      vendorId: 0,
      productId: 0
  }, function(devices) {
    chrome.test.assertEq(1, devices.length);
    var device = devices[0];
    chrome.test.assertEq(0x0100, device.version);
    chrome.test.assertEq("Test Device", device.productName);
    chrome.test.assertEq("Test Manufacturer", device.manufacturerName);
    chrome.test.assertEq("ABC123", device.serialNumber);
    usb.openDevice(device, function(handle) {
      chrome.test.assertNoLastError();
      usb.closeDevice(handle);
      chrome.test.succeed();
    });
  });
}

function getConfigurations() {
  usb.getDevices({}, function(devices) {
    chrome.test.assertNoLastError();
    chrome.test.assertEq(1, devices.length);
    chrome.usb.getConfigurations(devices[0], function(configs) {
      chrome.test.assertNoLastError();
      chrome.test.assertEq(2, configs.length);
      chrome.test.assertTrue(configs[0].active);
      chrome.test.assertEq(1, configs[0].configurationValue);
      chrome.test.assertFalse(configs[1].active);
      chrome.test.assertEq(2, configs[1].configurationValue);
      chrome.test.succeed();
    });
  });
}

function explicitCloseDevice() {
  usb.findDevices({
      vendorId: 0,
      productId: 0
  }, function(devices) {
    usb.closeDevice(devices[0]);
    chrome.test.succeed();
  });
}

chrome.test.runTests([
    getDevices, getConfigurations, explicitCloseDevice
]);