| 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 |