OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="../resources/testharness.js"></script> | |
3 <script src="../resources/testharnessreport.js"></script> | |
4 <script src="../resources/bluetooth/bluetooth-helpers.js"></script> | |
5 <script> | |
6 'use strict'; | |
7 | |
8 test(t => { assert_true(window.testRunner instanceof Object); t.done(); }, | |
9 'window.testRunner is required for the following tests.'); | |
10 // Tests that we are handling values returned from the underlying platform | |
11 // correctly. Only meant to be used by chromium. | |
12 [{ | |
13 name: 'Tx Power too low must result in nulled txPower.', | |
14 tx_power: -128, | |
15 expected_tx_power: null, | |
16 rssi: 0, | |
17 expected_rssi: 0 | |
18 }, { | |
19 name: 'RSSI too low must result in nulled rssi.', | |
20 tx_power: 0, | |
21 expected_tx_power: 0, | |
22 rssi: -128, | |
23 expected_rssi: null | |
24 }, { | |
25 name: 'Low Tx Power should appear in adData.', | |
26 tx_power: -127, | |
27 expected_tx_power: -127, | |
28 rssi: 0, | |
29 expected_rssi: 0 | |
30 }, { | |
31 name: 'Low RSSI should appear in adData.', | |
32 tx_power: 0, | |
33 expected_tx_power: 0, | |
34 rssi: -127, | |
35 expected_rssi: -127 | |
36 }, { | |
37 name: 'High Tx Power should appear in adData.', | |
38 // TODO(ortuno): According to the Bluetooth Spec Supplement, 127 is the | |
39 // the hightest possible valid value for Tx Power. Change to 127 when | |
40 // fixed: http://crbug.com/551572 | |
41 tx_power: 126, | |
42 expected_tx_power: 126, | |
43 rssi: 0, | |
44 expected_rssi: 0 | |
45 }, { | |
46 name: 'High RSSI should appear in adData.', | |
47 tx_power: 0, | |
48 expected_tx_power: 0, | |
49 rssi: 126, | |
50 expected_rssi: 126 | |
51 }, { | |
52 // TODO(ortuno): Remove this test since 127 is both a valid Tx Power | |
53 // and the max value of a int8. | |
54 // http://crbug.com/551572 | |
55 name: 'Tx Power too high must result in nulled txPower.', | |
56 tx_power: 127, | |
57 expected_tx_power: null, | |
58 rssi: 0, | |
59 expected_rssi: 0 | |
60 }, { | |
61 name: 'RSSI too high must result in nulled rssi.', | |
62 tx_power: 0, | |
63 expected_tx_power: 0, | |
64 rssi: 127, | |
65 expected_rssi: null | |
66 }].forEach(power_test => { | |
67 promise_test(() => { | |
68 return setBluetoothFakeAdapter('PowerValueAdapter:' + | |
69 power_test.tx_power + ':' + | |
70 power_test.rssi) | |
71 .then(() => requestDeviceWithKeyDown({ | |
72 filters: [{services: ['heart_rate']}]})) | |
73 .then(device => { | |
74 let adv_data = device.adData; | |
75 assert_equals(adv_data.txPower, power_test.expected_tx_power); | |
76 assert_equals(adv_data.rssi, power_test.expected_rssi); | |
77 }); | |
78 }, power_test.name); | |
79 }); | |
80 | |
81 // Tests for all platforms. | |
82 [{ | |
83 name: 'TxPower not present, RSSI not present.', | |
84 tx_power_present: false, | |
85 rssi_present: false | |
86 }, { | |
87 name: 'TxPower not present, RSSI present.', | |
88 tx_power_present: false, | |
89 rssi_present: true | |
90 }, { | |
91 name: 'TxPower present, RSSI not present.', | |
92 tx_power_present: true, | |
93 rssi_present: false, | |
94 }, { | |
95 name: 'TxPower present, RSSI present.', | |
96 tx_power_present: true, | |
97 rssi_present: true | |
98 }].forEach(power_test => { | |
99 promise_test(() => { | |
100 return setBluetoothFakeAdapter('PowerPresenceAdapter:' + | |
101 power_test.tx_power_present + ':' + | |
102 power_test.rssi_present) | |
103 .then(() => requestDeviceWithKeyDown({ | |
104 filters: [{services: ['heart_rate']}]})) | |
105 .then(device => { | |
106 let adv_data = device.adData; | |
107 let expected_tx_power = power_test.tx_power_present ? | |
108 -10 /* broadcasting at 0.1mW */ | |
109 : null; | |
110 let expected_rssi = power_test.rssi_present ? | |
111 -51 /* power at 1m from device broadcasting at 0.1mW *
/ | |
112 : null; | |
113 assert_equals(adv_data.txPower, expected_tx_power); | |
114 assert_equals(adv_data.rssi, expected_rssi); | |
115 }); | |
116 }, power_test.name) | |
117 }); | |
118 </script> | |
OLD | NEW |