|
|
Descriptionbluetooth: Add adapter page to internals page.
Adds BluetoothAdapter::Observer callbacks to Adapter implementation
for tracking changes in Adapter state including:
AdapterDiscoverableChanged
AdapterPoweredChanged
AdapterPresentChanged
Adds adapter page to display details about the current state of the adapter.
Adds ObjectFieldSet interface component for displaying properties of a JavaScript object.
Screenshot: https://goo.gl/photos/dCbsULiydMbiAtiJ9
BUG=651282
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
Patch Set 1 #Patch Set 2 : Add adapter changed callbacks #Patch Set 3 : Add/update tests #Patch Set 4 : Add/update tests #Patch Set 5 : Add object table, fix up tests #Patch Set 6 : Remove unused function #Patch Set 7 : Update tests #Patch Set 8 : Merge upstream, change style, update copyright #Patch Set 9 : Remove duplicate variables in bluetooth_internals #Patch Set 10 : Update comments #Patch Set 11 : Merge upstream, add AdapterProperty enum values #Patch Set 12 : Merge upstream #
Total comments: 6
Patch Set 13 : Fix flex, fix comments #Patch Set 14 : Fix comment, remove css rule #
Total comments: 2
Patch Set 15 : Update object fieldset comment #
Total comments: 6
Patch Set 16 : Fix comments, change object fieldset #
Total comments: 4
Patch Set 17 : Merge upstream #Dependent Patchsets: Messages
Total messages: 83 (58 generated)
Description was changed from ========== bluetooth: Add adapter page to internals page. Adds adapter page to display details about the current state of the adapter. BUG=651282 ========== to ========== bluetooth: Add adapter page to internals page. Adds adapter page to display details about the current state of the adapter. BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== bluetooth: Add adapter page to internals page. Adds adapter page to display details about the current state of the adapter. BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state. Adds adapter page to display details about the current state of the adapter. Screenshot: https://goo.gl/photos/yXVHAekeGbZywDf27 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...)
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...)
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
Description was changed from ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state. Adds adapter page to display details about the current state of the adapter. Screenshot: https://goo.gl/photos/yXVHAekeGbZywDf27 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state including: AdapterDiscoverableChanged AdapterPoweredChanged AdapterPresentChanged Adds adapter page to display details about the current state of the adapter. Adds ObjectFieldSet interface component for displaying properties of a JavaScript object. Screenshot: https://goo.gl/photos/yXVHAekeGbZywDf27 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
mbrunson@chromium.org changed reviewers: + scheib@chromium.org
LGTM... some notes for things to clean up before webui folks: https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/bluetooth_internals.css (right): https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/bluetooth_internals.css:320: display: flex; flex.... https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:6: * Javascript for Mojo interface helpers, served from This isn't a descriptive comment for the code module below. https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:23: * Decorates an element as a UI element class. Adds the header row. no header row these days.
Description was changed from ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state including: AdapterDiscoverableChanged AdapterPoweredChanged AdapterPresentChanged Adds adapter page to display details about the current state of the adapter. Adds ObjectFieldSet interface component for displaying properties of a JavaScript object. Screenshot: https://goo.gl/photos/yXVHAekeGbZywDf27 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state including: AdapterDiscoverableChanged AdapterPoweredChanged AdapterPresentChanged Adds adapter page to display details about the current state of the adapter. Adds ObjectFieldSet interface component for displaying properties of a JavaScript object. Screenshot: https://goo.gl/photos/bUzYfSEmogKSJYZ57 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state including: AdapterDiscoverableChanged AdapterPoweredChanged AdapterPresentChanged Adds adapter page to display details about the current state of the adapter. Adds ObjectFieldSet interface component for displaying properties of a JavaScript object. Screenshot: https://goo.gl/photos/bUzYfSEmogKSJYZ57 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== bluetooth: Add adapter page to internals page. Adds BluetoothAdapter::Observer callbacks to Adapter implementation for tracking changes in Adapter state including: AdapterDiscoverableChanged AdapterPoweredChanged AdapterPresentChanged Adds adapter page to display details about the current state of the adapter. Adds ObjectFieldSet interface component for displaying properties of a JavaScript object. Screenshot: https://goo.gl/photos/dCbsULiydMbiAtiJ9 BUG=651282 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Updated screenshot (added mobile as well). https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/bluetooth_internals.css (right): https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/bluetooth_internals.css:320: display: flex; On 2017/01/07 00:31:40, scheib wrote: > flex.... Done. https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:6: * Javascript for Mojo interface helpers, served from On 2017/01/07 00:31:40, scheib wrote: > This isn't a descriptive comment for the code module below. Done. https://codereview.chromium.org/2567983007/diff/220001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:23: * Decorates an element as a UI element class. Adds the header row. On 2017/01/07 00:31:40, scheib wrote: > no header row these days. Done.
mbrunson@chromium.org changed reviewers: + dcheng@chromium.org, dpapad@chromium.org
OWNERS review, please: dcheng: device/bluetooth/public/interfaces/adapter.mojom dpapad: chrome/browser/browser_resources.grd chrome/browser/resources/bluetooth_internals/adapter_broker.js chrome/browser/resources/bluetooth_internals/adapter_page.js chrome/browser/resources/bluetooth_internals/bluetooth_internals.css chrome/browser/resources/bluetooth_internals/bluetooth_internals.html chrome/browser/resources/bluetooth_internals/bluetooth_internals.js chrome/browser/resources/bluetooth_internals/object_fieldset.js chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.cc ui/webui/resources/images/cancel_red.svg ui/webui/resources/images/check_circle_green.svg
https://codereview.chromium.org/2567983007/diff/260001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/260001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:6: * Javascript for ObjectFieldSet, served from Describe at a high level a bit more what this is up to. Taking an object and emiting a fieldset with a series of rows for each object key value pair.
https://codereview.chromium.org/2567983007/diff/260001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/260001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:6: * Javascript for ObjectFieldSet, served from On 2017/01/07 01:46:20, scheib wrote: > Describe at a high level a bit more what this is up to. Taking an object and > emiting a fieldset with a series of rows for each object key value pair. Done.
mojo lgtm
https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/adapter_page.js (right): https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/adapter_page.js:23: * Page that contains an ObjectFieldSet that display the latest AdapterInfo. s/display/displays https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:51: this.nameMap_ = nameMap; Doesn't |this.value| and |this.nameMap_| need to be declared somewhere? https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:60: for (var propName in this.value) { Can you use Object.keys(this.value).forEach() instead of using for..in and then having to call hasOwnProperty()?
https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/adapter_page.js (right): https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/adapter_page.js:23: * Page that contains an ObjectFieldSet that display the latest AdapterInfo. On 2017/01/10 17:21:33, dpapad wrote: > s/display/displays Done. https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:51: this.nameMap_ = nameMap; On 2017/01/10 17:21:33, dpapad wrote: > Doesn't |this.value| and |this.nameMap_| need to be declared somewhere? Done. https://codereview.chromium.org/2567983007/diff/280001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:60: for (var propName in this.value) { On 2017/01/10 17:21:33, dpapad wrote: > Can you use Object.keys(this.value).forEach() instead of using for..in and then > having to call hasOwnProperty()? Done.
LGTM with nit. https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:37: /** @private {?Object<string, string>} */ Any reason you can't use a regular Map?
https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:37: /** @private {?Object<string, string>} */ On 2017/01/10 21:28:50, dpapad wrote: > Any reason you can't use a regular Map? I could use a regular Map. Since the classes that will use the ObjectFieldSet know what nameMap value they will use before runtime, I figured an Object would be simpler to use and initialize [1], but this is just a personal preference. I can change it if you think a Map would be better. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Obje...
https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:66: var name = this.nameMap_[propName] || propName; Regarding Map vs Object, I almost always prefer a call to Map#has(propName) instead of making an implicit boolean conversion like this one. It works in this case, because nameMap_ does not hold a 'null' value for any key, but as a reader/reviewer when I encounter a map implemented by a plain Object, I have to run through the entire code to make sure that this implicit boolean conversion is OK in this case. Having said that, I am OK with using a plain Object here, just explaining my rationale.
The CQ bit was checked by mbrunson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... File chrome/browser/resources/bluetooth_internals/object_fieldset.js (right): https://codereview.chromium.org/2567983007/diff/300001/chrome/browser/resourc... chrome/browser/resources/bluetooth_internals/object_fieldset.js:66: var name = this.nameMap_[propName] || propName; On 2017/01/10 22:51:43, dpapad wrote: > Regarding Map vs Object, I almost always prefer a call to Map#has(propName) > instead of making an implicit boolean conversion like this one. It works in this > case, because nameMap_ does not hold a 'null' value for any key, but as a > reader/reviewer when I encounter a map implemented by a plain Object, I have to > run through the entire code to make sure that this implicit boolean conversion > is OK in this case. > > Having said that, I am OK with using a plain Object here, just explaining my > rationale. Oh ok. Thanks for the explanation. I'll keep this in mind in the future.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mbrunson@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from scheib@chromium.org, dcheng@chromium.org Link to the patchset: https://codereview.chromium.org/2567983007/#ps300001 (title: "Fix comments, change object fieldset")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Failed to apply patch for chrome/test/data/webui/bluetooth_internals_browsertest.js: While running git apply --index -p1; error: patch failed: chrome/test/data/webui/bluetooth_internals_browsertest.js:65 error: chrome/test/data/webui/bluetooth_internals_browsertest.js: patch does not apply Patch: chrome/test/data/webui/bluetooth_internals_browsertest.js 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 998eeafafafe3babfe2019339e9215e1cfeee4a9..d68f2e729b15561639dc4e6590631976b308b9d9 100644 --- a/chrome/test/data/webui/bluetooth_internals_browsertest.js +++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js @@ -65,7 +65,7 @@ BluetoothInternalsTest.prototype = { ]); this.binding = new bindings.Binding(adapter.AdapterFactory, this); - this.adapter = new TestAdapter(); + this.adapter = new TestAdapterProxy(); this.adapterBinding_ = new bindings.Binding(adapter.Adapter, this.adapter); }; @@ -83,22 +83,6 @@ BluetoothInternalsTest.prototype = { }; /** - * A test adapter for the chrome://bluetooth-internals page. - * Must be used to create message pipe handle from test code. - * - * @constructor - */ - var TestAdapter = function() { - this.proxy = new TestAdapterProxy(); - }; - - TestAdapter.prototype = { - getInfo: function() { return this.proxy.getInfo(); }, - getDevices: function() { return this.proxy.getDevices(); }, - setClient: function(client) { return this.proxy.setClient(client); } - }; - - /** * A test adapter proxy for the chrome://bluetooth-internals page. * * @constructor @@ -146,11 +130,11 @@ BluetoothInternalsTest.prototype = { this.adapterFactory = new TestAdapterFactoryProxy(); this.adapterFactory.binding.bind(handle); - this.adapterFactory.adapter.proxy.setTestDevices([ + this.adapterFactory.adapter.setTestDevices([ this.fakeDeviceInfo1(), this.fakeDeviceInfo2(), ]); - this.adapterFactory.adapter.proxy.setTestAdapter( + this.adapterFactory.adapter.setTestAdapter( this.fakeAdapterInfo()); this.setupResolver.resolve(); @@ -219,10 +203,14 @@ BluetoothInternalsTest.prototype = { }; TEST_F('BluetoothInternalsTest', '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; @@ -239,14 +227,15 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { return setupPromise.then(function() { return Promise.all([ adapterFactory.whenCalled('getAdapter'), - adapterFactory.adapter.proxy.whenCalled('getInfo'), - adapterFactory.adapter.proxy.whenCalled('getDevices'), - adapterFactory.adapter.proxy.whenCalled('setClient'), + adapterFactory.adapter.whenCalled('getInfo'), + adapterFactory.adapter.whenCalled('getDevices'), + adapterFactory.adapter.whenCalled('setClient'), ]); }); }); setup(function() { + adapterFieldSet = document.querySelector('#adapter fieldset'); deviceTable = document.querySelector('#devices table'); sidebarNode = document.querySelector('#sidebar'); devices.splice(0, devices.length); @@ -258,6 +247,7 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { adapterFactory.reset(); sidebarObj.close(); snackbar.Snackbar.dismiss(true); + PageManager.registeredPages['adapter'].setAdapterInfo(fakeAdapterInfo()); }); /** @@ -427,7 +417,7 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { 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; })); @@ -561,8 +551,56 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { expectFalse(!!snackbar.Snackbar.current_); }).then(finishSnackbarTest); }); - }); + /* 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();
The CQ bit was checked by mbrunson@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from scheib@chromium.org, dcheng@chromium.org, dpapad@chromium.org Link to the patchset: https://codereview.chromium.org/2567983007/#ps320001 (title: "Merge upstream")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: android_compile_dbg on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_comp...)
The CQ bit was checked by mbrunson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 320001, "attempt_start_ts": 1484173029692460, "parent_rev": "db4968cfc7814d6fd5df1573d6213fbbf3a872ad", "commit_rev": "e8e6d1fccf2d905f5313dde6f8a06706b19dc6ac"}
The CQ bit was unchecked by commit-bot@chromium.org
Prior attempt to commit was detected, but we were not able to check whether the issue was successfully committed. Please check Git history manually and re-check CQ or close this issue as needed.
The CQ bit was checked by mbrunson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
The CQ bit was checked by mbrunson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
The CQ bit was checked by mbrunson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by mbrunson@chromium.org
Message was sent while issue was closed.
On 2017/01/12 20:57:53, commit-bot: I haz the power wrote: > CQ is trying da patch. Follow status at > > https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or... Patch Set 17 landed: https://chromium.googlesource.com/chromium/src/+/e8e6d1fccf2d905f5313dde6f8a0... |