forked from mozilla-b2g/gaia
/
power_save_test.js
61 lines (49 loc) · 1.64 KB
/
power_save_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
'use strict';
/* global MocksHelper, MockNavigatorSettings, MockSettingsListener,
PowerSave, MockBluetooth */
requireApp('system/test/unit/mock_navigator_battery.js');
requireApp('system/shared/test/unit/mocks/mock_settings_listener.js');
requireApp('system/test/unit/mock_bluetooth.js');
requireApp('system/js/power_save.js');
var mocksForPowerSave = new MocksHelper([
'SettingsListener'
]).init();
suite('power save >', function() {
var realBluetooth;
var subject;
mocksForPowerSave.attachTestHelpers();
suiteSetup(function() {
realBluetooth = window.Bluetooth;
window.Bluetooth = MockBluetooth;
subject = new PowerSave();
});
suiteTeardown(function() {
window.Bluetooth = realBluetooth;
});
suite('restores state >', function() {
test('restores all states', function() {
sinon.spy(window, 'dispatchEvent');
subject.start();
var state;
for (state in subject._states) {
MockSettingsListener.mCallbacks[state](true);
}
MockSettingsListener.mCallbacks['powersave.enabled'](true);
assert.ok(window.dispatchEvent.calledOnce);
// States should be false now.
for (state in subject._states) {
if ('bluetooth.enabled' !== state) {
assert.equal(false, MockNavigatorSettings.mSettings[state]);
}
}
MockSettingsListener.mCallbacks['powersave.enabled'](false);
assert.ok(window.dispatchEvent.calledTwice);
// States should be restored.
for (state in subject._states) {
if ('bluetooth.enabled' !== state) {
assert.equal(true, MockNavigatorSettings.mSettings[state]);
}
}
});
});
});