summaryrefslogtreecommitdiffstats
path: root/layout/style/test/test_non_content_accessible_values.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/test/test_non_content_accessible_values.html')
-rw-r--r--layout/style/test/test_non_content_accessible_values.html172
1 files changed, 172 insertions, 0 deletions
diff --git a/layout/style/test/test_non_content_accessible_values.html b/layout/style/test/test_non_content_accessible_values.html
new file mode 100644
index 0000000000..633427f8e1
--- /dev/null
+++ b/layout/style/test/test_non_content_accessible_values.html
@@ -0,0 +1,172 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style id="sheet"></style>
+<div></div>
+<script>
+const NON_CONTENT_ACCESSIBLE_VALUES = {
+ "color": [
+ "-moz-buttonactivetext",
+ "-moz-buttonactiveface",
+ "-moz-buttondisabledface",
+ "-moz-disabledfield",
+ "-moz-colheaderhovertext",
+ "-moz-colheadertext",
+ "-moz-nativevisitedhyperlinktext",
+ "text-select-disabled-background",
+ "text-select-attention-background",
+ "text-select-attention-foreground",
+ "-moz-autofill-background",
+ ],
+ "display": [
+ "-moz-box",
+ "-moz-inline-box",
+ ],
+ "font": [
+ "-moz-pull-down-menu",
+ "-moz-button",
+ "-moz-list",
+ "-moz-field",
+ ],
+ "-moz-appearance": [
+ "button-arrow-down",
+ "button-arrow-next",
+ "button-arrow-previous",
+ "button-arrow-up",
+ "button-focus",
+ "dualbutton",
+ "groupbox",
+ "menubar",
+ "menuitem",
+ "checkmenuitem",
+ "radiomenuitem",
+ "menuitemtext",
+ "menupopup",
+ "menucheckbox",
+ "menuradio",
+ "menuseparator",
+ "menuimage",
+ "-moz-menulist-arrow-button",
+ "checkbox-container",
+ "radio-container",
+ "checkbox-label",
+ "radio-label",
+ "resizerpanel",
+ "resizer",
+ "scrollbar",
+ "scrollbar-small",
+ "scrollbar-horizontal",
+ "scrollbar-vertical",
+ "scrollbarbutton-up",
+ "scrollbarbutton-down",
+ "scrollbarbutton-left",
+ "scrollbarbutton-right",
+ "scrollcorner",
+ "separator",
+ "spinner",
+ "spinner-upbutton",
+ "spinner-downbutton",
+ "spinner-textfield",
+ "splitter",
+ "statusbar",
+ "statusbarpanel",
+ "tab",
+ "tabpanel",
+ "tabpanels",
+ "tab-scroll-arrow-back",
+ "tab-scroll-arrow-forward",
+ "toolbar",
+ "toolbarbutton",
+ "toolbarbutton-dropdown",
+ "toolbargripper",
+ "toolbox",
+ "tooltip",
+ "treeheader",
+ "treeheadercell",
+ "treeheadersortarrow",
+ "treeitem",
+ "treeline",
+ "treetwisty",
+ "treetwistyopen",
+ "treeview",
+ "window",
+ "dialog",
+ "-moz-win-communications-toolbox",
+ "-moz-win-media-toolbox",
+ "-moz-win-browsertabbar-toolbox",
+ "-moz-win-borderless-glass",
+ "-moz-win-exclude-glass",
+ "-moz-mac-help-button",
+ "-moz-window-button-box",
+ "-moz-window-button-box-maximized",
+ "-moz-window-button-close",
+ "-moz-window-button-maximize",
+ "-moz-window-button-minimize",
+ "-moz-window-button-restore",
+ "-moz-window-titlebar",
+ "-moz-window-titlebar-maximized",
+ "-moz-mac-active-source-list-selection",
+ "-moz-mac-disclosure-button-closed",
+ "-moz-mac-disclosure-button-open",
+ "-moz-mac-source-list",
+ "-moz-mac-source-list-selection",
+
+ "button-bevel",
+ "caret",
+ "listitem",
+ "menulist-textfield",
+ "menulist-text",
+ ],
+ "user-select": [
+ "-moz-text",
+ ],
+ "line-height": [
+ "-moz-block-height",
+ ],
+ "text-align": [
+ "-moz-center-or-inherit",
+ ],
+};
+
+const sheet = document.getElementById("sheet");
+const div = document.querySelector("div");
+
+test(function() {
+ sheet.textContent = `div { color: initial }`;
+ assert_equals(sheet.sheet.cssRules[0].style.length, 1);
+}, "sanity");
+
+for (const prop in NON_CONTENT_ACCESSIBLE_VALUES) {
+ const values = NON_CONTENT_ACCESSIBLE_VALUES[prop];
+ test(function() {
+ for (const value of values) {
+ sheet.textContent = `div { ${prop}: ${value} }`;
+ const block = sheet.sheet.cssRules[0].style;
+ assert_equals(
+ block.length,
+ 0,
+ `${prop}: ${value} should not be parsed in content`
+ );
+ block.setProperty(prop, value);
+ assert_equals(
+ block.length,
+ 0,
+ `${prop}: ${value} should not be settable via CSSOM in content`
+ );
+ div.style.setProperty(prop, value);
+ assert_equals(
+ div.style.length,
+ 0,
+ `${prop}: ${value} should not be settable via CSSOM in content (inline style)`
+ );
+ assert_not_equals(
+ getComputedStyle(div).getPropertyValue(prop),
+ value,
+ `${prop}: ${value} should not be settable via CSSOM in content (gcs)`
+ );
+
+ assert_false(CSS.supports(prop, value), `${prop}: ${value} should not claim to be supported`)
+ }
+ }, prop + " non-accessible values: " + values.join(", "))
+}
+</script>