toggleevent-interface.html (6826B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <link rel="author" href="mailto:masonf@chromium.org"> 4 <link rel=help href="https://open-ui.org/components/popover.research.explainer"> 5 <link rel=help href="https://html.spec.whatwg.org/multipage/popover.html"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 9 <script> 10 test(function() { 11 var event = new ToggleEvent(""); 12 assert_true(event instanceof window.ToggleEvent); 13 }, "the event is an instance of ToggleEvent"); 14 15 test(function() { 16 var event = new ToggleEvent(""); 17 assert_true(event instanceof window.Event); 18 }, "the event inherts from Event"); 19 20 test(function() { 21 assert_throws_js(TypeError, function() { 22 new ToggleEvent(); 23 }, 'First argument (type) is required, so was expecting a TypeError.'); 24 }, 'Missing type argument'); 25 26 test(function() { 27 var event = new ToggleEvent("test"); 28 assert_equals(event.type, "test"); 29 }, "type argument is string"); 30 31 test(function() { 32 var event = new ToggleEvent(null); 33 assert_equals(event.type, "null"); 34 }, "type argument is null"); 35 36 test(function() { 37 var event = new ToggleEvent(undefined); 38 assert_equals(event.type, "undefined"); 39 }, "event type set to undefined"); 40 41 test(function() { 42 var event = new ToggleEvent("test"); 43 assert_equals(event.oldState, ""); 44 }, "oldState has default value of empty string"); 45 46 test(function() { 47 var event = new ToggleEvent("test"); 48 assert_readonly(event, "oldState", "readonly attribute value"); 49 }, "oldState is readonly"); 50 51 test(function() { 52 var event = new ToggleEvent("test"); 53 assert_equals(event.newState, ""); 54 }, "newState has default value of empty string"); 55 56 test(function() { 57 var event = new ToggleEvent("test"); 58 assert_readonly(event, "newState", "readonly attribute value"); 59 }, "newState is readonly"); 60 61 test(function() { 62 var event = new ToggleEvent("test", null); 63 assert_equals(event.oldState, ""); 64 assert_equals(event.newState, ""); 65 }, "ToggleEventInit argument is null"); 66 67 test(function() { 68 var event = new ToggleEvent("test", undefined); 69 assert_equals(event.oldState, ""); 70 assert_equals(event.newState, ""); 71 }, "ToggleEventInit argument is undefined"); 72 73 test(function() { 74 var event = new ToggleEvent("test", {}); 75 assert_equals(event.oldState, ""); 76 assert_equals(event.newState, ""); 77 }, "ToggleEventInit argument is empty dictionary"); 78 79 test(function() { 80 var event = new ToggleEvent("test", {oldState: "sample"}); 81 assert_equals(event.oldState, "sample"); 82 }, "oldState set to 'sample'"); 83 84 test(function() { 85 var event = new ToggleEvent("test", {oldState: undefined}); 86 assert_equals(event.oldState, ""); 87 }, "oldState set to undefined"); 88 89 test(function() { 90 var event = new ToggleEvent("test", {oldState: null}); 91 assert_equals(event.oldState, "null"); 92 }, "oldState set to null"); 93 94 test(function() { 95 var event = new ToggleEvent("test", {oldState: false}); 96 assert_equals(event.oldState, "false"); 97 }, "oldState set to false"); 98 99 test(function() { 100 var event = new ToggleEvent("test", {oldState: true}); 101 assert_equals(event.oldState, "true"); 102 }, "oldState set to true"); 103 104 test(function() { 105 var event = new ToggleEvent("test", {oldState: 0.5}); 106 assert_equals(event.oldState, "0.5"); 107 }, "oldState set to a number"); 108 109 test(function() { 110 var event = new ToggleEvent("test", {oldState: []}); 111 assert_equals(event.oldState, ""); 112 }, "oldState set to []"); 113 114 test(function() { 115 var event = new ToggleEvent("test", {oldState: [1, 2, 3]}); 116 assert_equals(event.oldState, "1,2,3"); 117 }, "oldState set to [1, 2, 3]"); 118 119 test(function() { 120 var event = new ToggleEvent("test", {oldState: {sample: 0.5}}); 121 assert_equals(event.oldState, "[object Object]"); 122 }, "oldState set to an object"); 123 124 test(function() { 125 var event = new ToggleEvent("test", 126 {oldState: {valueOf: function () { return 'sample'; }}}); 127 assert_equals(event.oldState, "[object Object]"); 128 }, "oldState set to an object with a valueOf function"); 129 130 test(function() { 131 var eventInit = {oldState: "sample",newState: "sample2"}; 132 var event = new ToggleEvent("test", eventInit); 133 assert_equals(event.oldState, "sample"); 134 assert_equals(event.newState, "sample2"); 135 }, "ToggleEventInit properties set value"); 136 137 test(function() { 138 var eventInit = {oldState: "open",newState: "closed"}; 139 var event = new ToggleEvent("beforetoggle", eventInit); 140 assert_equals(event.oldState, "open"); 141 assert_equals(event.newState, "closed"); 142 }, "ToggleEventInit properties set value 2"); 143 144 test(function() { 145 var eventInit = {oldState: "closed",newState: "open"}; 146 var event = new ToggleEvent("toggle", eventInit); 147 assert_equals(event.oldState, "closed"); 148 assert_equals(event.newState, "open"); 149 }, "ToggleEventInit properties set value 3"); 150 151 test(function() { 152 var eventInit = {oldState: "open",newState: "open"}; 153 var event = new ToggleEvent("beforetoggle", eventInit); 154 assert_equals(event.oldState, "open"); 155 assert_equals(event.newState, "open"); 156 }, "ToggleEventInit properties set value 4"); 157 158 test(function() { 159 const div = document.createElement('div'); 160 const eventInit = {source: div}; 161 const event = new ToggleEvent('beforetoggle', eventInit); 162 assert_equals(event.source, div); 163 }, 'ToggleEventInit with source.'); 164 165 test(function() { 166 var event = new ToggleEvent("test", {newState: "sample"}); 167 assert_equals(event.newState, "sample"); 168 }, "newState set to 'sample'"); 169 170 test(function() { 171 var event = new ToggleEvent("test", {newState: undefined}); 172 assert_equals(event.newState, ""); 173 }, "newState set to undefined"); 174 175 test(function() { 176 var event = new ToggleEvent("test", {newState: null}); 177 assert_equals(event.newState, "null"); 178 }, "newState set to null"); 179 180 test(function() { 181 var event = new ToggleEvent("test", {newState: false}); 182 assert_equals(event.newState, "false"); 183 }, "newState set to false"); 184 185 test(function() { 186 var event = new ToggleEvent("test", {newState: true}); 187 assert_equals(event.newState, "true"); 188 }, "newState set to true"); 189 190 test(function() { 191 var event = new ToggleEvent("test", {newState: 0.5}); 192 assert_equals(event.newState, "0.5"); 193 }, "newState set to a number"); 194 195 test(function() { 196 var event = new ToggleEvent("test", {newState: []}); 197 assert_equals(event.newState, ""); 198 }, "newState set to []"); 199 200 test(function() { 201 var event = new ToggleEvent("test", {newState: [1, 2, 3]}); 202 assert_equals(event.newState, "1,2,3"); 203 }, "newState set to [1, 2, 3]"); 204 205 test(function() { 206 var event = new ToggleEvent("test", {newState: {sample: 0.5}}); 207 assert_equals(event.newState, "[object Object]"); 208 }, "newState set to an object"); 209 210 test(function() { 211 var event = new ToggleEvent("test", 212 {newState: {valueOf: function () { return 'sample'; }}}); 213 assert_equals(event.newState, "[object Object]"); 214 }, "newState set to an object with a valueOf function"); 215 </script>