| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Battery Test: battery not full, charger unplugging</title> |
| <meta name="flags" content="interact"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| #note { |
| background-color: #fef1b5; |
| border: solid 1px #cdab2d; |
| padding: 5px; |
| margin: 15px; |
| display: block; |
| } |
| </style> |
| |
| <h2>Description</h2> |
| <p> |
| This test validates that all of the BatteryManager attributes exist and are set to correct values, with corresponding events fired, when the charger is unplugged. |
| </p> |
| |
| <h2>Preconditions</h2> |
| <ol> |
| <li> |
| The device is plugged in to the charger before this test is run. |
| </li> |
| <li> |
| The battery must not be full or reach full capacity during the time the test is run. |
| </li> |
| </ol> |
| <p> |
| The highest prime number discovered so far is: <output id="prime"></output> |
| </p> |
| |
| <div id="note"> |
| Unplug the charger and wait for all the tests to complete. |
| </div> |
| |
| <div id="log"></div> |
| |
| <script> |
| |
| (function() { |
| |
| setup({ explicit_timeout: true }); |
| |
| var onchargingchange_test = async_test('When the device is unplugged in and its charging state is updated, must set the charging attribute\'s value to false and fire a chargingchange event.'); |
| var onchargingtimechange_test = async_test('When the device is unplugged in and its charging time is updated, must set the chargingTime attribute\'s value to Infinity and fire a chargingtimechange event.'); |
| var ondischargingtimechange_test = async_test('When the device is unplugged in and its discharging time is updated, must set the dischargingTime attribute\'s value and fire a dischargingtimechange event.'); |
| var onlevelchange_test = async_test('When the device is plugged in and the battery level is updated, must set the level attribute\'s value and fire a levelchange event.'); |
| |
| var batterySuccess = function (battery) { |
| battery.onchargingchange = onchargingchange_test.step_func(function () { |
| assert_false(battery.charging, 'The charging attribute must be set to false.'); |
| onchargingchange_test.done(); |
| }); |
| |
| battery.onchargingtimechange = onchargingtimechange_test.step_func(function () { |
| assert_equals(battery.chargingTime, Infinity, 'The value of the chargingTime attribute must be set to Infinity.'); |
| onchargingtimechange_test.done(); |
| }); |
| |
| battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function () { |
| assert_less_than(battery.dischargingTime, Infinity, 'The value of the dischargingTime attribute must be set to the remaining discharging time.'); |
| ondischargingtimechange_test.done(); |
| }); |
| |
| battery.onlevelchange = onlevelchange_test.step_func(function () { |
| assert_greater_than(battery.level, 0); |
| assert_less_than(battery.level, 1.0); |
| onlevelchange_test.done(); |
| w.terminate(); |
| }); |
| }; |
| |
| var batteryFailure = function (error) { |
| onchargingchange_test.step(function () { |
| assert_unreached(error.message); |
| }); |
| onchargingchange_test.done(); |
| |
| onchargingtimechange_test.step(function () { |
| assert_unreached(error.message); |
| }); |
| onchargingtimechange_test.done(); |
| |
| ondischargingtimechange_test.step(function () { |
| assert_unreached(error.message); |
| }); |
| ondischargingtimechange_test.done(); |
| |
| onlevelchange_test.step(function () { |
| assert_unreached(error.message); |
| }); |
| onlevelchange_test.done(); |
| }; |
| |
| navigator.getBattery().then(batterySuccess, batteryFailure); |
| |
| })(); |
| |
| </script> |