blob: f84d8c84cb933f7818b680c909bbd715263b63f6 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/bluetooth/bluetooth-helpers.js"></script>
<script>
let matching_services = [heart_rate.uuid];
let matching_name = 'Heart Rate Device';
let matching_namePrefix = 'Heart';
let test_specs = [{
filters: [{
services: matching_services,
}]
}, {
filters: [{
services: matching_services,
name: matching_name,
}]
}, {
filters: [{
services: matching_services,
namePrefix: matching_namePrefix
}]
}, {
filters: [{
name: matching_name,
}],
optionalServices: matching_services
}, {
filters: [{
name: matching_name,
namePrefix: matching_namePrefix
}],
optionalServices: matching_services
}, {
filters: [{
namePrefix: matching_namePrefix
}],
optionalServices: matching_services
}, {
filters: [{
services: matching_services,
name: matching_name,
namePrefix: matching_namePrefix
}]
}];
bluetooth_test(() => {
return setBluetoothFakeAdapter('GlucoseHeartRateAdapter')
.then(() => {
let test_promises = Promise.resolve();
test_specs.forEach(args => {
test_promises = test_promises
.then(() => requestDeviceWithKeyDown(args))
.then(device => {
// We always have access to the services in matching_services
// because we include them in a filter or in optionalServices.
assert_equals(device.name, matching_name);
assert_true(device.name.startsWith(matching_namePrefix));
});
});
return test_promises;
});
}, 'Matches a filter if all present members match.');
</script>