| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Battery Test: battery neither empty or full, charger unplugged in</title> |
| <meta name="flags" content="interact"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <h2>Description</h2> |
| <p> |
| This test validates that all of the BatteryManager attributes exist and are set to their correct values when battery is discharging. |
| </p> |
| |
| <h2>Preconditions</h2> |
| <ol> |
| <li> |
| The device is unplugged from the charger before this test is run. |
| </li> |
| <li> |
| The battery must neither be empty or full, nor reach empty or full capacity during the test. |
| </li> |
| <li> |
| Waiting for battery level change to fire levelchange event, maybe need a long time |
| </li> |
| </ol> |
| |
| <script> |
| |
| setup({ explicit_timeout: true }); |
| |
| async_test(function (t) { |
| navigator.getBattery().then(function (battery) { |
| t.step(function () { |
| assert_false(battery.charging, 'charging must be set to false'); |
| assert_equals(battery.chargingTime, Infinity, 'chargingTime must be set to Infinity'); |
| assert_less_than(battery.dischargingTime, Infinity, 'dischargingTime must be less than Infinity'); |
| assert_greater_than(battery.level, 0, 'level must be greater than 0'); |
| assert_less_than(battery.level, 1.0, 'level must be less than 1.0'); |
| |
| var battery_level = battery.level; |
| battery.onlevelchange = t.step_func(function () { |
| assert_less_than(battery.level, battery_level, 'The value of the level attribute must decrease'); |
| t.done(); |
| }); |
| }); |
| }, function (error) { |
| t.step(function () { |
| assert_unreached(error.message); |
| }); |
| t.done(); |
| }); |
| }, document.title); |
| |
| </script> |