From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../tests/proximity/UserProximityEvent_tests.js | 342 +++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 testing/web-platform/tests/proximity/UserProximityEvent_tests.js (limited to 'testing/web-platform/tests/proximity/UserProximityEvent_tests.js') diff --git a/testing/web-platform/tests/proximity/UserProximityEvent_tests.js b/testing/web-platform/tests/proximity/UserProximityEvent_tests.js new file mode 100644 index 000000000..cac5bd586 --- /dev/null +++ b/testing/web-platform/tests/proximity/UserProximityEvent_tests.js @@ -0,0 +1,342 @@ +(function() { + //inheritance tests + test(function() { + var event = new UserProximityEvent(''); + assert_true(event instanceof window.UserProximityEvent); + }, 'the event is an instance of UserProximityEvent'); + + test(function() { + var event = new UserProximityEvent(''); + assert_true(event instanceof window.Event); + }, 'the event inherits from Event'); + + //Type attribute tests + test(function() { + assert_throws(new TypeError(), function() { + new UserProximityEvent(); + }, 'First argument is required, so was expecting a TypeError.'); + }, 'Missing type argument'); + + test(function() { + var event = new UserProximityEvent(undefined); + assert_equals(event.type, 'undefined'); + }, 'Event type set to undefined'); + + test(function() { + var event = new UserProximityEvent(null); + assert_equals(event.type, 'null'); + }, 'type argument is null'); + + test(function() { + var event = new UserProximityEvent(123); + assert_equals(event.type, '123'); + }, 'type argument is number'); + + test(function() { + var event = new UserProximityEvent(new Number(123)); + assert_equals(event.type, '123'); + }, 'type argument is Number'); + + test(function() { + var event = new UserProximityEvent([]); + assert_equals(event.type, ''); + }, 'type argument is array'); + + test(function() { + var event = new UserProximityEvent(new Array()); + assert_equals(event.type, ''); + }, 'type argument is instance of Array'); + + test(function() { + var event = new UserProximityEvent(['t', ['e', ['s', ['t']]]]); + assert_equals(event.type, 't,e,s,t'); + }, 'type argument is nested array'); + + test(function() { + var event = new UserProximityEvent(Math); + assert_equals(event.type, '[object Math]'); + }, 'type argument is host object'); + + test(function() { + var event = new UserProximityEvent(true); + assert_equals(event.type, 'true'); + }, 'type argument is boolean (true)'); + + test(function() { + var event = new UserProximityEvent(new Boolean(true)); + assert_equals(event.type, 'true'); + }, 'type argument is instance of Boolean (true)'); + + test(function() { + var event = new UserProximityEvent(false); + assert_equals(event.type, 'false'); + }, 'type argument is boolean (false)'); + + test(function() { + var event = new UserProximityEvent(new Boolean(false)); + assert_equals(event.type, 'false'); + }, 'type argument is instance of Boolean (false)'); + + test(function() { + var event = new UserProximityEvent('test'); + assert_equals(event.type, 'test'); + }, 'type argument is string'); + + test(function() { + var event = new UserProximityEvent(new String('test')); + assert_equals(event.type, 'test'); + }, 'type argument is instance of String'); + + test(function() { + var event = new UserProximityEvent(function test() {}); + assert_regexp_match(event.type, /function test.+{\s?}/); + }, 'type argument is function'); + + test(function() { + var event = new UserProximityEvent({ + toString: function() { + return '123'; + } + }); + assert_equals(event.type, '123'); + }, 'type argument is complext object, with toString method'); + + test(function() { + assert_throws(new TypeError(), function() { + new UserProximityEvent({ + toString: function() { + return function() {} + } + }); + }); + }, 'toString is of type function'); + + //eventInitDict attribute tests + test(function() { + var event = new UserProximityEvent('test', undefined); + assert_false(event.near); + }, 'eventInitDict argument sets to undefined'); + + test(function() { + var event = new UserProximityEvent('test', null); + assert_false(event.near); + }, 'eventInitDict argument is null'); + + test(function() { + var date = new Date(); + assert_throws(new TypeError(), function() { + new UserProximityEvent('test', date); + }); + }, 'eventInitDict argument is Date object'); + + test(function() { + var regexp = /abc/; + assert_throws(new TypeError(), function() { + new UserProximityEvent('test', regexp); + }); + }, 'eventInitDict argument is RegExp object'); + + test(function() { + assert_throws(new TypeError(), function() { + new UserProximityEvent('test', false); + }); + }, 'eventInitDict argument is boolean'); + + test(function() { + assert_throws(new TypeError(), function() { + new UserProximityEvent('test', 123); + }); + }, 'eventInitDict argument is number'); + + test(function() { + assert_throws(new TypeError(), function() { + new UserProximityEvent('test', 'hello'); + }); + }, 'eventInitDict argument is string'); + + //test readonly attribute boolean near; + test(function() { + var event = new UserProximityEvent('test'); + assert_idl_attribute(event, 'near', 'must have attribute near'); + }, 'must have attribute near'); + + test(function() { + var event = new UserProximityEvent('test'); + assert_readonly(event, 'near', 'readonly attribute near'); + }, 'near is readonly'); + + test(function() { + var event = new UserProximityEvent('test'); + assert_false(event.near, 'near initializes to false'); + }, 'near initializes to false'); + + test(function() { + var event = new UserProximityEvent('test', { + near: false + }); + assert_false(event.near, 'near set to false'); + }, 'near set to false'); + + test(function() { + var event = new UserProximityEvent('test', { + near: true + }); + assert_true(event.near, 'near set to true'); + }, 'near set to true'); + + test(function() { + var event = new UserProximityEvent('test', { + near: undefined + }); + assert_false(event.near, 'argument is truthy'); + }, 'near set to undefined'); + + test(function() { + var event = new UserProximityEvent('test', { + near: null + }); + assert_false(event.near, 'argument is flasy'); + }, 'near set to null'); + + test(function() { + var event = new UserProximityEvent('test', { + near: 0 + }); + assert_false(event.near, 'argument is flasy'); + }, 'near set to 0'); + + test(function() { + var event = new UserProximityEvent('test', { + near: '' + }); + assert_false(event.near, 'argument is flasy'); + }, 'near set to empty string'); + + test(function() { + var event = new UserProximityEvent('test', { + near: '\u0020' + }); + assert_true(event.near, 'argument is truthy'); + }, 'near set to U+0020'); + + test(function() { + var event = new UserProximityEvent('test', { + near: 1 + }); + assert_true(event.near, 'argument is truthy'); + }, 'near set to 1'); + + test(function() { + var event = new UserProximityEvent('test', { + near: [] + }); + assert_true(event.near, 'argument is truthy'); + }, 'near set to []'); + + test(function() { + var event = new UserProximityEvent('test', { + near: {} + }); + assert_true(event.near, 'argument is truthy'); + }, 'near set to {}'); + + test(function() { + var dict = { + get test() { + return false; + } + }; + var event = new UserProximityEvent('test', { + near: dict.test + }); + assert_false(event.near, 'explict false'); + }, 'near set to object that resolves to false'); + + test(function() { + var desc = 'Expected to find onuserproximity attribute on window object'; + assert_idl_attribute(window, 'onuserproximity', desc); + }, 'onuserproximity exists'); + + test(function() { + var desc = 'window.onuserproximity must be null'; + assert_equals(window.onuserproximity, null, desc); + }, 'onuserproximity is null'); + + test(function() { + var desc = 'window.onuserproximity did not accept callable object', + func = function() {}, + descidl = 'onuserproximity does not exist'; + window.onuserproximity = func; + assert_equals(window.onuserproximity, func, descidl); + }, 'onuserproximity exists and can be set to a function'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable as null'; + window.onuserproximity = function() {}; + window.onuserproximity = {}; + assert_equals(window.onuserproximity, null, desc); + }, 'treat object as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable as null'; + window.onuserproximity = function() {}; + window.onuserproximity = { + call: 'test' + }; + assert_equals(window.onuserproximity, null, desc); + }, 'treat object with non-callable call property as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable (string) as null'; + window.onuserproximity = function() {}; + window.onuserproximity = 'string'; + assert_equals(window.onuserproximity, null, desc); + }, 'treat string as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable (number) as null'; + window.onuserproximity = function() {}; + window.onuserproximity = 123; + assert_equals(window.onuserproximity, null, desc); + }, 'treat number as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable (undefined) as null'; + window.onuserproximity = function() {}; + window.onuserproximity = undefined; + assert_equals(window.onuserproximity, null, desc); + }, 'treat undefined as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable (array) as null'; + window.onuserproximity = function() {}; + window.onuserproximity = []; + assert_equals(window.onuserproximity, null, desc); + }, 'treat array as null'); + + test(function() { + var desc = 'window.onuserproximity did not treat noncallable host object as null'; + window.onuserproximity = function() {}; + window.onuserproximity = Node; + assert_equals(window.onuserproximity, null, desc); + }, 'treat non-callable host object as null'); + + //Async tests + var t = async_test('test if user proximity event received'); + window.addEventListener('userproximity', function(e) { + t.step(function() { + var msg = 'expected instance of UserProximityEvent: '; + assert_true(e instanceof window.UserProximityEvent, msg); + }); + t.done(); + }); + + var t2 = async_test('test if user proximity event received (idl attribute)'); + window.onuserproximity = function(e) { + t2.step(function() { + var msg = 'expected instance of UserProximityEvent: '; + assert_true(e instanceof window.UserProximityEvent, msg); + }); + t2.done(); + }; +})(); -- cgit v1.2.3