OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
3 <script src="../resources/testharness-helpers.js"></script> | |
4 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
5 <script src="resources/bluetooth-helpers.js"></script> | 4 <script src="resources/bluetooth-helpers.js"></script> |
6 <script> | 5 <script> |
7 'use strict' | 6 'use strict' |
8 | 7 |
9 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, | 8 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, |
10 'window.testRunner is required for the following tests.'); | 9 'window.testRunner is required for the following tests.'); |
11 | 10 |
12 sequential_promise_test(() => { | 11 promise_test(() => { |
13 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); | 12 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); |
14 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) | 13 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) |
15 .then(device => device.connectGATT()) | 14 .then(device => device.connectGATT()) |
16 .then(gattServer => { | 15 .then(gattServer => { |
17 testRunner.setBluetoothMockDataSet('EmptyAdapter'); | 16 testRunner.setBluetoothMockDataSet('EmptyAdapter'); |
18 return assert_promise_rejects_with_message( | 17 return assert_promise_rejects_with_message( |
19 gattServer.getPrimaryService('generic_access'), { | 18 gattServer.getPrimaryService('generic_access'), { |
20 name: 'NetworkError', | 19 name: 'NetworkError', |
21 message: 'Bluetooth Device is no longer in range.' | 20 message: 'Bluetooth Device is no longer in range.' |
22 }, 'Device went out of range.'); | 21 }, 'Device went out of range.'); |
23 }); | 22 }); |
24 }, 'Device goes out of range. Reject with NetworkError.'); | 23 }, 'Device goes out of range. Reject with NetworkError.'); |
25 | 24 |
26 sequential_promise_test(function() { | 25 promise_test(function() { |
27 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); | 26 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); |
28 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) | 27 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) |
29 .then(device => device.connectGATT()) | 28 .then(device => device.connectGATT()) |
30 .then(gattServer => Promise.all( | 29 .then(gattServer => Promise.all( |
31 [gattServer.getPrimaryService(heart_rate.alias), | 30 [gattServer.getPrimaryService(heart_rate.alias), |
32 gattServer.getPrimaryService(heart_rate.name), | 31 gattServer.getPrimaryService(heart_rate.name), |
33 gattServer.getPrimaryService(heart_rate.uuid)])) | 32 gattServer.getPrimaryService(heart_rate.uuid)])) |
34 .then(services => { | 33 .then(services => { |
35 services.forEach(service => { | 34 services.forEach(service => { |
36 assert_equals(service, null, | 35 assert_equals(service, null, |
37 'Non existent services should return null.'); | 36 'Non existent services should return null.'); |
38 }); | 37 }); |
39 }); | 38 }); |
40 }, 'Request for wrong service. Should return null.'); | 39 }, 'Request for wrong service. Should return null.'); |
41 | 40 |
42 sequential_promise_test(function() { | 41 promise_test(function() { |
43 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); | 42 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); |
44 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) | 43 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) |
45 .then(device => device.connectGATT()) | 44 .then(device => device.connectGATT()) |
46 .then(gattServer => Promise.all( | 45 .then(gattServer => Promise.all( |
47 [gattServer.getPrimaryService(generic_access.alias), | 46 [gattServer.getPrimaryService(generic_access.alias), |
48 gattServer.getPrimaryService(generic_access.name), | 47 gattServer.getPrimaryService(generic_access.name), |
49 gattServer.getPrimaryService(generic_access.uuid)])) | 48 gattServer.getPrimaryService(generic_access.uuid)])) |
50 .then(services => { | 49 .then(services => { |
51 services.forEach(service => { | 50 services.forEach(service => { |
52 assert_equals(service.uuid, generic_access.uuid, | 51 assert_equals(service.uuid, generic_access.uuid, |
53 'Service UUID should be the same as requested UUID.'); | 52 'Service UUID should be the same as requested UUID.'); |
54 assert_true(service.isPrimary, | 53 assert_true(service.isPrimary, |
55 'getPrimaryService should return a primary service.'); | 54 'getPrimaryService should return a primary service.'); |
56 }); | 55 }); |
57 }); | 56 }); |
58 }, 'Request for service. Should return right service'); | 57 }, 'Request for service. Should return right service'); |
59 | 58 |
60 sequential_promise_test(function() { | 59 promise_test(function() { |
61 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); | 60 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); |
62 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) | 61 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) |
63 .then(device => device.connectGATT()) | 62 .then(device => device.connectGATT()) |
64 .then(gattServer => Promise.all( | 63 .then(gattServer => Promise.all( |
65 [gattServer.getPrimaryService(generic_access.alias), | 64 [gattServer.getPrimaryService(generic_access.alias), |
66 gattServer.getPrimaryService(generic_access.alias), | 65 gattServer.getPrimaryService(generic_access.alias), |
67 gattServer.getPrimaryService(generic_access.name), | 66 gattServer.getPrimaryService(generic_access.name), |
68 gattServer.getPrimaryService(generic_access.name), | 67 gattServer.getPrimaryService(generic_access.name), |
69 gattServer.getPrimaryService(generic_access.uuid), | 68 gattServer.getPrimaryService(generic_access.uuid), |
70 gattServer.getPrimaryService(generic_access.uuid)])) | 69 gattServer.getPrimaryService(generic_access.uuid)])) |
71 .then(services => { | 70 .then(services => { |
72 // getPrimaryService should return the same object if it was created | 71 // getPrimaryService should return the same object if it was created |
73 // earlier. https://crbug.com/495270 | 72 // earlier. https://crbug.com/495270 |
74 // TODO(ortuno): Change to assert_equals. | 73 // TODO(ortuno): Change to assert_equals. |
75 for (let i = 1; i < services.length; i++) { | 74 for (let i = 1; i < services.length; i++) { |
76 assert_not_equals(services[0], services[i], | 75 assert_not_equals(services[0], services[i], |
77 'Should return the same service as the first call.'); | 76 'Should return the same service as the first call.'); |
78 } | 77 } |
79 }); | 78 }); |
80 }, 'Calls to get the same service should return the same object.'); | 79 }, 'Calls to get the same service should return the same object.'); |
81 | 80 |
82 sequential_promise_test(() => { | 81 promise_test(() => { |
83 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); | 82 testRunner.setBluetoothMockDataSet('GenericAccessAdapter'); |
84 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) | 83 return requestDeviceWithKeyDown({filters: [{services: ['generic_access']}]}) |
85 .then(device => device.connectGATT()) | 84 .then(device => device.connectGATT()) |
86 .then(gattServer => { | 85 .then(gattServer => { |
87 return assert_promise_rejects_with_message( | 86 return assert_promise_rejects_with_message( |
88 gattServer.getPrimaryService('wrong_name'), { | 87 gattServer.getPrimaryService('wrong_name'), { |
89 name: 'SyntaxError', | 88 name: 'SyntaxError', |
90 message: 'Failed to execute \'getPrimaryService\' on ' + | 89 message: 'Failed to execute \'getPrimaryService\' on ' + |
91 '\'BluetoothGATTRemoteServer\': Invalid Service name: ' + | 90 '\'BluetoothGATTRemoteServer\': Invalid Service name: ' + |
92 '\'wrong_name\'.' | 91 '\'wrong_name\'.' |
93 }, 'Wrong Service name passed.'); | 92 }, 'Wrong Service name passed.'); |
94 }); | 93 }); |
95 }, 'Wrong Service name. Reject with SyntaxError.'); | 94 }, 'Wrong Service name. Reject with SyntaxError.'); |
96 </script> | 95 </script> |
OLD | NEW |