1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 function testCharacteristicProperties() {
8 if (error !== undefined) {
9 chrome.test.sendMessage('fail');
10 chrome.test.fail(error);
12 chrome.test.assertEq(requestCount, characteristics.length);
14 for (var i = 0; i < requestCount; i++) {
15 compareProperties(expectedProperties[i], characteristics[i].properties);
18 chrome.test.succeed();
21 var charId = 'char_id0';
22 var requestCount = 12;
23 var characteristics = [];
24 var expectedProperties = [
28 ['writeWithoutResponse'],
32 ['authenticatedSignedWrites'],
33 ['extendedProperties'],
35 ['writableAuxiliaries'],
36 ['broadcast', 'read', 'writeWithoutResponse', 'write', 'notify', 'indicate',
37 'authenticatedSignedWrites', 'extendedProperties', 'reliableWrite',
38 'writableAuxiliaries']
41 function compareProperties(a, b) {
42 chrome.test.assertEq(a.length, b.length);
46 for (var i = 0; i < a.length; i++) {
47 chrome.test.assertEq(a[i], b[i]);
51 function failOnError() {
52 if (error !== undefined)
55 if (chrome.runtime.lastError) {
56 error = 'Unexpected error: ' + chrome.runtime.lastError.message;
57 chrome.test.runTests([testCharacteristicProperties]);
62 for (var i = 0; i < requestCount; i++) {
63 chrome.bluetoothLowEnergy.getCharacteristic(charId, function (result) {
67 characteristics.push(result);
69 if (characteristics.length == requestCount) {
70 chrome.test.sendMessage('ready', function (message) {
71 chrome.test.runTests([testCharacteristicProperties]);