summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html')
-rw-r--r--testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html99
1 files changed, 99 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html b/testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html
new file mode 100644
index 0000000000..f723d3a92a
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/interactive-elements/contextmenu-historical.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>menu element removed properties</title>
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-menu-element">
+<link rel="help" href="https://github.com/whatwg/html/pull/2742">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<menu type="context" label="label">
+ <menuitem>Text</menuitem>
+ <menuitem type="checkbox" checked>Checked</menuitem>
+ <menuitem disabled>Disabled</menuitem>
+ <menuitem default>Default</menuitem>
+</menu>
+
+<script>
+"use strict";
+
+const menu = document.querySelector("menu");
+const menuitem = document.querySelector("menuitem");
+
+test(() => {
+ assert_false("HTMLMenuItemElement" in window, "the HTMLMenuItemElement interface must not exist");
+ assert_equals(menuitem.constructor, HTMLUnknownElement, "A <menuitem> must be HTMLUnknownElement");
+
+ for (const prop of ["type", "label", "icon", "disabled", "checked", "radiogroup", "default"]) {
+ assert_false(prop in menuitem, `menuitem.${prop} must not be present`);
+ }
+}, "HTMLMenuItemElement must not be not present");
+
+test(() => {
+ const potentialBadLocations = [
+ window,
+ document,
+ HTMLElement.prototype,
+ SVGElement.prototype,
+ Document.prototype,
+ HTMLDocument.prototype,
+ Element.prototype
+ ];
+ for (const location of potentialBadLocations) {
+ assert_false("onshow" in location,
+ `${location.constructor.name} must not have a property "onshow"`);
+ }
+}, `onshow must not be present on the GlobalEventHandlers locations`);
+
+test(() => {
+ assert_false("RelatedEvent" in window);
+}, "RelatedEvent must not be present");
+
+test(() => {
+ assert_false("contextMenu" in HTMLElement.prototype,
+ "HTMLElement's prototype must not have a property \"contextMenu\"");
+ assert_false("contextMenu" in document.createElement("div"),
+ "A div must not have a property \"contextMenu\"");
+}, "el.contextMenu must not be present");
+
+test(() => {
+ assert_false("type" in menu);
+
+ menu.type = "toolbar";
+ assert_equals(menu.getAttribute("type"), "context");
+}, "menu.type must not exist or reflect the content attribute");
+
+test(() => {
+ assert_false("label" in menu);
+
+ menu.label = "new label";
+ assert_equals(menu.getAttribute("label"), "label");
+}, "menu.label must not exist or reflect the content attribute");
+
+test(() => {
+ assert_array_equals(document.querySelectorAll("menuitem:enabled"), []);
+}, ":enabled must not match menuitems");
+
+test(() => {
+ assert_array_equals(document.querySelectorAll("menuitem:disabled"), []);
+}, ":disabled must not match menuitems");
+
+test(() => {
+ assert_array_equals(document.querySelectorAll("menuitem:checked"), []);
+}, ":checked must not match menuitems");
+
+test(() => {
+ try {
+ assert_array_equals(document.querySelectorAll("menuitem:default"), []);
+ } catch (e) {
+ // Not everyone has implemented :default as of the time of this writing.
+ if (e.name !== "SyntaxError") {
+ throw e;
+ }
+ }
+}, ":default must not match menuitems");
+
+test(() => {
+ assert_equals(getComputedStyle(menu).display, "block");
+}, "The user-agent stylesheet must leave type=\"context\" menus as block display like other menus");
+
+</script>