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-helpers.js"></script> |
| 5 <script> |
| 6 'use strict'; |
| 7 |
| 8 test(function(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 testRunner.setBluetoothMockDataSet('PowerValueAdapter:' + |
| 69 power_test.tx_power + ':' + |
| 70 power_test.rssi); |
| 71 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]}) |
| 72 .then(device => { |
| 73 let adv_data = device.adData; |
| 74 assert_equals(adv_data.txPower, power_test.expected_tx_power); |
| 75 assert_equals(adv_data.rssi, power_test.expected_rssi); |
| 76 }); |
| 77 }, power_test.name); |
| 78 }); |
| 79 |
| 80 // Tests for all platforms. |
| 81 [{ |
| 82 name: 'TxPower not present, RSSI not present.', |
| 83 tx_power_present: false, |
| 84 rssi_present: false |
| 85 }, { |
| 86 name: 'TxPower not present, RSSI present.', |
| 87 tx_power_present: false, |
| 88 rssi_present: true |
| 89 }, { |
| 90 name: 'TxPower present, RSSI not present.', |
| 91 tx_power_present: true, |
| 92 rssi_present: false, |
| 93 }, { |
| 94 name: 'TxPower present, RSSI present.', |
| 95 tx_power_present: true, |
| 96 rssi_present: true |
| 97 }].forEach(power_test => { |
| 98 promise_test(() => { |
| 99 testRunner.setBluetoothMockDataSet('PowerPresenceAdapter:' + |
| 100 power_test.tx_power_present + ':' + |
| 101 power_test.rssi_present); |
| 102 return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]}) |
| 103 .then(device => { |
| 104 let adv_data = device.adData; |
| 105 let expected_tx_power = power_test.tx_power_present ? |
| 106 -10 /* broadcasting at 0.1mW */ |
| 107 : null; |
| 108 let expected_rssi = power_test.rssi_present ? |
| 109 -51 /* power at 1m from device broadcasting at 0.1mW *
/ |
| 110 : null; |
| 111 assert_equals(adv_data.txPower, expected_tx_power); |
| 112 assert_equals(adv_data.rssi, expected_rssi); |
| 113 }); |
| 114 }, power_test.name) |
| 115 }); |
| 116 </script> |
OLD | NEW |