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

Side by Side Diff: third_party/WebKit/LayoutTests/bluetooth/writeValue.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_exists(window, 'testRunner'); t.done(); }, 8 test(t => { assert_exists(window, 'testRunner'); 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 => service.getCharacteristic('gap.device_name')) 18 .then(service => service.getCharacteristic('gap.device_name'))
18 .then(characteristic => { 19 .then(characteristic => {
19 testRunner.setBluetoothMockDataSet('EmptyAdapter'); 20 return setBluetoothFakeAdapter('EmptyAdapter')
20 return assert_promise_rejects_with_message( 21 .then(() => assert_promise_rejects_with_message(
21 characteristic.writeValue(new ArrayBuffer(1 /* length */)), 22 characteristic.writeValue(new ArrayBuffer(1 /* length */)),
22 new DOMException( 23 new DOMException(
23 'Bluetooth Device is no longer in range.', 'NetworkError'), 24 'Bluetooth Device is no longer in range.', 'NetworkError'),
24 'Device went out of range.'); 25 'Device went out of range.'));
25 }); 26 });
26 }, 'Device goes out of range. Reject with NetworkError.'); 27 }, 'Device goes out of range. Reject with NetworkError.');
27 28
28 promise_test(() => { 29 promise_test(() => {
29 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 30 return setBluetoothFakeAdapter('HeartRateAdapter')
30 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 31 .then(() => requestDeviceWithKeyDown({
31 optionalServices: ['generic_access']}) 32 filters: [{services: ['heart_rate']}],
33 optionalServices: ['generic_access']}))
32 .then(device => device.gatt.connect()) 34 .then(device => device.gatt.connect())
33 .then(gattServer => gattServer.getPrimaryService('generic_access')) 35 .then(gattServer => gattServer.getPrimaryService('generic_access'))
34 .then(service => service.getCharacteristic('gap.device_name')) 36 .then(service => service.getCharacteristic('gap.device_name'))
35 .then(characteristic => { 37 .then(characteristic => {
36 testRunner.setBluetoothMockDataSet('MissingServiceHeartRateAdapter'); 38 return setBluetoothFakeAdapter('MissingServiceHeartRateAdapter')
37 return assert_promise_rejects_with_message( 39 .then(() => assert_promise_rejects_with_message(
38 characteristic.writeValue(new ArrayBuffer(1 /* length */)), 40 characteristic.writeValue(new ArrayBuffer(1 /* length */)),
39 new DOMException('GATT Service no longer exists.', 41 new DOMException('GATT Service no longer exists.',
40 'InvalidStateError'), 42 'InvalidStateError'),
41 'Service got removed.'); 43 'Service got removed.'));
42 }); 44 });
43 }, 'Service gets removed. Reject with InvalidStateError.'); 45 }, 'Service gets removed. Reject with InvalidStateError.');
44 46
45 promise_test(() => { 47 promise_test(() => {
46 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 48 return setBluetoothFakeAdapter('HeartRateAdapter')
47 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 49 .then(() => requestDeviceWithKeyDown({
48 optionalServices: ['generic_access']}) 50 filters: [{services: ['heart_rate']}],
51 optionalServices: ['generic_access']}))
49 .then(device => device.gatt.connect()) 52 .then(device => device.gatt.connect())
50 .then(gattServer => gattServer.getPrimaryService('generic_access')) 53 .then(gattServer => gattServer.getPrimaryService('generic_access'))
51 .then(service => service.getCharacteristic('gap.device_name')) 54 .then(service => service.getCharacteristic('gap.device_name'))
52 .then(characteristic => { 55 .then(characteristic => {
53 testRunner.setBluetoothMockDataSet('MissingCharacteristicHeartRateAdapter' ); 56 return setBluetoothFakeAdapter('MissingCharacteristicHeartRateAdapter')
54 return assert_promise_rejects_with_message( 57 .then(() => assert_promise_rejects_with_message(
55 characteristic.writeValue(new ArrayBuffer(1 /* length */)), 58 characteristic.writeValue(new ArrayBuffer(1 /* length */)),
56 new DOMException( 59 new DOMException(
57 'GATT Characteristic no longer exists.', 'InvalidStateError'), 60 'GATT Characteristic no longer exists.', 'InvalidStateError'),
58 'Characteristic got removed.'); 61 'Characteristic got removed.'));
59 }); 62 });
60 }, 'Characteristic gets removed. Reject with InvalidStateError.'); 63 }, 'Characteristic gets removed. Reject with InvalidStateError.');
61 64
62 gatt_errors_tests.forEach(testSpec => { 65 gatt_errors_tests.forEach(testSpec => {
63 promise_test(() => { 66 promise_test(() => {
64 testRunner.setBluetoothMockDataSet('FailingGATTOperationsAdapter'); 67 return setBluetoothFakeAdapter('FailingGATTOperationsAdapter')
65 return requestDeviceWithKeyDown({filters: [{services: [errorUUID(0xA0)]}]}) 68 .then(() => requestDeviceWithKeyDown({
69 filters: [{services: [errorUUID(0xA0)]}]}))
66 .then(device => device.gatt.connect()) 70 .then(device => device.gatt.connect())
67 .then(gattServer => gattServer.getPrimaryService(errorUUID(0xA0))) 71 .then(gattServer => gattServer.getPrimaryService(errorUUID(0xA0)))
68 .then(service => service.getCharacteristic(testSpec.uuid)) 72 .then(service => service.getCharacteristic(testSpec.uuid))
69 .then(characteristic => { 73 .then(characteristic => {
70 return assert_promise_rejects_with_message( 74 return assert_promise_rejects_with_message(
71 characteristic.writeValue(new Uint8Array([1])), 75 characteristic.writeValue(new Uint8Array([1])),
72 testSpec.error, 76 testSpec.error,
73 'Trying to write to a characteristic failed.'); 77 'Trying to write to a characteristic failed.');
74 }); 78 });
75 }, testSpec.testName); 79 }, testSpec.testName);
76 }); 80 });
77 81
78 promise_test(() => { 82 promise_test(() => {
79 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 83 return setBluetoothFakeAdapter('HeartRateAdapter')
80 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 84 .then(() => requestDeviceWithKeyDown({
81 optionalServices: ['generic_access']}) 85 filters: [{services: ['heart_rate']}],
86 optionalServices: ['generic_access']}))
82 .then(device => device.gatt.connect()) 87 .then(device => device.gatt.connect())
83 .then(gattServer => gattServer.getPrimaryService('generic_access')) 88 .then(gattServer => gattServer.getPrimaryService('generic_access'))
84 .then(service => service.getCharacteristic('gap.device_name')) 89 .then(service => service.getCharacteristic('gap.device_name'))
85 .then(characteristic => { 90 .then(characteristic => {
86 return assert_promise_rejects_with_message( 91 return assert_promise_rejects_with_message(
87 characteristic.writeValue(new Uint8Array(513 /* length */)), 92 characteristic.writeValue(new Uint8Array(513 /* length */)),
88 new DOMException( 93 new DOMException(
89 'Value can\'t exceed 512 bytes.', 'InvalidModificationError'), 94 'Value can\'t exceed 512 bytes.', 'InvalidModificationError'),
90 'Value passed was too long.'); 95 'Value passed was too long.');
91 }); 96 });
92 }, 'Trying to write more than 512 bytes should return an error.'); 97 }, 'Trying to write more than 512 bytes should return an error.');
93 98
94 promise_test(() => { 99 promise_test(() => {
95 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 100 return setBluetoothFakeAdapter('HeartRateAdapter')
96 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 101 .then(() => requestDeviceWithKeyDown({
97 optionalServices: ['generic_access']}) 102 filters: [{services: ['heart_rate']}],
103 optionalServices: ['generic_access']}))
98 .then(device => device.gatt.connect()) 104 .then(device => device.gatt.connect())
99 .then(gattServer => gattServer.getPrimaryService('generic_access')) 105 .then(gattServer => gattServer.getPrimaryService('generic_access'))
100 .then(service => service.getCharacteristic('gap.device_name')) 106 .then(service => service.getCharacteristic('gap.device_name'))
101 .then(characteristic => Promise.all( 107 .then(characteristic => Promise.all(
102 [characteristic.writeValue(new Uint8Array(1 /* length */)), 108 [characteristic.writeValue(new Uint8Array(1 /* length */)),
103 characteristic.writeValue(new ArrayBuffer(1 /* length */)), 109 characteristic.writeValue(new ArrayBuffer(1 /* length */)),
104 characteristic.writeValue(new DataView(new ArrayBuffer(1 /* length */)))] )); 110 characteristic.writeValue(new DataView(new ArrayBuffer(1 /* length */)))] ));
105 }, 'A regular write request to a writable characteristic should succeed.'); 111 }, 'A regular write request to a writable characteristic should succeed.');
106 112
107 promise_test(() => { 113 promise_test(() => {
108 testRunner.setBluetoothMockDataSet('HeartRateAdapter'); 114 return setBluetoothFakeAdapter('HeartRateAdapter')
109 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}], 115 .then(() => requestDeviceWithKeyDown({
110 optionalServices: ['generic_access']}) 116 filters: [{services: ['heart_rate']}],
117 optionalServices: ['generic_access']}))
111 .then(device => device.gatt.connect()) 118 .then(device => device.gatt.connect())
112 .then(gattServer => gattServer.getPrimaryService('generic_access')) 119 .then(gattServer => gattServer.getPrimaryService('generic_access'))
113 .then(service => service.getCharacteristic('gap.device_name')) 120 .then(service => service.getCharacteristic('gap.device_name'))
114 .then(characteristic => { 121 .then(characteristic => {
115 assert_equals(characteristic.value, null); 122 assert_equals(characteristic.value, null);
116 let textEncoder = new TextEncoder(); 123 let textEncoder = new TextEncoder();
117 let newValue = textEncoder.encode('foo'); 124 let newValue = textEncoder.encode('foo');
118 return characteristic.writeValue(newValue).then(() => { 125 return characteristic.writeValue(newValue).then(() => {
119 assert_array_equals(characteristic.value.buffer, newValue.buffer); 126 assert_array_equals(characteristic.value.buffer, newValue.buffer);
120 }); 127 });
121 }); 128 });
122 }, 'A regular write request to a writable characteristic should update value.'); 129 }, 'A regular write request to a writable characteristic should update value.');
123 </script> 130 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698