summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/battery-status/battery-plugging-in-manual.html')
-rw-r--r--testing/web-platform/tests/battery-status/battery-plugging-in-manual.html125
1 files changed, 125 insertions, 0 deletions
diff --git a/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html b/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html
new file mode 100644
index 000000000..4d16cf187
--- /dev/null
+++ b/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Battery Test: battery not full, charger plugging in</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 plugged in.
+</p>
+
+<h2>Preconditions</h2>
+<ol>
+ <li>
+ The device is unplugged from the charger before this test is run.
+ </li>
+ <li>
+ The battery must not be full or reach full capacity before the time the test is run.
+ </li>
+</ol>
+
+<div id="note">
+ <ol>
+ <li>
+ Plug in the charger and wait for all the tests to complete.
+ </li>
+ <li>
+ The tests may take long time since the definition of how
+ often the chargingtimechange, dischargingtimechange, and levelchange
+ events are fired is left to the implementation.
+ </li>
+ </ol>
+</div>
+
+<div id="log"></div>
+
+<script>
+
+(function() {
+
+ setup({ explicit_timeout: true });
+
+ var onchargingchange_test = async_test(
+ 'When the device is plugged in and its charging state is updated, ' +
+ 'must set the charging attribute\'s value to true and ' +
+ 'fire a chargingchange event.');
+ var onchargingtimechange_test = async_test(
+ 'When the device is plugged in and its charging time is updated, ' +
+ 'must set the chargingTime attribute\'s value and fire ' +
+ 'a chargingtimechange event.');
+ var ondischargingtimechange_test = async_test(
+ 'When the device is plugged in and its discharging time is updated, ' +
+ 'must set the dischargingTime attribute\'s value to Infinity 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_true(battery.charging, 'The charging attribute must be set to true.');
+ onchargingchange_test.done();
+ });
+
+ var battery_chargingtime = battery.chargingTime;
+ battery.onchargingtimechange = onchargingtimechange_test.step_func(function () {
+ assert_less_than(battery.chargingTime, battery_chargingtime,
+ 'The value of the chargingTime attribute must decrease.');
+ onchargingtimechange_test.done();
+ });
+
+ battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function () {
+ if (battery.charging) {
+ assert_equals(battery.dischargingTime, Infinity,
+ 'The value of the dischargingTime attribute must be set to Infinity.');
+ ondischargingtimechange_test.done();
+ }
+ });
+
+ battery.onlevelchange = onlevelchange_test.step_func(function () {
+ assert_greater_than(battery.level, 0);
+ assert_less_than_equal(battery.level, 1.0);
+ onlevelchange_test.done();
+ });
+ };
+
+ 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>