| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <link rel="author" href="mailto:[email protected]"> |
| <link rel=help href="https://open-ui.org/components/popover.research.explainer"> |
| <link rel=help href="https://html.spec.whatwg.org/multipage/popover.html"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <script> |
| test(function() { |
| var event = new ToggleEvent(""); |
| assert_true(event instanceof window.ToggleEvent); |
| }, "the event is an instance of ToggleEvent"); |
| |
| test(function() { |
| var event = new ToggleEvent(""); |
| assert_true(event instanceof window.Event); |
| }, "the event inherts from Event"); |
| |
| test(function() { |
| assert_throws_js(TypeError, function() { |
| new ToggleEvent(); |
| }, 'First argument (type) is required, so was expecting a TypeError.'); |
| }, 'Missing type argument'); |
| |
| test(function() { |
| var event = new ToggleEvent("test"); |
| assert_equals(event.type, "test"); |
| }, "type argument is string"); |
| |
| test(function() { |
| var event = new ToggleEvent(null); |
| assert_equals(event.type, "null"); |
| }, "type argument is null"); |
| |
| test(function() { |
| var event = new ToggleEvent(undefined); |
| assert_equals(event.type, "undefined"); |
| }, "event type set to undefined"); |
| |
| test(function() { |
| var event = new ToggleEvent("test"); |
| assert_equals(event.oldState, ""); |
| }, "oldState has default value of empty string"); |
| |
| test(function() { |
| var event = new ToggleEvent("test"); |
| assert_readonly(event, "oldState", "readonly attribute value"); |
| }, "oldState is readonly"); |
| |
| test(function() { |
| var event = new ToggleEvent("test"); |
| assert_equals(event.newState, ""); |
| }, "newState has default value of empty string"); |
| |
| test(function() { |
| var event = new ToggleEvent("test"); |
| assert_readonly(event, "newState", "readonly attribute value"); |
| }, "newState is readonly"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", null); |
| assert_equals(event.oldState, ""); |
| assert_equals(event.newState, ""); |
| }, "ToggleEventInit argument is null"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", undefined); |
| assert_equals(event.oldState, ""); |
| assert_equals(event.newState, ""); |
| }, "ToggleEventInit argument is undefined"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {}); |
| assert_equals(event.oldState, ""); |
| assert_equals(event.newState, ""); |
| }, "ToggleEventInit argument is empty dictionary"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: "sample"}); |
| assert_equals(event.oldState, "sample"); |
| }, "oldState set to 'sample'"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: undefined}); |
| assert_equals(event.oldState, ""); |
| }, "oldState set to undefined"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: null}); |
| assert_equals(event.oldState, "null"); |
| }, "oldState set to null"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: false}); |
| assert_equals(event.oldState, "false"); |
| }, "oldState set to false"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: true}); |
| assert_equals(event.oldState, "true"); |
| }, "oldState set to true"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: 0.5}); |
| assert_equals(event.oldState, "0.5"); |
| }, "oldState set to a number"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: []}); |
| assert_equals(event.oldState, ""); |
| }, "oldState set to []"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: [1, 2, 3]}); |
| assert_equals(event.oldState, "1,2,3"); |
| }, "oldState set to [1, 2, 3]"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {oldState: {sample: 0.5}}); |
| assert_equals(event.oldState, "[object Object]"); |
| }, "oldState set to an object"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", |
| {oldState: {valueOf: function () { return 'sample'; }}}); |
| assert_equals(event.oldState, "[object Object]"); |
| }, "oldState set to an object with a valueOf function"); |
| |
| test(function() { |
| var eventInit = {oldState: "sample",newState: "sample2"}; |
| var event = new ToggleEvent("test", eventInit); |
| assert_equals(event.oldState, "sample"); |
| assert_equals(event.newState, "sample2"); |
| }, "ToggleEventInit properties set value"); |
| |
| test(function() { |
| var eventInit = {oldState: "open",newState: "closed"}; |
| var event = new ToggleEvent("beforetoggle", eventInit); |
| assert_equals(event.oldState, "open"); |
| assert_equals(event.newState, "closed"); |
| }, "ToggleEventInit properties set value 2"); |
| |
| test(function() { |
| var eventInit = {oldState: "closed",newState: "open"}; |
| var event = new ToggleEvent("toggle", eventInit); |
| assert_equals(event.oldState, "closed"); |
| assert_equals(event.newState, "open"); |
| }, "ToggleEventInit properties set value 3"); |
| |
| test(function() { |
| var eventInit = {oldState: "open",newState: "open"}; |
| var event = new ToggleEvent("beforetoggle", eventInit); |
| assert_equals(event.oldState, "open"); |
| assert_equals(event.newState, "open"); |
| }, "ToggleEventInit properties set value 4"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: "sample"}); |
| assert_equals(event.newState, "sample"); |
| }, "newState set to 'sample'"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: undefined}); |
| assert_equals(event.newState, ""); |
| }, "newState set to undefined"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: null}); |
| assert_equals(event.newState, "null"); |
| }, "newState set to null"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: false}); |
| assert_equals(event.newState, "false"); |
| }, "newState set to false"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: true}); |
| assert_equals(event.newState, "true"); |
| }, "newState set to true"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: 0.5}); |
| assert_equals(event.newState, "0.5"); |
| }, "newState set to a number"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: []}); |
| assert_equals(event.newState, ""); |
| }, "newState set to []"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: [1, 2, 3]}); |
| assert_equals(event.newState, "1,2,3"); |
| }, "newState set to [1, 2, 3]"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", {newState: {sample: 0.5}}); |
| assert_equals(event.newState, "[object Object]"); |
| }, "newState set to an object"); |
| |
| test(function() { |
| var event = new ToggleEvent("test", |
| {newState: {valueOf: function () { return 'sample'; }}}); |
| assert_equals(event.newState, "[object Object]"); |
| }, "newState set to an object with a valueOf function"); |
| </script> |