moved test cases to github, see https://github.com/w3c/web-platform-tests/pull/124
authorDominique Hazael-Massieux <dom@w3.org>
Thu, 30 May 2013 14:47:07 +0200
changeset 426 de8e511256c2
parent 425 6ff05ac6b442
child 427 3ec892ccd5c7
moved test cases to github, see https://github.com/w3c/web-platform-tests/pull/124
battery/tests/submissions/anssik/TODO.txt
battery/tests/submissions/anssik/battery-charging.html
battery/tests/submissions/anssik/battery-created.html
battery/tests/submissions/anssik/battery-discharging.html
battery/tests/submissions/anssik/battery-full.html
battery/tests/submissions/anssik/battery-interface-idlharness.html
battery/tests/submissions/anssik/battery-interface.html
battery/tests/submissions/anssik/battery-interface.js
battery/tests/submissions/anssik/battery-plugged-in.html
battery/tests/submissions/anssik/battery-unplugged.html
battery/tests/submissions/anssik/countdown.js
battery/tests/submissions/anssik/manifest.txt
battery/tests/submissions/anssik/prime.js
--- a/battery/tests/submissions/anssik/TODO.txt	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
----+ TODO
-  
-   * proper {level | chargingtime | dischargingtime}change tests
-   * validate tests on a real device and tweak timeouts for async tests
\ No newline at end of file
--- a/battery/tests/submissions/anssik/battery-charging.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="countdown.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <meta name="flags" content="interact">
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates that all of the navigator.battery attributes exist and are set to correct values, when the battery is charging.
-    </p>
-    <h2>Preconditions</h2>
-    <ol>
-      <li>
-        The device is plugged in to 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>
-    </ol>
-    <div id="log"></div>
-    <script>
-    (function() {
-
-      var t = 5*60*1000;
-      setup({ timeout: t });
-      countdown({ timeout: t });
-
-      test(function() {
-        assert_true(navigator.battery.charging);
-      }, 'The charging attribute must be set to true.');
-      
-      test(function() {
-        assert_true(navigator.battery.chargingTime < Infinity);
-      }, 'The chargingTime attribute must be set to the time remaining in seconds until the system\'s battery is completely charged. If the reported charging time ' + navigator.battery.chargingTime + ' seconds or ' + Math.round(navigator.battery.chargingTime/60) + ' minutes is not correct, please indicate that the test has failed.');
-      
-      test(function() {
-        assert_true(navigator.battery.dischargingTime === Infinity);
-      }, 'The dischargingTime attribute must be set to the value positive Infinity.');
-      
-      test(function() {
-        assert_true(0 < navigator.battery.level && navigator.battery.level < 1.0);
-      }, 'The level attribute must be set to the current battery level scaled from 0 to 1.0. If the reported battery level ' + navigator.battery.level + ' is not correct, please indicate that the test has failed.');
-      
-      var onlevelchange_test = async_test('When the battery level is updated, must increase the level attribute\'s value and fire a levelchange event.');
-      var battery_level = navigator.battery.level;
-      navigator.battery.onlevelchange = onlevelchange_test.step_func(function (e) {
-        assert_true(navigator.battery.level > battery_level, 'The value of the level attribute must increase.');
-        onlevelchange_test.done();
-      });
-      
-    })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/battery-created.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      <strong>
-        This test is only useful on devices that expose the BatteryManager interface,
-        but lack a backend implementation.
-      </strong>
-    </p>
-    <p>
-      This test validates that all of the navigator.battery attributes exist and are set to their default values.
-    </p>
-    <h2>Preconditions</h2>
-    <ol>
-      <li>
-        The implementation is unable to report the battery's charging state,
-        charging time, level or remaining time respectively.
-      </li>
-      <li>
-        The device is unplugged from the charger before this test case is run.
-      </li>
-    </ol>
-    <div id="log"></div>
-    <script>
-    (function() {
-      test(function() {
-        var b = navigator.battery;
-        assert_true(b.charging === true, 'charging must be set to true');
-        assert_true(b.chargingTime === 0, 'chargingTime must be set to 0');
-        assert_true(b.level === 1.0, 'level must be set to 1.0');
-        assert_true(b.dischargingTime === Infinity, 'dischargingTime must be set to Infinity');
-
-      }, 'When a BatteryManager object is created, charging must be set to true, ' +
-      'chargingTime to 0, level to 1.0 and dischargingTime to the value positive ' +
-      'Infinity, if the implementation is unable to report the battery\'s charging ' +
-      'state, charging time, level or remaining time respectively.');
-      })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/battery-discharging.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="countdown.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <meta name="flags" content="interact">
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates that all of the navigator.battery attributes exist and are set to correct values, when the 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>
-    </ol>
-    <p>
-      The highest prime number discovered so far is:  <output id="prime"></output>
-    </p>
-    <div id="log"></div>
-    <script>
-    (function() {
-
-      var t = 5*60*1000;
-      setup({ timeout: t });
-      countdown({ timeout: t });
-      
-      test(function() {
-        assert_false(navigator.battery.charging);
-      }, 'The charging attribute must be set to false.');
-      
-      test(function() {
-        assert_true(navigator.battery.chargingTime === Infinity);
-      }, 'The chargingTime attribute must be set to the value positive Infinity.');
-      
-      test(function() {
-        assert_true(navigator.battery.dischargingTime < Infinity);
-      }, 'The dischargingTime attribute must be set to the time remaining in seconds until the system\'s battery is completely discharged. If the reported discharging time ' + navigator.battery.dischargingTime + ' seconds or ' + Math.round(navigator.battery.dischargingTime/60) + ' minutes is not correct, please indicate that the test has failed.');
-      
-      test(function() {
-        assert_true(0 <= navigator.battery.level && navigator.battery.level <= 1.0);
-      }, 'The level attribute must be set to the current battery level scaled from 0 to 1.0');
-      
-      var onlevelchange_test = async_test('When the battery level is updated, must decrease the level attribute\'s value and fire a levelchange event. If the reported battery level ' + navigator.battery.level + ' is not correct, please indicate that the test has failed.');
-      var battery_level = navigator.battery.level;
-      
-      // compute primes to deplete the battery faster
-      var w = new Worker('prime.js');
-      w.postMessage('compute');
-      w.onmessage = function (e) {
-        document.querySelector('#prime').textContent = e.data;
-      };
-      
-      navigator.battery.onlevelchange = onlevelchange_test.step_func(function (e) {
-        assert_true(navigator.battery.level < battery_level, 'The value of the level attribute must decrease.');
-        onlevelchange_test.done();
-        w.terminate();
-      });
-      
-      add_completion_callback(function () {
-        w.terminate();
-      });
-      
-    })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/battery-full.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <meta name="flags" content="interact">
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates that all of the navigator.battery attributes exist and are set to correct values, when the battery is full.
-    </p>
-    <h2>Preconditions</h2>
-    <ol>
-      <li>
-        The device is plugged in to the charger before this test is run.
-      </li>
-      <li>
-        The battery is full.
-      </li>
-    </ol>
-    <div id="log"></div>
-    <script>
-    (function() {
-
-      test(function() {
-        assert_true(navigator.battery.charging);
-      }, 'The charging attribute must be set to true if the battery is full (the "otherwise" condition).');
-      
-      test(function() {
-        assert_true(navigator.battery.chargingTime === 0);
-      }, 'The chargingTime attribute must be set to 0.');
-      
-      test(function() {
-        assert_true(navigator.battery.dischargingTime === Infinity);
-      }, 'The dischargingTime attribute must be set to the value positive Infinity (the "otherwise" condition).');
-      
-      test(function() {
-        assert_true(navigator.battery.level === 1.0);
-      }, 'The level attribute must be set to the value 1.0.');
-      
-    })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/battery-interface-idlharness.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
-    <script src="/resources/WebIDLParser.js"></script>
-    <script src="/resources/idlharness.js"></script>
-    <script type="text/plain" class="untested">
-    interface Navigator { };
-    
-    interface EventTarget {
-      void addEventListener(DOMString type, EventListener? callback, optional boolean capture);
-      void removeEventListener(DOMString type, EventListener? callback, optional boolean capture);
-      boolean dispatchEvent(Event event);
-    };
-    
-    [Callback]
-    interface EventListener {
-      void handleEvent(Event event);
-    };
-    </script>
-    <script type="text/plain">
-    partial interface Navigator {
-        readonly attribute BatteryManager battery;
-    };
-    
-    interface BatteryManager : EventTarget {
-        readonly attribute boolean             charging;
-        readonly attribute unrestricted double chargingTime;
-        readonly attribute unrestricted double dischargingTime;
-        readonly attribute double              level;
-                 attribute EventHandler        onchargingchange;
-                 attribute EventHandler        onchargingtimechange;
-                 attribute EventHandler        ondischargingtimechange;
-                 attribute EventHandler        onlevelchange;
-    };
-    </script>
-    <script>
-    "use strict";
-    var idl_array = new IdlArray();
-    var idls;
-    [].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) {
-      // replace 'EventHandler' and 'unrestricted double' unrecognized by idlharness.js
-      idls = node.textContent.replace('EventHandler', 'Function?', 'g').replace('unrestricted double', 'double', 'g');
-      idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls);
-    });
-    idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['navigator.battery']});
-    idl_array.test();
-    </script>
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates the BatteryManager interface IDL.
-    </p>
-    <p>
-      This test uses <a href="/resources/idlharness.js">idlharness.js</a>, and
-      is complementary to the <a href="battery-interface.html">battery-interface.html</a>
-      test.
-    </p>
-    <div id="log"></div>
-    <p>
-      <small>
-        Distributed under both the
-        <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">
-        W3C Test Suite License</a> and the
-        <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">
-        W3C 3-clause BSD License</a>. To contribute to a W3C Test Suite, see the
-        <a href="http://www.w3.org/2004/10/27-testcases">policies and contribution
-        forms</a>.
-      </small>
-    </p>
-  </body>
-</html>
-
-
--- a/battery/tests/submissions/anssik/battery-interface.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <script src="battery-interface.js"></script>
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates the BatteryManager interface IDL.
-    </p>
-
-    <div id="log"></div>
-    <p>
-      <small>
-        Distributed under both the
-        <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">
-        W3C Test Suite License</a> and the
-        <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">
-        W3C 3-clause BSD License</a>. To contribute to a W3C Test Suite, see the
-        <a href="http://www.w3.org/2004/10/27-testcases">policies and contribution
-        forms</a>.
-      </small>
-    </p>
-  </body>
-</html>
\ No newline at end of file
--- a/battery/tests/submissions/anssik/battery-interface.js	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-/**
-* W3C 3-clause BSD License
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are
-* met:
-* o Redistributions of works must retain the original copyright notice,
-*     this list of conditions and the following disclaimer.
-*
-* o Redistributions in binary form must reproduce the original copyright
-*     notice, this list of conditions and the following disclaimer in the
-*     documentation and/or other materials provided with the distribution.
-*
-* o Neither the name of the W3C nor the names of its contributors may be
-*     used to endorse or promote products derived from this work without
-*     specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-**/
-
-(function() {
-  
-  /**
-  *
-  * partial interface Navigator {
-  *     readonly attribute BatteryManager battery;
-  * };
-  *
-  */
-  
-  test(function() {
-    assert_idl_attribute(navigator, 'battery', 'navigator must have battery attribute');
-  }, 'battery is present on navigator');
-    
-  test(function() {
-    assert_readonly(navigator, 'battery', 'battery must be readonly');
-  }, 'battery is readonly');
-  
-  /**
-  *
-  * interface BatteryManager : EventTarget {
-  *     readonly attribute boolean             charging;
-  *     readonly attribute unrestricted double chargingTime;
-  *     readonly attribute unrestricted double dischargingTime;
-  *     readonly attribute double              level;
-  *              attribute EventHandler        onchargingchange;
-  *              attribute EventHandler        onchargingtimechange;
-  *              attribute EventHandler        ondischargingtimechange;
-  *              attribute EventHandler        onlevelchange;
-  * };
-  *
-  */
-
-  // interface BatteryManager : EventTarget {
-
-  test(function() {
-      assert_own_property(window, 'BatteryManager');
-  }, 'window has an own property BatteryManager');
-  
-  test(function() {
-      assert_true(navigator.battery instanceof EventTarget);
-  }, 'battery inherits from EventTarget');
-  
-  // readonly attribute boolean charging;
-  
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'charging', 'battery must have charging attribute');
-  }, 'charging attribute exists');
-  
-  test(function() {
-    assert_readonly(navigator.battery, 'charging', 'charging must be readonly')
-  }, 'charging attribute is readonly');
-
-  // readonly attribute unrestricted double chargingTime;
-
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'chargingTime', 'battery must have chargingTime attribute');
-  }, 'chargingTime attribute exists');
-
-  test(function() {
-    assert_readonly(navigator.battery, 'chargingTime', 'chargingTime must be readonly')
-  }, 'chargingTime attribute is readonly');
-
-  // readonly attribute unrestricted double dischargingTime;
-
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'dischargingTime', 'battery must have dischargingTime attribute');
-  }, 'dischargingTime attribute exists');
-
-  test(function() {
-    assert_readonly(navigator.battery, 'dischargingTime', 'dischargingTime must be readonly')
-  }, 'dischargingTime attribute is readonly');
-  
-  // readonly attribute double level;
-  
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'level', 'battery must have level attribute');
-  }, 'level attribute exists');
-
-  test(function() {
-    assert_readonly(navigator.battery, 'level', 'level must be readonly')
-  }, 'level attribute is readonly');
-  
-  // attribute EventHandler onchargingchange;
-  
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'onchargingchange', 'battery must have onchargingchange attribute');
-  }, 'onchargingchange attribute exists');
-  
-  test(function() {
-    assert_equals(navigator.battery.onchargingchange, null, 'onchargingchange must be null')
-  }, 'onchargingchange is null');
-  
-  test(function() {
-      var desc = 'onchargingchange did not accept callable object',
-          func = function() {},
-          desc = 'Expected to find onchargingchange attribute on battery object';
-      assert_idl_attribute(navigator.battery, 'onchargingchange', desc);
-      window.onchargingchange = func;
-      assert_equals(window.onchargingchange, func, desc);
-  }, 'onchargingchange is set to function');
-  
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = {};
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat object as null');
-  
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = {
-          call: 'test'
-      };
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat object with non-callable call property as null');
-  
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable (string) as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = 'string';
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat string as null');
-
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable (number) as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = 123;
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat number as null');
-
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable (undefined) as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = undefined;
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat undefined as null');
-
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable (array) as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = [];
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat array as null');
-
-  test(function() {
-      var desc = 'onchargingchange did not treat noncallable host object as null';
-      navigator.battery.onchargingchange = function() {};
-      navigator.battery.onchargingchange = Node;
-      assert_equals(navigator.battery.onchargingchange, null, desc);
-  }, 'onchargingchange: treat non-callable host object as null');
-  
-  // attribute EventHandler onchargingtimechange;
-  
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'onchargingtimechange', 'battery must have onchargingtimechange attribute');
-  }, 'onchargingtimechange attribute exists');
-  
-  test(function() {
-    assert_equals(navigator.battery.onchargingtimechange, null, 'onchargingtimechange must be null')
-  }, 'onchargingtimechange is null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not accept callable object',
-          func = function() {},
-          desc = 'Expected to find onchargingtimechange attribute on battery object';
-      assert_idl_attribute(navigator.battery, 'onchargingtimechange', desc);
-      window.onchargingtimechange = func;
-      assert_equals(window.onchargingtimechange, func, desc);
-  }, 'onchargingtimechange is set to function');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = {};
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat object as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = {
-          call: 'test'
-      };
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat object with non-callable call property as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable (string) as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = 'string';
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat string as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable (number) as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = 123;
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat number as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable (undefined) as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = undefined;
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat undefined as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable (array) as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = [];
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat array as null');
-
-  test(function() {
-      var desc = 'onchargingtimechange did not treat noncallable host object as null';
-      navigator.battery.onchargingtimechange = function() {};
-      navigator.battery.onchargingtimechange = Node;
-      assert_equals(navigator.battery.onchargingtimechange, null, desc);
-  }, 'onchargingtimechange: treat non-callable host object as null');
-    
-  // attribute EventHandler ondischargingtimechange;
-  
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'ondischargingtimechange', 'battery must have ondischargingtimechange attribute');
-  }, 'ondischargingtimechange attribute exists');
-
-  test(function() {
-    assert_equals(navigator.battery.ondischargingtimechange, null, 'ondischargingtimechange must be null')
-  }, 'ondischargingtimechange is null');
-  
-  test(function() {
-      var desc = 'ondischargingtimechange did not accept callable object',
-          func = function() {},
-          desc = 'Expected to find ondischargingtimechange attribute on battery object';
-      assert_idl_attribute(navigator.battery, 'ondischargingtimechange', desc);
-      window.ondischargingtimechange = func;
-      assert_equals(window.ondischargingtimechange, func, desc);
-  }, 'ondischargingtimechange is set to function');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = {};
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat object as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = {
-          call: 'test'
-      };
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat object with non-callable call property as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable (string) as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = 'string';
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat string as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable (number) as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = 123;
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat number as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable (undefined) as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = undefined;
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat undefined as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable (array) as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = [];
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat array as null');
-
-  test(function() {
-      var desc = 'ondischargingtimechange did not treat noncallable host object as null';
-      navigator.battery.ondischargingtimechange = function() {};
-      navigator.battery.ondischargingtimechange = Node;
-      assert_equals(navigator.battery.ondischargingtimechange, null, desc);
-  }, 'ondischargingtimechange: treat non-callable host object as null');
-
-  // attribute EventHandler onlevelchange;
-
-  test(function() {
-    assert_idl_attribute(navigator.battery, 'onlevelchange', 'battery must have onlevelchange attribute');
-  }, 'onlevelchange attribute exists');
-  
-  test(function() {
-    assert_equals(navigator.battery.onlevelchange, null, 'onlevelchange must be null')
-  }, 'onlevelchange is null');
-  
-  test(function() {
-      var desc = 'onlevelchange did not accept callable object',
-          func = function() {},
-          desc = 'Expected to find onlevelchange attribute on battery object';
-      assert_idl_attribute(navigator.battery, 'onlevelchange', desc);
-      window.onlevelchange = func;
-      assert_equals(window.onlevelchange, func, desc);
-  }, 'onlevelchange is set to function');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = {};
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat object as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = {
-          call: 'test'
-      };
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat object with non-callable call property as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable (string) as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = 'string';
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat string as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable (number) as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = 123;
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat number as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable (undefined) as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = undefined;
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat undefined as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable (array) as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = [];
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat array as null');
-
-  test(function() {
-      var desc = 'onlevelchange did not treat noncallable host object as null';
-      navigator.battery.onlevelchange = function() {};
-      navigator.battery.onlevelchange = Node;
-      assert_equals(navigator.battery.onlevelchange, null, desc);
-  }, 'onlevelchange: treat non-callable host object as null');
-  
-})();
\ No newline at end of file
--- a/battery/tests/submissions/anssik/battery-plugged-in.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="countdown.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <style>
-      #note { background-color: #fef1b5; border: solid 1px #cdab2d; padding: 5px; margin: 15px; display: none; }
-    </style>
-    <meta name="flags" content="interact">
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates that all of the navigator.battery 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 during the time the test is run.
-      </li>
-    </ol>
-    <div id="note">
-      Plug in the charger and wait for all the tests to complete.
-    </div>
-    <div id="log"></div>
-    <script>
-    (function() {
-
-      var t = 5*60*1000;
-      setup({ timeout: t });
-      countdown({ timeout: t });
-      
-      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.');
-      navigator.battery.onchargingchange = onchargingchange_test.step_func(function (e) {
-        assert_true(navigator.battery.charging, 'The charging attribute must be set to true.')
-        onchargingchange_test.done();
-      });
-      
-      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. If the reported charging time ' + navigator.battery.chargingTime + ' seconds or ' + Math.round(navigator.battery.chargingTime/60) + ' minutes is not correct, please indicate that the test has failed.');
-      var battery_chargingtime = navigator.battery.chargingTime;
-      navigator.battery.onchargingtimechange = onchargingtimechange_test.step_func(function (e) {
-        assert_true(navigator.battery.chargingTime < battery_chargingtime, 'The value of the chargingTime attribute must decrease.');
-        onchargingtimechange_test.done();
-      });
-      
-      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 battery_dischargingtime = navigator.battery.dischargingTime;
-      navigator.battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function (e) {
-        assert_true(navigator.battery.dischargingTime === Infinity, 'The value of the dischargingTime attribute must be set to Infinity.');
-        ondischargingtimechange_test.done();
-      });
-      
-      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 battery_level = navigator.battery.level;
-      navigator.battery.onlevelchange = onlevelchange_test.step_func(function (e) {
-        assert_true(navigator.battery.level > 0 && navigator.battery.level < 1.0, 'The level attribute must be set to the current battery level scaled from 0 to 1.0. If the reported battery level ' + navigator.battery.level + ' is not correct, please indicate that the test has failed.');
-        onlevelchange_test.done();
-      });
-      
-      setTimeout(function() {
-        var note = document.querySelector('#note');
-        note.style.display = 'block';
-        navigator.battery.onchargingchange = function (e) {
-          if (navigator.battery.charging) {
-            note.style.display = 'none';
-          }
-        };
-      }, 4000);
-      
-      })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/battery-unplugged.html	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Battery Status API Test Suite</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="countdown.js"></script>
-    <link rel="stylesheet" href="/resources/testharness.css" media="all"/>
-    <style>
-      #note { background-color: #fef1b5; border: solid 1px #cdab2d; padding: 5px; margin: 15px; display: none; }
-    </style>
-    <meta name="flags" content="interact">
-  </head>
-  <body>
-    <h1>Description</h1>
-    <p>
-      This test validates that all of the navigator.battery 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() {
-
-      var t = 5*60*1000;
-      setup({ timeout: t });
-      countdown({ timeout: t });
-      
-      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.');
-      navigator.battery.onchargingchange = onchargingchange_test.step_func(function (e) {
-        assert_false(navigator.battery.charging, 'The charging attribute must be set to false.')
-        onchargingchange_test.done();
-      });
-      
-      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 battery_chargingtime = navigator.battery.chargingTime;
-      navigator.battery.onchargingtimechange = onchargingtimechange_test.step_func(function (e) {
-        assert_true(navigator.battery.chargingTime === Infinity, 'The value of the chargingTime attribute must be set to Infinity.');
-        onchargingtimechange_test.done();
-      });
-      
-      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.  If the reported discharging time ' + navigator.battery.dischargingTime + ' seconds or ' + Math.round(navigator.battery.dischargingTime/60) + ' minutes is not correct, please indicate that the test has failed.');
-      var battery_dischargingtime = navigator.battery.dischargingTime;
-      navigator.battery.ondischargingtimechange = ondischargingtimechange_test.step_func(function (e) {
-        assert_true(navigator.battery.dischargingTime < Infinity, 'The value of the dischargingTime attribute must be set to the remaining discharging time.');
-        ondischargingtimechange_test.done();
-      });
-      
-      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 battery_level = navigator.battery.level;
-      
-      // compute primes to deplete the battery faster
-      var w = new Worker('prime.js');
-      w.postMessage('compute');
-      w.onmessage = function (e) {
-        document.querySelector('#prime').textContent = e.data;
-      };
-      
-      navigator.battery.onlevelchange = onlevelchange_test.step_func(function (e) {
-        assert_true(navigator.battery.level > 0 && navigator.battery.level < 1.0, 'The level attribute must be set to the current battery level scaled from 0 to 1.0.');
-        onlevelchange_test.done();
-        w.terminate();
-      });
-
-      add_completion_callback(function () {
-        w.terminate();
-      });
-
-      setTimeout(function() {
-        var note = document.querySelector('#note');
-        note.style.display = 'block';
-        navigator.battery.onchargingchange = function (e) {
-          if (!navigator.battery.charging) {
-            note.style.display = 'none';
-          }
-        };
-      }, 4000);
-      
-      })();
-    </script>
-  </body>
-</html>
--- a/battery/tests/submissions/anssik/countdown.js	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-function countdown(prop) {
-  var seconds = !isNaN(parseInt(prop.timeout, 10)) ? (prop.timeout / 1000) : 0,
-      body = document.getElementsByTagName('body')[0],
-      div = document.createElement('div'),
-      timer, remaining_time, min, sec;
-
-  add_completion_callback(function () {
-    clearInterval(timer);
-    body.removeChild(div);
-  });
-  
-  div.innerHTML = 'This test will timeout in <span id="remaining_time">...</span>';
-  body.appendChild(div);
-    
-  remaining_time = document.querySelector('#remaining_time');
-  
-  timer = setInterval(function() {
-    function zeroPad(n) {
-      return (n < 10) ? '0' + n : n;
-    }
-  
-    if (seconds / 60 >= 1) {
-      min = Math.floor(seconds / 60);
-      sec = seconds % 60;
-    } else {
-      min = 0;
-      sec = seconds;
-    }
-    
-    if (seconds === 0) {
-      div.innerHTML = 'Timeout exceeded. Increase the timeout and re-run.';
-      clearInterval(timer);
-    }
-    
-    remaining_time.textContent = zeroPad(min) + ':' + zeroPad(sec);
-    seconds--;
-  }, 1000);
-}
--- a/battery/tests/submissions/anssik/manifest.txt	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-battery-interface.html		Battery Status API Test Suite					
-battery-charging.html		Battery Status API Test Suite					
-battery-created.html		Battery Status API Test Suite					
-battery-discharging.html		Battery Status API Test Suite					
-battery-full.html		Battery Status API Test Suite					
-battery-plugged-in.html		Battery Status API Test Suite					
-battery-unplugged.html		Battery Status API Test Suite					
--- a/battery/tests/submissions/anssik/prime.js	Wed May 29 09:36:22 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-// adapted from http://html5demos.com/worker
-
-var running = false;
-
-onmessage = function (event) {
-  // doesn't matter what the message is, just toggle the worker
-  if (running == false) {
-    running = true;
-    run(1);
-  } else {
-    running = false;
-  }
-};
-
-function run(n) {
-  // split the task into 20k chunks
-  var limit = n + 20000;
-  search: while (running && n < limit) {
-    n += 1;
-    for (var i = 2; i <= Math.sqrt(n); i += 1) {
-      if (n % i == 0) {
-        continue search;
-      }
-    }
-    // found a prime!
-    postMessage(n);
-  }
-  if (n === limit) {
-    // wait for the UI thread to update itself
-    setTimeout(function(start_time) {
-      // resume prime computation at n
-      run(n);
-    }, 150);
-  }
-}
\ No newline at end of file