| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../resources/js-test.js"></script> |
| <script src="../resources/mojo-helpers.js"></script> |
| <script src="resources/mock-battery-monitor.js"></script> |
| <script> |
| description("Test basic API definitions."); |
| |
| if (!window.testRunner) |
| debug('This test cannot be run without the TestRunner'); |
| |
| // Clean-up any unused battery manager objects from previous tests. |
| gc(); |
| jsTestIsAsync = true; |
| testRunner.waitUntilDone(); |
| |
| var battery; |
| function batteryStatusSuccess(batteryManager) { |
| debug('batteryStatusSuccess invoked'); |
| battery = batteryManager; |
| |
| shouldBeDefined("battery"); |
| shouldBeNonNull("battery"); |
| shouldBeDefined("battery.charging"); |
| shouldBeDefined("battery.chargingTime"); |
| shouldBeDefined("battery.dischargingTime"); |
| shouldBeDefined("battery.level"); |
| |
| testIfBatteryStatusIsUpToDate(batteryManager); |
| |
| shouldBeTrue("typeof battery.onchargingchange == 'object'"); |
| shouldBeTrue("typeof battery.onchargingtimechange == 'object'"); |
| shouldBeTrue("typeof battery.ondischargingtimechange == 'object'"); |
| shouldBeTrue("typeof battery.onlevelchange == 'object'"); |
| |
| shouldBeTrue("'onchargingchange' in battery"); |
| shouldBeTrue("'onchargingtimechange' in battery"); |
| shouldBeTrue("'ondischargingtimechange' in battery"); |
| shouldBeTrue("'onlevelchange' in battery"); |
| |
| setTimeout(finishJSTest, 0); |
| } |
| |
| var promise; |
| mockBatteryMonitorReady.then(() => { |
| promise = navigator.getBattery(); |
| shouldBeDefined("promise"); |
| shouldBeDefined("promise.then"); |
| promise.then(batteryStatusSuccess, batteryStatusFailure); |
| setAndFireMockBatteryInfo(false, 10, 20, 0.5); |
| }); |
| </script> |
| </body> |
| </html> |