Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
157 lines
4.4 KiB
JavaScript
Executable file
157 lines
4.4 KiB
JavaScript
Executable file
/* global define */
|
|
'use strict';
|
|
|
|
suite('Battery', function() {
|
|
var sandbox = sinon.sandbox.create();
|
|
var MockPlatformBattery;
|
|
var map = {
|
|
'modules/battery': {
|
|
'modules/navigator/battery': 'MockPlatformBattery'
|
|
}
|
|
};
|
|
|
|
// Load a new Batery instance
|
|
var loadBattery = function(callback) {
|
|
var requireCtx = testRequire([], map, function() {});
|
|
define('MockPlatformBattery', function() {
|
|
return MockPlatformBattery;
|
|
});
|
|
requireCtx(['modules/battery'], callback);
|
|
};
|
|
|
|
setup(function() {
|
|
MockPlatformBattery = {
|
|
charging: null,
|
|
level: null,
|
|
addEventListener: function() {}
|
|
};
|
|
});
|
|
|
|
teardown(function() {
|
|
sandbox.restore();
|
|
});
|
|
|
|
suite('return correct values when initialized', function() {
|
|
test('charging', function(done) {
|
|
MockPlatformBattery.charging = true;
|
|
MockPlatformBattery.level = 0.5;
|
|
MockPlatformBattery.chargingTime = 13337;
|
|
MockPlatformBattery.dischargingTime = Infinity;
|
|
|
|
loadBattery(function(Battery) {
|
|
assert.equal(Battery.level, 50);
|
|
assert.equal(Battery.state, 'charging');
|
|
assert.equal(Battery.chargingTime, 13337);
|
|
assert.equal(Battery.dischargingTime, Infinity);
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('charged', function(done) {
|
|
MockPlatformBattery.charging = true;
|
|
MockPlatformBattery.level = 1;
|
|
|
|
loadBattery(function(Battery) {
|
|
assert.equal(Battery.level, 100);
|
|
assert.equal(Battery.state, 'charged');
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('unplugged', function(done) {
|
|
MockPlatformBattery.charging = false;
|
|
MockPlatformBattery.level = 1;
|
|
|
|
loadBattery(function(Battery) {
|
|
assert.equal(Battery.level, 100);
|
|
assert.equal(Battery.state, 'unplugged');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
suite('status changes', function() {
|
|
test('should reflect level changes', function(done) {
|
|
sandbox.spy(MockPlatformBattery, 'addEventListener');
|
|
MockPlatformBattery.level = 0.5;
|
|
|
|
loadBattery(function(Battery) {
|
|
assert.equal(Battery.level, 50);
|
|
// change the level
|
|
MockPlatformBattery.level = 0.51;
|
|
// emit the event
|
|
MockPlatformBattery.addEventListener.args.some(function(arg) {
|
|
if (arg[0] === 'levelchange') {
|
|
arg[1].call();
|
|
return true;
|
|
}
|
|
});
|
|
assert.equal(Battery.level, 51);
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('should reflect state changes', function(done) {
|
|
sandbox.spy(MockPlatformBattery, 'addEventListener');
|
|
MockPlatformBattery.charging = false;
|
|
MockPlatformBattery.level = 1;
|
|
|
|
loadBattery(function(Battery) {
|
|
assert.equal(Battery.state, 'unplugged');
|
|
// change the state
|
|
MockPlatformBattery.charging = true;
|
|
// emit the event
|
|
MockPlatformBattery.addEventListener.args.some(function(arg) {
|
|
if (arg[0] === 'chargingchange') {
|
|
arg[1].call();
|
|
return true;
|
|
}
|
|
});
|
|
assert.equal(Battery.state, 'charged');
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('should reflect chargingTime changes', function(done) {
|
|
sandbox.spy(MockPlatformBattery, 'addEventListener');
|
|
MockPlatformBattery.charging = true;
|
|
MockPlatformBattery.level = 10;
|
|
MockPlatformBattery.chargingTime = 13337;
|
|
|
|
loadBattery(function(Battery) {
|
|
// change the state
|
|
MockPlatformBattery.chargingTime = 13337 - 1337;
|
|
// emit the event
|
|
MockPlatformBattery.addEventListener.args.some(function(arg) {
|
|
if (arg[0] === 'chargingtimechange') {
|
|
arg[1].call();
|
|
return true;
|
|
}
|
|
});
|
|
assert.equal(Battery.chargingTime, 13337 - 1337);
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('should reflect dischargingTime changes', function(done) {
|
|
sandbox.spy(MockPlatformBattery, 'addEventListener');
|
|
MockPlatformBattery.charging = false;
|
|
MockPlatformBattery.level = 9;
|
|
MockPlatformBattery.dischargingTime = 13337;
|
|
|
|
loadBattery(function(Battery) {
|
|
// change the state
|
|
MockPlatformBattery.dischargingTime = 13337 - 1337;
|
|
// emit the event
|
|
MockPlatformBattery.addEventListener.args.some(function(arg) {
|
|
if (arg[0] === 'dischargingtimechange') {
|
|
arg[1].call();
|
|
return true;
|
|
}
|
|
});
|
|
assert.equal(Battery.dischargingTime, 13337 - 1337);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|