Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: third_party/WebKit/LayoutTests/bluetooth/getCharacteristic.html

Issue 1815483003: bluetooth: Create Mojo equivalent of SetBluetoothMockDataSet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth-mojo
Patch Set: MMerge with ToT Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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="resources/bluetooth-helpers.js"></script> 4 <script src="resources/bluetooth-helpers.js"></script>
5 <script> 5 <script>
6 'use strict'; 6 'use strict';
7 7
8 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, 8 test(t => { assert_true(window.testRunner instanceof Object); t.done(); },
9 'window.testRunner is required for the following tests.'); 9 'window.testRunner is required for the following tests.');
10 10
11 promise_test(() => { 11 promise_test(() => {
12 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 12 return setBluetoothFakeAdapter('HeartRateAdapter')
13 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 13 .then(() => requestDeviceWithKeyDown({
14 optionalServices: ['generic_access']}) 14 filters: [{services: ['heart_rate']}],
15 optionalServices: ['generic_access']}))
15 .then(device => device.gatt.connect()) 16 .then(device => device.gatt.connect())
16 .then(gattServer => gattServer.getPrimaryService('generic_access')) 17 .then(gattServer => gattServer.getPrimaryService('generic_access'))
17 .then(service => { 18 .then(service => {
18 testRunner.setBluetoothMockDataSet('EmptyAdapter'); 19 return setBluetoothFakeAdapter('EmptyAdapter')
19 return assert_promise_rejects_with_message( 20 .then(() => assert_promise_rejects_with_message(
20 service.getCharacteristic('gap.device_name'), 21 service.getCharacteristic('gap.device_name'),
21 new DOMException('Bluetooth Device is no longer in range.', 22 new DOMException('Bluetooth Device is no longer in range.',
22 'NetworkError'), 23 'NetworkError'),
23 'Device went out of range.'); 24 'Device went out of range.'));
24 }); 25 });
25 }, 'Device goes out of range. Reject with NetworkError.'); 26 }, 'Device goes out of range. Reject with NetworkError.');
26 27
27 promise_test(() => { 28 promise_test(() => {
28 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 29 return setBluetoothFakeAdapter('HeartRateAdapter')
29 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 30 .then(() => requestDeviceWithKeyDown({
30 optionalServices: ['generic_access']}) 31 filters: [{services: ['heart_rate']}],
32 optionalServices: ['generic_access']}))
31 .then(device => device.gatt.connect()) 33 .then(device => device.gatt.connect())
32 .then(gattService => gattService.getPrimaryService('generic_access')) 34 .then(gattService => gattService.getPrimaryService('generic_access'))
33 .then(service => { 35 .then(service => {
34 testRunner.setBluetoothMockDataSet('MissingServiceHeartRateAdapter'); 36 return setBluetoothFakeAdapter('MissingServiceHeartRateAdapter')
35 return assert_promise_rejects_with_message( 37 .then(() => assert_promise_rejects_with_message(
36 service.getCharacteristic('gap.device_name'), 38 service.getCharacteristic('gap.device_name'),
37 new DOMException('GATT Service no longer exists.', 39 new DOMException('GATT Service no longer exists.',
38 'InvalidStateError'), 40 'InvalidStateError'),
39 'Service got removed.'); 41 'Service got removed.'));
40 }); 42 });
41 }, 'Service is removed. Reject with InvalidStateError.'); 43 }, 'Service is removed. Reject with InvalidStateError.');
42 44
43 promise_test(() => { 45 promise_test(() => {
44 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 46 let expected = new DOMException(
45 let expected = new DOMException('No Characteristics with specified UUID found in Service.', 47 'No Characteristics with specified UUID found in Service.',
46 'NotFoundError'); 48 'NotFoundError');
47 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 49 return setBluetoothFakeAdapter('HeartRateAdapter')
48 optionalServices: ['generic_access']}) 50 .then(() => requestDeviceWithKeyDown({
51 filters: [{services: ['heart_rate']}],
52 optionalServices: ['generic_access']}))
49 .then(device => device.gatt.connect()) 53 .then(device => device.gatt.connect())
50 .then(gattServer => gattServer.getPrimaryService('generic_access')) 54 .then(gattServer => gattServer.getPrimaryService('generic_access'))
51 .then(service => Promise.all( 55 .then(service => Promise.all(
52 [assert_promise_rejects_with_message( 56 [assert_promise_rejects_with_message(
53 service.getCharacteristic(battery_level.alias), expected), 57 service.getCharacteristic(battery_level.alias), expected),
54 assert_promise_rejects_with_message( 58 assert_promise_rejects_with_message(
55 service.getCharacteristic(battery_level.name), expected), 59 service.getCharacteristic(battery_level.name), expected),
56 assert_promise_rejects_with_message( 60 assert_promise_rejects_with_message(
57 service.getCharacteristic(battery_level.uuid), expected)])); 61 service.getCharacteristic(battery_level.uuid), expected)]));
58 }, 'Request for wrong characteristic. Reject with NotFoundError.'); 62 }, 'Request for wrong characteristic. Reject with NotFoundError.');
59 63
60 promise_test(() => { 64 promise_test(() => {
61 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 65 return setBluetoothFakeAdapter('HeartRateAdapter')
62 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 66 .then(() => requestDeviceWithKeyDown({
63 optionalServices: ['generic_access']}) 67 filters: [{services: ['heart_rate']}],
68 optionalServices: ['generic_access']}))
64 .then(device => device.gatt.connect()) 69 .then(device => device.gatt.connect())
65 .then(gattServer => gattServer.getPrimaryService('generic_access')) 70 .then(gattServer => gattServer.getPrimaryService('generic_access'))
66 .then(service => Promise.all( 71 .then(service => Promise.all(
67 [service.getCharacteristic(device_name.alias), 72 [service.getCharacteristic(device_name.alias),
68 service.getCharacteristic(device_name.name), 73 service.getCharacteristic(device_name.name),
69 service.getCharacteristic(device_name.uuid)])) 74 service.getCharacteristic(device_name.uuid)]))
70 .then(characteristics => { 75 .then(characteristics => {
71 characteristics.forEach(characteristic => { 76 characteristics.forEach(characteristic => {
72 assert_equals( 77 assert_equals(
73 characteristic.uuid, device_name.uuid, 78 characteristic.uuid, device_name.uuid,
74 'Characteristic UUID should be the same as requested UUID.'); 79 'Characteristic UUID should be the same as requested UUID.');
75 }); 80 });
76 }); 81 });
77 }, 'Request for characteristic. Should return right characteristic'); 82 }, 'Request for characteristic. Should return right characteristic');
78 83
79 promise_test(() => { 84 promise_test(() => {
80 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 85 return setBluetoothFakeAdapter('HeartRateAdapter')
81 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 86 .then(() => requestDeviceWithKeyDown({
82 optionalServices: ['generic_access']}) 87 filters: [{services: ['heart_rate']}],
88 optionalServices: ['generic_access']}))
83 .then(device => device.gatt.connect()) 89 .then(device => device.gatt.connect())
84 .then(gattServer => gattServer.getPrimaryService('generic_access')) 90 .then(gattServer => gattServer.getPrimaryService('generic_access'))
85 .then(services => Promise.all( 91 .then(services => Promise.all(
86 [services.getCharacteristic(device_name.alias), 92 [services.getCharacteristic(device_name.alias),
87 services.getCharacteristic(device_name.alias), 93 services.getCharacteristic(device_name.alias),
88 services.getCharacteristic(device_name.name), 94 services.getCharacteristic(device_name.name),
89 services.getCharacteristic(device_name.name), 95 services.getCharacteristic(device_name.name),
90 services.getCharacteristic(device_name.uuid), 96 services.getCharacteristic(device_name.uuid),
91 services.getCharacteristic(device_name.uuid)])) 97 services.getCharacteristic(device_name.uuid)]))
92 .then(characteristics => { 98 .then(characteristics => {
93 // TODO(ortuno): getCharacteristic should return the same object 99 // TODO(ortuno): getCharacteristic should return the same object
94 // if it was created earlier. 100 // if it was created earlier.
95 // https://crbug.com/495270 101 // https://crbug.com/495270
96 for (var i = 1; i < characteristics.length; i++) { 102 for (var i = 1; i < characteristics.length; i++) {
97 assert_not_equals( 103 assert_not_equals(
98 characteristics[0], characteristics[i], 104 characteristics[0], characteristics[i],
99 'Should return the same characteristic as the first call.'); 105 'Should return the same characteristic as the first call.');
100 } 106 }
101 }); 107 });
102 }, 'Calls to get the same characteristic should return the same object.'); 108 }, 'Calls to get the same characteristic should return the same object.');
103 109
104 promise_test(() => { 110 promise_test(() => {
105 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 111 return setBluetoothFakeAdapter('HeartRateAdapter')
106 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 112 .then(() => requestDeviceWithKeyDown({
107 optionalServices: ['generic_access']}) 113 filters: [{services: ['heart_rate']}],
114 optionalServices: ['generic_access']}))
108 .then(device => device.gatt.connect()) 115 .then(device => device.gatt.connect())
109 .then(gattServer => gattServer.getPrimaryService('generic_access')) 116 .then(gattServer => gattServer.getPrimaryService('generic_access'))
110 .then(service => { 117 .then(service => {
111 return assert_promise_rejects_with_message( 118 return assert_promise_rejects_with_message(
112 service.getCharacteristic('wrong_name'), new DOMException( 119 service.getCharacteristic('wrong_name'), new DOMException(
113 'Failed to execute \'getCharacteristic\' on ' + 120 'Failed to execute \'getCharacteristic\' on ' +
114 '\'BluetoothRemoteGATTService\': Invalid Characteristic name: ' + 121 '\'BluetoothRemoteGATTService\': Invalid Characteristic name: ' +
115 '\'wrong_name\'. ' + 122 '\'wrong_name\'. ' +
116 'It must be a valid UUID alias (e.g. 0x1234), ' + 123 'It must be a valid UUID alias (e.g. 0x1234), ' +
117 'UUID (lowercase hex characters e.g. ' + 124 'UUID (lowercase hex characters e.g. ' +
118 '\'00001234-0000-1000-8000-00805f9b34fb\'), ' + 125 '\'00001234-0000-1000-8000-00805f9b34fb\'), ' +
119 'or recognized standard name from ' + 126 'or recognized standard name from ' +
120 'https://developer.bluetooth.org/gatt/characteristics/' + 127 'https://developer.bluetooth.org/gatt/characteristics/' +
121 'Pages/CharacteristicsHome.aspx' + 128 'Pages/CharacteristicsHome.aspx' +
122 ' e.g. \'aerobic_heart_rate_lower_limit\'.', 129 ' e.g. \'aerobic_heart_rate_lower_limit\'.',
123 'SyntaxError'), 130 'SyntaxError'),
124 'Wrong Characteristic name passed.'); 131 'Wrong Characteristic name passed.');
125 }); 132 });
126 }, 'Wrong Characteristic name. Reject with SyntaxError.'); 133 }, 'Wrong Characteristic name. Reject with SyntaxError.');
127 </script> 134 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698