Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: chrome/test/data/webui/bluetooth_internals_browsertest.js

Issue 2567983007: bluetooth: Add adapter page to internals page. (Closed)
Patch Set: Update comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 // Fails on Win/Mac. https://crbug.com/676227 221 // Fails on Win/Mac. https://crbug.com/676227
222 GEN('#if defined(OS_MACOSX) || defined(OS_WIN)'); 222 GEN('#if defined(OS_MACOSX) || defined(OS_WIN)');
223 GEN('#define MAYBE_Startup_BluetoothInternals \\'); 223 GEN('#define MAYBE_Startup_BluetoothInternals \\');
224 GEN(' DISABLED_Startup_BluetoothInternals'); 224 GEN(' DISABLED_Startup_BluetoothInternals');
225 GEN('#else'); 225 GEN('#else');
226 GEN('#define MAYBE_Startup_BluetoothInternals Startup_BluetoothInternals'); 226 GEN('#define MAYBE_Startup_BluetoothInternals Startup_BluetoothInternals');
227 GEN('#endif'); 227 GEN('#endif');
228 228
229 TEST_F('BluetoothInternalsTest', 229 TEST_F('BluetoothInternalsTest',
230 'MAYBE_Startup_BluetoothInternals', function() { 230 'MAYBE_Startup_BluetoothInternals', function() {
231 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
232
231 var adapterFactory = null; 233 var adapterFactory = null;
234 var adapterFieldSet = null;
232 var deviceTable = null; 235 var deviceTable = null;
233 var sidebarNode = null; 236 var sidebarNode = null;
234 237
238 var fakeAdapterInfo = this.fakeAdapterInfo;
235 var fakeDeviceInfo1 = this.fakeDeviceInfo1; 239 var fakeDeviceInfo1 = this.fakeDeviceInfo1;
236 var fakeDeviceInfo2 = this.fakeDeviceInfo2; 240 var fakeDeviceInfo2 = this.fakeDeviceInfo2;
237 var fakeDeviceInfo3 = this.fakeDeviceInfo3; 241 var fakeDeviceInfo3 = this.fakeDeviceInfo3;
238 242
239 // Before tests are run, make sure setup completes. 243 // Before tests are run, make sure setup completes.
240 var setupPromise = this.setupResolver.promise.then(function() { 244 var setupPromise = this.setupResolver.promise.then(function() {
241 adapterFactory = this.adapterFactory; 245 adapterFactory = this.adapterFactory;
242 }.bind(this)); 246 }.bind(this));
243 247
244 suite('BluetoothInternalsUITest', function() { 248 suite('BluetoothInternalsUITest', function() {
245 var EXPECTED_DEVICES = 2; 249 var EXPECTED_DEVICES = 2;
246 250
247 suiteSetup(function() { 251 suiteSetup(function() {
248 return setupPromise.then(function() { 252 return setupPromise.then(function() {
249 return Promise.all([ 253 return Promise.all([
250 adapterFactory.whenCalled('getAdapter'), 254 adapterFactory.whenCalled('getAdapter'),
251 adapterFactory.adapter.proxy.whenCalled('getInfo'), 255 adapterFactory.adapter.proxy.whenCalled('getInfo'),
252 adapterFactory.adapter.proxy.whenCalled('getDevices'), 256 adapterFactory.adapter.proxy.whenCalled('getDevices'),
253 adapterFactory.adapter.proxy.whenCalled('setClient'), 257 adapterFactory.adapter.proxy.whenCalled('setClient'),
254 ]); 258 ]);
255 }); 259 });
256 }); 260 });
257 261
258 setup(function() { 262 setup(function() {
263 adapterFieldSet = document.querySelector('#adapter fieldset');
259 deviceTable = document.querySelector('#devices table'); 264 deviceTable = document.querySelector('#devices table');
260 sidebarNode = document.querySelector('#sidebar'); 265 sidebarNode = document.querySelector('#sidebar');
261 devices.splice(0, devices.length); 266 devices.splice(0, devices.length);
262 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1()); 267 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1());
263 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2()); 268 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2());
264 }); 269 });
265 270
266 teardown(function() { 271 teardown(function() {
267 adapterFactory.reset(); 272 adapterFactory.reset();
268 sidebarObj.close(); 273 sidebarObj.close();
269 snackbar.Snackbar.dismiss(true); 274 snackbar.Snackbar.dismiss(true);
275 PageManager.registeredPages['adapter'].setAdapterInfo(fakeAdapterInfo());
270 }); 276 });
271 277
272 /** 278 /**
273 * Updates device info and verifies the contents of the device table. 279 * Updates device info and verifies the contents of the device table.
274 * @param {!device_collection.DeviceInfo} deviceInfo 280 * @param {!device_collection.DeviceInfo} deviceInfo
275 */ 281 */
276 function changeDevice(deviceInfo) { 282 function changeDevice(deviceInfo) {
277 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress( 283 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress(
278 deviceInfo.address)); 284 deviceInfo.address));
279 var nameForDisplayColumn = deviceRow.children[0]; 285 var nameForDisplayColumn = deviceRow.children[0];
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 newDeviceInfo3.rssi = {value: -17}; 435 newDeviceInfo3.rssi = {value: -17};
430 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3); 436 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3);
431 expectEquals('-17', rssiColumn.textContent); 437 expectEquals('-17', rssiColumn.textContent);
432 }); 438 });
433 439
434 /* Sidebar Tests */ 440 /* Sidebar Tests */
435 test('Sidebar_Setup', function() { 441 test('Sidebar_Setup', function() {
436 var sidebarItems = Array.from( 442 var sidebarItems = Array.from(
437 sidebarNode.querySelectorAll('.sidebar-content li')); 443 sidebarNode.querySelectorAll('.sidebar-content li'));
438 444
439 ['devices'].forEach(function(pageName) { 445 ['adapter', 'devices'].forEach(function(pageName) {
440 expectTrue(sidebarItems.some(function(item) { 446 expectTrue(sidebarItems.some(function(item) {
441 return item.dataset.pageName === pageName; 447 return item.dataset.pageName === pageName;
442 })); 448 }));
443 }); 449 });
444 }); 450 });
445 451
446 test('Sidebar_DefaultState', function() { 452 test('Sidebar_DefaultState', function() {
447 // Sidebar should be closed by default. 453 // Sidebar should be closed by default.
448 expectFalse(sidebarNode.classList.contains('open')); 454 expectFalse(sidebarNode.classList.contains('open'));
449 }); 455 });
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 expectFalse(!!snackbar.Snackbar.current_); 551 expectFalse(!!snackbar.Snackbar.current_);
546 snackbar.Snackbar.dismiss(); 552 snackbar.Snackbar.dismiss();
547 553
548 finishSnackbarTest(done); 554 finishSnackbarTest(done);
549 }); 555 });
550 snackbar2.addEventListener('dismissed', next); 556 snackbar2.addEventListener('dismissed', next);
551 snackbar3.addEventListener('dismissed', next); 557 snackbar3.addEventListener('dismissed', next);
552 558
553 snackbar.Snackbar.dismiss(true); 559 snackbar.Snackbar.dismiss(true);
554 }); 560 });
561
562 /* AdapterPage Tests */
563 function checkAdapterFieldSet(adapterInfo) {
564 for (var propName in adapterInfo) {
565 var valueCell = adapterFieldSet.querySelector(
566 '[data-field="' + propName + '"]');
567 var value = adapterInfo[propName];
568
569 if (typeof(value) === 'boolean') {
570 expectEquals(value, valueCell.classList.contains('checked'));
571 } else if (typeof(value) === 'string') {
572 expectEquals(value, valueCell.textContent);
573 } else {
574 assert('boolean or string type expected but got ' + typeof(value));
575 }
576 }
577 }
578
579 test('AdapterPage_DefaultState', function() {
580 checkAdapterFieldSet(adapterFieldSet.value);
581 });
582
583 test('AdapterPage_AdapterChanged', function() {
584 var adapterInfo = adapterFieldSet.value;
585
586 adapterInfo.present = !adapterInfo.present;
587 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
588 checkAdapterFieldSet(adapterInfo);
589
590 adapterInfo.discovering = !adapterInfo.discovering;
591 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
592 checkAdapterFieldSet(adapterInfo);
593 });
594
595 test('AdapterPage_AdapterChanged_RepeatTwice', function() {
596 var adapterInfo = adapterFieldSet.value;
597
598 adapterInfo.present = !adapterInfo.present;
599 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
600 checkAdapterFieldSet(adapterInfo);
601 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
602 checkAdapterFieldSet(adapterInfo);
603
604 adapterInfo.discovering = !adapterInfo.discovering;
605 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
606 checkAdapterFieldSet(adapterInfo);
607 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
608 checkAdapterFieldSet(adapterInfo);
609 });
555 }); 610 });
556 611
557
558 // Run all registered tests. 612 // Run all registered tests.
559 mocha.run(); 613 mocha.run();
560 }); 614 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.cc ('k') | device/bluetooth/adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698