| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharness-helpers.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="bluetooth-helpers.js"></script> |
| <script> |
| test(function(t) { assert_true(window.testRunner instanceof Object); t.done(); }, |
| "window.testRunner is required for the following tests."); |
| |
| sequential_promise_test(function() { |
| testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); |
| return navigator.bluetooth.requestDevice({ |
| filters: [{services: ['generic_access']}] |
| }).then(function(device) { |
| testRunner.setBluetoothMockDataSet('EmptyAdapter'); |
| return device.connectGATT().then(function() { |
| assert_unreached('Should return error if device not in adapter.'); |
| }, function(e) { |
| assert_equals(e.name, 'NetworkError'); |
| assert_equals(e.message, 'Bluetooth Device is no longer in range.'); |
| }); |
| }); |
| }, 'Device goes out of range. Reject with NetworkError.'); |
| |
| sequential_promise_test(function() { |
| testRunner.setBluetoothMockDataSet('UnconnectableDeviceAdapter'); |
| return navigator.bluetooth.requestDevice({ |
| filters: [{services: ['generic_access']}] |
| }).then(function(device) { |
| return device.connectGATT().then(function() { |
| assert_unreached('Should return error since device failed to connect.'); |
| }, function(e) { |
| assert_equals(e.name, 'NetworkError'); |
| assert_equals(e.message, 'Connection failed for unknown reason.'); |
| }); |
| }); |
| }, 'Device failed to connect. Reject with NetworkError.'); |
| |
| sequential_promise_test(function() { |
| testRunner.setBluetoothMockDataSet('ConnectableDeviceAdapter'); |
| return navigator.bluetooth.requestDevice({ |
| filters: [{services: ['generic_access']}] |
| }).then(function(device) { |
| return device.connectGATT(); |
| }).then(function(gattConnection) { |
| assert_true(gattConnection.connected); |
| }); |
| }, 'Device will connect'); |
| </script> |