| <!-- Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py --> |
| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <script src="/bluetooth/resources/bluetooth-helpers.js"></script> |
| <script> |
| 'use strict'; |
| const test_desc = 'Calls to getPrimaryService should return the same object.'; |
| let device; |
| |
| bluetooth_test(() => getHealthThermometerDevice({ |
| filters: [{services: ['health_thermometer']}], |
| optionalServices: ['generic_access']}) |
| .then(({device}) => Promise.all([ |
| device.gatt.getPrimaryService('health_thermometer'), |
| device.gatt.getPrimaryService('health_thermometer')])) |
| .then(([services_first_call, services_second_call]) => { |
| // Convert to arrays if necessary. |
| services_first_call = [].concat(services_first_call); |
| services_second_call = [].concat(services_second_call); |
| |
| assert_equals(services_first_call.length, services_second_call.length); |
| |
| let first_call_set = new Set(services_first_call); |
| assert_equals(services_first_call.length, first_call_set.size); |
| let second_call_set = new Set(services_second_call); |
| assert_equals(services_second_call.length, second_call_set.size); |
| |
| services_first_call.forEach(service => { |
| assert_true(second_call_set.has(service)) |
| }); |
| |
| services_second_call.forEach(service => { |
| assert_true(first_call_set.has(service)); |
| }); |
| }), test_desc); |
| |
| </script> |