summaryrefslogtreecommitdiffstats
path: root/extensions/test/data/api_test/printer_provider/usb_printers/test.js
blob: 8df1ed1135ad9134792d9887b994ff03ddeb2bae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

chrome.test.sendMessage('loaded', function(test) {
  chrome.test.runTests([function printTest() {
    if (test == 'NO_LISTENER') {
      chrome.test.sendMessage('ready');
      chrome.test.succeed();
      return;
    }

    chrome.printerProvider.onGetUsbPrinterInfoRequested.addListener(
        function(device, callback) {
          chrome.test.assertFalse(!!chrome.printerProviderInternal);
          chrome.test.assertTrue(!!callback);

          if (test == 'EMPTY_RESPONSE') {
            callback();
          } else {
            callback({
              'id': 'usbDevice-' + device.device,
              'name': 'Test Printer',
              'description': 'This printer is a USB device.',
            });
          }

          chrome.test.assertThrows(
              callback,
              [],
              'Event callback must not be called more than once.');

          chrome.test.succeed();
        });

    chrome.test.sendMessage('ready');
  }]);
});