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