- From: Mercurial notifier <cvsmail@w3.org>
- Date: Fri, 13 Jul 2012 08:04:54 +0000
- To: public-dap-commits@w3.org
changeset: 155:9a98820c77fd tag: tip user: Marcos Caceres <w3c@marcosc.com> date: Fri Jul 13 09:04:47 2012 +0100 files: light/tests/submissions/marcosc/DeviceLight_tests.js light/tests/submissions/marcosc/index.html description: adding Light Events tests - don't run this, it's a copy-paste of the proximity one diff -r 18a64f226ce2 -r 9a98820c77fd light/tests/submissions/marcosc/DeviceLight_tests.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/light/tests/submissions/marcosc/DeviceLight_tests.js Fri Jul 13 09:04:47 2012 +0100 @@ -0,0 +1,325 @@ +/** +* 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() { + //inheritance tests + test(function() { + var event = new DeviceLightEvent(''); + assert_true(event instanceof window.DeviceLightEvent); + }, 'the event is an instance of DeviceLightEvent'); + + test(function() { + var event = new DeviceLightEvent(''); + assert_true(event instanceof window.Event); + }, 'the event inherits from Event'); + + //Type attribute tests + test(function() { + assert_throws(TypeError(), function() { + new DeviceLightEvent(); + }, 'First argument is required, so was expecting a TypeError.'); + }, 'Missing type argument'); + + test(function() { + var event = new DeviceLightEvent(undefined); + assert_equals(event.type, 'undefined'); + }, 'Event type set to undefined'); + + test(function() { + var event = new DeviceLightEvent(null); + assert_equals(event.type, 'null'); + }, 'type argument is null'); + + test(function() { + var event = new DeviceLightEvent(123); + assert_equals(event.type, '123'); + }, 'type argument is number'); + + test(function() { + var event = new DeviceLightEvent(new Number(123)); + assert_equals(event.type, '123'); + }, 'type argument is Number'); + + test(function() { + var event = new DeviceLightEvent([]); + assert_equals(event.type, ''); + }, 'type argument is array'); + + test(function() { + var event = new DeviceLightEvent(new Array()); + assert_equals(event.type, ''); + }, 'type argument is instance of Array'); + + test(function() { + var event = new DeviceLightEvent(['t', ['e', ['s', ['t']]]]); + assert_equals(event.type, 't,e,s,t'); + }, 'type argument is nested array'); + + test(function() { + var event = new DeviceLightEvent(Math); + assert_equals(event.type, '[object Math]'); + }, 'type argument is host object'); + + test(function() { + var event = new DeviceLightEvent(true); + assert_equals(event.type, 'true'); + }, 'type argument is boolean (true)'); + + test(function() { + var event = new DeviceLightEvent(new Boolean(true)); + assert_equals(event.type, 'true'); + }, 'type argument is instance of boolean'); + + test(function() { + var event = new DeviceLightEvent(false); + assert_equals(event.type, 'false'); + }, 'type argument is boolean (false)'); + + test(function() { + var event = new DeviceLightEvent(new Boolean(false)); + assert_equals(event.type, 'false'); + }, ''); + + test(function() { + var event = new DeviceLightEvent('test'); + assert_equals(event.type, 'test'); + }, 'type argument is instance of boolean (false)'); + + test(function() { + var event = new DeviceLightEvent(new String('test')); + assert_equals(event.type, 'test'); + }, 'type argument is string'); + + test(function() { + var event = new DeviceLightEvent(function test() {}); + assert_equals(event.type, 'function test() {}'); + }, 'type argument is function'); + + test(function() { + var event = new DeviceLightEvent({ + toString: function() { + return '123'; + } + }); + assert_equals(event.type, '123'); + }, 'type argument is complext object, with toString method'); + + test(function() { + assert_throws(TypeError(), function() { + new DeviceLightEvent({ + toString: function() { + return function() {} + } + }); + }); + }, 'toString is of type function'); + + //test readonly attribute boolean value; + test(function() { + var event = new DeviceLightEvent('test'); + assert_readonly(event, 'value', 'readonly attribute value'); + }, 'value is readonly'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: false + }); + assert_equals(event.value, false, 'value set to false'); + }, 'value set to false'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: true + }); + assert_equals(event.value, true, 'value set to true'); + }, 'value set to true'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: undefined + }); + assert_equals(event.value, false, 'argument is truthy'); + }, 'value set to a falsy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: null + }); + assert_equals(event.value, false, 'argument is flasy'); + }, 'value set to a falsy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: 0 + }); + assert_equals(event.value, false, 'argument is flasy'); + }, 'value set to a falsy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: '' + }); + assert_equals(event.value, false, 'argument is flasy'); + }, 'value set to a falsy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: '\u0020' + }); + assert_equals(event.value, true, 'argument is truthy'); + }, 'value set to a truthy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: 1 + }); + assert_equals(event.value, true, 'argument is truthy'); + }, 'value set to a truthy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: [] + }); + assert_equals(event.value, true, 'argument is truthy'); + }, 'value set to a truthy object'); + + test(function() { + var event = new DeviceLightEvent('test', { + value: {} + }); + assert_equals(event.value, true, 'argument is truthy'); + }, 'value set to a truthy object'); + + test(function() { + var dict = { + get test() { + return false; + } + }; + var event = new DeviceLightEvent('test', { + value: dict.test + }); + assert_equals(event.value, false, 'explict false'); + }, 'value set to object that resolves to false'); + + test(function() { + var desc = 'Expected to find ondevicelight attribute on window object'; + assert_own_property(window, 'ondevicelight', desc); + }, 'ondevicelight exists'); + + test(function() { + var desc = 'window.ondevicelight must be null'; + assert_equals(window.ondevicelight, null, desc); + }, 'ondevicelight is null'); + + test(function() { + var desc = 'window.ondevicelight did not accept callable object', + func = function() {} + window.ondevicelight = func; + assert_equals(window.ondevicelight, func, desc); + }, 'ondevicelight is set to function'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable as null'; + window.ondevicelight = function() {}; + window.ondevicelight = {}; + assert_equals(window.ondevicelight, null, desc); + }, 'treat object as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable as null'; + window.ondevicelight = function() {}; + window.ondevicelight = { + call: 'test' + }; + assert_equals(window.ondevicelight, null, desc); + }, 'treat object with non-callable call property as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable as null', + test = function() {}; + test.call = 'test'; + window.ondevicelight = function() {}; + window.ondevicelight = test; + assert_equals(window.ondevicelight, null, desc); + }, 'treat object with non-callable call property as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable (string) as null'; + window.ondevicelight = function() {}; + window.ondevicelight = 'string'; + assert_equals(window.ondevicelight, null, desc); + }, 'treat string as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable (number) as null'; + window.ondevicelight = function() {}; + window.ondevicelight = 123; + assert_equals(window.ondevicelight, null, desc); + }, 'treat number as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable (undefined) as null'; + window.ondevicelight = function() {}; + window.ondevicelight = undefined; + assert_equals(window.ondevicelight, null, desc); + }, 'treat undefined as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable (array) as null'; + window.ondevicelight = function() {}; + window.ondevicelight = []; + assert_equals(window.ondevicelight, null, desc); + }, 'treat array as null'); + + test(function() { + var desc = 'window.ondevicelight did not treat noncallable host object as null'; + window.ondevicelight = function() {}; + window.ondevicelight = Node; + assert_equals(window.ondevicelight, null, desc); + }, 'treat non-callable host object as null'); + + //Async tests + var t = async_test('test if user proximity event recieved'); + window.addEventListener('userproximity', function(e) { + t.step(function() { + var msg = 'expected instance of DeviceLightEvent: '; + assert_true(e instanceof window.DeviceLightEvent, msg); + }); + t.done(); + }); + + var t2 = async_test('test if user proximity event recieved'); + window.ondevicelight = function(e) { + t2.step(function() { + var msg = 'expected instance of DeviceLightEvent: '; + assert_true(e instanceof window.DeviceLightEvent, msg); + }); + t2.done(); + }; +})(); diff -r 18a64f226ce2 -r 9a98820c77fd light/tests/submissions/marcosc/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/light/tests/submissions/marcosc/index.html Fri Jul 13 09:04:47 2012 +0100 @@ -0,0 +1,10 @@ +<!doctype html> +<head> +<title>Light Events Test Suite</title> +<body> +<h1>Test Suite for Light Events</h1> +<div id="log"></div> +<hr> +<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> +<script src="http://www.w3c-test.org/resources/testharness.js"></script> +<script src="DeviceLight_tests.js"></script> \ No newline at end of file
Received on Friday, 13 July 2012 08:04:56 UTC