Index: third_party/WebKit/LayoutTests/bluetooth/advertising-data.html |
diff --git a/third_party/WebKit/LayoutTests/bluetooth/advertising-data.html b/third_party/WebKit/LayoutTests/bluetooth/advertising-data.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..134e88fa9a78bf42b04b43c6fe59a735625fa17c |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/bluetooth/advertising-data.html |
@@ -0,0 +1,110 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="resources/bluetooth-helpers.js"></script> |
+<script> |
+'use strict'; |
+ |
+test(function(t) { assert_true(window.testRunner instanceof Object); t.done(); }, |
+ 'window.testRunner is required for the following tests.'); |
+// Tests that we are handling values returned from the underlying platform |
scheib
2015/10/30 01:05:23
InternalPowerAdapter a poor name, name them for se
ortuno
2015/11/04 21:22:09
Adapter renamed. Added TODO for the Tx Power value
|
+// correctly. Only meant to be used by chromium. |
+[{ |
+ name: 'Tx Power too low must result in nulled txPower.', |
+ tx_power: -128, |
+ expected_tx_power: null, |
+ rssi: 0, |
+ expected_rssi: 0 |
+}, { |
+ name: 'RSSI too low must result in nulled rssi.', |
+ tx_power: 0, |
+ expected_tx_power: 0, |
+ rssi: -128, |
+ expected_rssi: null |
+}, { |
+ name: 'Low Tx Power should appear in adData.', |
+ tx_power: -127, |
+ expected_tx_power: -127, |
+ rssi: 0, |
+ expected_rssi: 0 |
+}, { |
+ name: 'Low RSSI should appear in adData.', |
+ tx_power: 0, |
+ expected_tx_power: 0, |
+ rssi: -127, |
+ expected_rssi: -127 |
+}, { |
+ name: 'High Tx Power should appear in adData.', |
+ tx_power: 126, |
+ expected_tx_power: 126, |
+ rssi: 0, |
+ expected_rssi: 0 |
+}, { |
+ name: 'High RSSI should appear in adData.', |
+ tx_power: 0, |
+ expected_tx_power: 0, |
+ rssi: 126, |
+ expected_rssi: 126 |
+}, { |
+ name: 'Tx Power too high must result in nulled txPower.', |
+ tx_power: 127, |
+ expected_tx_power: null, |
+ rssi: 0, |
+ expected_rssi: 0 |
+}, { |
+ name: 'RSSI too high must result in nulled rssi.', |
+ tx_power: 0, |
+ expected_tx_power: 0, |
+ rssi: 127, |
+ expected_rssi: null |
+}].forEach(power_test => { |
+ promise_test(() => { |
+ testRunner.setBluetoothMockDataSet('InternalPowerAdapter:' + |
+ power_test.tx_power + ':' + |
+ power_test.rssi); |
+ return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]}) |
+ .then(device => { |
+ let adv_data = device.adData; |
+ assert_equals(adv_data.txPower, power_test.expected_tx_power); |
+ assert_equals(adv_data.rssi, power_test.expected_rssi); |
+ }); |
+ }, power_test.name); |
+}); |
+ |
+// Tests for all platforms. |
+[{ |
+ name: 'TxPower not present, RSSI not present.', |
+ tx_power_present: false, |
+ rssi_present: false |
+}, { |
+ name: 'TxPower not present, RSSI present.', |
+ tx_power_present: false, |
+ rssi_present: true |
+}, { |
+ name: 'TxPower present, RSSI not present.', |
+ tx_power_present: true, |
+ rssi_present: false, |
+}, { |
+ name: 'TxPower present, RSSI present.', |
+ tx_power_present: true, |
+ rssi_present: true |
+}].forEach(power_test => { |
+ promise_test(() => { |
+ testRunner.setBluetoothMockDataSet('PowerAdapter:' + |
+ power_test.tx_power_present + ':' + |
+ power_test.rssi_present); |
+ return requestDeviceWithKeyDown({filters: [{services: ['heart_rate']}]}) |
+ .then(device => { |
+ let adv_data = device.adData; |
+ let expected_tx_power = power_test.tx_power_present ? |
+ -10 /* broadcasting at 0.1mW */ |
+ : null; |
+ let expected_rssi = power_test.rssi_present ? |
+ -51 /* power at 1m from device broadcasting at 0.1mW */ |
+ : null; |
+ assert_equals(adv_data.txPower, expected_tx_power); |
+ assert_equals(adv_data.rssi, expected_rssi); |
+ }); |
+ }, power_test.name) |
+}); |
+</script> |