| 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="bluetooth-helpers.js"></script> | 4 <script src="bluetooth-helpers.js"></script> |
| 6 <script> | 5 <script> |
| 7 test(function(t) { assert_true(window.testRunner instanceof Object); t.done(); }
, | 6 test(function(t) { assert_true(window.testRunner instanceof Object); t.done(); }
, |
| 8 'window.testRunner is required for the following tests.'); | 7 'window.testRunner is required for the following tests.'); |
| 9 | 8 |
| 10 // Generic Access Service. | 9 // Generic Access Service. |
| 11 var serviceUUID = '00001800-0000-1000-8000-00805f9b34fb'; | 10 var serviceUUID = '00001800-0000-1000-8000-00805f9b34fb'; |
| 12 // Device Name Characteristic. Belongs to Generic Access. | 11 // Device Name Characteristic. Belongs to Generic Access. |
| 13 var includedCharacteristicUUID = '00002a00-0000-1000-8000-00805f9b34fb'; | 12 var includedCharacteristicUUID = '00002a00-0000-1000-8000-00805f9b34fb'; |
| 14 // Reconnection Address. Belongs to Generic Access. | 13 // Reconnection Address. Belongs to Generic Access. |
| 15 var unreadableCharacteristicUUID = '00002a03-0000-1000-8000-00805f9b34fb'; | 14 var unreadableCharacteristicUUID = '00002a03-0000-1000-8000-00805f9b34fb'; |
| 16 | 15 |
| 17 sequential_promise_test(function() { | 16 promise_test(function() { |
| 18 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); | 17 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); |
| 19 return navigator.bluetooth.requestDevice({ | 18 return navigator.bluetooth.requestDevice({ |
| 20 filters: [{services: [serviceUUID]}] | 19 filters: [{services: [serviceUUID]}] |
| 21 }).then(function(device) { | 20 }).then(function(device) { |
| 22 return device.connectGATT(); | 21 return device.connectGATT(); |
| 23 }).then(function(gattServer) { | 22 }).then(function(gattServer) { |
| 24 return gattServer.getPrimaryService(serviceUUID); | 23 return gattServer.getPrimaryService(serviceUUID); |
| 25 }).then(function(service) { | 24 }).then(function(service) { |
| 26 return service.getCharacteristic(includedCharacteristicUUID); | 25 return service.getCharacteristic(includedCharacteristicUUID); |
| 27 }).then(function(characteristic) { | 26 }).then(function(characteristic) { |
| 28 testRunner.setBluetoothMockDataSet('EmptyAdapter'); | 27 testRunner.setBluetoothMockDataSet('EmptyAdapter'); |
| 29 return characteristic.readValue().then(function() { | 28 return characteristic.readValue().then(function() { |
| 30 assert_unreached('Device went out of range, should fail.'); | 29 assert_unreached('Device went out of range, should fail.'); |
| 31 }, function(e) { | 30 }, function(e) { |
| 32 assert_equals(e.name, 'NetworkError'); | 31 assert_equals(e.name, 'NetworkError'); |
| 33 assert_equals(e.message, 'Bluetooth Device is no longer in range.'); | 32 assert_equals(e.message, 'Bluetooth Device is no longer in range.'); |
| 34 }); | 33 }); |
| 35 }); | 34 }); |
| 36 }, 'Device goes out of range. Reject with NetworkError.'); | 35 }, 'Device goes out of range. Reject with NetworkError.'); |
| 37 | 36 |
| 38 sequential_promise_test(function() { | 37 promise_test(function() { |
| 39 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); | 38 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); |
| 40 return navigator.bluetooth.requestDevice({ | 39 return navigator.bluetooth.requestDevice({ |
| 41 filters: [{services: [serviceUUID]}] | 40 filters: [{services: [serviceUUID]}] |
| 42 }).then(function(device) { | 41 }).then(function(device) { |
| 43 return device.connectGATT(); | 42 return device.connectGATT(); |
| 44 }).then(function(gattServer) { | 43 }).then(function(gattServer) { |
| 45 return gattServer.getPrimaryService(serviceUUID); | 44 return gattServer.getPrimaryService(serviceUUID); |
| 46 }).then(function(service) { | 45 }).then(function(service) { |
| 47 return service.getCharacteristic(unreadableCharacteristicUUID); | 46 return service.getCharacteristic(unreadableCharacteristicUUID); |
| 48 }).then(function(characteristic) { | 47 }).then(function(characteristic) { |
| 49 return characteristic.readValue().then(function() { | 48 return characteristic.readValue().then(function() { |
| 50 assert_unreached('Characteristic is unreadable. Should fail.'); | 49 assert_unreached('Characteristic is unreadable. Should fail.'); |
| 51 }, function(e) { | 50 }, function(e) { |
| 52 assert_equals(e.name, 'NotSupportedError'); | 51 assert_equals(e.name, 'NotSupportedError'); |
| 53 }); | 52 }); |
| 54 }); | 53 }); |
| 55 }, 'Characteristic is not readable. Reject with NetworkError.'); | 54 }, 'Characteristic is not readable. Reject with NetworkError.'); |
| 56 | 55 |
| 57 // TODO(ortuno): Add a test for when a characterstics gets removed. | 56 // TODO(ortuno): Add a test for when a characterstics gets removed. |
| 58 // http://crbug.com/499552 | 57 // http://crbug.com/499552 |
| 59 | 58 |
| 60 sequential_promise_test(function() { | 59 promise_test(function() { |
| 61 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); | 60 testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); |
| 62 return navigator.bluetooth.requestDevice({ | 61 return navigator.bluetooth.requestDevice({ |
| 63 filters: [{services: [serviceUUID]}] | 62 filters: [{services: [serviceUUID]}] |
| 64 }).then(function(device) { | 63 }).then(function(device) { |
| 65 return device.connectGATT(); | 64 return device.connectGATT(); |
| 66 }).then(function(gattServer) { | 65 }).then(function(gattServer) { |
| 67 return gattServer.getPrimaryService(serviceUUID); | 66 return gattServer.getPrimaryService(serviceUUID); |
| 68 }).then(function(service) { | 67 }).then(function(service) { |
| 69 return service.getCharacteristic(includedCharacteristicUUID); | 68 return service.getCharacteristic(includedCharacteristicUUID); |
| 70 }).then(function(characteristic) { | 69 }).then(function(characteristic) { |
| 71 return characteristic.readValue(); | 70 return characteristic.readValue(); |
| 72 }).then(function(value) { | 71 }).then(function(value) { |
| 73 var decoder = new TextDecoder('utf-8'); | 72 var decoder = new TextDecoder('utf-8'); |
| 74 var value_str = decoder.decode(value); | 73 var value_str = decoder.decode(value); |
| 75 assert_equals(value_str, 'Empty Mock Device'); | 74 assert_equals(value_str, 'Empty Mock Device'); |
| 76 }); | 75 }); |
| 77 }, 'Request for characteristic. Should return right characteristic'); | 76 }, 'Request for characteristic. Should return right characteristic'); |
| 78 </script> | 77 </script> |
| OLD | NEW |