| Index: chrome/test/data/webui/bluetooth_internals_browsertest.js
|
| diff --git a/chrome/test/data/webui/bluetooth_internals_browsertest.js b/chrome/test/data/webui/bluetooth_internals_browsertest.js
|
| index 8223e77433ca5ad7822d97617e8d9c189fc154f6..8d15b7d903e8f80d7f132db183fcf3fe750cbc10 100644
|
| --- a/chrome/test/data/webui/bluetooth_internals_browsertest.js
|
| +++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js
|
| @@ -144,56 +144,93 @@ BluetoothInternalsTest.prototype = {
|
| };
|
|
|
| frameInterfaces.addInterfaceOverrideForTesting(
|
| - adapter.AdapterFactory.name,
|
| - function(handle) {
|
| - var stub = connection.bindHandleToStub(
|
| - handle, adapter.AdapterFactory);
|
| - this.adapterFactory = new TestAdapterFactoryProxy();
|
| - bindings.StubBindings(stub).delegate = this.adapterFactory;
|
| -
|
| - this.setupResolver.resolve();
|
| - }.bind(this));
|
| + adapter.AdapterFactory.name, function(handle) {
|
| + var stub = connection.bindHandleToStub(
|
| + handle, adapter.AdapterFactory);
|
| +
|
| + this.adapterFactory = new TestAdapterFactoryProxy();
|
| +
|
| + this.adapterFactory.adapter.proxy.setTestDevices([
|
| + this.fakeDeviceInfo1(),
|
| + this.fakeDeviceInfo2(),
|
| + ]);
|
| + this.adapterFactory.adapter.proxy.setTestAdapter(
|
| + this.fakeAdapterInfo());
|
| +
|
| + bindings.StubBindings(stub).delegate = this.adapterFactory;
|
| +
|
| + this.setupResolver.resolve();
|
| + }.bind(this));
|
| +
|
| }.bind(this));
|
| }.bind(this);
|
| },
|
| -};
|
|
|
| -// Times out. See https://crbug.com/667970.
|
| -TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| - function() {
|
| - var fakeAdapterInfo = {
|
| - address: '02:1C:7E:6A:11:5A',
|
| - discoverable: false,
|
| - discovering: false,
|
| - initialized: true,
|
| - name: 'computer.example.com-0',
|
| - powered: true,
|
| - present: true,
|
| - };
|
| -
|
| - var fakeDeviceInfo1 = {
|
| - address: "AA:AA:84:96:92:84",
|
| - name: "AAA",
|
| - name_for_display: "AAA",
|
| - rssi: {value: -40},
|
| - services: []
|
| - };
|
| -
|
| - var fakeDeviceInfo2 = {
|
| - address: "BB:BB:84:96:92:84",
|
| - name: "BBB",
|
| - name_for_display: "BBB",
|
| - rssi: null,
|
| - services: []
|
| - };
|
| -
|
| - var fakeDeviceInfo3 = {
|
| - address: "CC:CC:84:96:92:84",
|
| - name: "CCC",
|
| - name_for_display: "CCC",
|
| - };
|
| + /**
|
| + * Returns a copy of fake adapter info object.
|
| + * @return {!Object}
|
| + */
|
| + fakeAdapterInfo: function() {
|
| + return {
|
| + address: '02:1C:7E:6A:11:5A',
|
| + discoverable: false,
|
| + discovering: false,
|
| + initialized: true,
|
| + name: 'computer.example.com-0',
|
| + powered: true,
|
| + present: true,
|
| + };
|
| + },
|
| +
|
| + /**
|
| + * Returns a copy of a fake device info object (variant 1).
|
| + * @return {!Object}
|
| + */
|
| + fakeDeviceInfo1: function() {
|
| + return {
|
| + address: "AA:AA:84:96:92:84",
|
| + name: "AAA",
|
| + name_for_display: "AAA",
|
| + rssi: {value: -40},
|
| + services: [],
|
| + };
|
| + },
|
| +
|
| + /**
|
| + * Returns a copy of a fake device info object (variant 2).
|
| + * @return {!Object}
|
| + */
|
| + fakeDeviceInfo2: function() {
|
| + return {
|
| + address: "BB:BB:84:96:92:84",
|
| + name: "BBB",
|
| + name_for_display: "BBB",
|
| + rssi: null,
|
| + services: [],
|
| + };
|
| + },
|
| +
|
| + /**
|
| + * Returns a copy of fake device info object. The returned device info lack
|
| + * rssi and services properties.
|
| + * @return {!Object}
|
| + */
|
| + fakeDeviceInfo3: function() {
|
| + return {
|
| + address: "CC:CC:84:96:92:84",
|
| + name: "CCC",
|
| + name_for_display: "CCC",
|
| + };
|
| + },
|
| +};
|
|
|
| +TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() {
|
| var adapterFactory = null;
|
| + var deviceTable = null;
|
| +
|
| + var fakeDeviceInfo1 = this.fakeDeviceInfo1;
|
| + var fakeDeviceInfo2 = this.fakeDeviceInfo2;
|
| + var fakeDeviceInfo3 = this.fakeDeviceInfo3;
|
|
|
| // Before tests are run, make sure setup completes.
|
| var setupPromise = this.setupResolver.promise.then(function() {
|
| @@ -206,12 +243,6 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
|
|
| suiteSetup(function() {
|
| return setupPromise.then(function() {
|
| - adapterFactory.adapter.proxy.setTestDevices([
|
| - fakeDeviceInfo1,
|
| - fakeDeviceInfo2
|
| - ]);
|
| - adapterFactory.adapter.proxy.setTestAdapter(fakeAdapterInfo);
|
| -
|
| return Promise.all([
|
| adapterFactory.whenCalled('getAdapter'),
|
| adapterFactory.adapter.proxy.whenCalled('getInfo'),
|
| @@ -222,9 +253,10 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| });
|
|
|
| setup(function() {
|
| + deviceTable = document.querySelector('#devices table');
|
| devices.splice(0, devices.length);
|
| - adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1);
|
| - adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2);
|
| + adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1());
|
| + adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2());
|
| });
|
|
|
| teardown(function() {
|
| @@ -236,7 +268,7 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| * @param {!device_collection.DeviceInfo} deviceInfo
|
| */
|
| function changeDevice(deviceInfo) {
|
| - var deviceRow = document.querySelector('#' + escapeDeviceAddress(
|
| + var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress(
|
| deviceInfo.address));
|
| var nameForDisplayColumn = deviceRow.children[0];
|
| var addressColumn = deviceRow.children[1];
|
| @@ -280,7 +312,7 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| * @param {boolean} expectRemoved
|
| */
|
| function expectDeviceRemoved(address, expectRemoved) {
|
| - var removedRow = document.querySelector(
|
| + var removedRow = deviceTable.querySelector(
|
| '#' + escapeDeviceAddress(address));
|
|
|
| expectEquals(expectRemoved, removedRow.classList.contains('removed'));
|
| @@ -290,17 +322,17 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| * Tests whether a device is added successfully and not duplicated.
|
| */
|
| test('DeviceAdded', function() {
|
| - var devices = document.querySelectorAll('#device-table tbody tr');
|
| + var devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
|
|
| // Copy device info because device collection will not copy this object.
|
| - var infoCopy = Object.assign({}, fakeDeviceInfo3);
|
| + var infoCopy = fakeDeviceInfo3();
|
| adapterBroker.adapterClient_.deviceAdded(infoCopy);
|
|
|
| // Same device shouldn't appear twice.
|
| adapterBroker.adapterClient_.deviceAdded(infoCopy);
|
|
|
| - devices = document.querySelectorAll('#device-table tbody tr');
|
| + devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES + 1, devices.length);
|
| });
|
|
|
| @@ -308,26 +340,28 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| * Tests whether a device is marked properly as removed.
|
| */
|
| test('DeviceSetToRemoved', function() {
|
| - var devices = document.querySelectorAll('#device-table tbody tr');
|
| + var devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
| - adapterBroker.adapterClient_.deviceRemoved(fakeDeviceInfo2);
|
| +
|
| + var fakeDevice = fakeDeviceInfo2();
|
| + adapterBroker.adapterClient_.deviceRemoved(fakeDevice);
|
|
|
| // The number of rows shouldn't change.
|
| - devices = document.querySelectorAll('#device-table tbody tr');
|
| + devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
|
|
| - expectDeviceRemoved(fakeDeviceInfo2.address, true);
|
| + expectDeviceRemoved(fakeDevice.address, true);
|
| });
|
|
|
| /**
|
| * Tests whether a changed device updates the device table properly.
|
| */
|
| test('DeviceChanged', function() {
|
| - var devices = document.querySelectorAll('#device-table tbody tr');
|
| + var devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
|
|
| // Copy device info because device collection will not copy this object.
|
| - var newDeviceInfo = Object.assign({}, fakeDeviceInfo1);
|
| + var newDeviceInfo = fakeDeviceInfo1();
|
| newDeviceInfo.name_for_display = 'DDDD';
|
| newDeviceInfo.rssi = { value: -20 };
|
| newDeviceInfo.services = ['service1', 'service2', 'service3'];
|
| @@ -339,14 +373,14 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| * Tests the entire device cycle, added -> updated -> removed -> re-added.
|
| */
|
| test('DeviceUpdateCycle', function() {
|
| - var devices = document.querySelectorAll('#device-table tbody tr');
|
| + var devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
|
|
| // Copy device info because device collection will not copy this object.
|
| - var originalDeviceInfo = Object.assign({}, fakeDeviceInfo3);
|
| + var originalDeviceInfo = fakeDeviceInfo3();
|
| adapterBroker.adapterClient_.deviceAdded(originalDeviceInfo);
|
|
|
| - var newDeviceInfo = Object.assign({}, fakeDeviceInfo3);
|
| + var newDeviceInfo = fakeDeviceInfo3();
|
| newDeviceInfo.name_for_display = 'DDDD';
|
| newDeviceInfo.rssi = { value: -20 };
|
| newDeviceInfo.services = ['service1', 'service2', 'service3'];
|
| @@ -362,30 +396,30 @@ TEST_F('BluetoothInternalsTest', 'DISABLED_Startup_BluetoothInternals',
|
| });
|
|
|
| test('DeviceAddedRssiCheck', function() {
|
| - var devices = document.querySelectorAll('#device-table tbody tr');
|
| + var devices = deviceTable.querySelectorAll('tbody tr');
|
| expectEquals(EXPECTED_DEVICES, devices.length);
|
|
|
| // Copy device info because device collection will not copy this object.
|
| - var newDeviceInfo = Object.assign({}, fakeDeviceInfo3);
|
| + var newDeviceInfo = fakeDeviceInfo3();
|
| adapterBroker.adapterClient_.deviceAdded(newDeviceInfo);
|
|
|
| - var deviceRow = document.querySelector('#' + escapeDeviceAddress(
|
| + var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress(
|
| newDeviceInfo.address));
|
| var rssiColumn = deviceRow.children[2];
|
| expectEquals('Unknown', rssiColumn.textContent);
|
|
|
| - var newDeviceInfo1 = Object.assign({}, fakeDeviceInfo3);
|
| + var newDeviceInfo1 = fakeDeviceInfo3();
|
| newDeviceInfo1.rssi = {value: -42};
|
| adapterBroker.adapterClient_.deviceChanged(newDeviceInfo1);
|
| expectEquals('-42', rssiColumn.textContent);
|
|
|
| // Device table should keep last valid rssi value.
|
| - var newDeviceInfo2 = Object.assign({}, fakeDeviceInfo3);
|
| + var newDeviceInfo2 = fakeDeviceInfo3();
|
| newDeviceInfo2.rssi = null;
|
| adapterBroker.adapterClient_.deviceChanged(newDeviceInfo2);
|
| expectEquals('-42', rssiColumn.textContent);
|
|
|
| - var newDeviceInfo3 = Object.assign({}, fakeDeviceInfo3);
|
| + var newDeviceInfo3 = fakeDeviceInfo3();
|
| newDeviceInfo3.rssi = {value: -17};
|
| adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3);
|
| expectEquals('-17', rssiColumn.textContent);
|
|
|