| <!doctype html> |
| <meta charset=utf-8> |
| <!-- WARNING: These tests are preliminary and probably partly incorrect. --> |
| <title>CSSOM automated IDL tests</title> |
| <link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"> |
| <link rel="help" href="https://drafts.csswg.org/cssom-1/#idl-index"> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src=/resources/WebIDLParser.js></script> |
| <script src=/resources/idlharness.js></script> |
| <!-- |
| Provide some objects to test. |
| Use a non-empty style attribute to get a non-empty CSSStyleDeclaration. |
| --> |
| <style id="styleElement" style="z-index: 0;"> |
| @import url("data:text/css,"); |
| @namespace x "y"; |
| @page { @top-left {} } |
| @media all {} |
| #test { color: green; } |
| </style> |
| |
| <svg id="svgElement" style="height: 0;"></svg> |
| |
| <iframe id="xmlssPiIframe" src="support/xmlss-pi.xhtml" style="display: none;"></iframe> |
| |
| <h1>CSSOM IDL tests</h1> |
| <div id=log></div> |
| |
| <script> |
| "use strict"; |
| var style_element, svg_element, xmlss_pi; |
| |
| function doTest([html, dom, uievents, cssom]) { |
| style_element = document.getElementById('styleElement'); |
| svg_element = document.getElementById('svgElement'); |
| xmlss_pi = document.getElementById('xmlssPiIframe').contentDocument.firstChild; |
| |
| var idlArray = new IdlArray(); |
| var svg = "interface SVGElement : Element {};"; |
| idlArray.add_untested_idls(html + dom + svg); |
| idlArray.add_untested_idls(uievents, { only: [ |
| 'UIEvent', |
| 'UIEventInit', |
| 'MouseEvent', |
| 'MouseEventInit', |
| 'EventModifierInit' |
| ]}); |
| idlArray.add_idls(cssom); |
| |
| idlArray.add_objects({ |
| "Document": ["document", "new Document()"], |
| "StyleSheetList": ["document.styleSheets"], |
| "CSSStyleSheet": ["style_element.sheet"], |
| "MediaList": ["style_element.sheet.media"], |
| "CSSRuleList": ["style_element.sheet.cssRules"], |
| "CSSImportRule": ["style_element.sheet.cssRules[0]"], |
| "CSSNamespaceRule": ["style_element.sheet.cssRules[1]"], |
| "CSSPageRule": ["style_element.sheet.cssRules[2]"], |
| "CSSMarginRule": ["style_element.sheet.cssRules[2].cssRules[0]"], |
| "CSSMediaRule": ["style_element.sheet.cssRules[3]"], |
| "CSSStyleRule": ["style_element.sheet.cssRules[4]"], |
| "CSSStyleDeclaration": ["style_element.sheet.cssRules[4].style", // CSSStyleRule |
| "style_element.sheet.cssRules[2].style", // CSSPageRule |
| "style_element.sheet.cssRules[2].cssRules[0].style", // CSSMarginRule |
| "style_element.style", // ElementCSSInlineStyle for HTMLElement |
| "svg_element.style", // ElementCSSInlineStyle for SVGElement |
| "getComputedStyle(svg_element)"], |
| "ProcessingInstruction": ["xmlss_pi"], |
| "Window": ["window"], |
| "HTMLElement": ["style_element", "document.createElement('unknownelement')"], |
| "SVGElement": ["svg_element"], |
| }); |
| idlArray.test(); |
| }; |
| |
| function fetchData(url) { |
| return fetch(url).then((response) => response.text()); |
| } |
| |
| function waitForLoad() { |
| return new Promise(function(resolve) { |
| addEventListener("load", resolve); |
| }); |
| } |
| |
| promise_test(function() { |
| // Have to wait for onload |
| return Promise.all([fetchData("/interfaces/html.idl"), |
| fetchData("/interfaces/dom.idl"), |
| fetchData("/interfaces/uievents.idl"), |
| fetchData("/interfaces/cssom.idl"), |
| waitForLoad()]) |
| .then(doTest); |
| }, "Test driver"); |
| |
| </script> |