Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview Tests for chrome://bluetooth-internals | 6 * @fileoverview Tests for chrome://bluetooth-internals |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 /** @const {string} Path to source root. */ | 9 /** @const {string} Path to source root. */ |
| 10 var ROOT_PATH = '../../../../'; | 10 var ROOT_PATH = '../../../../'; |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 220 address: "CC:CC:84:96:92:84", | 220 address: "CC:CC:84:96:92:84", |
| 221 name: "CCC", | 221 name: "CCC", |
| 222 name_for_display: "CCC", | 222 name_for_display: "CCC", |
| 223 }; | 223 }; |
| 224 }, | 224 }, |
| 225 }; | 225 }; |
| 226 | 226 |
| 227 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { | 227 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { |
| 228 var adapterFactory = null; | 228 var adapterFactory = null; |
| 229 var deviceTable = null; | 229 var deviceTable = null; |
| 230 var sidebarNode = null; | |
| 230 | 231 |
| 231 var fakeDeviceInfo1 = this.fakeDeviceInfo1; | 232 var fakeDeviceInfo1 = this.fakeDeviceInfo1; |
| 232 var fakeDeviceInfo2 = this.fakeDeviceInfo2; | 233 var fakeDeviceInfo2 = this.fakeDeviceInfo2; |
| 233 var fakeDeviceInfo3 = this.fakeDeviceInfo3; | 234 var fakeDeviceInfo3 = this.fakeDeviceInfo3; |
| 234 | 235 |
| 235 // Before tests are run, make sure setup completes. | 236 // Before tests are run, make sure setup completes. |
| 236 var setupPromise = this.setupResolver.promise.then(function() { | 237 var setupPromise = this.setupResolver.promise.then(function() { |
| 237 adapterFactory = this.adapterFactory; | 238 adapterFactory = this.adapterFactory; |
| 238 }.bind(this)); | 239 }.bind(this)); |
| 239 | 240 |
| 240 | |
| 241 suite('BluetoothInternalsUITest', function() { | 241 suite('BluetoothInternalsUITest', function() { |
| 242 var EXPECTED_DEVICES = 2; | 242 var EXPECTED_DEVICES = 2; |
| 243 | 243 |
| 244 suiteSetup(function() { | 244 suiteSetup(function() { |
| 245 return setupPromise.then(function() { | 245 return setupPromise.then(function() { |
| 246 return Promise.all([ | 246 return Promise.all([ |
| 247 adapterFactory.whenCalled('getAdapter'), | 247 adapterFactory.whenCalled('getAdapter'), |
| 248 adapterFactory.adapter.proxy.whenCalled('getInfo'), | 248 adapterFactory.adapter.proxy.whenCalled('getInfo'), |
| 249 adapterFactory.adapter.proxy.whenCalled('getDevices'), | 249 adapterFactory.adapter.proxy.whenCalled('getDevices'), |
| 250 adapterFactory.adapter.proxy.whenCalled('setClient'), | 250 adapterFactory.adapter.proxy.whenCalled('setClient'), |
| 251 ]); | 251 ]); |
| 252 }); | 252 }); |
| 253 }); | 253 }); |
| 254 | 254 |
| 255 setup(function() { | 255 setup(function() { |
| 256 deviceTable = document.querySelector('#devices table'); | 256 deviceTable = document.querySelector('#devices table'); |
| 257 sidebarNode = document.querySelector('#sidebar'); | |
| 257 devices.splice(0, devices.length); | 258 devices.splice(0, devices.length); |
| 258 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1()); | 259 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1()); |
| 259 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2()); | 260 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2()); |
| 260 }); | 261 }); |
| 261 | 262 |
| 262 teardown(function() { | 263 teardown(function() { |
| 263 adapterFactory.reset(); | 264 adapterFactory.reset(); |
|
ortuno
2016/12/12 23:24:48
I think you also want to reset the state of the si
mbrunson
2016/12/13 01:05:35
Done.
| |
| 264 }); | 265 }); |
| 265 | 266 |
| 266 /** | 267 /** |
| 267 * Updates device info and verifies the contents of the device table. | 268 * Updates device info and verifies the contents of the device table. |
| 268 * @param {!device_collection.DeviceInfo} deviceInfo | 269 * @param {!device_collection.DeviceInfo} deviceInfo |
| 269 */ | 270 */ |
| 270 function changeDevice(deviceInfo) { | 271 function changeDevice(deviceInfo) { |
| 271 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress( | 272 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress( |
| 272 deviceInfo.address)); | 273 deviceInfo.address)); |
| 273 var nameForDisplayColumn = deviceRow.children[0]; | 274 var nameForDisplayColumn = deviceRow.children[0]; |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 417 var newDeviceInfo2 = fakeDeviceInfo3(); | 418 var newDeviceInfo2 = fakeDeviceInfo3(); |
| 418 newDeviceInfo2.rssi = null; | 419 newDeviceInfo2.rssi = null; |
| 419 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo2); | 420 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo2); |
| 420 expectEquals('-42', rssiColumn.textContent); | 421 expectEquals('-42', rssiColumn.textContent); |
| 421 | 422 |
| 422 var newDeviceInfo3 = fakeDeviceInfo3(); | 423 var newDeviceInfo3 = fakeDeviceInfo3(); |
| 423 newDeviceInfo3.rssi = {value: -17}; | 424 newDeviceInfo3.rssi = {value: -17}; |
| 424 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3); | 425 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3); |
| 425 expectEquals('-17', rssiColumn.textContent); | 426 expectEquals('-17', rssiColumn.textContent); |
| 426 }); | 427 }); |
| 428 | |
| 429 /* Sidebar Tests */ | |
| 430 test('SidebarSetup', function() { | |
| 431 var sidebarItems = Array.from( | |
| 432 sidebarNode.querySelectorAll('.sidebar-content li')); | |
| 433 | |
| 434 ['devices'].forEach(function(pageName) { | |
| 435 var foundItem = sidebarItems.find(function(item) { | |
| 436 return item.dataset.pageName === pageName; | |
| 437 }); | |
| 438 | |
| 439 expectTrue(!!foundItem); | |
| 440 }); | |
| 441 }); | |
| 442 | |
| 443 test('SidebarOpenClose', function() { | |
|
ortuno
2016/12/12 23:24:48
Would it make sense to split these? That way inste
mbrunson
2016/12/13 01:05:35
Done.
| |
| 444 // Sidebar should be closed by default. | |
| 445 expectFalse(sidebarNode.classList.contains('open')); | |
| 446 | |
| 447 sidebarObj.open(); | |
| 448 expectTrue(sidebarNode.classList.contains('open')); | |
| 449 sidebarObj.close(); | |
| 450 expectFalse(sidebarNode.classList.contains('open')); | |
| 451 | |
| 452 // Multiple calls to open shouldn't change the state. | |
| 453 sidebarObj.open(); | |
| 454 sidebarObj.open(); | |
| 455 expectTrue(sidebarNode.classList.contains('open')); | |
| 456 | |
| 457 // Multiple calls to close shouldn't change the state. | |
| 458 sidebarObj.close(); | |
| 459 sidebarObj.close(); | |
| 460 expectFalse(sidebarNode.classList.contains('open')); | |
| 461 }); | |
| 427 }); | 462 }); |
| 428 | 463 |
| 429 // Run all registered tests. | 464 // Run all registered tests. |
| 430 mocha.run(); | 465 mocha.run(); |
| 431 }); | 466 }); |
| OLD | NEW |