Commit c852c5b4 authored by Zentaro Kavanagh's avatar Zentaro Kavanagh Committed by Commit Bot

Diagnostics: Wire up getBatteryInfo to battery status card

Bug: 1125150
Test: browser_tests --gtest_filter=DiagnosticsApp*
Change-Id: I5638cdb0e9556a9030f3a04b6c5c0420cec3a5ab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2420570Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Commit-Queue: Zentaro Kavanagh <zentaro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809580}
parent 2ca8e7a2
......@@ -7,7 +7,7 @@ import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
import 'chrome://diagnostics/diagnostics_app.js';
import {SystemDataProviderInterface} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeSystemInfo} from 'chrome://diagnostics/fake_data.js';
import {fakeBatteryInfo, fakeSystemInfo} from 'chrome://diagnostics/fake_data.js';
import {FakeMethodResolver} from 'chrome://diagnostics/fake_method_resolver.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
......@@ -115,9 +115,16 @@ suite('BatteryStatusCardTest', () => {
provider = null;
});
function initializeBatteryStatusCard() {
/**
* @param {!BatteryInfo} batteryInfo
* @return {!Promise}
*/
function initializeBatteryStatusCard(batteryInfo) {
assertFalse(!!batteryStatusElement);
// Initialize the fake data.
provider.setFakeBatteryInfo(batteryInfo);
// Add the battery status card to the DOM.
batteryStatusElement = document.createElement('battery-status-card');
assertTrue(!!batteryStatusElement);
......@@ -126,11 +133,14 @@ suite('BatteryStatusCardTest', () => {
return flushTasks();
}
test('BatterStatusCardPopulated', () => {
return initializeBatteryStatusCard().then(() => {
test('BatteryStatusCardPopulated', () => {
return initializeBatteryStatusCard(fakeBatteryInfo).then(() => {
// TODO(zentaro): Update when strings are finalized.
assertEquals(
'Battery Status', batteryStatusElement.$$('#cardTitle').textContent);
assertEquals(
fakeBatteryInfo.manufacturer,
batteryStatusElement.$$('#manufacturer').textContent);
});
});
});
......@@ -324,4 +334,11 @@ suite('FakeSystemDataProviderTest', () => {
assertDeepEquals(expected, systemInfo);
});
});
test('GetBatteryInfo', () => {
provider.setFakeBatteryInfo(fakeBatteryInfo);
return provider.getBatteryInfo().then((batteryInfo) => {
assertDeepEquals(fakeBatteryInfo, batteryInfo);
});
});
});
......@@ -7,5 +7,6 @@
<div id="cardTitle">Battery Status</div>
</div>
<div slot="body">
<div id="manufacturer">[[batteryInfo_.manufacturer]]</div>
</div>
</diagnostics-card>
......@@ -6,7 +6,7 @@ import './diagnostics_card.js';
import './diagnostics_shared_css.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {SystemDataProviderInterface} from './diagnostics_types.js'
import {BatteryInfo, SystemDataProviderInterface} from './diagnostics_types.js'
import {getSystemDataProvider} from './mojo_interface_provider.js';
/**
......@@ -23,9 +23,31 @@ Polymer({
*/
systemDataProvider_: null,
properties: {
/** @private {!BatteryInfo} */
batteryInfo_: {
type: Object,
},
},
/** @override */
created() {
this.systemDataProvider_ = getSystemDataProvider();
this.fetchBatteryInfo_();
},
/** @private */
fetchBatteryInfo_() {
this.systemDataProvider_.getBatteryInfo().then(
this.onBatteryInfoReceived_.bind(this));
},
/**
* @param {!BatteryInfo} batteryInfo
* @private
*/
onBatteryInfoReceived_(batteryInfo) {
this.batteryInfo_ = batteryInfo;
},
});
......@@ -14,7 +14,8 @@
* Type alias for the SystemDataProviderInterface.
* TODO(zentaro): Replace with a real mojo type when implemented.
* @typedef {{
* getSystemInfo: !function(): !Promise<!SystemInfo>
* getBatteryInfo: !function(): !Promise<!BatteryInfo>,
* getSystemInfo: !function(): !Promise<!SystemInfo>,
* }}
*/
export let SystemDataProviderInterface;
......@@ -47,3 +48,12 @@ export let VersionInfo;
* }}
*/
export let SystemInfo;
/**
* Type alias for BatteryInfo.
* @typedef {{
* charge_full_design_milliamp_hours: number,
* manufacturer: string,
* }}
*/
export let BatteryInfo;
......@@ -4,6 +4,12 @@
import {SystemInfo} from './diagnostics_types.js'
/* @type {!BatteryInfo} */
export const fakeBatteryInfo = {
charge_full_design_milliamp_hours: 6000,
manufacturer: 'BatterCorp USA',
};
/* @type {!SystemInfo} */
export const fakeSystemInfo = {
board_name: 'CrOS Board',
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {SystemInfo} from './diagnostics_types.js';
import {BatteryInfo, SystemInfo} from './diagnostics_types.js';
import {FakeMethodResolver} from './fake_method_resolver.js';
/**
......@@ -17,6 +17,7 @@ export class FakeSystemDataProvider {
// Setup method resolvers.
this.methods_.register('getSystemInfo');
this.methods_.register('getBatteryInfo');
}
/**
......@@ -33,4 +34,20 @@ export class FakeSystemDataProvider {
setFakeSystemInfo(systemInfo) {
this.methods_.setResult('getSystemInfo', systemInfo);
}
/**
* Implements SystemDataProviderInterface.GetBatteryInfo.
* @return {!Promise<!BatteryInfo>}
*/
getBatteryInfo() {
return this.methods_.resolveMethod('getBatteryInfo');
}
/**
* Sets the value that will be returned when calling getBatteryInfo().
* @param {!BatteryInfo} batteryInfo
*/
setFakeBatteryInfo(batteryInfo) {
this.methods_.setResult('getBatteryInfo', batteryInfo);
}
}
......@@ -4,7 +4,7 @@
import {assert} from 'chrome://resources/js/assert.m.js';
import {SystemDataProviderInterface, SystemInfo} from './diagnostics_types.js'
import {fakeSystemInfo} from './fake_data.js'
import {fakeBatteryInfo, fakeSystemInfo} from './fake_data.js'
import {FakeSystemDataProvider} from './fake_system_data_provider.js'
/**
......@@ -21,7 +21,8 @@ function setupFakeSystemDataProvider_() {
// Create provider.
let provider = new FakeSystemDataProvider();
// Setup SystemInfo
// Setup fake method data.
provider.setFakeBatteryInfo(fakeBatteryInfo);
provider.setFakeSystemInfo(fakeSystemInfo);
// Set the fake provider.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment