blob: 083f2a3b2ba574da5a323b1da31ef2fad49ecc25 [file] [log] [blame]
<!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>