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 2bfa1804bf53326bc901dd7393f30b3de8d7a799..8061da727eb29907cd44bffa36d22a61e99624bf 100644 |
--- a/chrome/test/data/webui/bluetooth_internals_browsertest.js |
+++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js |
@@ -228,10 +228,14 @@ GEN('#endif'); |
TEST_F('BluetoothInternalsTest', |
'MAYBE_Startup_BluetoothInternals', function() { |
+ /** @const */ var PageManager = cr.ui.pageManager.PageManager; |
+ |
var adapterFactory = null; |
+ var adapterFieldSet = null; |
var deviceTable = null; |
var sidebarNode = null; |
+ var fakeAdapterInfo = this.fakeAdapterInfo; |
var fakeDeviceInfo1 = this.fakeDeviceInfo1; |
var fakeDeviceInfo2 = this.fakeDeviceInfo2; |
var fakeDeviceInfo3 = this.fakeDeviceInfo3; |
@@ -256,6 +260,7 @@ TEST_F('BluetoothInternalsTest', |
}); |
setup(function() { |
+ adapterFieldSet = document.querySelector('#adapter fieldset'); |
deviceTable = document.querySelector('#devices table'); |
sidebarNode = document.querySelector('#sidebar'); |
devices.splice(0, devices.length); |
@@ -267,6 +272,7 @@ TEST_F('BluetoothInternalsTest', |
adapterFactory.reset(); |
sidebarObj.close(); |
snackbar.Snackbar.dismiss(true); |
+ PageManager.registeredPages['adapter'].setAdapterInfo(fakeAdapterInfo()); |
}); |
/** |
@@ -436,7 +442,7 @@ TEST_F('BluetoothInternalsTest', |
var sidebarItems = Array.from( |
sidebarNode.querySelectorAll('.sidebar-content li')); |
- ['devices'].forEach(function(pageName) { |
+ ['adapter', 'devices'].forEach(function(pageName) { |
expectTrue(sidebarItems.some(function(item) { |
return item.dataset.pageName === pageName; |
})); |
@@ -552,8 +558,56 @@ TEST_F('BluetoothInternalsTest', |
snackbar.Snackbar.dismiss(true); |
}); |
- }); |
+ /* AdapterPage Tests */ |
+ function checkAdapterFieldSet(adapterInfo) { |
+ for (var propName in adapterInfo) { |
+ var valueCell = adapterFieldSet.querySelector( |
+ '[data-field="' + propName + '"]'); |
+ var value = adapterInfo[propName]; |
+ |
+ if (typeof(value) === 'boolean') { |
+ expectEquals(value, valueCell.classList.contains('checked')); |
+ } else if (typeof(value) === 'string') { |
+ expectEquals(value, valueCell.textContent); |
+ } else { |
+ assert('boolean or string type expected but got ' + typeof(value)); |
+ } |
+ } |
+ } |
+ |
+ test('AdapterPage_DefaultState', function() { |
+ checkAdapterFieldSet(adapterFieldSet.value); |
+ }); |
+ |
+ test('AdapterPage_AdapterChanged', function() { |
+ var adapterInfo = adapterFieldSet.value; |
+ |
+ adapterInfo.present = !adapterInfo.present; |
+ adapterBroker.adapterClient_.presentChanged(adapterInfo.present); |
+ checkAdapterFieldSet(adapterInfo); |
+ |
+ adapterInfo.discovering = !adapterInfo.discovering; |
+ adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering); |
+ checkAdapterFieldSet(adapterInfo); |
+ }); |
+ |
+ test('AdapterPage_AdapterChanged_RepeatTwice', function() { |
+ var adapterInfo = adapterFieldSet.value; |
+ |
+ adapterInfo.present = !adapterInfo.present; |
+ adapterBroker.adapterClient_.presentChanged(adapterInfo.present); |
+ checkAdapterFieldSet(adapterInfo); |
+ adapterBroker.adapterClient_.presentChanged(adapterInfo.present); |
+ checkAdapterFieldSet(adapterInfo); |
+ |
+ adapterInfo.discovering = !adapterInfo.discovering; |
+ adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering); |
+ checkAdapterFieldSet(adapterInfo); |
+ adapterBroker.adapterClient_.discoveringChanged(adapterInfo.discovering); |
+ checkAdapterFieldSet(adapterInfo); |
+ }); |
+ }); |
// Run all registered tests. |
mocha.run(); |