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

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

Issue 2567983007: bluetooth: Add adapter page to internals page. (Closed)
Patch Set: Merge upstream 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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 fakeDeviceInfo3: function() { 196 fakeDeviceInfo3: function() {
197 return { 197 return {
198 address: "CC:CC:84:96:92:84", 198 address: "CC:CC:84:96:92:84",
199 name: "CCC", 199 name: "CCC",
200 name_for_display: "CCC", 200 name_for_display: "CCC",
201 }; 201 };
202 }, 202 },
203 }; 203 };
204 204
205 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { 205 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() {
206 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
207
206 var adapterFactory = null; 208 var adapterFactory = null;
209 var adapterFieldSet = null;
207 var deviceTable = null; 210 var deviceTable = null;
208 var sidebarNode = null; 211 var sidebarNode = null;
209 212
213 var fakeAdapterInfo = this.fakeAdapterInfo;
210 var fakeDeviceInfo1 = this.fakeDeviceInfo1; 214 var fakeDeviceInfo1 = this.fakeDeviceInfo1;
211 var fakeDeviceInfo2 = this.fakeDeviceInfo2; 215 var fakeDeviceInfo2 = this.fakeDeviceInfo2;
212 var fakeDeviceInfo3 = this.fakeDeviceInfo3; 216 var fakeDeviceInfo3 = this.fakeDeviceInfo3;
213 217
214 // Before tests are run, make sure setup completes. 218 // Before tests are run, make sure setup completes.
215 var setupPromise = this.setupResolver.promise.then(function() { 219 var setupPromise = this.setupResolver.promise.then(function() {
216 adapterFactory = this.adapterFactory; 220 adapterFactory = this.adapterFactory;
217 }.bind(this)); 221 }.bind(this));
218 222
219 suite('BluetoothInternalsUITest', function() { 223 suite('BluetoothInternalsUITest', function() {
220 var EXPECTED_DEVICES = 2; 224 var EXPECTED_DEVICES = 2;
221 225
222 suiteSetup(function() { 226 suiteSetup(function() {
223 return setupPromise.then(function() { 227 return setupPromise.then(function() {
224 return Promise.all([ 228 return Promise.all([
225 adapterFactory.whenCalled('getAdapter'), 229 adapterFactory.whenCalled('getAdapter'),
226 adapterFactory.adapter.whenCalled('getInfo'), 230 adapterFactory.adapter.whenCalled('getInfo'),
227 adapterFactory.adapter.whenCalled('getDevices'), 231 adapterFactory.adapter.whenCalled('getDevices'),
228 adapterFactory.adapter.whenCalled('setClient'), 232 adapterFactory.adapter.whenCalled('setClient'),
229 ]); 233 ]);
230 }); 234 });
231 }); 235 });
232 236
233 setup(function() { 237 setup(function() {
238 adapterFieldSet = document.querySelector('#adapter fieldset');
234 deviceTable = document.querySelector('#devices table'); 239 deviceTable = document.querySelector('#devices table');
235 sidebarNode = document.querySelector('#sidebar'); 240 sidebarNode = document.querySelector('#sidebar');
236 devices.splice(0, devices.length); 241 devices.splice(0, devices.length);
237 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1()); 242 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo1());
238 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2()); 243 adapterBroker.adapterClient_.deviceAdded(fakeDeviceInfo2());
239 }); 244 });
240 245
241 teardown(function() { 246 teardown(function() {
242 adapterFactory.reset(); 247 adapterFactory.reset();
243 sidebarObj.close(); 248 sidebarObj.close();
244 snackbar.Snackbar.dismiss(true); 249 snackbar.Snackbar.dismiss(true);
250 PageManager.registeredPages['adapter'].setAdapterInfo(fakeAdapterInfo());
245 }); 251 });
246 252
247 /** 253 /**
248 * Updates device info and verifies the contents of the device table. 254 * Updates device info and verifies the contents of the device table.
249 * @param {!device_collection.DeviceInfo} deviceInfo 255 * @param {!device_collection.DeviceInfo} deviceInfo
250 */ 256 */
251 function changeDevice(deviceInfo) { 257 function changeDevice(deviceInfo) {
252 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress( 258 var deviceRow = deviceTable.querySelector('#' + escapeDeviceAddress(
253 deviceInfo.address)); 259 deviceInfo.address));
254 var nameForDisplayColumn = deviceRow.children[0]; 260 var nameForDisplayColumn = deviceRow.children[0];
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 newDeviceInfo3.rssi = {value: -17}; 410 newDeviceInfo3.rssi = {value: -17};
405 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3); 411 adapterBroker.adapterClient_.deviceChanged(newDeviceInfo3);
406 expectEquals('-17', rssiColumn.textContent); 412 expectEquals('-17', rssiColumn.textContent);
407 }); 413 });
408 414
409 /* Sidebar Tests */ 415 /* Sidebar Tests */
410 test('Sidebar_Setup', function() { 416 test('Sidebar_Setup', function() {
411 var sidebarItems = Array.from( 417 var sidebarItems = Array.from(
412 sidebarNode.querySelectorAll('.sidebar-content li')); 418 sidebarNode.querySelectorAll('.sidebar-content li'));
413 419
414 ['devices'].forEach(function(pageName) { 420 ['adapter', 'devices'].forEach(function(pageName) {
415 expectTrue(sidebarItems.some(function(item) { 421 expectTrue(sidebarItems.some(function(item) {
416 return item.dataset.pageName === pageName; 422 return item.dataset.pageName === pageName;
417 })); 423 }));
418 }); 424 });
419 }); 425 });
420 426
421 test('Sidebar_DefaultState', function() { 427 test('Sidebar_DefaultState', function() {
422 // Sidebar should be closed by default. 428 // Sidebar should be closed by default.
423 expectFalse(sidebarNode.classList.contains('open')); 429 expectFalse(sidebarNode.classList.contains('open'));
424 }); 430 });
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 whenSnackbarShows(snackbar3).then(next); 544 whenSnackbarShows(snackbar3).then(next);
539 snackbar3.addEventListener('dismissed', next); 545 snackbar3.addEventListener('dismissed', next);
540 546
541 whenSnackbarShows(snackbar1).then(function() { 547 whenSnackbarShows(snackbar1).then(function() {
542 return snackbar.Snackbar.dismiss(true); 548 return snackbar.Snackbar.dismiss(true);
543 }).then(function() { 549 }).then(function() {
544 expectEquals(0, snackbar.Snackbar.queue_.length); 550 expectEquals(0, snackbar.Snackbar.queue_.length);
545 expectFalse(!!snackbar.Snackbar.current_); 551 expectFalse(!!snackbar.Snackbar.current_);
546 }).then(finishSnackbarTest); 552 }).then(finishSnackbarTest);
547 }); 553 });
554
555 /* AdapterPage Tests */
556 function checkAdapterFieldSet(adapterInfo) {
557 for (var propName in adapterInfo) {
558 var valueCell = adapterFieldSet.querySelector(
559 '[data-field="' + propName + '"]');
560 var value = adapterInfo[propName];
561
562 if (typeof(value) === 'boolean') {
563 expectEquals(value, valueCell.classList.contains('checked'));
564 } else if (typeof(value) === 'string') {
565 expectEquals(value, valueCell.textContent);
566 } else {
567 assert('boolean or string type expected but got ' + typeof(value));
568 }
569 }
570 }
571
572 test('AdapterPage_DefaultState', function() {
573 checkAdapterFieldSet(adapterFieldSet.value);
574 });
575
576 test('AdapterPage_AdapterChanged', function() {
577 var adapterInfo = adapterFieldSet.value;
578
579 adapterInfo.present = !adapterInfo.present;
580 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
581 checkAdapterFieldSet(adapterInfo);
582
583 adapterInfo.discovering = !adapterInfo.discovering;
584 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
585 checkAdapterFieldSet(adapterInfo);
586 });
587
588 test('AdapterPage_AdapterChanged_RepeatTwice', function() {
589 var adapterInfo = adapterFieldSet.value;
590
591 adapterInfo.present = !adapterInfo.present;
592 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
593 checkAdapterFieldSet(adapterInfo);
594 adapterBroker.adapterClient_.presentChanged(adapterInfo.present);
595 checkAdapterFieldSet(adapterInfo);
596
597 adapterInfo.discovering = !adapterInfo.discovering;
598 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
599 checkAdapterFieldSet(adapterInfo);
600 adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering);
601 checkAdapterFieldSet(adapterInfo);
602 });
548 }); 603 });
549 604
550
551 // Run all registered tests. 605 // Run all registered tests.
552 mocha.run(); 606 mocha.run();
553 }); 607 });
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