|
|
Chromium Code Reviews
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... |
