Chromium Code Reviews| 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..2775010864f94ad056dfad9d55caaabf6815914f 100644 |
| --- a/chrome/test/data/webui/bluetooth_internals_browsertest.js |
| +++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js |
| @@ -122,12 +122,12 @@ BluetoothInternalsTest.prototype = { |
| getInfo: function() { |
| this.methodCalled('getInfo'); |
| - return Promise.resolve({info: this.adapterInfo_}); |
| + return Promise.resolve({info: this.adapterInfo_}); |
|
ortuno
2016/12/08 05:37:31
nit: tabbing.
mbrunson
2016/12/08 19:31:08
Done.
|
| }, |
| getDevices: function() { |
| this.methodCalled('getDevices'); |
| - return Promise.resolve({devices: this.devices_}); |
| + return Promise.resolve({devices: this.devices_}); |
|
ortuno
2016/12/08 05:37:31
nit: tabbing.
mbrunson
2016/12/08 19:31:08
Done.
|
| }, |
| setClient: function(client) { |
| @@ -148,52 +148,90 @@ BluetoothInternalsTest.prototype = { |
| 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 +244,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 +254,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 +269,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 +313,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 +323,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 +341,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 +374,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 +397,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); |