Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / bluetooth_low_energy / characteristic_properties / runtest.js
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.
4
5 var error;
6
7 function testCharacteristicProperties() {
8   if (error !== undefined) {
9     chrome.test.sendMessage('fail');
10     chrome.test.fail(error);
11   }
12   chrome.test.assertEq(requestCount, characteristics.length);
13
14   for (var i = 0; i < requestCount; i++) {
15     compareProperties(expectedProperties[i], characteristics[i].properties);
16   }
17
18   chrome.test.succeed();
19 }
20
21 var charId = 'char_id0';
22 var requestCount = 12;
23 var characteristics = [];
24 var expectedProperties = [
25   [],
26   ['broadcast'],
27   ['read'],
28   ['writeWithoutResponse'],
29   ['write'],
30   ['notify'],
31   ['indicate'],
32   ['authenticatedSignedWrites'],
33   ['extendedProperties'],
34   ['reliableWrite'],
35   ['writableAuxiliaries'],
36   ['broadcast', 'read', 'writeWithoutResponse', 'write', 'notify', 'indicate',
37    'authenticatedSignedWrites', 'extendedProperties', 'reliableWrite',
38    'writableAuxiliaries']
39 ];
40
41 function compareProperties(a, b) {
42   chrome.test.assertEq(a.length, b.length);
43   a.sort();
44   b.sort();
45
46   for (var i = 0; i < a.length; i++) {
47     chrome.test.assertEq(a[i], b[i]);
48   }
49 }
50
51 function failOnError() {
52   if (error !== undefined)
53     return true;
54
55   if (chrome.runtime.lastError) {
56     error = 'Unexpected error: ' + chrome.runtime.lastError.message;
57     chrome.test.runTests([testCharacteristicProperties]);
58   }
59   return false;
60 }
61
62 for (var i = 0; i < requestCount; i++) {
63   chrome.bluetoothLowEnergy.getCharacteristic(charId, function (result) {
64     if (failOnError())
65       return;
66
67     characteristics.push(result);
68
69     if (characteristics.length == requestCount) {
70       chrome.test.sendMessage('ready', function (message) {
71         chrome.test.runTests([testCharacteristicProperties]);
72       });
73     }
74   });
75 }