mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Update web-platform-tests to revision fb898b46adaf656c9807ed0b8adb39d84162cb98
This commit is contained in:
parent
6a4e6174a7
commit
eed68f662b
222 changed files with 12791 additions and 14492 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,4 @@
|
|||
[border-color-interpolation.html]
|
||||
[border-color interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-image-outset-interpolation.html]
|
||||
[border-image-outset interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-image-slice-interpolation.html]
|
||||
[border-image-slice interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-image-source-interpolation.html]
|
||||
[border-image-source interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-image-width-interpolation.html]
|
||||
[border-image-width interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-radius-interpolation.html]
|
||||
[border-radius interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-width-interpolation.html]
|
||||
[border-width interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[border-image-source-computed.sub.html]
|
||||
[Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)' computes to 'conic-gradient(from 90deg at 80% 90%, rgb(0, 255, 0), rgb(0, 0, 0))']
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-001.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-002.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-003.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-004.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-005.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-interpolation-006.html]
|
||||
[transform interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[transform-origin-interpolation.html]
|
||||
[transform-origin interpolation]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[background-position]
|
||||
expected: FAIL
|
||||
|
||||
[background-image-radial-gradient]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[getBoundingClientRect-empty-inline.html]
|
||||
[getBoundingClientRect-empty-inline]
|
||||
expected: FAIL
|
||||
|
301
tests/wpt/metadata/css/cssom-view/idlharness.html.ini
Normal file
301
tests/wpt/metadata/css/cssom-view/idlharness.html.ini
Normal file
|
@ -0,0 +1,301 @@
|
|||
[idlharness.html]
|
||||
[Element interface: document.createElement("img") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of document.caretPositionFromPoint(5, 5)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: operation getBoundingClientRect()]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: document.createTextNode("x") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute pageX]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute pageY]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: operation getClientRect()]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLImageElement interface: attribute x]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation getBoxQuads(BoxQuadOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation caretPositionFromPoint(double, double)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: operation getBoxQuads(BoxQuadOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation scrollIntoView([object Object\],[object Object\])]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("img") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: attribute offsetNode]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "screenLeft" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "scrollingElement" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPseudoElement interface: operation getBoxQuads(BoxQuadOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: operation getClientRects()]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute y]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute x]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElement("img") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: calling getBoxQuads(BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling scrollIntoView([object Object\],[object Object\]) on document.createElement("div") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "screenTop" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("div") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling getBoxQuads(BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute screenLeft]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation getBoxQuads(BoxQuadOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute screenTop]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: new Range() must inherit property "getClientRects()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute scrollingElement]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute offsetX]
|
||||
expected: FAIL
|
||||
|
||||
[MouseEvent interface: attribute offsetY]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLImageElement interface: attribute y]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5)]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling getBoxQuads(BoxQuadOptions) on document with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CaretPosition interface: attribute offset]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: document.createElement("div") must inherit property "scrollIntoView([object Object\],[object Object\])" with the proper type]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
496
tests/wpt/metadata/css/cssom/idlharness.html.ini
Normal file
496
tests/wpt/metadata/css/cssom/idlharness.html.ini
Normal file
|
@ -0,0 +1,496 @@
|
|||
[idlharness.html]
|
||||
[CSSRule interface: attribute parentRule]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "removeProperty(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of svg_element.style]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: operation insertRule(CSSOMString, unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: calling removeRule(unsigned long) on sheet with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2\].cssRules[0\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: attribute ownerNode]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "STYLE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "FONT_FACE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on sheet.cssRules[2\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration must be primary interface of sheet.cssRules[4\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "style" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: sheet.media must inherit property "length" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: sheet must inherit property "media" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[SVGStyleElement interface: attribute sheet]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: attribute rules]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: operation removeRule(unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: attribute style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: attribute type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "MARGIN_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[2\].cssRules[0\]]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: stringifier]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: attribute media]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: sheet must inherit property "addRule(DOMString, DOMString, unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2\].cssRules[0\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule must be primary interface of sheet.cssRules[4\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "PAGE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration must be primary interface of sheet.cssRules[2\].cssRules[0\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "name" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[4\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: attribute name]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: attribute parentStyleSheet]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[2\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "MARGIN_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration must be primary interface of svg_element.style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[1\] must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "type" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: attribute href]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\] must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "removeProperty(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: attribute styleSheet]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: operation addRule(DOMString, DOMString, unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: sheet must inherit property "rules" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule must be primary interface of sheet.cssRules[2\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "STYLE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2\].cssRules[0\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: sheet.cssRules[2\] must inherit property "style" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule must be primary interface of sheet.cssRules[2\].cssRules[0\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: attribute ownerRule]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "getPropertyValue(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "styleSheet" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: attribute selectorText]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on sheet.cssRules[4\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: sheet.cssRules[2\] must inherit property "selectorText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "NAMESPACE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "NAMESPACE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: sheet must inherit property "removeRule(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: sheet.media must inherit property "mediaText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "length" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration must be primary interface of sheet.cssRules[2\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleSheet interface: calling addRule(DOMString, DOMString, unsigned long) on sheet with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "removeProperty(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "length" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[0\] must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "length" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "MEDIA_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[4\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on sheet.cssRules[2\].cssRules[0\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[SVGElement interface: svg_element must inherit property "style" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: attribute media]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface: attribute style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: sheet must inherit property "type" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: sheet must inherit property "ownerNode" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "parentStyleSheet" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "getPropertyValue(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MediaList must be primary interface of sheet.media]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "PAGE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: sheet.cssRules[4\] must inherit property "style" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "item(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "IMPORT_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "FONT_FACE_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "cssFloat" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2\].cssRules[0\].style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "MEDIA_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPageRule interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[ProcessingInstruction interface: attribute sheet]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "CHARSET_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.media]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "type" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "IMPORT_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "cssFloat" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "media" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "cssFloat" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "item(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[2\].cssRules[0\].style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "CHARSET_RULE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[4\] must inherit property "parentRule" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface: attribute style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].style must inherit property "getPropertyValue(CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of sheet.cssRules[2\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "parentStyleSheet" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLElement interface: attribute style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: attribute parentRule]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: sheet.cssRules[4\] must inherit property "selectorText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSRule interface: sheet.cssRules[2\].cssRules[0\] must inherit property "cssText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "href" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSMarginRule interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[4\].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "item(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
1374
tests/wpt/metadata/css/filter-effects/idlharness.any.js.ini
Normal file
1374
tests/wpt/metadata/css/filter-effects/idlharness.any.js.ini
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,2 @@
|
|||
[aspect-ratio-005.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[aspect-ratio-006.html]
|
||||
expected: FAIL
|
|
@ -1533,21 +1533,9 @@
|
|||
[subtest_608]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_609]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_610]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_612]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_614]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_615]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_616]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1563,15 +1551,9 @@
|
|||
[subtest_620]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_621]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_622]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_623]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_624]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1614,27 +1596,12 @@
|
|||
[subtest_642]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_643]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_644]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_645]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_646]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_647]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_648]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_649]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_650]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1743,39 +1710,21 @@
|
|||
[subtest_690]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_693]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_695]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_696]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_697]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_698]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_699]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_700]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_701]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_702]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_703]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_704]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_708]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1797,15 +1746,6 @@
|
|||
[subtest_714]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_715]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_716]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_717]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_719]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1827,9 +1767,6 @@
|
|||
[subtest_726]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_728]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_730]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1839,48 +1776,141 @@
|
|||
[subtest_733]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_739]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_742]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_743]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_746]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_747]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_750]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_751]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_752]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_753]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_758]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_754]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_755]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_756]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_757]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_759]
|
||||
[subtest_749]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_761]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_741]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_718]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_599]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_611]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_613]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_729]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_727]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_722]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_769]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_768]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_760]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_763]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_762]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_765]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_764]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_767]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_766]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_602]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_604]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_605]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_691]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_639]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_638]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_736]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_734]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_735]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_633]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_637]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_635]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_689]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_682]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_683]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_687]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_684]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_740]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_707]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_706]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_705]
|
||||
expected: FAIL
|
||||
|
||||
[subtest_738]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
[StaticRange-constructor.html]
|
||||
[Construct static range with endpoints in disconnected trees]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Element startContainer and Text endContainer]
|
||||
expected: FAIL
|
||||
|
||||
[Construct collapsed static range]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Document container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with standalone Node container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with offset greater than length]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Comment container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct inverted static range]
|
||||
expected: FAIL
|
||||
|
||||
[Throw on DocumentType or Attr container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with CDATASection container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Text container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Text startContainer and Element endContainer]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with DocumentFragment container]
|
||||
expected: FAIL
|
||||
|
||||
[Throw on missing or invalid arguments]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with Element container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with ProcessingInstruction container]
|
||||
expected: FAIL
|
||||
|
||||
[Construct static range with endpoints in disconnected documents]
|
||||
expected: FAIL
|
||||
|
4
tests/wpt/metadata/domparsing/idlharness.window.js.ini
Normal file
4
tests/wpt/metadata/domparsing/idlharness.window.js.ini
Normal file
|
@ -0,0 +1,4 @@
|
|||
[idlharness.window.html]
|
||||
[ShadowRoot interface: attribute innerHTML]
|
||||
expected: FAIL
|
||||
|
175
tests/wpt/metadata/fetch/api/idlharness.any.js.ini
Normal file
175
tests/wpt/metadata/fetch/api/idlharness.any.js.ini
Normal file
|
@ -0,0 +1,175 @@
|
|||
[idlharness.any.serviceworker.html]
|
||||
[idlharness]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.any.html]
|
||||
[Response interface: new Response() must inherit property "body" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: attribute body]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation blob()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation formData()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute signal]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: operation fetch(RequestInfo, RequestInit)]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute keepalive]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: calling fetch(RequestInfo, RequestInit) on window with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation formData()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation json()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation text()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation text()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation blob()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute isHistoryNavigation]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute isReloadNavigation]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation json()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation arrayBuffer()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Headers interface: iterable<ByteString, ByteString>]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "signal" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "body" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation arrayBuffer()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: new Response() must inherit property "trailer" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: attribute trailer]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute body]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.any.worker.html]
|
||||
[Response interface: new Response() must inherit property "body" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: attribute body]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation blob()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation formData()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute signal]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute keepalive]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation formData()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation json()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation text()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling fetch(RequestInfo, RequestInit) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation text()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation blob()]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute isHistoryNavigation]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute isReloadNavigation]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation json()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: operation arrayBuffer()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: operation fetch(RequestInfo, RequestInit)]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Headers interface: iterable<ByteString, ByteString>]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "signal" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: new Request('about:blank') must inherit property "body" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: operation arrayBuffer()]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: new Response() must inherit property "trailer" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Response interface: attribute trailer]
|
||||
expected: FAIL
|
||||
|
||||
[Request interface: attribute body]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.any.sharedworker.html]
|
||||
[idlharness]
|
||||
expected: FAIL
|
||||
|
|
@ -315,12 +315,18 @@
|
|||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,6 +56,3 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Feature policy "document-domain" can be disabled in cross-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
||||
[Feature policy "document-domain" can be disabled in same-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerwidth.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,32 +1,42 @@
|
|||
[open-features-non-integer-top.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `top`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105/5" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105*3" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105LLl" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105e-1" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105.32" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105e1" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105 " should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105^4" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=105.5" should set "top=105"]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=/104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=_104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=L104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
[document_access_feature_policy.tentative.sub.html]
|
||||
[Feature policy "document-access" can be disabled in same-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
||||
[Feature policy "document-access" can be disabled in cross-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[document_access_parent_access.tentative.html]
|
||||
[document_access_parent_access]
|
||||
expected: FAIL
|
||||
|
5180
tests/wpt/metadata/html/dom/idlharness.https.html.ini
Normal file
5180
tests/wpt/metadata/html/dom/idlharness.https.html.ini
Normal file
File diff suppressed because it is too large
Load diff
718
tests/wpt/metadata/html/dom/idlharness.worker.js.ini
Normal file
718
tests/wpt/metadata/html/dom/idlharness.worker.js.ini
Normal file
|
@ -0,0 +1,718 @@
|
|||
[idlharness.worker.html]
|
||||
[ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute globalAlpha]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute filter]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: attribute onmessage]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute strokeStyle]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation getLineDash()]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: attribute onmessageerror]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: attribute languages]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: operation item(unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation restore()]
|
||||
expected: FAIL
|
||||
|
||||
[PromiseRejectionEvent interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute emHeightAscent]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "ononline" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: operation close()]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute ideographicBaseline]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation beginPath()]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: calling initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object\]) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: attribute port1]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: attribute port2]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute lineWidth]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute shadowColor]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: attribute name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation fill(CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation moveTo(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute actualBoundingBoxAscent]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: operation initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object\])]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, ImageBitmapOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[PromiseRejectionEvent interface: attribute promise]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation resetTransform()]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute emHeightDescent]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: attribute name]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[CanvasPattern interface: operation setTransform(DOMMatrix2DInit)]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object\])" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute lineCap]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface: attribute canvas]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: attribute width]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation stroke()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: attribute onunhandledrejection]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute lineJoin]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[WebSocket interface: attribute extensions]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: attribute onmessageerror]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute direction]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute shadowBlur]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute actualBoundingBoxDescent]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute actualBoundingBoxLeft]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: attribute height]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: attribute onLine]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute miterLimit]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation commit()]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation getTransform()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: attribute ports]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[History interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation lineTo(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: attribute onrejectionhandled]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute font]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: member taintEnabled]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: operation contains(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute hangingBaseline]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation closePath()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: attribute onoffline]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute width]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute actualBoundingBoxRight]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute fontBoundingBoxAscent]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute alphabeticBaseline]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit)]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: operation close()]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: attribute onmessage]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: attribute onlanguagechange]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface: attribute length]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: attribute fontBoundingBoxDescent]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: attribute ononline]
|
||||
expected: FAIL
|
||||
|
||||
[DOMStringList interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute textBaseline]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute textAlign]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: operation transferToImageBitmap()]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: attribute hardwareConcurrency]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: attribute onmessageerror]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation closePath()]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation setLineDash([object Object\])]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: attribute width]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface: operation postMessage(any)]
|
||||
expected: FAIL
|
||||
|
||||
[MessageChannel interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: attribute port]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: operation postMessage(any, [object Object\])]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: self.navigator must not have property "taintEnabled"]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: attribute onerror]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, any)]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute fillStyle]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: attribute canvas]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmapRenderingContext interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation addPath(Path2D, DOMMatrix2DInit)]
|
||||
expected: FAIL
|
||||
|
||||
[SharedWorker interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation save()]
|
||||
expected: FAIL
|
||||
|
||||
[DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: operation postMessage(any, PostMessageOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: operation start()]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort interface: operation close()]
|
||||
expected: FAIL
|
||||
|
||||
[WebSocket interface: new WebSocket("ws://foo") must inherit property "extensions" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface: attribute height]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvas interface: operation convertToBlob(ImageEncodeOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[BroadcastChannel interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[OffscreenCanvasRenderingContext2D interface: operation clip(CanvasFillRule)]
|
||||
expected: FAIL
|
||||
|
||||
[TextMetrics interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[resets.html]
|
||||
[default style resets]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[text-transform.html]
|
||||
expected: FAIL
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
[form-submission-algorithm.html]
|
||||
expected: TIMEOUT
|
||||
[If form's firing submission events is true, then return; 'submit' event]
|
||||
expected: FAIL
|
||||
|
||||
[If form's firing submission events is true, then return; 'invalid' event]
|
||||
expected: FAIL
|
||||
|
||||
[Cannot navigate (after constructing the entry list)]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
10
tests/wpt/metadata/permissions/idlharness.any.js.ini
Normal file
10
tests/wpt/metadata/permissions/idlharness.any.js.ini
Normal file
|
@ -0,0 +1,10 @@
|
|||
[idlharness.any.worker.html]
|
||||
expected: CRASH
|
||||
|
||||
[idlharness.any.html]
|
||||
[Permissions interface: operation query(object)]
|
||||
expected: FAIL
|
||||
|
||||
[Permissions interface: calling query(object) on navigator.permissions with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
|
@ -20,6 +20,3 @@
|
|||
[domainLookupStart should be 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
[responseEnd should be greater than 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -35,3 +35,9 @@
|
|||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t1.9724091887474060e-1\t9.5236867666244507e-1\t7.5512775778770447e-1\t7.9289436569253091e-1\t3.8985999999999999e-3\n\t[60\]\t-2.2450675070285797e-1\t-5.8084785938262939e-1\t3.5634110867977142e-1\t6.1348441407448528e-1\t3.8985999999999999e-3\n\t[90\]\t-3.7808802723884583e-1\t-5.9811043739318848e-1\t2.2002241015434265e-1\t3.6786251568070089e-1\t3.8985999999999999e-3\n\t[120\]\t7.6881676912307739e-1\t9.4563448429107666e-1\t1.7681771516799927e-1\t1.8698315057805445e-1\t3.8985999999999999e-3\n\t[151\]\t5.4644601186737418e-4\t-4.1306272149085999e-2\t4.1852718160953373e-2\t1.0132291292202573e+0\t3.8985999999999999e-3\n\t...and 1419 more errors.\n\tMax AbsError of 9.0185146037803418e+17 at index of 20238.\n\t[20238\]\t-9.0185146037803418e+17\t-4.7574958205223083e-1\t9.0185146037803418e+17\t1.8956432005420513e+18\t3.8985999999999999e-3\n\tMax RelError of 1.8956432005420513e+18 at index of 20238.\n\t[20238\]\t-9.0185146037803418e+17\t-4.7574958205223083e-1\t9.0185146037803418e+17\t1.8956432005420513e+18\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-186.6715132179901 dB) is not greater than or equal to 65.737. Got -186.6715132179901.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t1.9724091887474060e-1\t9.5236867666244507e-1\t7.5512775778770447e-1\t7.9289436569253091e-1\t3.8985999999999999e-3\n\t[60\]\t-2.2450675070285797e-1\t-5.8084785938262939e-1\t3.5634110867977142e-1\t6.1348441407448528e-1\t3.8985999999999999e-3\n\t[90\]\t-3.7808802723884583e-1\t-5.9811043739318848e-1\t2.2002241015434265e-1\t3.6786251568070089e-1\t3.8985999999999999e-3\n\t[120\]\t7.6881676912307739e-1\t9.4563448429107666e-1\t1.7681771516799927e-1\t1.8698315057805445e-1\t3.8985999999999999e-3\n\t[151\]\t5.4644601186737418e-4\t-4.1306272149085999e-2\t4.1852718160953373e-2\t1.0132291292202573e+0\t3.8985999999999999e-3\n\t...and 1419 more errors.\n\tMax AbsError of 3.1438349926352423e+11 at index of 20238.\n\t[20238\]\t-3.1438349926400000e+11\t-4.7574958205223083e-1\t3.1438349926352423e+11\t6.6081718434175989e+11\t3.8985999999999999e-3\n\tMax RelError of 6.6081718434175989e+11 at index of 20238.\n\t[20238\]\t-3.1438349926400000e+11\t-4.7574958205223083e-1\t3.1438349926352423e+11\t6.6081718434175989e+11\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -2,3 +2,6 @@
|
|||
[Feature policy "sync-xhr" can be disabled in cross-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
||||
[Feature policy "sync-xhr" can be disabled in same-origin iframes using "allow" attribute.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ window.addEventListener("message", function (e) {
|
|||
window.parent.postMessage(e.data, "*");
|
||||
else
|
||||
if (e.data.type === 'test_result')
|
||||
endTest(e.data.failed, "Inner IFrame msg: " + e.data.msg);
|
||||
endTest(e.data.failed, "Inner IFrame msg: " + e.data.message);
|
||||
});
|
||||
|
||||
function injectNestedIframe(policy, parent, child, expectation, isSandboxed) {
|
||||
|
@ -67,6 +67,7 @@ function iframeLoaded(expectBlock) {
|
|||
var failed = true;
|
||||
var message = "";
|
||||
try {
|
||||
ev.target.contentWindow.location.href;
|
||||
if (expectBlock) {
|
||||
message = "The IFrame should have been blocked (or cross-origin). It wasn't.";
|
||||
failed = true;
|
||||
|
|
|
@ -2,40 +2,42 @@ importScripts("{{location[server]}}/resources/testharness.js");
|
|||
importScripts("{{location[server]}}/content-security-policy/support/testharness-helper.js");
|
||||
|
||||
// Same-origin
|
||||
async_test(t => {
|
||||
promise_test(t => {
|
||||
var url = "{{location[server]}}/common/text-plain.txt?same-origin-fetch";
|
||||
assert_no_csp_event_for_url(t, url);
|
||||
|
||||
fetch(url)
|
||||
.then(t.step_func_done(r => assert_equals(r.status, 200)));
|
||||
return fetch(url)
|
||||
.then(t.step_func(r => assert_equals(r.status, 200)));
|
||||
}, "Same-origin 'fetch()' in " + self.location.protocol + self.location.search);
|
||||
|
||||
async_test(t => {
|
||||
promise_test(t => {
|
||||
var url = "{{location[server]}}/common/text-plain.txt?same-origin-xhr";
|
||||
assert_no_csp_event_for_url(t, url);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", url);
|
||||
xhr.onload = t.step_func_done();
|
||||
xhr.onerror = t.unreached_func();
|
||||
xhr.onload = t.step_func(resolve);
|
||||
xhr.onerror = t.step_func(_ => reject("xhr.open should success."));
|
||||
xhr.send();
|
||||
});
|
||||
}, "Same-origin XHR in " + self.location.protocol + self.location.search);
|
||||
|
||||
// Cross-origin
|
||||
async_test(t => {
|
||||
promise_test(t => {
|
||||
var url = "http://{{domains[www]}}:{{ports[http][1]}}/common/text-plain.txt?cross-origin-fetch";
|
||||
|
||||
Promise.all([
|
||||
return Promise.all([
|
||||
// TODO(mkwst): A 'securitypolicyviolation' event should fire.
|
||||
fetch(url)
|
||||
.catch(t.step_func(e => assert_true(e instanceof TypeError)))
|
||||
]).then(t.step_func_done());
|
||||
]);
|
||||
}, "Cross-origin 'fetch()' in " + self.location.protocol + self.location.search);
|
||||
|
||||
async_test(t => {
|
||||
promise_test(t => {
|
||||
var url = "http://{{domains[www]}}:{{ports[http][1]}}/common/text-plain.txt?cross-origin-xhr";
|
||||
|
||||
Promise.all([
|
||||
return Promise.all([
|
||||
// TODO(mkwst): A 'securitypolicyviolation' event should fire.
|
||||
new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
@ -44,16 +46,15 @@ async_test(t => {
|
|||
xhr.onerror = t.step_func(resolve);
|
||||
xhr.send();
|
||||
})
|
||||
]).then(t.step_func_done());
|
||||
]);
|
||||
}, "Cross-origin XHR in " + self.location.protocol + self.location.search);
|
||||
|
||||
// Same-origin redirecting to cross-origin
|
||||
async_test(t => {
|
||||
promise_test(t => {
|
||||
var url = "{{location[server]}}/common/redirect-opt-in.py?status=307&location=http://{{domains[www]}}:{{ports[http][1]}}/common/text-plain.txt?cross-origin-fetch";
|
||||
|
||||
// TODO(mkwst): A 'securitypolicyviolation' event should fire.
|
||||
fetch(url)
|
||||
.catch(t.step_func_done(e => assert_true(e instanceof TypeError)))
|
||||
return promise_rejects(t, new TypeError, fetch(url));
|
||||
}, "Same-origin => cross-origin 'fetch()' in " + self.location.protocol + self.location.search);
|
||||
|
||||
done();
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=996847">
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
|
||||
<meta name=assert content="This test checks that bottom half-leading of a line-box doesn't contribute to the scrollable overflow.">
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div style="overflow-y: auto; width: 100px; height: 100px;">
|
||||
<div style="line-height: 120px; height: 100px; background: green;">
|
||||
<span style="display: inline-block; width: 100px; height: 50px;"></span>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,120 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-color interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-color">
|
||||
<meta name="assert" content="border-color supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-color: white;
|
||||
}
|
||||
.target {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: blue;
|
||||
display: inline-block;
|
||||
border: 12px solid;
|
||||
border-color: darkblue;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
margin-right: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
// As per https://bugzilla.mozilla.org/show_bug.cgi?id=137688, Firefox does not
|
||||
// support getComputedStyle for shorthands. As such, we have one test for this
|
||||
// which explicitly checks the shorthand variant, but most tests use one of the
|
||||
// longhands instead.
|
||||
function compareNotEmpty(actual, expected) {
|
||||
assert_equals(actual, expected);
|
||||
assert_not_equals(actual, '');
|
||||
}
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-color',
|
||||
from: 'rgb(20, 30, 40) rgb(40, 50, 60)',
|
||||
to: 'rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)',
|
||||
comparisonFunction: compareNotEmpty,
|
||||
}, [
|
||||
{at: -0.3, expect: 'rgb(23, 33, 43) rgb(40, 50, 60) rgb(17, 27, 37) rgb(37, 47, 57)'},
|
||||
{at: 0, expect: 'rgb(20, 30, 40) rgb(40, 50, 60)'},
|
||||
{at: 0.3, expect: 'rgb(17, 27, 37) rgb(40, 50, 60) rgb(23, 33, 43) rgb(43, 53, 63)'},
|
||||
{at: 0.6, expect: 'rgb(14, 24, 34) rgb(40, 50, 60) rgb(26, 36, 46) rgb(46, 56, 66)'},
|
||||
{at: 1, expect: 'rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)'},
|
||||
{at: 1.5, expect: 'rgb(5, 15, 25) rgb(40, 50, 60) rgb(35, 45, 55) rgb(55, 65, 75)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-color',
|
||||
from: neutralKeyframe,
|
||||
to: 'orange',
|
||||
}, [
|
||||
{at: -0.3, expect: 'rgb(0, 0, 181)'},
|
||||
{at: 0, expect: 'rgb(0, 0, 139)'},
|
||||
{at: 0.3, expect: 'rgb(77, 50, 97)'},
|
||||
{at: 0.6, expect: 'rgb(153, 99, 56)'},
|
||||
{at: 1, expect: 'rgb(255, 165, 0)'},
|
||||
{at: 1.5, expect: 'rgb(255, 248, 0)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-color',
|
||||
from: 'initial',
|
||||
to: 'orange',
|
||||
}, [
|
||||
{at: -0.3, expect: 'rgb(0, 0, 0)'},
|
||||
{at: 0, expect: 'rgb(0, 0, 0)'},
|
||||
{at: 0.3, expect: 'rgb(77, 50, 0)'},
|
||||
{at: 0.6, expect: 'rgb(153, 99, 0)'},
|
||||
{at: 1, expect: 'rgb(255, 165, 0)'},
|
||||
{at: 1.5, expect: 'rgb(255, 248, 0)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-color',
|
||||
from: 'inherit',
|
||||
to: 'orange',
|
||||
}, [
|
||||
{at: -0.3, expect: 'rgb(255, 255, 255)'},
|
||||
{at: 0, expect: 'rgb(255, 255, 255)'},
|
||||
{at: 0.3, expect: 'rgb(255, 228, 179)'},
|
||||
{at: 0.6, expect: 'rgb(255, 201, 102)'},
|
||||
{at: 1, expect: 'rgb(255, 165, 0)'},
|
||||
{at: 1.5, expect: 'rgb(255, 120, 0)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-color',
|
||||
from: 'unset',
|
||||
to: 'orange',
|
||||
}, [
|
||||
{at: -0.3, expect: 'rgb(0, 0, 0)'},
|
||||
{at: 0, expect: 'rgb(0, 0, 0)'},
|
||||
{at: 0.3, expect: 'rgb(77, 50, 0)'},
|
||||
{at: 0.6, expect: 'rgb(153, 99, 0)'},
|
||||
{at: 1, expect: 'rgb(255, 165, 0)'},
|
||||
{at: 1.5, expect: 'rgb(255, 248, 0)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-color',
|
||||
from: 'white',
|
||||
to: 'orange'
|
||||
}, [
|
||||
{at: -0.3, expect: 'white'},
|
||||
{at: 0, expect: 'white'},
|
||||
{at: 0.3, expect: 'rgb(255, 228, 179)'},
|
||||
{at: 0.6, expect: 'rgb(255, 201, 102)'},
|
||||
{at: 1, expect: 'orange'},
|
||||
{at: 1.5, expect: 'rgb(255, 120, 0)'},
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-image-outset interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-outset">
|
||||
<meta name="assert" content="border-image-outset supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-image-outset: 10px;
|
||||
}
|
||||
.target {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
border: 25px;
|
||||
margin-right: 50px;
|
||||
border-image-slice: 30%;
|
||||
background-clip: content-box;
|
||||
border-image-source: linear-gradient(45deg, pink, blue, white, black, green);
|
||||
border-image-outset: 1px;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: neutralKeyframe,
|
||||
to: '2px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0.7px'},
|
||||
{at: 0, expect: '1px'},
|
||||
{at: 0.3, expect: '1.3px'},
|
||||
{at: 0.6, expect: '1.6px'},
|
||||
{at: 1, expect: '2px'},
|
||||
{at: 1.5, expect: '2.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: 'initial',
|
||||
to: '2px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // Non-negative
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '0.6px'},
|
||||
{at: 0.6, expect: '1.2px'},
|
||||
{at: 1, expect: '2px'},
|
||||
{at: 1.5, expect: '3px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: 'inherit',
|
||||
to: '2px',
|
||||
}, [
|
||||
{at: -0.3, expect: '12.4px'},
|
||||
{at: 0, expect: '10px'},
|
||||
{at: 0.3, expect: '7.6px'},
|
||||
{at: 0.6, expect: '5.2px'},
|
||||
{at: 1, expect: '2px'},
|
||||
{at: 1.5, expect: '0px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: 'unset',
|
||||
to: '2px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // Non-negative
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '0.6px'},
|
||||
{at: 0.6, expect: '1.2px'},
|
||||
{at: 1, expect: '2px'},
|
||||
{at: 1.5, expect: '3px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: '0px',
|
||||
to: '5px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // Non-negative
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '1.5px'},
|
||||
{at: 0.6, expect: '3px'},
|
||||
{at: 1, expect: '5px'},
|
||||
{at: 1.5, expect: '7.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: '0',
|
||||
to: '1',
|
||||
}, [
|
||||
{at: -0.3, expect: '0'}, // Non-negative
|
||||
{at: 0, expect: '0'},
|
||||
{at: 0.3, expect: '0.3'},
|
||||
{at: 0.6, expect: '0.6'},
|
||||
{at: 1, expect: '1'},
|
||||
{at: 1.5, expect: '1.5'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-outset',
|
||||
from: '1 2 3px 4px',
|
||||
to: '101 102 103px 104px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0 0 0px 0px'}, // Non-negative
|
||||
{at: 0, expect: '1 2 3px 4px'},
|
||||
{at: 0.3, expect: '31 32 33px 34px'},
|
||||
{at: 0.6, expect: '61 62 63px 64px'},
|
||||
{at: 1, expect: '101 102 103px 104px'},
|
||||
{at: 1.5, expect: '151 152 153px 154px'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,175 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-image-slice interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-slice">
|
||||
<meta name="assert" content="border-image-slice supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-image-slice: 50%;
|
||||
}
|
||||
.target {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
border: 25px;
|
||||
border-image-source: linear-gradient(45deg, red, blue, green);
|
||||
border-image-slice: 20%;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
margin-right: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: neutralKeyframe,
|
||||
to: '10%',
|
||||
}, [
|
||||
{at: -0.3, expect: '23%'},
|
||||
{at: 0, expect: '20%'},
|
||||
{at: 0.3, expect: '17%'},
|
||||
{at: 0.5, expect: '15%'},
|
||||
{at: 0.6, expect: '14%'},
|
||||
{at: 1, expect: '10%'},
|
||||
{at: 1.5, expect: '5%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: 'initial',
|
||||
to: '10%',
|
||||
}, [
|
||||
{at: -0.3, expect: '127%'},
|
||||
{at: 0, expect: '100%'},
|
||||
{at: 0.3, expect: '73%'},
|
||||
{at: 0.5, expect: '55%'},
|
||||
{at: 0.6, expect: '46%'},
|
||||
{at: 1, expect: '10%'},
|
||||
{at: 1.5, expect: '0%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: 'inherit',
|
||||
to: '10%',
|
||||
}, [
|
||||
{at: -0.3, expect: '62%'},
|
||||
{at: 0, expect: '50%'},
|
||||
{at: 0.3, expect: '38%'},
|
||||
{at: 0.5, expect: '30%'},
|
||||
{at: 0.6, expect: '26%'},
|
||||
{at: 1, expect: '10%'},
|
||||
{at: 1.5, expect: '0%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: 'unset',
|
||||
to: '10%',
|
||||
}, [
|
||||
{at: -0.3, expect: '127%'},
|
||||
{at: 0, expect: '100%'},
|
||||
{at: 0.3, expect: '73%'},
|
||||
{at: 0.5, expect: '55%'},
|
||||
{at: 0.6, expect: '46%'},
|
||||
{at: 1, expect: '10%'},
|
||||
{at: 1.5, expect: '0%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0%',
|
||||
to: '50%',
|
||||
}, [
|
||||
{at: -0.3, expect: '0%'}, // CSS border-image-slice can't be negative.
|
||||
{at: 0, expect: '0%'},
|
||||
{at: 0.3, expect: '15%'},
|
||||
{at: 0.5, expect: '25%'},
|
||||
{at: 0.6, expect: '30%'},
|
||||
{at: 1, expect: '50%'},
|
||||
{at: 1.5, expect: '75%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0% 10% 20% 30%',
|
||||
to: '40% 50% 60% 70%',
|
||||
}, [
|
||||
{at: -0.5, expect: '0% 0% 0% 10%'},
|
||||
{at: 0, expect: '0% 10% 20% 30%'},
|
||||
{at: 0.3, expect: '12% 22% 32% 42%'},
|
||||
{at: 0.5, expect: '20% 30% 40% 50%'},
|
||||
{at: 0.6, expect: '24% 34% 44% 54%'},
|
||||
{at: 1, expect: '40% 50% 60% 70%'},
|
||||
{at: 1.5, expect: '60% 70% 80% 90%'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0 10 20 30 fill',
|
||||
to: '40 50 60 70 fill',
|
||||
}, [
|
||||
{at: -0.5, expect: '0 0 0 10 fill'}, // CSS border-image-slice can't be negative.
|
||||
{at: 0, expect: '0 10 20 30 fill'},
|
||||
{at: 0.3, expect: '12 22 32 42 fill'},
|
||||
{at: 0.5, expect: '20 30 40 50 fill'},
|
||||
{at: 0.6, expect: '24 34 44 54 fill'},
|
||||
{at: 1, expect: '40 50 60 70 fill'},
|
||||
{at: 1.5, expect: '60 70 80 90 fill'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0% 10 20% 30 fill',
|
||||
to: '40% 50 60% 70 fill',
|
||||
}, [
|
||||
{at: -0.5, expect: '0% 0 0% 10 fill'}, // CSS border-image-slice can't be negative.
|
||||
{at: 0, expect: '0% 10 20% 30 fill'},
|
||||
{at: 0.3, expect: '12% 22 32% 42 fill'},
|
||||
{at: 0.5, expect: '20% 30 40% 50 fill'},
|
||||
{at: 0.6, expect: '24% 34 44% 54 fill'},
|
||||
{at: 1, expect: '40% 50 60% 70 fill'},
|
||||
{at: 1.5, expect: '60% 70 80% 90 fill'},
|
||||
]);
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0% fill',
|
||||
to: '50%',
|
||||
});
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '50%',
|
||||
to: '100',
|
||||
});
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '50% fill',
|
||||
to: '100 fill',
|
||||
});
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0% 10 20% 30 fill',
|
||||
to: '40% 50 60% 70',
|
||||
});
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-slice',
|
||||
from: '0% 10 20 30 fill',
|
||||
to: '40 50 60% 70',
|
||||
});
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-image-source interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-source">
|
||||
<meta name="assert" content="border-image-source has discrete animation">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-image-source: url(../support/green.png);
|
||||
}
|
||||
.target {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
border: 5px solid aqua;
|
||||
border-image-source: url(../support/blue_color.png);
|
||||
border-image-slice: 10%;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
margin-right: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
// initial
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'initial',
|
||||
to: 'url(../support/orange_color.png)',
|
||||
});
|
||||
|
||||
// inherit
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'inherit',
|
||||
to: 'url(../support/orange_color.png)',
|
||||
});
|
||||
|
||||
// unset
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'unset',
|
||||
to: 'url(../support/orange_color.png)',
|
||||
});
|
||||
|
||||
// None to image
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'none',
|
||||
to: 'url(../support/orange_color.png)',
|
||||
});
|
||||
|
||||
// Image to image
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'url(../support/aqua_color.png)',
|
||||
to: 'url(../support/orange_color.png)',
|
||||
});
|
||||
|
||||
// Image to gradient
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'url(../support/aqua_color.png)',
|
||||
to: 'linear-gradient(45deg, blue, orange)',
|
||||
});
|
||||
|
||||
// Gradient to gradient
|
||||
test_no_interpolation({
|
||||
property: 'border-image-source',
|
||||
from: 'linear-gradient(-45deg, red, yellow)',
|
||||
to: 'linear-gradient(45deg, blue, orange)',
|
||||
});
|
||||
</script>
|
||||
</body>
|
|
@ -0,0 +1,192 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-image-width interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-width">
|
||||
<meta name="assert" content="border-image-width supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-image-width: 100px;
|
||||
}
|
||||
.target {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
border: 10px;
|
||||
border-image-source: linear-gradient(45deg, red, blue, green);
|
||||
border-image-width: 10px;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
margin-right: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: neutralKeyframe,
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '7px'},
|
||||
{at: 0, expect: '10px'},
|
||||
{at: 0.3, expect: '13px'},
|
||||
{at: 0.6, expect: '16px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '25px'},
|
||||
{at: 5, expect: '60px'},
|
||||
{at: 10, expect: '110px'},
|
||||
]);
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: 'initial',
|
||||
to: '20px',
|
||||
});
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: 'inherit',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '124px'},
|
||||
{at: 0, expect: '100px'},
|
||||
{at: 0.3, expect: '76px'},
|
||||
{at: 0.6, expect: '52px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '0px'},
|
||||
{at: 5, expect: '0px'},
|
||||
{at: 10, expect: '0px'},
|
||||
]);
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: 'unset',
|
||||
to: '20px',
|
||||
});
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '0px',
|
||||
to: '20px'
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // CSS border-image-width can't be negative.
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '6px'},
|
||||
{at: 0.6, expect: '12px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '30px'},
|
||||
{at: 5, expect: '100px'},
|
||||
{at: 10, expect: '200px'}
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '0%',
|
||||
to: '20%'
|
||||
}, [
|
||||
{at: -0.3, expect: '0%'}, // CSS border-image-width can't be negative.
|
||||
{at: 0, expect: '0%'},
|
||||
{at: 0.3, expect: '6%'},
|
||||
{at: 0.6, expect: '12%'},
|
||||
{at: 1, expect: '20%'},
|
||||
{at: 1.5, expect: '30%'},
|
||||
{at: 5, expect: '100%'},
|
||||
{at: 10, expect: '200%'}
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '0',
|
||||
to: '20'
|
||||
}, [
|
||||
{at: -0.3, expect: '0'}, // CSS border-image-width can't be negative.
|
||||
{at: 0, expect: '0'},
|
||||
{at: 0.3, expect: '6'},
|
||||
{at: 0.6, expect: '12'},
|
||||
{at: 1, expect: '20'},
|
||||
{at: 1.5, expect: '30'},
|
||||
{at: 5, expect: '100'},
|
||||
{at: 10, expect: '200'}
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10px 20% 30 40px',
|
||||
to: '80px 70% 60 50px'
|
||||
}, [
|
||||
{at: -0.3, expect: '0px 5% 21 37px'}, // CSS border-image-width can't be negative.
|
||||
{at: 0, expect: '10px 20% 30 40px'},
|
||||
{at: 0.3, expect: '31px 35% 39 43px'},
|
||||
{at: 0.6, expect: '52px 50% 48 46px'},
|
||||
{at: 1, expect: '80px 70% 60 50px'},
|
||||
{at: 1.5, expect: '115px 95% 75 55px'},
|
||||
{at: 5, expect: '360px 270% 180 90px'},
|
||||
{at: 10, expect: '710px 520% 330 140px'}
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10%',
|
||||
to: '20px'
|
||||
}, [
|
||||
// Percentages are relative to the size of the border image area, which is 120px.
|
||||
{at: -0.3, expect: 'calc(13% + -6px)'}, // Should be parsed as 16px - 6px = 10px
|
||||
{at: 0, expect: '10%'}, // Should be parsed as 12px
|
||||
{at: 0.3, expect: 'calc(7% + 6px)'}, // Should be parsed as 8px + 6px = 14px
|
||||
{at: 0.6, expect: 'calc(4% + 12px)'}, // Should be parsed as 5px + 12px = 17px
|
||||
{at: 1, expect: 'calc(0% + 20px)'},
|
||||
{at: 1.5, expect: 'calc(-5% + 30px)'}, // Should be parsed as -6px + 30px = 24px
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10px',
|
||||
to: '20%'
|
||||
}, [
|
||||
// Percentages are relative to the size of the border image area, which is 120px.
|
||||
{at: -0.3, expect: 'calc(13px + -6%)'}, // Should be parsed as 13px - 7px = 6px
|
||||
{at: 0, expect: 'calc(0% + 10px)'},
|
||||
{at: 0.3, expect: 'calc(7px + 6%)'}, // Should be parsed as 7px + 7px = 14px
|
||||
{at: 0.6, expect: 'calc(4px + 12%)'}, // Should be parsed as 4px + 14px = 18px
|
||||
{at: 1, expect: '20%'}, // Should be parsed as 24px
|
||||
{at: 1.5, expect: 'calc(-5px + 30%)'}, // Should be parsed as -5px + 36px = 31px
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10px auto auto 20',
|
||||
to: '110px auto auto 120'
|
||||
}, [
|
||||
{at: -0.3, expect: ' 0px auto auto 0'},
|
||||
{at: 0, expect: ' 10px auto auto 20'},
|
||||
{at: 0.3, expect: ' 40px auto auto 50'},
|
||||
{at: 0.6, expect: ' 70px auto auto 80'},
|
||||
{at: 1, expect: '110px auto auto 120'},
|
||||
{at: 1.5, expect: '160px auto auto 170'},
|
||||
]);
|
||||
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10px auto auto 20',
|
||||
to: '110px auto 120 auto'
|
||||
});
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10px',
|
||||
to: '20'
|
||||
});
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10',
|
||||
to: '20px'
|
||||
});
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10%',
|
||||
to: '20'
|
||||
});
|
||||
test_no_interpolation({
|
||||
property: 'border-image-width',
|
||||
from: '10',
|
||||
to: '20%'
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,141 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-radius interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-radius">
|
||||
<meta name="assert" content="border-radius supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-radius: 30px;
|
||||
}
|
||||
.target {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
display: inline-block;
|
||||
background-color: black;
|
||||
margin-right: 5px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
margin-right: 15px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
// As per https://bugzilla.mozilla.org/show_bug.cgi?id=137688, Firefox does not
|
||||
// support getComputedStyle for shorthands. As such, we have one test for this
|
||||
// which explicitly checks the shorthand variant, but most tests use one of the
|
||||
// longhands instead.
|
||||
function compareNotEmpty(actual, expected) {
|
||||
assert_equals(actual, expected);
|
||||
assert_not_equals(actual, '');
|
||||
}
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-radius',
|
||||
from: '20px 40px 60px 80px / 120px 140px 160px 180px',
|
||||
to: '30px 50px 70px 90px / 130px 150px 170px 190px',
|
||||
comparisonFunction: compareNotEmpty,
|
||||
}, [
|
||||
{at: -0.3, expect: '17px 37px 57px 77px / 117px 137px 157px 177px'},
|
||||
{at: 0, expect: '20px 40px 60px 80px / 120px 140px 160px 180px'},
|
||||
{at: 0.3, expect: '23px 43px 63px 83px / 123px 143px 163px 183px'},
|
||||
{at: 0.6, expect: '26px 46px 66px 86px / 126px 146px 166px 186px'},
|
||||
{at: 1, expect: '30px 50px 70px 90px / 130px 150px 170px 190px'},
|
||||
{at: 1.5, expect: '35px 55px 75px 95px / 135px 155px 175px 195px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: neutralKeyframe,
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '7px'},
|
||||
{at: 0, expect: '10px'},
|
||||
{at: 0.3, expect: '13px'},
|
||||
{at: 0.6, expect: '16px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '25px'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: 'initial',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'},
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '6px'},
|
||||
{at: 0.6, expect: '12px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '30px'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: 'inherit',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '33px'},
|
||||
{at: 0, expect: '30px'},
|
||||
{at: 0.3, expect: '27px'},
|
||||
{at: 0.6, expect: '24px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '15px'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: 'unset',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'},
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '6px'},
|
||||
{at: 0.6, expect: '12px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '30px'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: '10px',
|
||||
to: '50px'
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // CSS border-top-left-radius can't be negative.
|
||||
{at: 0, expect: '10px'},
|
||||
{at: 0.3, expect: '22px'},
|
||||
{at: 0.6, expect: '34px'},
|
||||
{at: 1, expect: '50px'},
|
||||
{at: 1.5, expect: '70px'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: '10px',
|
||||
to: '100%'
|
||||
}, [
|
||||
{at: -0.3, expect: 'calc(13px + -30%)'},
|
||||
{at: 0, expect: 'calc(10px + 0%)'},
|
||||
{at: 0.3, expect: 'calc(7px + 30%)'},
|
||||
{at: 0.6, expect: 'calc(4px + 60%)'},
|
||||
{at: 1, expect: '100%'},
|
||||
{at: 1.5, expect: 'calc(-5px + 150%)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-left-radius',
|
||||
from: '20px',
|
||||
to: '10px 30px'
|
||||
}, [
|
||||
{at: -2, expect: '40px 0px'},
|
||||
{at: -0.3, expect: '23px 17px'},
|
||||
{at: 0, expect: '20px'},
|
||||
{at: 0.3, expect: '17px 23px'},
|
||||
{at: 0.6, expect: '14px 26px'},
|
||||
{at: 1, expect: '10px 30px'},
|
||||
{at: 1.5, expect: '5px 35px'}
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,175 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>border-width interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-width">
|
||||
<meta name="assert" content="border-width supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
border-width: 30px;
|
||||
}
|
||||
.target {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
border: 2px solid orange;
|
||||
margin: 18px;
|
||||
border-width: 10px;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
// As per https://bugzilla.mozilla.org/show_bug.cgi?id=137688, Firefox does not
|
||||
// support getComputedStyle for shorthands. As such, we have one test for this
|
||||
// which explicitly checks the shorthand variant, but most tests use one of the
|
||||
// longhands instead.
|
||||
function compareNotEmpty(actual, expected) {
|
||||
assert_equals(actual, expected);
|
||||
assert_not_equals(actual, '');
|
||||
}
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-width',
|
||||
from: '20px 40px 60px 80px',
|
||||
to: '30px 50px 70px 90px',
|
||||
comparisonFunction: compareNotEmpty,
|
||||
}, [
|
||||
{at: -0.3, expect: '17px 37px 57px 77px'},
|
||||
{at: 0, expect: '20px 40px 60px 80px'},
|
||||
{at: 0.3, expect: '23px 43px 63px 83px'},
|
||||
{at: 0.6, expect: '26px 46px 66px 86px'},
|
||||
{at: 1, expect: '30px 50px 70px 90px'},
|
||||
{at: 1.5, expect: '35px 55px 75px 95px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: neutralKeyframe,
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '7px'},
|
||||
{at: 0, expect: '10px'},
|
||||
{at: 0.3, expect: '13px'},
|
||||
{at: 0.6, expect: '16px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '25px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: 'initial',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'},
|
||||
{at: 0, expect: '3px'},
|
||||
{at: 0.3, expect: '8.1px'},
|
||||
{at: 0.6, expect: '13.2px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '28.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: 'inherit',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'},
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '6px'},
|
||||
{at: 0.6, expect: '12px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '30px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: 'unset',
|
||||
to: '20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'},
|
||||
{at: 0, expect: '3px'},
|
||||
{at: 0.3, expect: '8.1px'},
|
||||
{at: 0.6, expect: '13.2px'},
|
||||
{at: 1, expect: '20px'},
|
||||
{at: 1.5, expect: '28.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: '0px',
|
||||
to: '10px'
|
||||
}, [
|
||||
{at: -0.3, expect: '0px'}, // CSS border-left-width can't be negative.
|
||||
{at: 0, expect: '0px'},
|
||||
{at: 0.3, expect: '3px'},
|
||||
{at: 0.6, expect: '6px'},
|
||||
{at: 1, expect: '10px'},
|
||||
{at: 1.5, expect: '15px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-bottom-width',
|
||||
from: 'thick',
|
||||
to: '15px'
|
||||
}, [
|
||||
{at: -2, expect: '0px'}, // CSS border-bottom-width can't be negative.
|
||||
{at: -0.3, expect: '2px'},
|
||||
{at: 0, expect: '5px'},
|
||||
{at: 0.3, expect: '8px'},
|
||||
{at: 0.6, expect: '11px'},
|
||||
{at: 1, expect: '15px'},
|
||||
{at: 1.5, expect: '20px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-left-width',
|
||||
from: 'medium',
|
||||
to: '13px'
|
||||
}, [
|
||||
{at: -2, expect: '0px'}, // CSS border-left-width can't be negative.
|
||||
{at: -0.25, expect: '0.5px'},
|
||||
{at: 0, expect: '3px'},
|
||||
{at: 0.3, expect: '6px'},
|
||||
{at: 0.6, expect: '9px'},
|
||||
{at: 1, expect: '13px'},
|
||||
{at: 1.5, expect: '18px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-right-width',
|
||||
from: 'thin',
|
||||
to: '11px'
|
||||
}, [
|
||||
{at: -2, expect: '0px'}, // CSS border-right-width can't be negative.
|
||||
{at: -0.3, expect: '0px'}, // CSS border-right-width can't be negative.
|
||||
{at: 0, expect: '1px'},
|
||||
{at: 0.3, expect: '4px'},
|
||||
{at: 0.6, expect: '7px'},
|
||||
{at: 1, expect: '11px'},
|
||||
{at: 1.5, expect: '16px'}
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'border-top-width',
|
||||
from: '15px',
|
||||
to: 'thick'
|
||||
}, [
|
||||
{at: -2, expect: '35px'},
|
||||
{at: -0.3, expect: '18px'},
|
||||
{at: 0, expect: '15px'},
|
||||
{at: 0.3, expect: '12px'},
|
||||
{at: 0.6, expect: '9px'},
|
||||
{at: 1, expect: '5px'},
|
||||
{at: 1.5, expect: '0px'}
|
||||
]);
|
||||
</script>
|
|
@ -8,6 +8,11 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/computed-testcommon.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
color: blue;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="target"></div>
|
||||
|
@ -15,6 +20,11 @@
|
|||
test_computed_value("border-image-source", "none");
|
||||
test_computed_value("border-image-source", 'url("http://{{host}}/")');
|
||||
|
||||
test_computed_value('border-image-source', 'linear-gradient(-45deg, red, currentcolor)', 'linear-gradient(-45deg, rgb(255, 0, 0), rgb(0, 0, 255))');
|
||||
test_computed_value('border-image-source', 'repeating-linear-gradient(-45deg, red, 30%, currentcolor 70%, lime)', 'repeating-linear-gradient(-45deg, rgb(255, 0, 0), 30%, rgb(0, 0, 255) 70%, rgb(0, 255, 0))');
|
||||
test_computed_value('border-image-source', 'radial-gradient(10px at 20px 30px, currentcolor, lime)', 'radial-gradient(10px at 20px 30px, rgb(0, 0, 255), rgb(0, 255, 0))');
|
||||
test_computed_value('border-image-source', 'conic-gradient(from 90deg at 80% 90%, lime, black)', 'conic-gradient(from 90deg at 80% 90%, rgb(0, 255, 0), rgb(0, 0, 0))');
|
||||
|
||||
test(() => {
|
||||
const target = document.getElementById('target');
|
||||
target.style['border-image-source'] = 'url("a.b#c")';
|
||||
|
|
|
@ -54,6 +54,8 @@ assert_valid("<percentage>", "-9.3e3%");
|
|||
assert_valid("<length-percentage>", "-54%");
|
||||
assert_valid("<length-percentage>", "0");
|
||||
assert_valid("<length-percentage>", "calc(-11px + 10.4%)");
|
||||
assert_valid("<length>", "10vmin");
|
||||
assert_valid("<percentage> | <length>+", "calc(100vh - 10px) 30px");
|
||||
|
||||
assert_valid("<number>", "-109");
|
||||
assert_valid("<number>", "2.3e4");
|
||||
|
@ -183,14 +185,12 @@ assert_invalid("<length>", "10%");
|
|||
assert_invalid("<length>", "calc(5px + 10%)");
|
||||
assert_invalid("<length>", "calc(5px * 3px / 6px)");
|
||||
assert_invalid("<length>", "10em");
|
||||
assert_invalid("<length>", "10vmin");
|
||||
assert_invalid("<length>", "calc(4px + 3em)");
|
||||
assert_invalid("<length>", "calc(4px + calc(8 * 2em))");
|
||||
assert_invalid("<length>+", "calc(2ex + 16px)");
|
||||
assert_invalid("<length>+", "10px calc(20px + 4rem)");
|
||||
assert_invalid("<length>+", "");
|
||||
assert_invalid("<length>#", "");
|
||||
assert_invalid("<percentage> | <length>+", "calc(100vh - 10px) 30px");
|
||||
assert_invalid("<length>", "10px;");
|
||||
assert_invalid("<length-percentage>", "calc(2px + 10% + 7ex)");
|
||||
assert_invalid("<percentage>", "0");
|
||||
|
|
|
@ -26,13 +26,13 @@ var validProperties = {
|
|||
backgroundBlendMode: 'hue',
|
||||
backgroundClip: 'padding-box',
|
||||
backgroundColor: 'rgb(10, 20, 30)',
|
||||
backgroundImage: 'linear-gradient(black, white)',
|
||||
backgroundImage: 'linear-gradient(rgb(0, 0, 0), rgb(255, 255, 255))',
|
||||
backgroundOrigin: 'border-box',
|
||||
backgroundPosition: 'left 10px top 20px',
|
||||
backgroundRepeat: 'no-repeat',
|
||||
backgroundSize: '10px 20px',
|
||||
border: '40px dotted rgb(10, 20, 30)',
|
||||
borderImage: 'linear-gradient(black, white) 10% / 20 / 30px repeat',
|
||||
borderImage: 'linear-gradient(rgb(0, 0, 0), rgb(255, 255, 255)) 10% / 20 / 30px repeat',
|
||||
borderRadius: '10px 20px',
|
||||
boxShadow: 'rgb(10, 20, 30) 10px 20px 30px 40px inset',
|
||||
color: 'rgba(10, 20, 30, 0.4)',
|
||||
|
|
|
@ -0,0 +1,252 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// Perspective
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'perspective(400px)',
|
||||
to: 'perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'perspective(300px)'},
|
||||
{at: 0, expect: 'perspective(400px)'},
|
||||
{at: 0.25, expect: 'perspective(425px)'},
|
||||
{at: 0.75, expect: 'perspective(475px)'},
|
||||
{at: 1, expect: 'perspective(500px)'},
|
||||
{at: 2, expect: 'perspective(600px)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(10rad) perspective(400px)',
|
||||
to: 'skewX(20rad) perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewX(0rad) perspective(300px)'},
|
||||
{at: 0, expect: 'skewX(10rad) perspective(400px)'},
|
||||
{at: 0.25, expect: 'skewX(12.5rad) perspective(425px)'},
|
||||
{at: 0.75, expect: 'skewX(17.5rad) perspective(475px)'},
|
||||
{at: 1, expect: 'skewX(20rad) perspective(500px)'},
|
||||
{at: 2, expect: 'skewX(30rad) perspective(600px)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleZ(1) perspective(400px)',
|
||||
to: 'scaleZ(2) perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleZ(0) perspective(300px)'},
|
||||
{at: 0, expect: 'scaleZ(1) perspective(400px)'},
|
||||
{at: 0.25, expect: 'scaleZ(1.25) perspective(425px)'},
|
||||
{at: 0.75, expect: 'scaleZ(1.75) perspective(475px)'},
|
||||
{at: 1, expect: 'scaleZ(2) perspective(500px)'},
|
||||
{at: 2, expect: 'scaleZ(3) perspective(600px)'},
|
||||
]);
|
||||
|
||||
// Rotate
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate(30deg)',
|
||||
to: 'rotate(330deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(-270deg)'},
|
||||
{at: 0, expect: 'rotate(30deg)'},
|
||||
{at: 0.25, expect: 'rotate(105deg)'},
|
||||
{at: 0.75, expect: 'rotate(255deg)'},
|
||||
{at: 1, expect: 'rotate(330deg)'},
|
||||
{at: 2, expect: 'rotate(630deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateX(0deg)',
|
||||
to: 'rotateX(700deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateX(-700deg)'},
|
||||
{at: 0, expect: 'rotateX(0deg)'},
|
||||
{at: 0.25, expect: 'rotateX(175deg)'},
|
||||
{at: 0.75, expect: 'rotateX(525deg)'},
|
||||
{at: 1, expect: 'rotateX(700deg)'},
|
||||
{at: 2, expect: 'rotateX(1400deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateY(0deg)',
|
||||
to: 'rotateY(800deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateY(-800deg)'},
|
||||
{at: 0, expect: 'rotateY(0deg)'},
|
||||
{at: 0.25, expect: 'rotateY(200deg)'},
|
||||
{at: 0.75, expect: 'rotateY(600deg)'},
|
||||
{at: 1, expect: 'rotateY(800deg)'},
|
||||
{at: 2, expect: 'rotateY(1600deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateZ(0deg)',
|
||||
to: 'rotateZ(900deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateZ(-900deg)'},
|
||||
{at: 0, expect: 'rotateZ(0deg)'},
|
||||
{at: 0.25, expect: 'rotateZ(225deg)'},
|
||||
{at: 0.75, expect: 'rotateZ(675deg)'},
|
||||
{at: 1, expect: 'rotateZ(900deg)'},
|
||||
{at: 2, expect: 'rotateZ(1800deg)'},
|
||||
]);
|
||||
// Interpolation is about a common axis if either endpoint has a rotation angle
|
||||
// of zero.
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateX(0deg)',
|
||||
to: 'rotateY(900deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateY(-900deg)'},
|
||||
{at: 0, expect: 'rotateY(0deg)'},
|
||||
{at: 0.25, expect: 'rotateY(225deg)'},
|
||||
{at: 0.75, expect: 'rotateY(675deg)'},
|
||||
{at: 1, expect: 'rotateY(900deg)'},
|
||||
{at: 2, expect: 'rotateY(1800deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateY(900deg)',
|
||||
to: 'rotateZ(0deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateY(1800deg)'},
|
||||
{at: 0, expect: 'rotateY(900deg)'},
|
||||
{at: 0.25, expect: 'rotateY(675deg)'},
|
||||
{at: 0.75, expect: 'rotateY(225deg)'},
|
||||
{at: 1, expect: 'rotateY(0deg)'},
|
||||
{at: 2, expect: 'rotateY(-900deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate3d(7, 8, 9, 100deg)',
|
||||
to: 'rotate3d(7, 8, 9, 260deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate3d(7, 8, 9, -60deg)'},
|
||||
{at: 0, expect: 'rotate3d(7, 8, 9, 100deg)'},
|
||||
{at: 0.25, expect: 'rotate3d(7, 8, 9, 140deg)'},
|
||||
{at: 0.75, expect: 'rotate3d(7, 8, 9, 220deg)'},
|
||||
{at: 1, expect: 'rotate3d(7, 8, 9, 260deg)'},
|
||||
{at: 2, expect: 'rotate3d(7, 8, 9, 420deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate3d(7, 8, 9, 0deg)',
|
||||
to: 'rotate3d(7, 8, 9, 450deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate3d(7, 8, 9, -450deg)'},
|
||||
{at: 0, expect: 'rotate3d(7, 8, 9, 0deg)'},
|
||||
{at: 0.25, expect: 'rotate3d(7, 8, 9, 112.5deg)'},
|
||||
{at: 0.75, expect: 'rotate3d(7, 8, 9, 337.5deg)'},
|
||||
{at: 1, expect: 'rotate3d(7, 8, 9, 450deg)'},
|
||||
{at: 2, expect: 'rotate3d(7, 8, 9, 900deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate3d(0, 1, 0, 0deg)',
|
||||
to: 'rotate3d(0, 1, 0, 450deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate3d(0, 1, 0, -450deg)'},
|
||||
{at: 0, expect: 'rotate3d(0, 1, 0, 0deg)'},
|
||||
{at: 0.25, expect: 'rotate3d(0, 1, 0, 112.5deg)'},
|
||||
{at: 0.75, expect: 'rotate3d(0, 1, 0, 337.5deg)'},
|
||||
{at: 1, expect: 'rotate3d(0, 1, 0, 450deg)'},
|
||||
{at: 2, expect: 'rotate3d(0, 1, 0, 900deg)'},
|
||||
]);
|
||||
// Rotation is about a common axis if the axes are colinear.
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate3d(0, 1, 0, 0deg)',
|
||||
to: 'rotate3d(0, 2, 0, 450deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate3d(0, 1, 0, -450deg)'},
|
||||
{at: 0, expect: 'rotate3d(0, 1, 0, 0deg)'},
|
||||
{at: 0.25, expect: 'rotate3d(0, 1, 0, 112.5deg)'},
|
||||
{at: 0.75, expect: 'rotate3d(0, 1, 0, 337.5deg)'},
|
||||
{at: 1, expect: 'rotate3d(0, 1, 0, 450deg)'},
|
||||
{at: 2, expect: 'rotate3d(0, 1, 0, 900deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate3d(1, 1, 0, 90deg)',
|
||||
to: 'rotate3d(0, 1, 1, 180deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate3d(0.41, -0.41, -0.82, 120deg)'},
|
||||
{at: 0, expect: 'rotate3d(1, 1, 0, 90deg)'},
|
||||
{at: 0.25, expect: 'rotate3d(0.524083, 0.804261, 0.280178, 106.91deg)'},
|
||||
{at: 0.75, expect: 'rotate3d(0.163027, 0.774382, 0.611354, 153.99deg)'},
|
||||
{at: 1, expect: 'rotate3d(0, 1, 1, 180deg)'},
|
||||
{at: 2, expect: 'rotate3d(0.71, 0, -0.71, 90deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'rotate(90deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(-90deg)'},
|
||||
{at: 0, expect: 'rotate(0deg)'},
|
||||
{at: 0.25, expect: 'rotate(22.5deg)'},
|
||||
{at: 0.75, expect: 'rotate(67.5deg)'},
|
||||
{at: 1, expect: 'rotate(90deg)'},
|
||||
{at: 2, expect: 'rotate(180deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate(90deg)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(180deg)'},
|
||||
{at: 0, expect: 'rotate(90deg)'},
|
||||
{at: 0.25, expect: 'rotate(67.5deg)'},
|
||||
{at: 0.75, expect: 'rotate(22.5deg)'},
|
||||
{at: 1, expect: 'rotate(0deg)'},
|
||||
{at: 2, expect: 'rotate(-90deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotateX(0deg) rotateY(0deg) rotateZ(0deg)',
|
||||
to: 'rotateX(700deg) rotateY(800deg) rotateZ(900deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotateX(-700deg) rotateY(-800deg) rotateZ(-900deg)'},
|
||||
{at: 0, expect: 'rotateX(0deg) rotateY(0deg) rotateZ(0deg)'},
|
||||
{at: 0.25, expect: 'rotateX(175deg) rotateY(200deg) rotateZ(225deg)'},
|
||||
{at: 0.75, expect: 'rotateX(525deg) rotateY(600deg) rotateZ(675deg)'},
|
||||
{at: 1, expect: 'rotateX(700deg) rotateY(800deg) rotateZ(900deg)'},
|
||||
{at: 2, expect: 'rotateX(1400deg) rotateY(1600deg) rotateZ(1800deg)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,151 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// Scale
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scale(10, 5)',
|
||||
to: 'scale(20, 9)'
|
||||
}, [
|
||||
{at: -1, expect: 'scale(0, 1)'},
|
||||
{at: 0, expect: 'scale(10, 5)'},
|
||||
{at: 0.25, expect: 'scale(12.5, 6)'},
|
||||
{at: 0.75, expect: 'scale(17.5, 8)'},
|
||||
{at: 1, expect: 'scale(20, 9)'},
|
||||
{at: 2, expect: 'scale(30, 13)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleX(10)',
|
||||
to: 'scaleX(20)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleX(0)'},
|
||||
{at: 0, expect: 'scaleX(10)'},
|
||||
{at: 0.25, expect: 'scaleX(12.5)'},
|
||||
{at: 0.75, expect: 'scaleX(17.5)'},
|
||||
{at: 1, expect: 'scaleX(20)'},
|
||||
{at: 2, expect: 'scaleX(30)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleY(5)',
|
||||
to: 'scaleY(9)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleY(1)'},
|
||||
{at: 0, expect: 'scaleY(5)'},
|
||||
{at: 0.25, expect: 'scaleY(6)'},
|
||||
{at: 0.75, expect: 'scaleY(8)'},
|
||||
{at: 1, expect: 'scaleY(9)'},
|
||||
{at: 2, expect: 'scaleY(13)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleZ(1)',
|
||||
to: 'scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleZ(0)'},
|
||||
{at: 0, expect: 'scaleZ(1)'},
|
||||
{at: 0.25, expect: 'scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'scaleZ(1.75)'},
|
||||
{at: 1, expect: 'scaleZ(2)'},
|
||||
{at: 2, expect: 'scaleZ(3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scale3d(10, 0.5, 1)',
|
||||
to: 'scale3d(20, 1, 2)'
|
||||
}, [
|
||||
{at: -1, expect: 'scale3d(0, 0, 0)'},
|
||||
{at: 0, expect: 'scale3d(10, 0.5, 1)'},
|
||||
{at: 0.25, expect: 'scale3d(12.5, 0.625, 1.25)'},
|
||||
{at: 0.75, expect: 'scale3d(17.5, 0.875, 1.75)'},
|
||||
{at: 1, expect: 'scale3d(20, 1, 2)'},
|
||||
{at: 2, expect: 'scale3d(30, 1.5, 3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleX(0)',
|
||||
to: 'scaleY(0)',
|
||||
}, [
|
||||
{at: -1, expect: 'scale(-1, 2)'},
|
||||
{at: 0, expect: 'scale(0, 1)'},
|
||||
{at: 0.25, expect: 'scale(0.25, 0.75)'},
|
||||
{at: 0.75, expect: 'scale(0.75, 0.25)'},
|
||||
{at: 1, expect: 'scale(1, 0)'},
|
||||
{at: 2, expect: 'scale(2, -1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'scale3d(2, 3, 5)'
|
||||
}, [
|
||||
{at: -1, expect: 'scale3d(0, -1, -3)'},
|
||||
{at: 0, expect: 'scale3d(1, 1, 1)'},
|
||||
{at: 0.25, expect: 'scale3d(1.25, 1.5, 2)'},
|
||||
{at: 0.75, expect: 'scale3d(1.75, 2.5, 4)'},
|
||||
{at: 1, expect: 'scale3d(2, 3, 5)'},
|
||||
{at: 2, expect: 'scale3d(3, 5, 9)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scale3d(2, 3, 5)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'scale3d(3, 5, 9)'},
|
||||
{at: 0, expect: 'scale3d(2, 3, 5)'},
|
||||
{at: 0.25, expect: 'scale3d(1.75, 2.5, 4)'},
|
||||
{at: 0.75, expect: 'scale3d(1.25, 1.5, 2)'},
|
||||
{at: 1, expect: 'scale3d(1, 1, 1)'},
|
||||
{at: 2, expect: 'scale3d(0, -1, -3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleX(10) scaleY(0.5) scaleZ(1)',
|
||||
to: 'scaleX(20) scaleY(1) scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleX(0) scaleY(0) scaleZ(0)'},
|
||||
{at: 0, expect: 'scaleX(10) scaleY(0.5) scaleZ(1)'},
|
||||
{at: 0.25, expect: 'scaleX(12.5) scaleY(0.625) scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'scaleX(17.5) scaleY(0.875) scaleZ(1.75)'},
|
||||
{at: 1, expect: 'scaleX(20) scaleY(1) scaleZ(2)'},
|
||||
{at: 2, expect: 'scaleX(30) scaleY(1.5) scaleZ(3)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,128 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(10rad) scaleZ(1)',
|
||||
to: 'skewX(20rad) scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewX(0rad) scaleZ(0)'},
|
||||
{at: 0, expect: 'skewX(10rad) scaleZ(1)'},
|
||||
{at: 0.25, expect: 'skewX(12.5rad) scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'skewX(17.5rad) scaleZ(1.75)'},
|
||||
{at: 1, expect: 'skewX(20rad) scaleZ(2)'},
|
||||
{at: 2, expect: 'skewX(30rad) scaleZ(3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(10rad)',
|
||||
to: 'skewX(20rad) scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewX(0rad) scaleZ(0)'},
|
||||
{at: 0, expect: 'skewX(10rad) scaleZ(1)'},
|
||||
{at: 0.25, expect: 'skewX(12.5rad) scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'skewX(17.5rad) scaleZ(1.75)'},
|
||||
{at: 1, expect: 'skewX(20rad) scaleZ(2)'},
|
||||
{at: 2, expect: 'skewX(30rad) scaleZ(3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'scaleZ(3) perspective(400px)',
|
||||
to: 'scaleZ(4) skewX(1rad) perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'scaleZ(2) matrix3d(1, 0, 0, 0, -1.55741, 1, 0, 0, 0, 0, 1, -0.003, 0, 0, 0, 1)'},
|
||||
{at: 0, expect: 'scaleZ(3) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -0.0025, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'scaleZ(3.25) matrix3d(1, 0, 0, 0, 0.389352, 1, 0, 0, 0, 0, 1, -0.002375, 0, 0, 0, 1)'},
|
||||
{at: 0.75, expect: 'scaleZ(3.75) matrix3d(1, 0, 0, 0, 1.16806, 1, 0, 0, 0, 0, 1, -0.002125, 0, 0, 0, 1)'},
|
||||
{at: 1, expect: 'scaleZ(4) matrix3d(1, 0, 0, 0, 1.55741, 1, 0, 0, 0, 0, 1, -0.002, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'scaleZ(5) matrix3d(1, 0, 0, 0, 3.11482, 1, 0, 0, 0, 0, 1, -0.0015, 0, 0, 0, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateY(70%) scaleZ(1)',
|
||||
to: 'translateY(90%) scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateY(50%) scaleZ(0)'},
|
||||
{at: 0, expect: 'translateY(70%) scaleZ(1)'},
|
||||
{at: 0.25, expect: 'translateY(75%) scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'translateY(85%) scaleZ(1.75)'},
|
||||
{at: 1, expect: 'translateY(90%) scaleZ(2)'},
|
||||
{at: 2, expect: 'translateY(110%) scaleZ(3)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateY(70%)',
|
||||
to: 'translateY(90%) scaleZ(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateY(50%) scaleZ(0)'},
|
||||
{at: 0, expect: 'translateY(70%)'},
|
||||
{at: 0.25, expect: 'translateY(75%) scaleZ(1.25)'},
|
||||
{at: 0.75, expect: 'translateY(85%) scaleZ(1.75)'},
|
||||
{at: 1, expect: 'translateY(90%) scaleZ(2)'},
|
||||
{at: 2, expect: 'translateY(110%) scaleZ(3)'},
|
||||
]);
|
||||
|
||||
// Skew
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(10rad)',
|
||||
to: 'skewX(20rad)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewX(0rad)'},
|
||||
{at: 0, expect: 'skewX(10rad)'},
|
||||
{at: 0.25, expect: 'skewX(12.5rad)'},
|
||||
{at: 0.75, expect: 'skewX(17.5rad)'},
|
||||
{at: 1, expect: 'skewX(20rad)'},
|
||||
{at: 2, expect: 'skewX(30rad)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewY(10rad)',
|
||||
to: 'skewY(20rad)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewY(0rad)'},
|
||||
{at: 0, expect: 'skewY(10rad)'},
|
||||
{at: 0.25, expect: 'skewY(12.5rad)'},
|
||||
{at: 0.75, expect: 'skewY(17.5rad)'},
|
||||
{at: 1, expect: 'skewY(20rad)'},
|
||||
{at: 2, expect: 'skewY(30rad)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,187 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// Translate
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate(12px, 70%)',
|
||||
to: 'translate(13px, 90%)'
|
||||
}, [
|
||||
{at: -1, expect: 'translate(11px, 50%)'},
|
||||
{at: 0, expect: 'translate(12px, 70%)'},
|
||||
{at: 0.25, expect: 'translate(12.25px, 75%)'},
|
||||
{at: 0.75, expect: 'translate(12.75px, 85%)'},
|
||||
{at: 1, expect: 'translate(13px, 90%)'},
|
||||
{at: 2, expect: 'translate(14px, 110%)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateX(12px)',
|
||||
to: 'translateX(13px)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateX(11px)'},
|
||||
{at: 0, expect: 'translateX(12px)'},
|
||||
{at: 0.25, expect: 'translateX(12.25px)'},
|
||||
{at: 0.75, expect: 'translateX(12.75px)'},
|
||||
{at: 1, expect: 'translateX(13px)'},
|
||||
{at: 2, expect: 'translateX(14px)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateY(70%)',
|
||||
to: 'translateY(90%)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateY(50%)'},
|
||||
{at: 0, expect: 'translateY(70%)'},
|
||||
{at: 0.25, expect: 'translateY(75%)'},
|
||||
{at: 0.75, expect: 'translateY(85%)'},
|
||||
{at: 1, expect: 'translateY(90%)'},
|
||||
{at: 2, expect: 'translateY(110%)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateZ(2em)',
|
||||
to: 'translateZ(3em)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateZ(1em)'},
|
||||
{at: 0, expect: 'translateZ(2em)'},
|
||||
{at: 0.25, expect: 'translateZ(2.25em)'},
|
||||
{at: 0.75, expect: 'translateZ(2.75em)'},
|
||||
{at: 1, expect: 'translateZ(3em)'},
|
||||
{at: 2, expect: 'translateZ(4em)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate3d(12px, 70%, 2em)',
|
||||
to: 'translate3d(13px, 90%, 3em)'
|
||||
}, [
|
||||
{at: -1, expect: 'translate3d(11px, 50%, 1em)'},
|
||||
{at: 0, expect: 'translate3d(12px, 70%, 2em)'},
|
||||
{at: 0.25, expect: 'translate3d(12.25px, 75%, 2.25em)'},
|
||||
{at: 0.75, expect: 'translate3d(12.75px, 85%, 2.75em)'},
|
||||
{at: 1, expect: 'translate3d(13px, 90%, 3em)'},
|
||||
{at: 2, expect: 'translate3d(14px, 110%, 4em)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translateX(12px) translateY(70%) translateZ(2em)',
|
||||
to: 'translateX(13px) translateY(90%) translateZ(3em)'
|
||||
}, [
|
||||
{at: -1, expect: 'translateX(11px) translateY(50%) translateZ(1em)'},
|
||||
{at: 0, expect: 'translateX(12px) translateY(70%) translateZ(2em)'},
|
||||
{at: 0.25, expect: 'translateX(12.25px) translateY(75%) translateZ(2.25em)'},
|
||||
{at: 0.75, expect: 'translateX(12.75px) translateY(85%) translateZ(2.75em)'},
|
||||
{at: 1, expect: 'translateX(13px) translateY(90%) translateZ(3em)'},
|
||||
{at: 2, expect: 'translateX(14px) translateY(110%) translateZ(4em)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(10rad) translateY(70%)',
|
||||
to: 'skewX(20rad) translateY(90%)'
|
||||
}, [
|
||||
{at: -1, expect: 'skewX(0rad) translateY(50%)'},
|
||||
{at: 0, expect: 'skewX(10rad) translateY(70%)'},
|
||||
{at: 0.25, expect: 'skewX(12.5rad) translateY(75%)'},
|
||||
{at: 0.75, expect: 'skewX(17.5rad) translateY(85%)'},
|
||||
{at: 1, expect: 'skewX(20rad) translateY(90%)'},
|
||||
{at: 2, expect: 'skewX(30rad) translateY(110%)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'skewX(1rad)',
|
||||
to: 'translate3d(8px, -4px, 12px) skewX(2rad)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)'},
|
||||
{at: 0, expect: 'matrix(1, 0, 1.5574077246549023, 1, 0, 0)'},
|
||||
{at: 0.25, expect: 'matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)'},
|
||||
{at: 0.75, expect: 'matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)'},
|
||||
{at: 1, expect: 'matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)'},
|
||||
{at: 2, expect: 'matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate3d(8px, -4px, 12px) skewX(1rad) perspective(400px)',
|
||||
to: 'scaleY(2) skewX(2rad) perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(1, 0, 0, 0, 0, 0, 0, 0, -0.03876288659793814, 0.01938144329896907, 0.94, -0.0029653608247422686, 16, -8, 24, 0.986144329896907)'},
|
||||
{at: 0, expect: 'matrix3d(1, 0, 0, 0, 1.5574077246549023, 1, 0, 0, -0.02, 0.01, 0.97, -0.0025, 8, -4, 12, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(1, 0, 0, 0, 1.1186572632293585, 1.25, 0, 0, -0.0151159793814433, 0.00755798969072165, 0.9775, -0.002378247422680413, 6, -3, 9, 1.0012989690721648)'},
|
||||
{at: 0.75, expect: 'matrix3d(1, 0, 0, 0, -0.7525665307288518, 1.75, 0, 0, -0.005115979381443298, 0.002557989690721649, 0.9924999999999999, -0.002128247422680412, 2, -1, 3, 1.001298969072165)'},
|
||||
{at: 1, expect: 'matrix3d(1, 0, 0, 0, -2.185039863261519, 2, 0, 0, 0, 0, 1, -0.002, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'matrix3d(1, 0, 0, 0, -11.227342763749263, 3, 0, 0, 0.021237113402061854, -0.010618556701030927, 1.03, -0.0014653608247422677, -8, 4, -12, 0.9861443298969074)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate3d(8px, -4px, 12px) skewX(1rad) perspective(400px)',
|
||||
to: 'translate3d(4px, -12px, 8px) scaleY(2) perspective(500px)'
|
||||
}, [
|
||||
{at: -1, expect: 'translate3d(12px, 4px, 16px) matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -0.003, 0, 0, 0, 1)'},
|
||||
{at: 0, expect: 'translate3d(8px, -4px, 12px) matrix3d(1, 0, 0, 0, 1.55741, 1, 0, 0, 0, 0, 1, -0.0025, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'translate3d(7px, -6px, 11px) matrix3d(1, 0, 0, 0, 1.46007, 1.25, 0, 0, 0, 0, 1, -0.002375, 0, 0, 0, 1)'},
|
||||
{at: 0.75, expect: 'translate3d(5px, -10px, 9px) matrix3d(1, 0, 0, 0, 0.681366, 1.75, 0, 0, 0, 0, 1, -0.002125, 0, 0, 0, 1)'},
|
||||
{at: 1, expect: 'translate3d(4px, -12px, 8px) matrix3d(1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, -0.002, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'translate3d(0px, -20px, 4px) matrix3d(1, 0, 0, 0, -4.67222, 3, 0, 0, 0, 0, 1, -0.0015, 0, 0, 0, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate3d(8px, -4px, 12px) skewX(1rad) perspective(400px)',
|
||||
to: 'translate3d(4px, -12px, 8px) skewX(2rad) scaleY(2)'
|
||||
}, [
|
||||
{at: -1, expect: 'translate3d(12px, 4px, 16px) skewX(0rad) matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -0.005, 0, 0, 0, 1)'},
|
||||
{at: 0, expect: 'translate3d(8px, -4px, 12px) skewX(1rad) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -0.0025, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'translate3d(7px, -6px, 11px) skewX(1.25rad) matrix3d(1, 0, 0, 0, 0, 1.25, 0, 0, 0, 0, 1, -0.001875, 0, 0, 0, 1)'},
|
||||
{at: 0.75, expect: 'translate3d(5px, -10px, 9px) skewX(1.75rad) matrix3d(1, 0, 0, 0, 0, 1.75, 0, 0, 0, 0, 1, -0.000625, 0, 0, 0, 1)'},
|
||||
{at: 1, expect: 'translate3d(4px, -12px, 8px) skewX(2rad) matrix(1, 0, 0, 2, 0, 0)'},
|
||||
{at: 2, expect: 'translate3d(0px, -20px, 4px) skewX(3rad) matrix3d(1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 0.0025, 0, 0, 0, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'translate3D(100px, 200px, 300px)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 200, 400, 600, 1)'},
|
||||
{at: 0, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 100, 200, 300, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 75, 150, 225, 1)'},
|
||||
{at: 0.75, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 25, 50, 75, 1)'},
|
||||
{at: 1, expect: 'matrix(1, 0, 0, 1, 0, 0) '},
|
||||
{at: 2, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -100, -200, -300, 1)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,268 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
// Matrix transforms:
|
||||
|
||||
// 2D matrix transforms:
|
||||
//
|
||||
// [m11 m21 0 m41] [1 0 0 Tx] [cos(R) -sin(R) 0 0] [1 K 0 0] [Sx 0 0 0]
|
||||
// [m12 m22 0 m42] = [0 1 0 Ty] [sin(R) cos(R) 0 0] [0 1 0 0] [0 Sy 0 0]
|
||||
// [ 0 0 1 0 ] [0 0 1 0 ] [ 0 0 1 0] [0 0 1 0] [0 0 1 0]
|
||||
// [ 0 0 0 1 ] [0 0 0 1 ] [ 0 0 0 1] [0 0 0 1] [0 0 0 1]
|
||||
//
|
||||
// M = translate * rotate * skew * scale
|
||||
// See also webkit-transform-interpolation-005.html
|
||||
//
|
||||
|
||||
const cos30 = Math.cos(Math.PI / 6);
|
||||
const sin30 = Math.sin(Math.PI / 6);
|
||||
const cos45 = Math.cos(Math.PI / 4);
|
||||
const sin45 = Math.sin(Math.PI / 4);
|
||||
const cos60 = Math.cos(Math.PI / 3);
|
||||
const sin60 = Math.sin(Math.PI / 3);
|
||||
|
||||
// translateY(-6px) -> translateX(6px) rotate(90deg) scaleX(7)
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix(1, 0, 0, 1, 0, -6)',
|
||||
to: 'matrix(0, 7, -1, 0, 6, 0)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix(0, 5, 1, 0, -6, -12)'},
|
||||
{at: 0, expect: 'matrix(1, 0, 0, 1, 0, -6)'},
|
||||
{
|
||||
at: 1/3,
|
||||
expect: `matrix(${3 * cos30}, ${3 * sin30}, -${sin30}, ${cos30}, 2, -4)`
|
||||
},
|
||||
{
|
||||
at: 0.5,
|
||||
expect: `matrix(${4 * cos45}, ${4 * sin45}, -${sin45}, ${cos45}, 3, -3)`
|
||||
},
|
||||
{
|
||||
at: 2/3,
|
||||
expect: `matrix(${5 * cos60}, ${5 * sin60}, -${sin60}, ${cos60}, 4, -2)`
|
||||
},
|
||||
{at: 1, expect: 'matrix(0, 7, -1, 0, 6, 0)'},
|
||||
{at: 2, expect: 'matrix(-13, 0, 0, -1, 12, 6)'}
|
||||
]);
|
||||
|
||||
// translateX(6px) rotate(90deg) scaleX(7) -> translateY(-6px)
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix(0, 7, -1, 0, 6, 0)',
|
||||
to: 'matrix(1, 0, 0, 1, 0, -6)',
|
||||
}, [
|
||||
{at: -1, expect: 'matrix(-13, 0, 0, -1, 12, 6)'},
|
||||
{at: 0, expect: 'matrix(0, 7, -1, 0, 6, 0)'},
|
||||
{
|
||||
at: 1/3,
|
||||
expect: `matrix(${5 * cos60}, ${5 * sin60}, -${sin60}, ${cos60}, 4, -2)`
|
||||
},
|
||||
{
|
||||
at: 0.5,
|
||||
expect: `matrix(${4 * cos45}, ${4 * sin45}, -${sin45}, ${cos45}, 3, -3)`
|
||||
},
|
||||
{
|
||||
at: 2/3,
|
||||
expect: `matrix(${3 * cos30}, ${3 * sin30}, -${sin30}, ${cos30}, 2, -4)`
|
||||
},
|
||||
{at: 1, expect: 'matrix(1, 0, 0, 1, 0, -6)'},
|
||||
{at: 2, expect: 'matrix(0, 5, 1, 0, -6, -12)'}
|
||||
]);
|
||||
|
||||
// scaleY(7) -> skewX(45deg) scaleX(7)
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix(1, 0, 0, 7, 0, 0)',
|
||||
to: 'matrix(7, 0, 1, 1, 0, 0)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix(-5, 0, -13, 13, 0, 0)'},
|
||||
{at: 0, expect: 'matrix(1, 0, 0, 7, 0, 0)'},
|
||||
{at: 1/3, expect: 'matrix(3, 0, 1.6667, 5, 0, 0)'},
|
||||
{at: 0.5, expect: 'matrix(4, 0, 2, 4, 0, 0)'},
|
||||
{at: 2/3, expect: 'matrix(5, 0, 2, 3, 0, 0)'},
|
||||
{at: 1, expect: `matrix(7, 0, 1, 1, 0, 0)`},
|
||||
{at: 2, expect: `matrix(13, 0, -10, -5, 0, 0)`}
|
||||
]);
|
||||
|
||||
// none -> translateX(6px) skewX(45deg) scaleX(7) scaleY(2)
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'matrix(7, 0, 2, 2, 6, 0)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix(-5, 0, 0, 0, -6, 0)'},
|
||||
{at: 0, expect: 'matrix(1, 0, 0, 1, 0, 0)'},
|
||||
{at: 0.25, expect: 'matrix(2.5, 0, 0.31, 1.25, 1.5, 0)'},
|
||||
{at: 0.5, expect: 'matrix(4, 0, 0.75, 1.5, 3, 0)'},
|
||||
{at: 0.75, expect: 'matrix(5.5, 0, 1.31, 1.75, 4.5, 0)'},
|
||||
{at: 1, expect: 'matrix(7, 0, 2, 2, 6, 0)'},
|
||||
{at: 2, expect: 'matrix(13, 0, 6, 3, 12, 0)'}
|
||||
]);
|
||||
|
||||
// translateY(-6px) scale(3, 5) -> none
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix(3, 0, 0, 5, 0, -6)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix(5, 0, 0, 9, 0, -12)'},
|
||||
{at: 0, expect: 'matrix(3, 0, 0, 5, 0, -6)'},
|
||||
{at: 0.25, expect: 'matrix(2.5, 0, 0, 4, 0, -4.5)'},
|
||||
{at: 0.5, expect: 'matrix(2, 0, 0, 3, 0, -3)'},
|
||||
{at: 0.75, expect: 'matrix(1.5, 0, 0, 2, 0, -1.5)'},
|
||||
{at: 1, expect: 'matrix(1, 0, 0, 1, 0, 0)'},
|
||||
{at: 2, expect: 'matrix(-1, 0, 0, -3, 0, 6)'}
|
||||
]);
|
||||
|
||||
// 3-D matrix transforms.
|
||||
// TODO(kevers): Revisit 3D transform examples. It is difficult to infer
|
||||
// the quality of the matrix decompositions from the expected output.
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'matrix3d(1.0806046117362795, 0, -1.682941969615793, 0, 0, 3, 0, 0, 3.365883939231586, 0, 2.161209223472559, 0, 0, 0, 0, 1)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(0, 0, 0, 0, 0, -1, 0, 0, 1.682941969615793, 0, -1.0806046117362795, 0, 0, 0, 0, 1)'},
|
||||
{at: 0, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(1.211140527138306, 0, -0.30925494906815365, 0, 0, 1.5, 0, 0, 0.43295692869541513, 0, 1.6955967379936283, 0, 0, 0, 0, 1)'},
|
||||
{at: 0.75, expect: 'matrix3d(1.2804555205291865, 0, -1.1928678300408346, 0, 0, 2.5, 0, 0, 2.215325970075836, 0, 2.377988823839918, 0, 0, 0, 0, 1)'},
|
||||
{at: 1, expect: 'matrix3d(1.0806046117362795, 0, -1.682941969615793, 0, 0, 3, 0, 0, 3.365883939231586, 0, 2.161209223472559, 0, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'matrix3d(-1.2484405096414273, 0, -2.727892280477045, 0, 0, 5, 0, 0, 6.365081987779772, 0, -2.9130278558299967, 0, 0, 0, 0, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix3d(1.0806046117362795, 0, -1.682941969615793, 0, 0, 3, 0, 0, 3.365883939231586, 0, 2.161209223472559, 0, 0, 0, 0, 1)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(-1.2484405096414273, 0, -2.727892280477045, 0, 0, 5, 0, 0, 6.365081987779772, 0, -2.9130278558299967, 0, 0, 0, 0, 1)'},
|
||||
{at: 0, expect: 'matrix3d(1.0806046117362795, 0, -1.682941969615793, 0, 0, 3, 0, 0, 3.365883939231586, 0, 2.161209223472559, 0, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(1.2804555205291865, 0, -1.1928678300408346, 0, 0, 2.5, 0, 0, 2.215325970075836, 0, 2.377988823839918, 0, 0, 0, 0, 1)'},
|
||||
{at: 0.75, expect: 'matrix3d(1.211140527138306, 0, -0.30925494906815365, 0, 0, 1.5, 0, 0, 0.43295692869541513, 0, 1.6955967379936283, 0, 0, 0, 0, 1)'},
|
||||
{at: 1, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'matrix3d(0, 0, 0, 0, 0, -1, 0, 0, 1.682941969615793, 0, -1.0806046117362795, 0, 0, 0, 0, 1)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix3d(2.3505561943, 0.0, 0.0, 0.0, 0.0, 2.6068943664, 0.0, 0.0, 0.0, 0.0, 2.6591082592, 0.0, 20.3339914256, 20.6709033765, 20.9147808456, 1.0)',
|
||||
to: 'matrix3d(2.7133590938, 0.0, 0.0, 0.0, 0.0, 2.4645137761, 0.0, 0.0, 0.0, 0.0, 2.801687476, 0.0, 20.4335882254, 20.2330661998, 20.4583968206, 1.0)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(1.9877532948000005, 0.0, 0.0, 0.0, 0.0, 2.7492749567000003, 0.0, 0.0, 0.0, 0.0, 2.5165290423999997, 0.0, 20.2343946258, 21.1087405532, 21.371164870599998, 1.0)'},
|
||||
{at: 0, expect: 'matrix3d(2.3505561943, 0.0, 0.0, 0.0, 0.0, 2.6068943664, 0.0, 0.0, 0.0, 0.0, 2.6591082592, 0.0, 20.3339914256, 20.6709033765, 20.9147808456, 1.0)'},
|
||||
{at: 0.25, expect: 'matrix3d(2.441256919175, 0.0, 0.0, 0.0, 0.0, 2.571299218825, 0.0, 0.0, 0.0, 0.0, 2.6947530634, 0.0, 20.35889062555, 20.561444082325, 20.800684839349998, 1.0)'},
|
||||
{at: 0.75, expect: 'matrix3d(2.622658368925, 0.0, 0.0, 0.0, 0.0, 2.500108923675, 0.0, 0.0, 0.0, 0.0, 2.7660426718, 0.0, 20.408689025450002, 20.342525493975, 20.572492826850002, 1.0)'},
|
||||
{at: 1, expect: 'matrix3d(2.7133590938, 0.0, 0.0, 0.0, 0.0, 2.4645137761, 0.0, 0.0, 0.0, 0.0, 2.801687476, 0.0, 20.4335882254, 20.2330661998, 20.4583968206, 1.0)'},
|
||||
{at: 2, expect: 'matrix3d(3.0761619932999995, 0.0, 0.0, 0.0, 0.0, 2.3221331858, 0.0, 0.0, 0.0, 0.0, 2.9442666928000003, 0.0, 20.5331850252, 19.7952290231, 20.002012795600002, 1.0)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'matrix3d(0, 0.6875, -0.625, 0.3125, -0.6666666666666665, -1, 0.8333333333333334, 0.125, -0.6666666666666665, 0, 0.5, 1.0625, -1.1875, -0.0625, 1.3125, 1)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(-0.0000000000000002377810622383943, -1.0671050586638147, -0.08972656766237302, 1.3740432449326199, 0.98484601036295, -2.653201092395309, 0.6753819540610847, 3.6127240080250744, -2.7988839807429846, -1.2090004194153336, -0.5183744226115445, -0.7936088631686278, 1.1875, 0.0625, -1.3125, 5.340768914473683)'},
|
||||
{at: 0, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(0.9041890962319094, 0.3522701519297133, -0.15240204298176957, -0.1428256720529315, -0.7579798772527586, 0.6803606288839232, -0.05133336076757235, 0.37904689530895724, -0.1957679784745485, 0.38554138029509327, 0.8226186974340638, 0.3370288143441876, -0.296875, -0.015625, 0.328125, 0.5930529142680923)'},
|
||||
{at: 0.75, expect: 'matrix3d(0.35007413226026135, 0.7254385504141292, -0.4977009150941454, 0.09582061929004702, -1.1027525038949482, -0.5884810398827429, 0.4516829688651701, 0.5447944343861767, -0.68717798815684, 0.2657772247405681, 0.5465690479810023, 1.0836207863885503, -0.890625, -0.046875, 0.984375, 0.5930529142680927)'},
|
||||
{at: 1, expect: 'matrix3d(0, 0.6875, -0.625, 0.3125, -0.6666666666666665, -1, 0.8333333333333334, 0.125, -0.6666666666666665, 0, 0.5, 1.0625, -1.1875, -0.0625, 1.3125, 1)'},
|
||||
{at: 2, expect: 'matrix3d(-0.5844534449366048, -0.42278005999296053, -0.4650580659922564, -0.6817595809063256, 0.9156938760088464, 0.3851647027225889, 0.9244443507516923, 0.7218225020358241, -0.0803568793574344, 0.1719974850210706, -0.49676609633513097, -0.25968177786904373, -2.375, -0.125, 2.625, 5.340768914473685)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix3d(0, 0.6875, -0.625, 0.3125, -0.6666666666666665, -1, 0.8333333333333334, 0.125, -0.6666666666666665, 0, 0.5, 1.0625, -1.1875, -0.0625, 1.3125, 1)',
|
||||
to: 'matrix3d(0.571428571428571, -0.625, -0.8333333333333346, -0.66666666666669, 0.5, -0.1875, -0.8125, 0.3125, 0.34375, -1, 0.8333333333333327, 1.34375, -1.34375, 1, -0.9375, 1)'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(-0.6299594065765657, -0.10825090106268696, -0.20133311671001855, 5.485724217214554, 6.358051978686152, 0.16496896269344588, 1.5760051143537075, -54.21568355620423, 0.7106057459805782, -1.1596356050622005, -0.11495342545397585, -4.913752963990824, -1.03125, -1.125, 3.5625, -5.901513951904114)'},
|
||||
{at: 0, expect: 'matrix3d(0, 0.6875, -0.625, 0.3125, -0.6666666666666665, -1, 0.8333333333333334, 0.125, -0.6666666666666665, 0, 0.5, 1.0625, -1.1875, -0.0625, 1.3125, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(0.33652832679595723, 0.55254445148386, -0.7544724447833296, 0.22700224951774267, -0.69720168363685, -0.036373245768780864, 0.28149188169180933, -0.2845156818045006, -0.24737156018941048, 0.31207160370190334, 0.4564821058052897, 0.9220853089096839, -1.2265625, 0.203125, 0.75, 1.647016932991011)'},
|
||||
{at: 0.75, expect: 'matrix3d(0.6861191524977764, -0.18025672746204927, -0.8710297237546482, 0.6072134247444672, 0.2819931018922366, 0.27778974607679663, -0.6540128246146626, 0.5063632314069845, 0.5509562084361049, -0.3215202993119732, 0.5459062603735321, 2.8697154005492105, -1.3046875, 0.734375, -0.375, 1.6470169329910096)'},
|
||||
{at: 1, expect: 'matrix3d(0.571428571428571, -0.625, -0.8333333333333346, -0.66666666666669, 0.5, -0.1875, -0.8125, 0.3125, 0.34375, -1, 0.8333333333333327, 1.34375, -1.34375, 1, -0.9375, 1)'},
|
||||
{at: 2, expect: 'matrix3d(-1.1789992641434441, -0.7109729379601547, -0.4455746537954199, -21.703089533128907, -0.11137581475421703, -0.08822983871000473, -0.05695380894007451, -2.22667264132605, -3.1443917136741506, 1.8952588096345078, 2.426615889772007, -21.697523130750138, -1.5, 2.0625, -3.1875, -5.901513951904121)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'matrix3d(0.571428571428571, -0.625, -0.8333333333333346, -0.66666666666669, 0.5, -0.1875, -0.8125, 0.3125, 0.34375, -1, 0.8333333333333327, 1.34375, -1.34375, 1, -0.9375, 1)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'matrix3d(-0.6413028394192518, -1.0702420910513302, -0.5807595966791961, -18.02447171345163, 0.8211815704840004, 1.0980679097347057, 0.9399408862655454, 22.460730852026064, 0.28421009261178104, -0.5408346238741739, 0.5194791363698213, 3.075163035391172, -2.6875, 2, -1.875, -14.881239394516232)'},
|
||||
{at: 0, expect: 'matrix3d(0.571428571428571, -0.625, -0.8333333333333346, -0.66666666666669, 0.5, -0.1875, -0.8125, 0.3125, 0.34375, -1, 0.8333333333333327, 1.34375, -1.34375, 1, -0.9375, 1)'},
|
||||
{at: 0.25, expect: 'matrix3d(0.7912976716694541, -0.4517927901159618, -0.6868745974719376, 1.2522201536338506, 0.7952183069582651, 0.06340410955800829, -0.7956629784232128, 2.2561737435012983, 0.345639443327071, -0.8934490945546473, 0.830131443385676, 1.2606901484983566, -1.0078125, 0.75, -0.703125, 2.4888661932358946)'},
|
||||
{at: 0.75, expect: 'matrix3d(1.0093457700315165, -0.12746048375025829, -0.24746788943106088, 1.3202120308857304, 0.6128364656690982, 0.7600694601651116, -0.22233359857303325, 1.4081483224940277, 0.21669805381113447, -0.3786082265932788, 0.908354523914928, 0.6747509193960347, -0.3359375, 0.25, -0.234375, 2.4888661932358964)'},
|
||||
{at: 1, expect: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'},
|
||||
{at: 2, expect: 'matrix3d(0.39048513570444376, 0.14780794797065988, 0.6963068100217401, -4.857907861239344, -2.967682789284791, 0.6004978769584385, -3.5472376016872444, 26.675324787979896, -2.5953724498995308, 1.6280843851961373, 0.8163834310586356, 9.001735256585825, 1.34375, -1, 0.9375, -14.881239394516227)'},
|
||||
]);
|
||||
|
||||
// Mismatched interpolation with an empty list should not use decomposition.
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'rotate(180deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(-180deg)'},
|
||||
{at: 0, expect: 'rotate(0deg)'},
|
||||
{at: 0.25, expect: 'rotate(45deg)'},
|
||||
{at: 0.75, expect: 'rotate(135deg)'},
|
||||
{at: 1, expect: 'rotate(180deg)'},
|
||||
{at: 2, expect: 'rotate(360deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'rotate(180deg)',
|
||||
to: 'none'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(360deg)'},
|
||||
{at: 0, expect: 'rotate(180deg)'},
|
||||
{at: 0.25, expect: 'rotate(135deg)'},
|
||||
{at: 0.75, expect: 'rotate(45deg)'},
|
||||
{at: 1, expect: 'rotate(0deg)'},
|
||||
{at: 2, expect: 'rotate(-180deg)'},
|
||||
]);
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'none',
|
||||
to: 'rotate(360deg)'
|
||||
}, [
|
||||
{at: -1, expect: 'rotate(-360deg)'},
|
||||
{at: 0, expect: 'rotate(0deg)'},
|
||||
{at: 0.25, expect: 'rotate(90deg)'},
|
||||
{at: 0.75, expect: 'rotate(270deg)'},
|
||||
{at: 1, expect: 'rotate(360deg)'},
|
||||
{at: 2, expect: 'rotate(720deg)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,100 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
|
||||
<meta name="assert" content="transform supports animation as a transform list">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
transform: translate(30px);
|
||||
}
|
||||
.target {
|
||||
color: white;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: black;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
transform: translate(10px);
|
||||
}
|
||||
.expected {
|
||||
background-color: green;
|
||||
}
|
||||
.parent {
|
||||
transform: 30px;
|
||||
}
|
||||
.target > div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
background: orange;
|
||||
margin: 1px;
|
||||
}
|
||||
.test {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<template id="target-template">
|
||||
<div></div>
|
||||
</template>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: neutralKeyframe,
|
||||
to: 'translate(20px)',
|
||||
}, [
|
||||
{at: -1, expect: 'translate(0px)'},
|
||||
{at: 0, expect: 'translate(10px)'},
|
||||
{at: 0.25, expect: 'translate(12.5px)'},
|
||||
{at: 0.75, expect: 'translate(17.5px)'},
|
||||
{at: 1, expect: 'translate(20px)'},
|
||||
{at: 2, expect: 'translate(30px)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'initial',
|
||||
to: 'translate(20px)',
|
||||
}, [
|
||||
{at: -1, expect: 'translate(-20px)'},
|
||||
{at: 0, expect: 'translate(0px)'},
|
||||
{at: 0.25, expect: 'translate(5px)'},
|
||||
{at: 0.75, expect: 'translate(15px)'},
|
||||
{at: 1, expect: 'translate(20px)'},
|
||||
{at: 2, expect: 'translate(40px)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'inherit',
|
||||
to: 'translate(20px)',
|
||||
}, [
|
||||
{at: -1, expect: 'translate(40px)'},
|
||||
{at: 0, expect: 'translate(30px)'},
|
||||
{at: 0.25, expect: 'translate(27.5px)'},
|
||||
{at: 0.75, expect: 'translate(22.5px)'},
|
||||
{at: 1, expect: 'translate(20px)'},
|
||||
{at: 2, expect: 'translate(10px)'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform',
|
||||
from: 'unset',
|
||||
to: 'translate(20px)',
|
||||
}, [
|
||||
{at: -1, expect: 'translate(-20px)'},
|
||||
{at: 0, expect: 'translate(0px)'},
|
||||
{at: 0.25, expect: 'translate(5px)'},
|
||||
{at: 0.75, expect: 'translate(15px)'},
|
||||
{at: 1, expect: 'translate(20px)'},
|
||||
{at: 2, expect: 'translate(40px)'},
|
||||
]);
|
||||
</script>
|
|
@ -0,0 +1,125 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>transform-origin interpolation</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-origin-property">
|
||||
<meta name="assert" content="transform supports animation by computed value">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||
|
||||
<style>
|
||||
.parent {
|
||||
transform-origin: 30px 10px;
|
||||
}
|
||||
.target {
|
||||
display: inline-block;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 25px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background: red;
|
||||
transform: scale(1.5);
|
||||
transform-origin: 10px 30px;
|
||||
}
|
||||
.expected {
|
||||
background: green;
|
||||
position: relative;
|
||||
left: -50px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body></body>
|
||||
|
||||
<script>
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: neutralKeyframe,
|
||||
to: '20px 20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '7px 33px'},
|
||||
{at: 0, expect: '10px 30px'},
|
||||
{at: 0.3, expect: '13px 27px'},
|
||||
{at: 0.6, expect: '16px 24px'},
|
||||
{at: 1, expect: '20px 20px'},
|
||||
{at: 1.5, expect: '25px 15px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: 'initial',
|
||||
to: '20px 20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '26.5px 26.5px'},
|
||||
{at: 0, expect: '25px 25px'},
|
||||
{at: 0.3, expect: '23.5px 23.5px'},
|
||||
{at: 0.6, expect: '22px 22px'},
|
||||
{at: 1, expect: '20px 20px'},
|
||||
{at: 1.5, expect: '17.5px 17.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: 'inherit',
|
||||
to: '20px 20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '33px 7px'},
|
||||
{at: 0, expect: '30px 10px'},
|
||||
{at: 0.3, expect: '27px 13px'},
|
||||
{at: 0.6, expect: '24px 16px'},
|
||||
{at: 1, expect: '20px 20px'},
|
||||
{at: 1.5, expect: '15px 25px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: 'unset',
|
||||
to: '20px 20px',
|
||||
}, [
|
||||
{at: -0.3, expect: '26.5px 26.5px'},
|
||||
{at: 0, expect: '25px 25px'},
|
||||
{at: 0.3, expect: '23.5px 23.5px'},
|
||||
{at: 0.6, expect: '22px 22px'},
|
||||
{at: 1, expect: '20px 20px'},
|
||||
{at: 1.5, expect: '17.5px 17.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: 'top left',
|
||||
to: 'bottom right',
|
||||
}, [
|
||||
{at: -0.3, expect: '-15px -15px'},
|
||||
{at: 0, expect: '0px 0px'},
|
||||
{at: 0.3, expect: '15px 15px'},
|
||||
{at: 0.6, expect: '30px 30px'},
|
||||
{at: 1, expect: '50px 50px'},
|
||||
{at: 1.5, expect: '75px 75px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: 'center center',
|
||||
to: '0% 100px',
|
||||
}, [
|
||||
{at: -0.3, expect: '32.5px 2.5px'},
|
||||
{at: 0, expect: '25px 25px'},
|
||||
{at: 0.3, expect: '17.5px 47.5px'},
|
||||
{at: 0.6, expect: '10px 70px'},
|
||||
{at: 1, expect: '0px 100px'},
|
||||
{at: 1.5, expect: '-12.5px 137.5px'},
|
||||
]);
|
||||
|
||||
test_interpolation({
|
||||
property: 'transform-origin',
|
||||
from: '0% 50% 5px',
|
||||
to: '100% 150% 0px'
|
||||
}, [
|
||||
{at: -0.3, expect: '-30% 20% 6.5px'},
|
||||
{at: 0, expect: '0% 50% 5px'},
|
||||
{at: 0.3, expect: '30% 80% 3.5px'},
|
||||
{at: 0.6, expect: '60% 110% 2px'},
|
||||
{at: 1, expect: '100% 150% 0px'},
|
||||
{at: 1.5, expect: '150% 200% -2.5px'},
|
||||
]);
|
||||
</script>
|
|
@ -83,7 +83,7 @@
|
|||
{
|
||||
testName:"background-image-radial-gradient",
|
||||
propertyName:"background-image",
|
||||
expectedValue:"radial-gradient(at 25px 25px, black 10%, green 90%)",
|
||||
expectedValue:"radial-gradient(at 25px 25px, rgb(0, 0, 0) 10%, rgb(0, 128, 0) 90%)",
|
||||
},
|
||||
];
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,161 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#1/9, 2048 code points in U+0020-0B27).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#1/9, 2048 code points in U+0020-0B27)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Basic">
|
||||
<div class="line"> !"#$%&'()*+,-./0123456789:;<=>?</div>
|
||||
<div class="line">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</div>
|
||||
<div class="line">`abcdefghijklmnopqrstuvwxyz{|}~</div>
|
||||
</div>
|
||||
<div data-block="Latin">
|
||||
<div class="line"> ¡¢£¤¥¦¨ª«¬¯°²³´µ¶·¸¹º»¿ÀÁÂÃÄÅÆÇ</div>
|
||||
<div class="line">ÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçè</div>
|
||||
<div class="line">éêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉ</div>
|
||||
<div class="line">ĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩ</div>
|
||||
<div class="line">ĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼn</div>
|
||||
<div class="line">ŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũ</div>
|
||||
<div class="line">ŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉ</div>
|
||||
<div class="line">ƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩ</div>
|
||||
<div class="line">ƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjlj</div>
|
||||
<div class="line">NJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩ</div>
|
||||
<div class="line">ǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉ</div>
|
||||
<div class="line">ȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩ</div>
|
||||
<div class="line">ȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉ</div>
|
||||
<div class="line">ɊɋɌɍɎɏ</div>
|
||||
</div>
|
||||
<div data-block="IPA">
|
||||
<div class="line">ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ</div>
|
||||
<div class="line">ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏ</div>
|
||||
<div class="line">ʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ</div>
|
||||
</div>
|
||||
<div data-block="Spacing">
|
||||
<div class="line">ʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏ</div>
|
||||
<div class="line">ːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠˡˢˣˤ˥˦˧˨˩ˬ˭ˮ˯˰˱</div>
|
||||
<div class="line">˲˳˴˵˶˷˸˹˺˻˼˽˾˿</div>
|
||||
</div>
|
||||
<div data-block="Greek">
|
||||
<div class="line">ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;Ϳ΄΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗ</div>
|
||||
<div class="line">ΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθ</div>
|
||||
<div class="line">ικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘ</div>
|
||||
<div class="line">ϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶Ϸϸ</div>
|
||||
<div class="line">ϹϺϻϼϽϾϿ</div>
|
||||
</div>
|
||||
<div data-block="Cyrillic">
|
||||
<div class="line">ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОП</div>
|
||||
<div class="line">РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп</div>
|
||||
<div class="line">рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ</div>
|
||||
<div class="line">ѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ</div>
|
||||
<div class="line">Ҁҁ҂ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦ</div>
|
||||
<div class="line">ҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆ</div>
|
||||
<div class="line">ӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦ</div>
|
||||
<div class="line">ӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿԀԁԂԃԄԅԆ</div>
|
||||
<div class="line">ԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦ</div>
|
||||
<div class="line">ԧԨԩԪԫԬԭԮԯ</div>
|
||||
</div>
|
||||
<div data-block="Armenian">
|
||||
<div class="line">ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐ</div>
|
||||
<div class="line">ՑՒՓՔՕՖՙ՚՛՜՝՞՟աբգդեզէըթժիլխծկհձղճ</div>
|
||||
<div class="line">մյնշոչպջռսվտրցւփքօֆև։֊֍֎֏</div>
|
||||
</div>
|
||||
<div data-block="Hebrew">
|
||||
<div class="line">־׀׃׆אבגדהוזחטיךכלםמןנסעףפץצקרשתװ</div>
|
||||
<div class="line">ױײ׳״</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">؆؇؈؉؊؋،؍؎؏؛؞؟ؠءآأؤإئابةتثجحخدذرز</div>
|
||||
<div class="line">سشصضطظعغػؼؽؾؿـفقكلمنهوىي٠١٢٣٤٥٦٧</div>
|
||||
<div class="line">٨٩٪٫٬٭ٮٯٱٲٳٴٵٶٷٸٹٺٻټٽپٿڀځڂڃڄڅچڇڈ</div>
|
||||
<div class="line">ډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨ</div>
|
||||
<div class="line">کڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿۀہۂۃۄۅۆۇۈ</div>
|
||||
<div class="line">ۉۊۋیۍێۏېۑےۓ۔ە۞ۥۦ۩ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ</div>
|
||||
<div class="line">۽۾ۿ</div>
|
||||
</div>
|
||||
<div data-block="Syriac">
|
||||
<div class="line">܀܁܂܃܄܅܆܇܈܉܊܋܌܍ܐܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢ</div>
|
||||
<div class="line">ܣܤܥܦܧܨܩܪܫܬܭܮܯݍݎݏ</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">ݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯ</div>
|
||||
<div class="line">ݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿ</div>
|
||||
</div>
|
||||
<div data-block="Thaana">
|
||||
<div class="line">ހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟ</div>
|
||||
<div class="line">ޠޡޢޣޤޥޱ</div>
|
||||
</div>
|
||||
<div data-block="NKo">
|
||||
<div class="line">߀߁߂߃߄߅߆߇߈߉ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟ</div>
|
||||
<div class="line">ߠߡߢߣߤߥߦߧߨߩߪߴߵ߶߷߸߹ߺ</div>
|
||||
</div>
|
||||
<div data-block="Samaritan">
|
||||
<div class="line">ࠀࠁࠂࠃࠄࠅࠆࠇࠈࠉࠊࠋࠌࠍࠎࠏࠐࠑࠒࠓࠔࠕࠚࠤࠨ࠰࠱࠲࠳࠴࠵࠶</div>
|
||||
<div class="line">࠷࠸࠹࠺࠻࠼࠽࠾</div>
|
||||
</div>
|
||||
<div data-block="Mandaic">
|
||||
<div class="line">ࡀࡁࡂࡃࡄࡅࡆࡇࡈࡉࡊࡋࡌࡍࡎࡏࡐࡑࡒࡓࡔࡕࡖࡗࡘ࡞</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">ࢠࢡࢢࢣࢤࢥࢦࢧࢨࢩࢪࢫࢬࢭࢮࢯࢰࢱࢲࢳࢴࢶࢷࢸࢹࢺࢻࢼࢽ</div>
|
||||
</div>
|
||||
<div data-block="Devanagari">
|
||||
<div class="line">ऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठडढण</div>
|
||||
<div class="line">तथदधनऩपफबभमयरऱलळऴवशषसहऽॐक़ख़ग़ज़ड़ढ़फ़य़</div>
|
||||
<div class="line">ॠॡ।॥०१२३४५६७८९॰ॱॲॳॴॵॶॷॸॹॺॻॼॽॾॿ</div>
|
||||
</div>
|
||||
<div data-block="Bengali">
|
||||
<div class="line">ঀঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধ</div>
|
||||
<div class="line">নপফবভমযরলশষসহঽৎড়ঢ়য়ৠৡ০১২৩৪৫৬৭৮৯ৰৱ</div>
|
||||
<div class="line">৲৳৴৵৶৷৸৹৺৻</div>
|
||||
</div>
|
||||
<div data-block="Gurmukhi">
|
||||
<div class="line">ਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫ</div>
|
||||
<div class="line">ਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹਖ਼ਗ਼ਜ਼ੜਫ਼੦੧੨੩੪੫੬੭੮੯ੲੳੴ</div>
|
||||
</div>
|
||||
<div data-block="Gujarati">
|
||||
<div class="line">અઆઇઈઉઊઋઌઍએઐઑઓઔકખગઘઙચછજઝઞટઠડઢણતથદ</div>
|
||||
<div class="line">ધનપફબભમયરલળવશષસહઽૐૠૡ૦૧૨૩૪૫૬૭૮૯૰૱</div>
|
||||
<div class="line">ૹ</div>
|
||||
</div>
|
||||
<div data-block="Oriya">
|
||||
<div class="line">ଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧ</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,181 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#2/9, 2048 code points in U+0B28-1B07).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#2/9, 2048 code points in U+0B28-1B07)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Oriya">
|
||||
<div class="line">ନପଫବଭମଯରଲଳଵଶଷସହଽଡ଼ଢ଼ୟୠୡ୦୧୨୩୪୫୬୭୮୯୰</div>
|
||||
<div class="line">ୱ୲୳୴୵୶୷</div>
|
||||
</div>
|
||||
<div data-block="Tamil">
|
||||
<div class="line">ஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவ</div>
|
||||
<div class="line">ஶஷஸஹௐ௦௧௨௩௪௫௬௭௮௯௰௱௲௳௴௵௶௷௸௹௺</div>
|
||||
</div>
|
||||
<div data-block="Telugu">
|
||||
<div class="line">అఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథద</div>
|
||||
<div class="line">ధనపఫబభమయరఱలళఴవశషసహఽౘౙౚౠౡ౦౧౨౩౪౫౬౭</div>
|
||||
<div class="line">౮౯౸౹౺౻౼౽౾౿</div>
|
||||
</div>
|
||||
<div data-block="Kannada">
|
||||
<div class="line">ಀಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥ</div>
|
||||
<div class="line">ದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽೞೠೡ೦೧೨೩೪೫೬೭೮೯</div>
|
||||
<div class="line">ೱೲ</div>
|
||||
</div>
|
||||
<div data-block="Malayalam">
|
||||
<div class="line">അആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദ</div>
|
||||
<div class="line">ധനഩപഫബഭമയരറലളഴവശഷസഹഺഽൎ൏ൔൕൖ൘൙൚൛൜൝</div>
|
||||
<div class="line">൞ൟൠൡ൦൧൨൩൪൫൬൭൮൯൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ</div>
|
||||
</div>
|
||||
<div data-block="Sinhala">
|
||||
<div class="line">අආඇඈඉඊඋඌඍඎඏඐඑඒඓඔඕඖකඛගඝඞඟචඡජඣඤඥඦට</div>
|
||||
<div class="line">ඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ෦෧෨෩෪</div>
|
||||
<div class="line">෫෬෭෮෯෴</div>
|
||||
</div>
|
||||
<div data-block="Thai">
|
||||
<div class="line">กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภ</div>
|
||||
<div class="line">มยรฤลฦวศษสหฬอฮฯะา฿เแโใไๅๆ๏๐๑๒๓๔๕</div>
|
||||
<div class="line">๖๗๘๙๚๛</div>
|
||||
</div>
|
||||
<div data-block="Lao">
|
||||
<div class="line">ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯະາຽເ</div>
|
||||
<div class="line">ແໂໃໄໆ໐໑໒໓໔໕໖໗໘໙ໜໝໞໟ</div>
|
||||
</div>
|
||||
<div data-block="Tibetan">
|
||||
<div class="line">ༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗༚༛༜༝༞༟༠༡</div>
|
||||
<div class="line">༢༣༤༥༦༧༨༩༪༫༬༭༮༯༰༱༲༳༴༶༸༺༻༼༽ཀཁགགྷངཅཆ</div>
|
||||
<div class="line">ཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧ</div>
|
||||
<div class="line">ཨཀྵཪཫཬ྅ྈྉྊྋྌ྾྿࿀࿁࿂࿃࿄࿅࿇࿈࿉࿊࿋࿌࿎࿏࿐࿑࿒࿓࿔</div>
|
||||
<div class="line">࿕࿖࿗࿘࿙࿚</div>
|
||||
</div>
|
||||
<div data-block="Myanmar">
|
||||
<div class="line">ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗဘမယရလဝသဟ</div>
|
||||
<div class="line">ဠအဢဣဤဥဦဧဨဩဪဿ၀၁၂၃၄၅၆၇၈၉၊။၌၍၎၏ၐၑၒၓ</div>
|
||||
<div class="line">ၔၕၚၛၜၝၡၥၦၮၯၰၵၶၷၸၹၺၻၼၽၾၿႀႁႎ႐႑႒႓႔႕</div>
|
||||
<div class="line">႖႗႘႙႞႟</div>
|
||||
</div>
|
||||
<div data-block="Georgian">
|
||||
<div class="line">ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿ</div>
|
||||
<div class="line">ჀჁჂჃჄჅჇჍაბგდევზთიკლმნოპჟრსტუფქღყ</div>
|
||||
<div class="line">შჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹჺ჻ჼჽჾჿ</div>
|
||||
</div>
|
||||
<div data-block="Ethiopic">
|
||||
<div class="line">ሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟ</div>
|
||||
<div class="line">ሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿ</div>
|
||||
<div class="line">ቀቁቂቃቄቅቆቇቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦ</div>
|
||||
<div class="line">ቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆ</div>
|
||||
<div class="line">ኇኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩ</div>
|
||||
<div class="line">ኪካኬክኮኯኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዏዐ</div>
|
||||
<div class="line">ዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮዯደዱ</div>
|
||||
<div class="line">ዲዳዴድዶዷዸዹዺዻዼዽዾዿጀጁጂጃጄጅጆጇገጉጊጋጌግጎጏጐጒ</div>
|
||||
<div class="line">ጓጔጕጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴ</div>
|
||||
<div class="line">ጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔ</div>
|
||||
<div class="line">ፕፖፗፘፙፚ፠፡።፣፤፥፦፧፨፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹</div>
|
||||
<div class="line">፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎍᎎᎏ᎐᎑᎒᎓᎔᎕᎖᎗᎘᎙</div>
|
||||
</div>
|
||||
<div data-block="Cherokee">
|
||||
<div class="line">ᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿ</div>
|
||||
<div class="line">ᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟ</div>
|
||||
<div class="line">ᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵᏸᏹᏺᏻᏼᏽ</div>
|
||||
</div>
|
||||
<div data-block="Unified">
|
||||
<div class="line">᐀</div>
|
||||
</div>
|
||||
<div data-block="Ogham">
|
||||
<div class="line"> ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ᚛᚜</div>
|
||||
</div>
|
||||
<div data-block="Runic">
|
||||
<div class="line">ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿ</div>
|
||||
<div class="line">ᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟ</div>
|
||||
<div class="line">ᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ᛫᛬᛭ᛮᛯᛰᛱᛲᛳᛴᛵᛶᛷᛸ</div>
|
||||
</div>
|
||||
<div data-block="Tagalog">
|
||||
<div class="line">ᜀᜁᜂᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜐᜑ</div>
|
||||
</div>
|
||||
<div data-block="Hanunoo">
|
||||
<div class="line">ᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱ᜵᜶</div>
|
||||
</div>
|
||||
<div data-block="Buhid">
|
||||
<div class="line">ᝀᝁᝂᝃᝄᝅᝆᝇᝈᝉᝊᝋᝌᝍᝎᝏᝐᝑ</div>
|
||||
</div>
|
||||
<div data-block="Tagbanwa">
|
||||
<div class="line">ᝠᝡᝢᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯᝰ</div>
|
||||
</div>
|
||||
<div data-block="Khmer">
|
||||
<div class="line">កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞស</div>
|
||||
<div class="line">ហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲឳ។៕៖ៗ៘៙៚៛ៜ០១២</div>
|
||||
<div class="line">៣៤៥៦៧៨៩៰៱៲៳៴៵៶៷៸៹</div>
|
||||
</div>
|
||||
<div data-block="Mongolian">
|
||||
<div class="line">᠀᠁᠂᠃᠄᠅᠆᠇᠈᠉᠊᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ᠠᠡᠢᠣᠤᠥᠦᠧᠨᠩᠪ</div>
|
||||
<div class="line">ᠫᠬᠭᠮᠯᠰᠱᠲᠳᠴᠵᠶᠷᠸᠹᠺᠻᠼᠽᠾᠿᡀᡁᡂᡃᡄᡅᡆᡇᡈᡉᡊ</div>
|
||||
<div class="line">ᡋᡌᡍᡎᡏᡐᡑᡒᡓᡔᡕᡖᡗᡘᡙᡚᡛᡜᡝᡞᡟᡠᡡᡢᡣᡤᡥᡦᡧᡨᡩᡪ</div>
|
||||
<div class="line">ᡫᡬᡭᡮᡯᡰᡱᡲᡳᡴᡵᡶᡷᢀᢁᢂᢃᢄᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔ</div>
|
||||
<div class="line">ᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢪ</div>
|
||||
</div>
|
||||
<div data-block="Limbu">
|
||||
<div class="line">ᤀᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝᤞ᥀</div>
|
||||
<div class="line">᥄᥅᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏</div>
|
||||
</div>
|
||||
<div data-block="Tai">
|
||||
<div class="line">ᥐᥑᥒᥓᥔᥕᥖᥗᥘᥙᥚᥛᥜᥝᥞᥟᥠᥡᥢᥣᥤᥥᥦᥧᥨᥩᥪᥫᥬᥭᥰᥱ</div>
|
||||
<div class="line">ᥲᥳᥴ</div>
|
||||
</div>
|
||||
<div data-block="New">
|
||||
<div class="line">ᦀᦁᦂᦃᦄᦅᦆᦇᦈᦉᦊᦋᦌᦍᦎᦏᦐᦑᦒᦓᦔᦕᦖᦗᦘᦙᦚᦛᦜᦝᦞᦟ</div>
|
||||
<div class="line">ᦠᦡᦢᦣᦤᦥᦦᦧᦨᦩᦪᦫᦰᦱᦲᦳᦴᦵᦶᦷᦸᦹᦺᦻᦼᦽᦾᦿᧀᧁᧂᧃ</div>
|
||||
<div class="line">ᧄᧅᧆᧇᧈᧉ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙᧚᧞᧟</div>
|
||||
</div>
|
||||
<div data-block="Khmer">
|
||||
<div class="line">᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧪᧫᧬᧭᧮᧯᧰᧱᧲᧳᧴᧵᧶᧷᧸᧹᧺᧻᧼᧽᧾᧿</div>
|
||||
</div>
|
||||
<div data-block="Buginese">
|
||||
<div class="line">ᨀᨁᨂᨃᨄᨅᨆᨇᨈᨉᨊᨋᨌᨍᨎᨏᨐᨑᨒᨓᨔᨕᨖ᨞᨟</div>
|
||||
</div>
|
||||
<div data-block="Tai">
|
||||
<div class="line">ᨠᨡᨢᨣᨤᨥᨦᨧᨨᨩᨪᨫᨬᨭᨮᨯᨰᨱᨲᨳᨴᨵᨶᨷᨸᨹᨺᨻᨼᨽᨾᨿ</div>
|
||||
<div class="line">ᩀᩁᩂᩃᩄᩅᩆᩇᩈᩉᩊᩋᩌᩍᩎᩏᩐᩑᩒᩓᩔ᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉᪐</div>
|
||||
<div class="line">᪑᪒᪓᪔᪕᪖᪗᪘᪙᪠᪡᪢᪣᪤᪥᪦ᪧ᪨᪩᪪᪫᪬᪭</div>
|
||||
</div>
|
||||
<div data-block="Balinese">
|
||||
<div class="line">ᬅᬆᬇ</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,176 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#3/9, 2048 code points in U+1B08-2858).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#3/9, 2048 code points in U+1B08-2858)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Balinese">
|
||||
<div class="line">ᬈᬉᬊᬋᬌᬍᬎᬏᬐᬑᬒᬓᬔᬕᬖᬗᬘᬙᬚᬛᬜᬝᬞᬟᬠᬡᬢᬣᬤᬥᬦᬧ</div>
|
||||
<div class="line">ᬨᬩᬪᬫᬬᬭᬮᬯᬰᬱᬲᬳᭅᭆᭇᭈᭉᭊᭋ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙᭚᭛᭜</div>
|
||||
<div class="line">᭝᭞᭟᭠᭡᭢᭣᭤᭥᭦᭧᭨᭩᭪᭴᭵᭶᭷᭸᭹᭺᭻᭼</div>
|
||||
</div>
|
||||
<div data-block="Sundanese">
|
||||
<div class="line">ᮃᮄᮅᮆᮇᮈᮉᮊᮋᮌᮍᮎᮏᮐᮑᮒᮓᮔᮕᮖᮗᮘᮙᮚᮛᮜᮝᮞᮟᮠᮮᮯ</div>
|
||||
<div class="line">᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ᮺᮻᮼᮽᮾᮿ</div>
|
||||
</div>
|
||||
<div data-block="Batak">
|
||||
<div class="line">ᯀᯁᯂᯃᯄᯅᯆᯇᯈᯉᯊᯋᯌᯍᯎᯏᯐᯑᯒᯓᯔᯕᯖᯗᯘᯙᯚᯛᯜᯝᯞᯟ</div>
|
||||
<div class="line">ᯠᯡᯢᯣᯤᯥ᯼᯽᯾᯿</div>
|
||||
</div>
|
||||
<div data-block="Lepcha">
|
||||
<div class="line">ᰀᰁᰂᰃᰄᰅᰆᰇᰈᰉᰊᰋᰌᰍᰎᰏᰐᰑᰒᰓᰔᰕᰖᰗᰘᰙᰚᰛᰜᰝᰞᰟ</div>
|
||||
<div class="line">ᰠᰡᰢᰣ᰻᰼᰽᰾᰿᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ᱍᱎᱏ</div>
|
||||
</div>
|
||||
<div data-block="Ol">
|
||||
<div class="line">᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯ</div>
|
||||
<div class="line">ᱰᱱᱲᱳᱴᱵᱶᱷᱸᱹᱺᱻᱼᱽ᱾᱿</div>
|
||||
</div>
|
||||
<div data-block="Cyrillic">
|
||||
<div class="line">ᲀᲁᲂᲃᲄᲅᲆᲇᲈ</div>
|
||||
</div>
|
||||
<div data-block="Sundanese">
|
||||
<div class="line">᳀᳁᳂᳃᳄᳅᳆᳇</div>
|
||||
</div>
|
||||
<div data-block="Vedic">
|
||||
<div class="line">᳓ᳩᳪᳫᳬᳮᳯᳰᳱᳵᳶ</div>
|
||||
</div>
|
||||
<div data-block="Phonetic">
|
||||
<div class="line">ᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟ</div>
|
||||
<div class="line">ᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᴬᴭᴮᴯᴰᴱᴲᴳᴴᴵᴶᴷᴸᴹᴺᴻᴼᴽᴾᴿ</div>
|
||||
<div class="line">ᵀᵁᵂᵃᵄᵅᵆᵇᵈᵉᵊᵋᵌᵍᵎᵏᵐᵑᵒᵓᵔᵕᵖᵗᵘᵙᵚᵛᵜᵝᵞᵟ</div>
|
||||
<div class="line">ᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵸᵹᵺᵻᵼᵽᵾᵿ</div>
|
||||
<div class="line">ᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚᶛᶜᶝᶞᶟ</div>
|
||||
<div class="line">ᶠᶡᶢᶣᶤᶥᶦᶧᶨᶩᶪᶫᶬᶭᶮᶯᶰᶱᶲᶳᶴᶵᶶᶷᶸᶹᶺᶻᶼᶽᶾᶿ</div>
|
||||
</div>
|
||||
<div data-block="Latin">
|
||||
<div class="line">ḀḁḂḃḄḅḆḇḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟ</div>
|
||||
<div class="line">ḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿ</div>
|
||||
<div class="line">ṀṁṂṃṄṅṆṇṈṉṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟ</div>
|
||||
<div class="line">ṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿ</div>
|
||||
<div class="line">ẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẜẝẞẟ</div>
|
||||
<div class="line">ẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾế</div>
|
||||
<div class="line">ỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞở</div>
|
||||
<div class="line">ỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹỺỻỼỽỾỿ</div>
|
||||
</div>
|
||||
<div data-block="Greek">
|
||||
<div class="line">ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛἜἝἠἡἢἣ</div>
|
||||
<div class="line">ἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃ</div>
|
||||
<div class="line">ὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧὨὩὪὫ</div>
|
||||
<div class="line">ὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍ</div>
|
||||
<div class="line">ᾎᾏᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭ</div>
|
||||
<div class="line">ᾮᾯᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿῀῁ῂῃῄῆῇῈΈῊΉῌ῍῎῏</div>
|
||||
<div class="line">ῐῑῒΐῖῗῘῙῚΊ῝῞῟ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`ῲῳῴ</div>
|
||||
<div class="line">ῶῷῸΌῺΏῼ´῾</div>
|
||||
</div>
|
||||
<div data-block="General">
|
||||
<div class="line"> ‐‑‒–—―‗‘’‚‛“”„‟•‣․‥…‧</div>
|
||||
<div class="line">
′″‴‵‶‷‸‹›‽‾‿⁀⁁⁃⁄⁅⁆⁊⁋⁌⁍⁎⁏⁐⁒⁓⁔⁕</div>
|
||||
<div class="line">⁖⁗⁘⁙⁚⁛⁜⁝⁞ </div>
|
||||
</div>
|
||||
<div data-block="Superscripts">
|
||||
<div class="line">⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒ</div>
|
||||
<div class="line">ₓₔₕₖₗₘₙₚₛₜ</div>
|
||||
</div>
|
||||
<div data-block="Currency">
|
||||
<div class="line">₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲₳₴₵₶₷₸₹₺₻₼₽₾</div>
|
||||
</div>
|
||||
<div data-block="Letterlike">
|
||||
<div class="line">ℂℊℋℌℍℎℐℑℒℕ℘ℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℲℳℴ⅀⅁⅂</div>
|
||||
<div class="line">⅃⅄⅋ⅎ</div>
|
||||
</div>
|
||||
<div data-block="Number">
|
||||
<div class="line">↊↋</div>
|
||||
</div>
|
||||
<div data-block="Arrows">
|
||||
<div class="line">←↑→↓↔↕↖↗↘↙↚↛↜↝↞↟↠↡↢↣↤↥↦↧↨↩↪↫↬↭↮↯</div>
|
||||
<div class="line">↰↱↲↳↴↵↶↷↸↹↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏</div>
|
||||
<div class="line">⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩⇪⇫⇬⇭⇮⇯</div>
|
||||
<div class="line">⇰⇱⇲⇳⇴⇵⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿</div>
|
||||
</div>
|
||||
<div data-block="Mathematical">
|
||||
<div class="line">∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∟∠</div>
|
||||
<div class="line">∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∶∷∸∹∺∻∼∽∾∿≀≁≂</div>
|
||||
<div class="line">≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢</div>
|
||||
<div class="line">≣≤≥≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂</div>
|
||||
<div class="line">⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⊢</div>
|
||||
<div class="line">⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼⊽⊾⊿⋀⋁⋂</div>
|
||||
<div class="line">⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢</div>
|
||||
<div class="line">⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⌈⌉⌊⌋⌠⌡⌢⌣⌬⌭⌮⌯⌰⌱⌲⌳⌴⌵⌶⌷⌸⌹⌺⌻⌼⌽⌾⌿⍀⍁⍂⍃</div>
|
||||
<div class="line">⍄⍅⍆⍇⍈⍉⍊⍋⍌⍍⍎⍏⍐⍑⍒⍓⍔⍕⍖⍗⍘⍙⍚⍛⍜⍝⍞⍟⍠⍡⍢⍣</div>
|
||||
<div class="line">⍤⍥⍦⍧⍨⍩⍪⍫⍬⍭⍮⍯⍰⍱⍲⍳⍴⍵⍶⍷⍸⍹⍺⍻⍼⎛⎜⎝⎞⎟⎠⎡</div>
|
||||
<div class="line">⎢⎣⎤⎥⎦⎧⎨⎩⎪⎫⎬⎭⎮⎯⎰⎱⎲⎳⎴⎵⎶⎷⎸⎹⎺⎻⎼⎽⏎⏐⏜⏝</div>
|
||||
<div class="line">⏞⏟⏠⏡</div>
|
||||
</div>
|
||||
<div data-block="Control">
|
||||
<div class="line">␣</div>
|
||||
</div>
|
||||
<div data-block="Box">
|
||||
<div class="line">─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟</div>
|
||||
<div class="line">┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿</div>
|
||||
<div class="line">╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟</div>
|
||||
<div class="line">╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳╴╵╶╷╸╹╺╻╼╽╾╿</div>
|
||||
</div>
|
||||
<div data-block="Block">
|
||||
<div class="line">▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕▖▗▘▙▚▛▜▝▞▟</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">☚☛☜☝☞☟</div>
|
||||
</div>
|
||||
<div data-block="Dingbats">
|
||||
<div class="line">❨❩❪❫❬❭❮❯❰❱❲❳❴❵➔➕➖➗➘➙➚➛➜➝➞➟➠➡➢➣➤➥</div>
|
||||
<div class="line">➦➧➨➩➪➫➬➭➮➯➰➱➲➳➴➵➶➷➸➹➺➻➼➽➾➿</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟋⟌⟍⟎⟏⟐⟑⟒⟓⟔⟕⟖⟗⟘⟙⟚⟛⟜⟝⟞⟟</div>
|
||||
<div class="line">⟠⟡⟢⟣⟤⟥⟦⟧⟨⟩⟪⟫⟬⟭⟮⟯</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">⟰⟱⟲⟳⟴⟵⟶⟷⟸⟹⟺⟻⟼⟽⟾⟿</div>
|
||||
</div>
|
||||
<div data-block="Braille">
|
||||
<div class="line">⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟</div>
|
||||
<div class="line">⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿</div>
|
||||
<div class="line">⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,153 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#4/9, 2048 code points in U+2859-A81D).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#4/9, 2048 code points in U+2859-A81D)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Braille">
|
||||
<div class="line">⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸</div>
|
||||
<div class="line">⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘</div>
|
||||
<div class="line">⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸</div>
|
||||
<div class="line">⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘</div>
|
||||
<div class="line">⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸</div>
|
||||
<div class="line">⣹⣺⣻⣼⣽⣾⣿</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">⤀⤁⤂⤃⤄⤅⤆⤇⤈⤉⤊⤋⤌⤍⤎⤏⤐⤑⤒⤓⤔⤕⤖⤗⤘⤙⤚⤛⤜⤝⤞⤟</div>
|
||||
<div class="line">⤠⤡⤢⤣⤤⤥⤦⤧⤨⤩⤪⤫⤬⤭⤮⤯⤰⤱⤲⤳⤴⤵⤶⤷⤸⤹⤺⤻⤼⤽⤾⤿</div>
|
||||
<div class="line">⥀⥁⥂⥃⥄⥅⥆⥇⥈⥉⥊⥋⥌⥍⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟</div>
|
||||
<div class="line">⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶⥷⥸⥹⥺⥻⥼⥽⥾⥿</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⦀⦁⦂⦃⦄⦅⦆⦇⦈⦉⦊⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖⦗⦘⦙⦚⦛⦜⦝⦞⦟</div>
|
||||
<div class="line">⦠⦡⦢⦣⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷⦸⦹⦺⦻⦼⦽⦾⦿</div>
|
||||
<div class="line">⧀⧁⧂⧃⧄⧅⧆⧇⧈⧉⧊⧋⧌⧍⧎⧏⧐⧑⧒⧓⧔⧕⧖⧗⧘⧙⧚⧛⧜⧝⧞⧟</div>
|
||||
<div class="line">⧠⧡⧢⧣⧤⧥⧦⧧⧨⧩⧪⧫⧬⧭⧮⧯⧰⧱⧲⧳⧴⧵⧶⧷⧸⧹⧺⧻⧼⧽⧾⧿</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">⨀⨁⨂⨃⨄⨅⨆⨇⨈⨉⨊⨋⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗⨘⨙⨚⨛⨜⨝⨞⨟</div>
|
||||
<div class="line">⨠⨡⨢⨣⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨯⨰⨱⨲⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼⨽⨾⨿</div>
|
||||
<div class="line">⩀⩁⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍⩎⩏⩐⩑⩒⩓⩔⩕⩖⩗⩘⩙⩚⩛⩜⩝⩞⩟</div>
|
||||
<div class="line">⩠⩡⩢⩣⩤⩥⩦⩧⩨⩩⩪⩫⩬⩭⩮⩯⩰⩱⩲⩳⩴⩵⩶⩷⩸⩹⩺⩻⩼⩽⩾⩿</div>
|
||||
<div class="line">⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟</div>
|
||||
<div class="line">⪠⪡⪢⪣⪤⪥⪦⪧⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿</div>
|
||||
<div class="line">⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛⫝̸⫝⫞⫟</div>
|
||||
<div class="line">⫠⫡⫢⫣⫤⫥⫦⫧⫨⫩⫪⫫⫬⫭⫮⫯⫰⫱⫲⫳⫴⫵⫶⫷⫸⫹⫺⫻⫼⫽⫾⫿</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⬀⬁⬂⬃⬄⬅⬆⬇⬈⬉⬊⬋⬌⬍⬎⬏⬐⬑⬰⬱⬲⬳⬴⬵⬶⬷⬸⬹⬺⬻⬼⬽</div>
|
||||
<div class="line">⬾⬿⭀⭁⭂⭃⭄⭅⭆⭇⭈⭉⭊⭋⭌⭍⭎⭏⭚⭛⭜⭝⭞⭟⭠⭡⭢⭣⭤⭥⭦⭧</div>
|
||||
<div class="line">⭨⭩⭪⭫⭬⭭⭮⭯⭰⭱⭲⭳⭶⭷⭸⭹⭺⭻⭼⭽⭾⭿⮀⮁⮂⮃⮄⮅⮆⮇⮈⮉</div>
|
||||
<div class="line">⮊⮋⮌⮍⮎⮏⮐⮑⮒⮓⮔⮕⮘⮙⮚⮛⮜⮝⮞⮟⮠⮡⮢⮣⮤⮥⮦⮧⮨⮩⮪⮫</div>
|
||||
<div class="line">⮬⮭⮮⮯⮰⮱⮲⮳⮴⮵⮶⮷⯬⯭⯮⯯</div>
|
||||
</div>
|
||||
<div data-block="Glagolitic">
|
||||
<div class="line">ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟ</div>
|
||||
<div class="line">ⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀ</div>
|
||||
<div class="line">ⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ</div>
|
||||
</div>
|
||||
<div data-block="Latin">
|
||||
<div class="line">ⱠⱡⱢⱣⱤⱥⱦⱧⱨⱩⱪⱫⱬⱭⱮⱯⱰⱱⱲⱳⱴⱵⱶⱷⱸⱹⱺⱻⱼⱽⱾⱿ</div>
|
||||
</div>
|
||||
<div data-block="Coptic">
|
||||
<div class="line">ⲀⲁⲂⲃⲄⲅⲆⲇⲈⲉⲊⲋⲌⲍⲎⲏⲐⲑⲒⲓⲔⲕⲖⲗⲘⲙⲚⲛⲜⲝⲞⲟ</div>
|
||||
<div class="line">ⲠⲡⲢⲣⲤⲥⲦⲧⲨⲩⲪⲫⲬⲭⲮⲯⲰⲱⲲⲳⲴⲵⲶⲷⲸⲹⲺⲻⲼⲽⲾⲿ</div>
|
||||
<div class="line">ⳀⳁⳂⳃⳄⳅⳆⳇⳈⳉⳊⳋⳌⳍⳎⳏⳐⳑⳒⳓⳔⳕⳖⳗⳘⳙⳚⳛⳜⳝⳞⳟ</div>
|
||||
<div class="line">ⳠⳡⳢⳣⳤ⳥⳦⳧⳨⳩⳪ⳫⳬⳭⳮⳲⳳ⳹⳺⳻⳼⳽⳾⳿</div>
|
||||
</div>
|
||||
<div data-block="Georgian">
|
||||
<div class="line">ⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟ</div>
|
||||
<div class="line">ⴠⴡⴢⴣⴤⴥⴧⴭ</div>
|
||||
</div>
|
||||
<div data-block="Tifinagh">
|
||||
<div class="line">ⴰⴱⴲⴳⴴⴵⴶⴷⴸⴹⴺⴻⴼⴽⴾⴿⵀⵁⵂⵃⵄⵅⵆⵇⵈⵉⵊⵋⵌⵍⵎⵏ</div>
|
||||
<div class="line">ⵐⵑⵒⵓⵔⵕⵖⵗⵘⵙⵚⵛⵜⵝⵞⵟⵠⵡⵢⵣⵤⵥⵦⵧⵯ⵰</div>
|
||||
</div>
|
||||
<div data-block="Ethiopic">
|
||||
<div class="line">ⶀⶁⶂⶃⶄⶅⶆⶇⶈⶉⶊⶋⶌⶍⶎⶏⶐⶑⶒⶓⶔⶕⶖⶠⶡⶢⶣⶤⶥⶦⶨⶩ</div>
|
||||
<div class="line">ⶪⶫⶬⶭⶮⶰⶱⶲⶳⶴⶵⶶⶸⶹⶺⶻⶼⶽⶾⷀⷁⷂⷃⷄⷅⷆⷈⷉⷊⷋⷌⷍ</div>
|
||||
<div class="line">ⷎⷐⷑⷒⷓⷔⷕⷖⷘⷙⷚⷛⷜⷝⷞ</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">⸀⸁⸂⸃⸄⸅⸆⸇⸈⸉⸊⸋⸌⸍⸎⸏⸐⸑⸒⸓⸔⸕⸖⸗⸘⸙⸚⸛⸜⸝⸞⸟</div>
|
||||
<div class="line">⸠⸡⸢⸣⸤⸥⸦⸧⸨⸩⸪⸫⸬⸭⸮ⸯ⸰⸱⸲⸳⸴⸵⸶⸷⸸⸹⸺⸻⸼⸽⸾⸿</div>
|
||||
<div class="line">⹀⹁⹂⹃⹄</div>
|
||||
</div>
|
||||
<div data-block="Lisu">
|
||||
<div class="line">ꓐꓑꓒꓓꓔꓕꓖꓗꓘꓙꓚꓛꓜꓝꓞꓟꓠꓡꓢꓣꓤꓥꓦꓧꓨꓩꓪꓫꓬꓭꓮꓯ</div>
|
||||
<div class="line">ꓰꓱꓲꓳꓴꓵꓶꓷꓸꓹꓺꓻꓼꓽ꓾꓿</div>
|
||||
</div>
|
||||
<div data-block="Vai">
|
||||
<div class="line">ꔀꔁꔂꔃꔄꔅꔆꔇꔈꔉꔊꔋꔌꔍꔎꔏꔐꔑꔒꔓꔔꔕꔖꔗꔘꔙꔚꔛꔜꔝꔞꔟ</div>
|
||||
<div class="line">ꔠꔡꔢꔣꔤꔥꔦꔧꔨꔩꔪꔫꔬꔭꔮꔯꔰꔱꔲꔳꔴꔵꔶꔷꔸꔹꔺꔻꔼꔽꔾꔿ</div>
|
||||
<div class="line">ꕀꕁꕂꕃꕄꕅꕆꕇꕈꕉꕊꕋꕌꕍꕎꕏꕐꕑꕒꕓꕔꕕꕖꕗꕘꕙꕚꕛꕜꕝꕞꕟ</div>
|
||||
<div class="line">ꕠꕡꕢꕣꕤꕥꕦꕧꕨꕩꕪꕫꕬꕭꕮꕯꕰꕱꕲꕳꕴꕵꕶꕷꕸꕹꕺꕻꕼꕽꕾꕿ</div>
|
||||
<div class="line">ꖀꖁꖂꖃꖄꖅꖆꖇꖈꖉꖊꖋꖌꖍꖎꖏꖐꖑꖒꖓꖔꖕꖖꖗꖘꖙꖚꖛꖜꖝꖞꖟ</div>
|
||||
<div class="line">ꖠꖡꖢꖣꖤꖥꖦꖧꖨꖩꖪꖫꖬꖭꖮꖯꖰꖱꖲꖳꖴꖵꖶꖷꖸꖹꖺꖻꖼꖽꖾꖿ</div>
|
||||
<div class="line">ꗀꗁꗂꗃꗄꗅꗆꗇꗈꗉꗊꗋꗌꗍꗎꗏꗐꗑꗒꗓꗔꗕꗖꗗꗘꗙꗚꗛꗜꗝꗞꗟ</div>
|
||||
<div class="line">ꗠꗡꗢꗣꗤꗥꗦꗧꗨꗩꗪꗫꗬꗭꗮꗯꗰꗱꗲꗳꗴꗵꗶꗷꗸꗹꗺꗻꗼꗽꗾꗿ</div>
|
||||
<div class="line">ꘀꘁꘂꘃꘄꘅꘆꘇꘈꘉꘊꘋꘌ꘍꘎꘏ꘐꘑꘒꘓꘔꘕꘖꘗꘘꘙꘚꘛꘜꘝꘞꘟ</div>
|
||||
<div class="line">꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ꘪꘫ</div>
|
||||
</div>
|
||||
<div data-block="Cyrillic">
|
||||
<div class="line">ꙀꙁꙂꙃꙄꙅꙆꙇꙈꙉꙊꙋꙌꙍꙎꙏꙐꙑꙒꙓꙔꙕꙖꙗꙘꙙꙚꙛꙜꙝꙞꙟ</div>
|
||||
<div class="line">ꙠꙡꙢꙣꙤꙥꙦꙧꙨꙩꙪꙫꙬꙭꙮ꙳꙾ꙿꚀꚁꚂꚃꚄꚅꚆꚇꚈꚉꚊꚋꚌꚍ</div>
|
||||
<div class="line">ꚎꚏꚐꚑꚒꚓꚔꚕꚖꚗꚘꚙꚚꚛꚜꚝ</div>
|
||||
</div>
|
||||
<div data-block="Bamum">
|
||||
<div class="line">ꚠꚡꚢꚣꚤꚥꚦꚧꚨꚩꚪꚫꚬꚭꚮꚯꚰꚱꚲꚳꚴꚵꚶꚷꚸꚹꚺꚻꚼꚽꚾꚿ</div>
|
||||
<div class="line">ꛀꛁꛂꛃꛄꛅꛆꛇꛈꛉꛊꛋꛌꛍꛎꛏꛐꛑꛒꛓꛔꛕꛖꛗꛘꛙꛚꛛꛜꛝꛞꛟ</div>
|
||||
<div class="line">ꛠꛡꛢꛣꛤꛥꛦꛧꛨꛩꛪꛫꛬꛭꛮꛯ꛲꛳꛴꛵꛶꛷</div>
|
||||
</div>
|
||||
<div data-block="Modifier">
|
||||
<div class="line">꜀꜁꜂꜃꜄꜅꜆꜇꜈꜉꜊꜋꜌꜍꜎꜏꜐꜑꜒꜓꜔꜕꜖ꜗꜘꜙꜚꜛꜜꜝꜞꜟ</div>
|
||||
</div>
|
||||
<div data-block="Latin">
|
||||
<div class="line">꜠꜡ꜢꜣꜤꜥꜦꜧꜨꜩꜪꜫꜬꜭꜮꜯꜰꜱꜲꜳꜴꜵꜶꜷꜸꜹꜺꜻꜼꜽꜾꜿ</div>
|
||||
<div class="line">ꝀꝁꝂꝃꝄꝅꝆꝇꝈꝉꝊꝋꝌꝍꝎꝏꝐꝑꝒꝓꝔꝕꝖꝗꝘꝙꝚꝛꝜꝝꝞꝟ</div>
|
||||
<div class="line">ꝠꝡꝢꝣꝤꝥꝦꝧꝨꝩꝪꝫꝬꝭꝮꝯꝰꝱꝲꝳꝴꝵꝶꝷꝸꝹꝺꝻꝼꝽꝾꝿ</div>
|
||||
<div class="line">ꞀꞁꞂꞃꞄꞅꞆꞇꞈ꞉꞊ꞋꞌꞍꞎꞏꞐꞑꞒꞓꞔꞕꞖꞗꞘꞙꞚꞛꞜꞝꞞꞟ</div>
|
||||
<div class="line">ꞠꞡꞢꞣꞤꞥꞦꞧꞨꞩꞪꞫꞬꞭꞮꞰꞱꞲꞳꞴꞵꞶꞷꟷꟸꟹꟺꟻꟼꟽꟾꟿ</div>
|
||||
</div>
|
||||
<div data-block="Syloti">
|
||||
<div class="line">ꠀꠁꠃꠄꠅꠇꠈꠉꠊꠌꠍꠎꠏꠐꠑꠒꠓꠔꠕꠖꠗꠘꠙꠚꠛꠜꠝ</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,175 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#5/9, 2048 code points in U+A81E-101F7).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#5/9, 2048 code points in U+A81E-101F7)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Syloti">
|
||||
<div class="line">ꠞꠟꠠꠡꠢ꠨꠩꠪꠫</div>
|
||||
</div>
|
||||
<div data-block="Common">
|
||||
<div class="line">꠰꠱꠲꠳꠴꠵꠶꠷꠸꠹</div>
|
||||
</div>
|
||||
<div data-block="Phags">
|
||||
<div class="line">ꡀꡁꡂꡃꡄꡅꡆꡇꡈꡉꡊꡋꡌꡍꡎꡏꡐꡑꡒꡓꡔꡕꡖꡗꡘꡙꡚꡛꡜꡝꡞꡟ</div>
|
||||
<div class="line">ꡠꡡꡢꡣꡤꡥꡦꡧꡨꡩꡪꡫꡬꡭꡮꡯꡰꡱꡲꡳ꡴꡵꡶꡷</div>
|
||||
</div>
|
||||
<div data-block="Saurashtra">
|
||||
<div class="line">ꢂꢃꢄꢅꢆꢇꢈꢉꢊꢋꢌꢍꢎꢏꢐꢑꢒꢓꢔꢕꢖꢗꢘꢙꢚꢛꢜꢝꢞꢟꢠꢡ</div>
|
||||
<div class="line">ꢢꢣꢤꢥꢦꢧꢨꢩꢪꢫꢬꢭꢮꢯꢰꢱꢲꢳ꣎꣏꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙</div>
|
||||
</div>
|
||||
<div data-block="Devanagari">
|
||||
<div class="line">ꣲꣳꣴꣵꣶꣷ꣸꣹꣺ꣻ꣼ꣽ</div>
|
||||
</div>
|
||||
<div data-block="Kayah">
|
||||
<div class="line">꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ꤊꤋꤌꤍꤎꤏꤐꤑꤒꤓꤔꤕꤖꤗꤘꤙꤚꤛꤜꤝꤞꤟ</div>
|
||||
<div class="line">ꤠꤡꤢꤣꤤꤥ꤮꤯</div>
|
||||
</div>
|
||||
<div data-block="Rejang">
|
||||
<div class="line">ꤰꤱꤲꤳꤴꤵꤶꤷꤸꤹꤺꤻꤼꤽꤾꤿꥀꥁꥂꥃꥄꥅꥆ꥟</div>
|
||||
</div>
|
||||
<div data-block="Javanese">
|
||||
<div class="line">ꦄꦅꦆꦇꦈꦉꦊꦋꦌꦍꦎꦏꦐꦑꦒꦓꦔꦕꦖꦗꦘꦙꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣ</div>
|
||||
<div class="line">ꦤꦥꦦꦧꦨꦩꦪꦫꦬꦭꦮꦯꦰꦱꦲ꧁꧂꧃꧄꧅꧆꧇꧈꧉꧊꧋꧌꧍ꧏ꧐꧑꧒</div>
|
||||
<div class="line">꧓꧔꧕꧖꧗꧘꧙꧞꧟</div>
|
||||
</div>
|
||||
<div data-block="Myanmar">
|
||||
<div class="line">ꧠꧡꧢꧣꧤꧦꧧꧨꧩꧪꧫꧬꧭꧮꧯ꧰꧱꧲꧳꧴꧵꧶꧷꧸꧹ꧺꧻꧼꧽꧾ</div>
|
||||
</div>
|
||||
<div data-block="Cham">
|
||||
<div class="line">ꨀꨁꨂꨃꨄꨅꨆꨇꨈꨉꨊꨋꨌꨍꨎꨏꨐꨑꨒꨓꨔꨕꨖꨗꨘꨙꨚꨛꨜꨝꨞꨟ</div>
|
||||
<div class="line">ꨠꨡꨢꨣꨤꨥꨦꨧꨨꩀꩁꩂꩄꩅꩆꩇꩈꩉꩊꩋ꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙꩜꩝</div>
|
||||
<div class="line">꩞꩟</div>
|
||||
</div>
|
||||
<div data-block="Myanmar">
|
||||
<div class="line">ꩠꩡꩢꩣꩤꩥꩦꩧꩨꩩꩪꩫꩬꩭꩮꩯꩰꩱꩲꩳꩴꩵꩶ꩷꩸꩹ꩺꩾꩿ</div>
|
||||
</div>
|
||||
<div data-block="Tai">
|
||||
<div class="line">ꪀꪁꪂꪃꪄꪅꪆꪇꪈꪉꪊꪋꪌꪍꪎꪏꪐꪑꪒꪓꪔꪕꪖꪗꪘꪙꪚꪛꪜꪝꪞꪟ</div>
|
||||
<div class="line">ꪠꪡꪢꪣꪤꪥꪦꪧꪨꪩꪪꪫꪬꪭꪮꪯꪱꪵꪶꪹꪺꪻꪼꪽꫀꫂꫛꫜꫝ꫞꫟</div>
|
||||
</div>
|
||||
<div data-block="Meetei">
|
||||
<div class="line">ꫠꫡꫢꫣꫤꫥꫦꫧꫨꫩꫪ꫰꫱ꫲꫳꫴ</div>
|
||||
</div>
|
||||
<div data-block="Ethiopic">
|
||||
<div class="line">ꬁꬂꬃꬄꬅꬆꬉꬊꬋꬌꬍꬎꬑꬒꬓꬔꬕꬖꬠꬡꬢꬣꬤꬥꬦꬨꬩꬪꬫꬬꬭꬮ</div>
|
||||
</div>
|
||||
<div data-block="Latin">
|
||||
<div class="line">ꬰꬱꬲꬳꬴꬵꬶꬷꬸꬹꬺꬻꬼꬽꬾꬿꭀꭁꭂꭃꭄꭅꭆꭇꭈꭉꭊꭋꭌꭍꭎꭏ</div>
|
||||
<div class="line">ꭐꭑꭒꭓꭔꭕꭖꭗꭘꭙꭚ꭛ꭜꭝꭞꭟꭠꭡꭢꭣꭤꭥ</div>
|
||||
</div>
|
||||
<div data-block="Cherokee">
|
||||
<div class="line">ꭰꭱꭲꭳꭴꭵꭶꭷꭸꭹꭺꭻꭼꭽꭾꭿꮀꮁꮂꮃꮄꮅꮆꮇꮈꮉꮊꮋꮌꮍꮎꮏ</div>
|
||||
<div class="line">ꮐꮑꮒꮓꮔꮕꮖꮗꮘꮙꮚꮛꮜꮝꮞꮟꮠꮡꮢꮣꮤꮥꮦꮧꮨꮩꮪꮫꮬꮭꮮꮯ</div>
|
||||
<div class="line">ꮰꮱꮲꮳꮴꮵꮶꮷꮸꮹꮺꮻꮼꮽꮾꮿ</div>
|
||||
</div>
|
||||
<div data-block="Meetei">
|
||||
<div class="line">ꯀꯁꯂꯃꯄꯅꯆꯇꯈꯉꯊꯋꯌꯍꯎꯏꯐꯑꯒꯓꯔꯕꯖꯗꯘꯙꯚꯛꯜꯝꯞꯟ</div>
|
||||
<div class="line">ꯠꯡꯢ꯫꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹</div>
|
||||
</div>
|
||||
<div data-block="Alphabetic">
|
||||
<div class="line">fffiflffifflſtstﬓﬔﬕﬖﬗיִײַﬠﬡﬢﬣﬤﬥﬦﬧﬨ﬩שׁשׂשּׁשּׂאַאָאּבּ</div>
|
||||
<div class="line">גּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּוֹבֿכֿפֿﭏ</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">ﭐﭑﭒﭓﭔﭕﭖﭗﭘﭙﭚﭛﭜﭝﭞﭟﭠﭡﭢﭣﭤﭥﭦﭧﭨﭩﭪﭫﭬﭭﭮﭯ</div>
|
||||
<div class="line">ﭰﭱﭲﭳﭴﭵﭶﭷﭸﭹﭺﭻﭼﭽﭾﭿﮀﮁﮂﮃﮄﮅﮆﮇﮈﮉﮊﮋﮌﮍﮎﮏ</div>
|
||||
<div class="line">ﮐﮑﮒﮓﮔﮕﮖﮗﮘﮙﮚﮛﮜﮝﮞﮟﮠﮡﮢﮣﮤﮥﮦﮧﮨﮩﮪﮫﮬﮭﮮﮯ</div>
|
||||
<div class="line">ﮰﮱ﮲﮳﮴﮵﮶﮷﮸﮹﮺﮻﮼﮽﮾﮿﯀﯁ﯓﯔﯕﯖﯗﯘﯙﯚﯛﯜﯝﯞﯟﯠ</div>
|
||||
<div class="line">ﯡﯢﯣﯤﯥﯦﯧﯨﯩﯪﯫﯬﯭﯮﯯﯰﯱﯲﯳﯴﯵﯶﯷﯸﯹﯺﯻﯼﯽﯾﯿﰀ</div>
|
||||
<div class="line">ﰁﰂﰃﰄﰅﰆﰇﰈﰉﰊﰋﰌﰍﰎﰏﰐﰑﰒﰓﰔﰕﰖﰗﰘﰙﰚﰛﰜﰝﰞﰟﰠ</div>
|
||||
<div class="line">ﰡﰢﰣﰤﰥﰦﰧﰨﰩﰪﰫﰬﰭﰮﰯﰰﰱﰲﰳﰴﰵﰶﰷﰸﰹﰺﰻﰼﰽﰾﰿﱀ</div>
|
||||
<div class="line">ﱁﱂﱃﱄﱅﱆﱇﱈﱉﱊﱋﱌﱍﱎﱏﱐﱑﱒﱓﱔﱕﱖﱗﱘﱙﱚﱛﱜﱝﱞﱟﱠ</div>
|
||||
<div class="line">ﱡﱢﱣﱤﱥﱦﱧﱨﱩﱪﱫﱬﱭﱮﱯﱰﱱﱲﱳﱴﱵﱶﱷﱸﱹﱺﱻﱼﱽﱾﱿﲀ</div>
|
||||
<div class="line">ﲁﲂﲃﲄﲅﲆﲇﲈﲉﲊﲋﲌﲍﲎﲏﲐﲑﲒﲓﲔﲕﲖﲗﲘﲙﲚﲛﲜﲝﲞﲟﲠ</div>
|
||||
<div class="line">ﲡﲢﲣﲤﲥﲦﲧﲨﲩﲪﲫﲬﲭﲮﲯﲰﲱﲲﲳﲴﲵﲶﲷﲸﲹﲺﲻﲼﲽﲾﲿﳀ</div>
|
||||
<div class="line">ﳁﳂﳃﳄﳅﳆﳇﳈﳉﳊﳋﳌﳍﳎﳏﳐﳑﳒﳓﳔﳕﳖﳗﳘﳙﳚﳛﳜﳝﳞﳟﳠ</div>
|
||||
<div class="line">ﳡﳢﳣﳤﳥﳦﳧﳨﳩﳪﳫﳬﳭﳮﳯﳰﳱﳲﳳﳴﳵﳶﳷﳸﳹﳺﳻﳼﳽﳾﳿﴀ</div>
|
||||
<div class="line">ﴁﴂﴃﴄﴅﴆﴇﴈﴉﴊﴋﴌﴍﴎﴏﴐﴑﴒﴓﴔﴕﴖﴗﴘﴙﴚﴛﴜﴝﴞﴟﴠ</div>
|
||||
<div class="line">ﴡﴢﴣﴤﴥﴦﴧﴨﴩﴪﴫﴬﴭﴮﴯﴰﴱﴲﴳﴴﴵﴶﴷﴸﴹﴺﴻﴼﴽ﴾﴿ﵐ</div>
|
||||
<div class="line">ﵑﵒﵓﵔﵕﵖﵗﵘﵙﵚﵛﵜﵝﵞﵟﵠﵡﵢﵣﵤﵥﵦﵧﵨﵩﵪﵫﵬﵭﵮﵯﵰ</div>
|
||||
<div class="line">ﵱﵲﵳﵴﵵﵶﵷﵸﵹﵺﵻﵼﵽﵾﵿﶀﶁﶂﶃﶄﶅﶆﶇﶈﶉﶊﶋﶌﶍﶎﶏﶒ</div>
|
||||
<div class="line">ﶓﶔﶕﶖﶗﶘﶙﶚﶛﶜﶝﶞﶟﶠﶡﶢﶣﶤﶥﶦﶧﶨﶩﶪﶫﶬﶭﶮﶯﶰﶱﶲ</div>
|
||||
<div class="line">ﶳﶴﶵﶶﶷﶸﶹﶺﶻﶼﶽﶾﶿﷀﷁﷂﷃﷄﷅﷆﷇﷰﷱﷲﷳﷴﷵﷶﷷﷸﷹﷺ</div>
|
||||
<div class="line">ﷻ﷼﷽</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">﹉﹊﹋﹌﹍﹎﹏</div>
|
||||
</div>
|
||||
<div data-block="Small">
|
||||
<div class="line">﹘﹣﹤﹥﹦</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">ﹰﹱﹲﹳﹴﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐ</div>
|
||||
<div class="line">ﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ</div>
|
||||
<div class="line">ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐ</div>
|
||||
<div class="line">ﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰ</div>
|
||||
<div class="line">ﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ</div>
|
||||
</div>
|
||||
<div data-block="Halfwidth">
|
||||
<div class="line">-<=>。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシ</div>
|
||||
<div class="line">スセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワ</div>
|
||||
<div class="line">ン゙゚ᅠᄀᄁᆪᄂᆬᆭᄃᄄᄅᆰᆱᆲᆳᆴᆵᄚᄆᄇᄈᄡᄉᄊᄋᄌᄍᄎᄏᄐ</div>
|
||||
<div class="line">ᄑ하ᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ│←↑→↓■○</div>
|
||||
</div>
|
||||
<div data-block="Linear">
|
||||
<div class="line">𐀀𐀁𐀂𐀃𐀄𐀅𐀆𐀇𐀈𐀉𐀊𐀋𐀍𐀎𐀏𐀐𐀑𐀒𐀓𐀔𐀕𐀖𐀗𐀘𐀙𐀚𐀛𐀜𐀝𐀞𐀟𐀠</div>
|
||||
<div class="line">𐀡𐀢𐀣𐀤𐀥𐀦𐀨𐀩𐀪𐀫𐀬𐀭𐀮𐀯𐀰𐀱𐀲𐀳𐀴𐀵𐀶𐀷𐀸𐀹𐀺𐀼𐀽𐀿𐁀𐁁𐁂𐁃</div>
|
||||
<div class="line">𐁄𐁅𐁆𐁇𐁈𐁉𐁊𐁋𐁌𐁍𐁐𐁑𐁒𐁓𐁔𐁕𐁖𐁗𐁘𐁙𐁚𐁛𐁜𐁝𐂀𐂁𐂂𐂃𐂄𐂅𐂆𐂇</div>
|
||||
<div class="line">𐂈𐂉𐂊𐂋𐂌𐂍𐂎𐂏𐂐𐂑𐂒𐂓𐂔𐂕𐂖𐂗𐂘𐂙𐂚𐂛𐂜𐂝𐂞𐂟𐂠𐂡𐂢𐂣𐂤𐂥𐂦𐂧</div>
|
||||
<div class="line">𐂨𐂩𐂪𐂫𐂬𐂭𐂮𐂯𐂰𐂱𐂲𐂳𐂴𐂵𐂶𐂷𐂸𐂹𐂺𐂻𐂼𐂽𐂾𐂿𐃀𐃁𐃂𐃃𐃄𐃅𐃆𐃇</div>
|
||||
<div class="line">𐃈𐃉𐃊𐃋𐃌𐃍𐃎𐃏𐃐𐃑𐃒𐃓𐃔𐃕𐃖𐃗𐃘𐃙𐃚𐃛𐃜𐃝𐃞𐃟𐃠𐃡𐃢𐃣𐃤𐃥𐃦𐃧</div>
|
||||
<div class="line">𐃨𐃩𐃪𐃫𐃬𐃭𐃮𐃯𐃰𐃱𐃲𐃳𐃴𐃵𐃶𐃷𐃸𐃹𐃺</div>
|
||||
</div>
|
||||
<div data-block="Aegean">
|
||||
<div class="line">𐄀𐄁𐄂𐄇𐄈𐄉𐄊𐄋𐄌𐄍𐄎𐄏𐄐𐄑𐄒𐄓𐄔𐄕𐄖𐄗𐄘𐄙𐄚𐄛𐄜𐄝𐄞𐄟𐄠𐄡𐄢𐄣</div>
|
||||
<div class="line">𐄤𐄥𐄦𐄧𐄨𐄩𐄪𐄫𐄬𐄭𐄮𐄯𐄰𐄱𐄲𐄳𐄷𐄸𐄹𐄺𐄻𐄼𐄽𐄾𐄿</div>
|
||||
</div>
|
||||
<div data-block="Ancient">
|
||||
<div class="line">𐅀𐅁𐅂𐅃𐅄𐅅𐅆𐅇𐅈𐅉𐅊𐅋𐅌𐅍𐅎𐅏𐅐𐅑𐅒𐅓𐅔𐅕𐅖𐅗𐅘𐅙𐅚𐅛𐅜𐅝𐅞𐅟</div>
|
||||
<div class="line">𐅠𐅡𐅢𐅣𐅤𐅥𐅦𐅧𐅨𐅩𐅪𐅫𐅬𐅭𐅮𐅯𐅰𐅱𐅲𐅳𐅴𐅵𐅶𐅷𐅸𐅹𐅺𐅻𐅼𐅽𐅾𐅿</div>
|
||||
<div class="line">𐆀𐆁𐆂𐆃𐆄𐆅𐆆𐆇𐆈𐆉𐆊𐆋𐆌𐆍𐆎𐆐𐆑𐆒𐆓𐆔𐆕𐆖𐆗𐆘𐆙𐆚𐆛𐆠</div>
|
||||
</div>
|
||||
<div data-block="Phaistos">
|
||||
<div class="line">𐇐𐇑𐇒𐇓𐇔𐇕𐇖𐇗𐇘𐇙𐇚𐇛𐇜𐇝𐇞𐇟𐇠𐇡𐇢𐇣𐇤𐇥𐇦𐇧𐇨𐇩𐇪𐇫𐇬𐇭𐇮𐇯</div>
|
||||
<div class="line">𐇰𐇱𐇲𐇳𐇴𐇵𐇶𐇷</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,197 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#6/9, 2048 code points in U+101F8-11151).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#6/9, 2048 code points in U+101F8-11151)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Phaistos">
|
||||
<div class="line">𐇸𐇹𐇺𐇻𐇼</div>
|
||||
</div>
|
||||
<div data-block="Lycian">
|
||||
<div class="line">𐊀𐊁𐊂𐊃𐊄𐊅𐊆𐊇𐊈𐊉𐊊𐊋𐊌𐊍𐊎𐊏𐊐𐊑𐊒𐊓𐊔𐊕𐊖𐊗𐊘𐊙𐊚𐊛𐊜</div>
|
||||
</div>
|
||||
<div data-block="Carian">
|
||||
<div class="line">𐊠𐊡𐊢𐊣𐊤𐊥𐊦𐊧𐊨𐊩𐊪𐊫𐊬𐊭𐊮𐊯𐊰𐊱𐊲𐊳𐊴𐊵𐊶𐊷𐊸𐊹𐊺𐊻𐊼𐊽𐊾𐊿</div>
|
||||
<div class="line">𐋀𐋁𐋂𐋃𐋄𐋅𐋆𐋇𐋈𐋉𐋊𐋋𐋌𐋍𐋎𐋏𐋐</div>
|
||||
</div>
|
||||
<div data-block="Coptic">
|
||||
<div class="line">𐋡𐋢𐋣𐋤𐋥𐋦𐋧𐋨𐋩𐋪𐋫𐋬𐋭𐋮𐋯𐋰𐋱𐋲𐋳𐋴𐋵𐋶𐋷𐋸𐋹𐋺𐋻</div>
|
||||
</div>
|
||||
<div data-block="Old">
|
||||
<div class="line">𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌇𐌈𐌉𐌊𐌋𐌌𐌍𐌎𐌏𐌐𐌑𐌒𐌓𐌔𐌕𐌖𐌗𐌘𐌙𐌚𐌛𐌜𐌝𐌞𐌟</div>
|
||||
<div class="line">𐌠𐌡𐌢𐌣</div>
|
||||
</div>
|
||||
<div data-block="Gothic">
|
||||
<div class="line">𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹𐌺𐌻𐌼𐌽𐌾𐌿𐍀𐍁𐍂𐍃𐍄𐍅𐍆𐍇𐍈𐍉𐍊</div>
|
||||
</div>
|
||||
<div data-block="Old">
|
||||
<div class="line">𐍐𐍑𐍒𐍓𐍔𐍕𐍖𐍗𐍘𐍙𐍚𐍛𐍜𐍝𐍞𐍟𐍠𐍡𐍢𐍣𐍤𐍥𐍦𐍧𐍨𐍩𐍪𐍫𐍬𐍭𐍮𐍯</div>
|
||||
<div class="line">𐍰𐍱𐍲𐍳𐍴𐍵</div>
|
||||
</div>
|
||||
<div data-block="Ugaritic">
|
||||
<div class="line">𐎀𐎁𐎂𐎃𐎄𐎅𐎆𐎇𐎈𐎉𐎊𐎋𐎌𐎍𐎎𐎏𐎐𐎑𐎒𐎓𐎔𐎕𐎖𐎗𐎘𐎙𐎚𐎛𐎜𐎝𐎟</div>
|
||||
</div>
|
||||
<div data-block="Old">
|
||||
<div class="line">𐎠𐎡𐎢𐎣𐎤𐎥𐎦𐎧𐎨𐎩𐎪𐎫𐎬𐎭𐎮𐎯𐎰𐎱𐎲𐎳𐎴𐎵𐎶𐎷𐎸𐎹𐎺𐎻𐎼𐎽𐎾𐎿</div>
|
||||
<div class="line">𐏀𐏁𐏂𐏃𐏈𐏉𐏊𐏋𐏌𐏍𐏎𐏏𐏐𐏑𐏒𐏓𐏔𐏕</div>
|
||||
</div>
|
||||
<div data-block="Deseret">
|
||||
<div class="line">𐐀𐐁𐐂𐐃𐐄𐐅𐐆𐐇𐐈𐐉𐐊𐐋𐐌𐐍𐐎𐐏𐐐𐐑𐐒𐐓𐐔𐐕𐐖𐐗𐐘𐐙𐐚𐐛𐐜𐐝𐐞𐐟</div>
|
||||
<div class="line">𐐠𐐡𐐢𐐣𐐤𐐥𐐦𐐧𐐨𐐩𐐪𐐫𐐬𐐭𐐮𐐯𐐰𐐱𐐲𐐳𐐴𐐵𐐶𐐷𐐸𐐹𐐺𐐻𐐼𐐽𐐾𐐿</div>
|
||||
<div class="line">𐑀𐑁𐑂𐑃𐑄𐑅𐑆𐑇𐑈𐑉𐑊𐑋𐑌𐑍𐑎𐑏</div>
|
||||
</div>
|
||||
<div data-block="Shavian">
|
||||
<div class="line">𐑐𐑑𐑒𐑓𐑔𐑕𐑖𐑗𐑘𐑙𐑚𐑛𐑜𐑝𐑞𐑟𐑠𐑡𐑢𐑣𐑤𐑥𐑦𐑧𐑨𐑩𐑪𐑫𐑬𐑭𐑮𐑯</div>
|
||||
<div class="line">𐑰𐑱𐑲𐑳𐑴𐑵𐑶𐑷𐑸𐑹𐑺𐑻𐑼𐑽𐑾𐑿</div>
|
||||
</div>
|
||||
<div data-block="Osmanya">
|
||||
<div class="line">𐒀𐒁𐒂𐒃𐒄𐒅𐒆𐒇𐒈𐒉𐒊𐒋𐒌𐒍𐒎𐒏𐒐𐒑𐒒𐒓𐒔𐒕𐒖𐒗𐒘𐒙𐒚𐒛𐒜𐒝𐒠𐒡</div>
|
||||
<div class="line">𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩</div>
|
||||
</div>
|
||||
<div data-block="Osage">
|
||||
<div class="line">𐒰𐒱𐒲𐒳𐒴𐒵𐒶𐒷𐒸𐒹𐒺𐒻𐒼𐒽𐒾𐒿𐓀𐓁𐓂𐓃𐓄𐓅𐓆𐓇𐓈𐓉𐓊𐓋𐓌𐓍𐓎𐓏</div>
|
||||
<div class="line">𐓐𐓑𐓒𐓓𐓘𐓙𐓚𐓛𐓜𐓝𐓞𐓟𐓠𐓡𐓢𐓣𐓤𐓥𐓦𐓧𐓨𐓩𐓪𐓫𐓬𐓭𐓮𐓯𐓰𐓱𐓲𐓳</div>
|
||||
<div class="line">𐓴𐓵𐓶𐓷𐓸𐓹𐓺𐓻</div>
|
||||
</div>
|
||||
<div data-block="Elbasan">
|
||||
<div class="line">𐔀𐔁𐔂𐔃𐔄𐔅𐔆𐔇𐔈𐔉𐔊𐔋𐔌𐔍𐔎𐔏𐔐𐔑𐔒𐔓𐔔𐔕𐔖𐔗𐔘𐔙𐔚𐔛𐔜𐔝𐔞𐔟</div>
|
||||
<div class="line">𐔠𐔡𐔢𐔣𐔤𐔥𐔦𐔧</div>
|
||||
</div>
|
||||
<div data-block="Caucasian">
|
||||
<div class="line">𐔰𐔱𐔲𐔳𐔴𐔵𐔶𐔷𐔸𐔹𐔺𐔻𐔼𐔽𐔾𐔿𐕀𐕁𐕂𐕃𐕄𐕅𐕆𐕇𐕈𐕉𐕊𐕋𐕌𐕍𐕎𐕏</div>
|
||||
<div class="line">𐕐𐕑𐕒𐕓𐕔𐕕𐕖𐕗𐕘𐕙𐕚𐕛𐕜𐕝𐕞𐕟𐕠𐕡𐕢𐕣𐕯</div>
|
||||
</div>
|
||||
<div data-block="Linear">
|
||||
<div class="line">𐘀𐘁𐘂𐘃𐘄𐘅𐘆𐘇𐘈𐘉𐘊𐘋𐘌𐘍𐘎𐘏𐘐𐘑𐘒𐘓𐘔𐘕𐘖𐘗𐘘𐘙𐘚𐘛𐘜𐘝𐘞𐘟</div>
|
||||
<div class="line">𐘠𐘡𐘢𐘣𐘤𐘥𐘦𐘧𐘨𐘩𐘪𐘫𐘬𐘭𐘮𐘯𐘰𐘱𐘲𐘳𐘴𐘵𐘶𐘷𐘸𐘹𐘺𐘻𐘼𐘽𐘾𐘿</div>
|
||||
<div class="line">𐙀𐙁𐙂𐙃𐙄𐙅𐙆𐙇𐙈𐙉𐙊𐙋𐙌𐙍𐙎𐙏𐙐𐙑𐙒𐙓𐙔𐙕𐙖𐙗𐙘𐙙𐙚𐙛𐙜𐙝𐙞𐙟</div>
|
||||
<div class="line">𐙠𐙡𐙢𐙣𐙤𐙥𐙦𐙧𐙨𐙩𐙪𐙫𐙬𐙭𐙮𐙯𐙰𐙱𐙲𐙳𐙴𐙵𐙶𐙷𐙸𐙹𐙺𐙻𐙼𐙽𐙾𐙿</div>
|
||||
<div class="line">𐚀𐚁𐚂𐚃𐚄𐚅𐚆𐚇𐚈𐚉𐚊𐚋𐚌𐚍𐚎𐚏𐚐𐚑𐚒𐚓𐚔𐚕𐚖𐚗𐚘𐚙𐚚𐚛𐚜𐚝𐚞𐚟</div>
|
||||
<div class="line">𐚠𐚡𐚢𐚣𐚤𐚥𐚦𐚧𐚨𐚩𐚪𐚫𐚬𐚭𐚮𐚯𐚰𐚱𐚲𐚳𐚴𐚵𐚶𐚷𐚸𐚹𐚺𐚻𐚼𐚽𐚾𐚿</div>
|
||||
<div class="line">𐛀𐛁𐛂𐛃𐛄𐛅𐛆𐛇𐛈𐛉𐛊𐛋𐛌𐛍𐛎𐛏𐛐𐛑𐛒𐛓𐛔𐛕𐛖𐛗𐛘𐛙𐛚𐛛𐛜𐛝𐛞𐛟</div>
|
||||
<div class="line">𐛠𐛡𐛢𐛣𐛤𐛥𐛦𐛧𐛨𐛩𐛪𐛫𐛬𐛭𐛮𐛯𐛰𐛱𐛲𐛳𐛴𐛵𐛶𐛷𐛸𐛹𐛺𐛻𐛼𐛽𐛾𐛿</div>
|
||||
<div class="line">𐜀𐜁𐜂𐜃𐜄𐜅𐜆𐜇𐜈𐜉𐜊𐜋𐜌𐜍𐜎𐜏𐜐𐜑𐜒𐜓𐜔𐜕𐜖𐜗𐜘𐜙𐜚𐜛𐜜𐜝𐜞𐜟</div>
|
||||
<div class="line">𐜠𐜡𐜢𐜣𐜤𐜥𐜦𐜧𐜨𐜩𐜪𐜫𐜬𐜭𐜮𐜯𐜰𐜱𐜲𐜳𐜴𐜵𐜶𐝀𐝁𐝂𐝃𐝄𐝅𐝆𐝇𐝈</div>
|
||||
<div class="line">𐝉𐝊𐝋𐝌𐝍𐝎𐝏𐝐𐝑𐝒𐝓𐝔𐝕𐝠𐝡𐝢𐝣𐝤𐝥𐝦𐝧</div>
|
||||
</div>
|
||||
<div data-block="Cypriot">
|
||||
<div class="line">𐠀𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢</div>
|
||||
<div class="line">𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿</div>
|
||||
</div>
|
||||
<div data-block="Imperial">
|
||||
<div class="line">𐡀𐡁𐡂𐡃𐡄𐡅𐡆𐡇𐡈𐡉𐡊𐡋𐡌𐡍𐡎𐡏𐡐𐡑𐡒𐡓𐡔𐡕𐡗𐡘𐡙𐡚𐡛𐡜𐡝𐡞𐡟</div>
|
||||
</div>
|
||||
<div data-block="Palmyrene">
|
||||
<div class="line">𐡠𐡡𐡢𐡣𐡤𐡥𐡦𐡧𐡨𐡩𐡪𐡫𐡬𐡭𐡮𐡯𐡰𐡱𐡲𐡳𐡴𐡵𐡶𐡷𐡸𐡹𐡺𐡻𐡼𐡽𐡾𐡿</div>
|
||||
</div>
|
||||
<div data-block="Nabataean">
|
||||
<div class="line">𐢀𐢁𐢂𐢃𐢄𐢅𐢆𐢇𐢈𐢉𐢊𐢋𐢌𐢍𐢎𐢏𐢐𐢑𐢒𐢓𐢔𐢕𐢖𐢗𐢘𐢙𐢚𐢛𐢜𐢝𐢞𐢧</div>
|
||||
<div class="line">𐢨𐢩𐢪𐢫𐢬𐢭𐢮𐢯</div>
|
||||
</div>
|
||||
<div data-block="Hatran">
|
||||
<div class="line">𐣠𐣡𐣢𐣣𐣤𐣥𐣦𐣧𐣨𐣩𐣪𐣫𐣬𐣭𐣮𐣯𐣰𐣱𐣲𐣴𐣵𐣻𐣼𐣽𐣾𐣿</div>
|
||||
</div>
|
||||
<div data-block="Phoenician">
|
||||
<div class="line">𐤀𐤁𐤂𐤃𐤄𐤅𐤆𐤇𐤈𐤉𐤊𐤋𐤌𐤍𐤎𐤏𐤐𐤑𐤒𐤓𐤔𐤕𐤖𐤗𐤘𐤙𐤚𐤛𐤟</div>
|
||||
</div>
|
||||
<div data-block="Lydian">
|
||||
<div class="line">𐤠𐤡𐤢𐤣𐤤𐤥𐤦𐤧𐤨𐤩𐤪𐤫𐤬𐤭𐤮𐤯𐤰𐤱𐤲𐤳𐤴𐤵𐤶𐤷𐤸𐤹𐤿</div>
|
||||
</div>
|
||||
<div data-block="Meroitic">
|
||||
<div class="line">𐦠𐦡𐦢𐦣𐦤𐦥𐦦𐦧𐦨𐦩𐦪𐦫𐦬𐦭𐦮𐦯𐦰𐦱𐦲𐦳𐦴𐦵𐦶𐦷𐦼𐦽𐦾𐦿𐧀𐧁𐧂𐧃</div>
|
||||
<div class="line">𐧄𐧅𐧆𐧇𐧈𐧉𐧊𐧋𐧌𐧍𐧎𐧏𐧒𐧓𐧔𐧕𐧖𐧗𐧘𐧙𐧚𐧛𐧜𐧝𐧞𐧟𐧠𐧡𐧢𐧣𐧤𐧥</div>
|
||||
<div class="line">𐧦𐧧𐧨𐧩𐧪𐧫𐧬𐧭𐧮𐧯𐧰𐧱𐧲𐧳𐧴𐧵𐧶𐧷𐧸𐧹𐧺𐧻𐧼𐧽𐧾𐧿</div>
|
||||
</div>
|
||||
<div data-block="Kharoshthi">
|
||||
<div class="line">𐨀𐨐𐨑𐨒𐨓𐨕𐨖𐨗𐨙𐨚𐨛𐨜𐨝𐨞𐨟𐨠𐨡𐨢𐨣𐨤𐨥𐨦𐨧𐨨𐨩𐨪𐨫𐨬𐨭𐨮𐨯𐨰</div>
|
||||
<div class="line">𐨱𐨲𐨳𐩀𐩁𐩂𐩃𐩄𐩅𐩆𐩇𐩐𐩑𐩒𐩓𐩔𐩕𐩖𐩗𐩘</div>
|
||||
</div>
|
||||
<div data-block="Old">
|
||||
<div class="line">𐩠𐩡𐩢𐩣𐩤𐩥𐩦𐩧𐩨𐩩𐩪𐩫𐩬𐩭𐩮𐩯𐩰𐩱𐩲𐩳𐩴𐩵𐩶𐩷𐩸𐩹𐩺𐩻𐩼𐩽𐩾𐩿</div>
|
||||
<div class="line">𐪀𐪁𐪂𐪃𐪄𐪅𐪆𐪇𐪈𐪉𐪊𐪋𐪌𐪍𐪎𐪏𐪐𐪑𐪒𐪓𐪔𐪕𐪖𐪗𐪘𐪙𐪚𐪛𐪜𐪝𐪞𐪟</div>
|
||||
</div>
|
||||
<div data-block="Manichaean">
|
||||
<div class="line">𐫀𐫁𐫂𐫃𐫄𐫅𐫆𐫇𐫈𐫉𐫊𐫋𐫌𐫍𐫎𐫏𐫐𐫑𐫒𐫓𐫔𐫕𐫖𐫗𐫘𐫙𐫚𐫛𐫜𐫝𐫞𐫟</div>
|
||||
<div class="line">𐫠𐫡𐫢𐫣𐫤𐫫𐫬𐫭𐫮𐫯𐫰𐫱𐫲𐫳𐫴𐫵𐫶</div>
|
||||
</div>
|
||||
<div data-block="Avestan">
|
||||
<div class="line">𐬀𐬁𐬂𐬃𐬄𐬅𐬆𐬇𐬈𐬉𐬊𐬋𐬌𐬍𐬎𐬏𐬐𐬑𐬒𐬓𐬔𐬕𐬖𐬗𐬘𐬙𐬚𐬛𐬜𐬝𐬞𐬟</div>
|
||||
<div class="line">𐬠𐬡𐬢𐬣𐬤𐬥𐬦𐬧𐬨𐬩𐬪𐬫𐬬𐬭𐬮𐬯𐬰𐬱𐬲𐬳𐬴𐬵𐬹𐬺𐬻𐬼𐬽𐬾𐬿</div>
|
||||
</div>
|
||||
<div data-block="Inscriptional">
|
||||
<div class="line">𐭀𐭁𐭂𐭃𐭄𐭅𐭆𐭇𐭈𐭉𐭊𐭋𐭌𐭍𐭎𐭏𐭐𐭑𐭒𐭓𐭔𐭕𐭘𐭙𐭚𐭛𐭜𐭝𐭞𐭟𐭠𐭡</div>
|
||||
<div class="line">𐭢𐭣𐭤𐭥𐭦𐭧𐭨𐭩𐭪𐭫𐭬𐭭𐭮𐭯𐭰𐭱𐭲𐭸𐭹𐭺𐭻𐭼𐭽𐭾𐭿</div>
|
||||
</div>
|
||||
<div data-block="Psalter">
|
||||
<div class="line">𐮀𐮁𐮂𐮃𐮄𐮅𐮆𐮇𐮈𐮉𐮊𐮋𐮌𐮍𐮎𐮏𐮐𐮑𐮙𐮚𐮛𐮜𐮩𐮪𐮫𐮬𐮭𐮮𐮯</div>
|
||||
</div>
|
||||
<div data-block="Old">
|
||||
<div class="line">𐰀𐰁𐰂𐰃𐰄𐰅𐰆𐰇𐰈𐰉𐰊𐰋𐰌𐰍𐰎𐰏𐰐𐰑𐰒𐰓𐰔𐰕𐰖𐰗𐰘𐰙𐰚𐰛𐰜𐰝𐰞𐰟</div>
|
||||
<div class="line">𐰠𐰡𐰢𐰣𐰤𐰥𐰦𐰧𐰨𐰩𐰪𐰫𐰬𐰭𐰮𐰯𐰰𐰱𐰲𐰳𐰴𐰵𐰶𐰷𐰸𐰹𐰺𐰻𐰼𐰽𐰾𐰿</div>
|
||||
<div class="line">𐱀𐱁𐱂𐱃𐱄𐱅𐱆𐱇𐱈𐲀𐲁𐲂𐲃𐲄𐲅𐲆𐲇𐲈𐲉𐲊𐲋𐲌𐲍𐲎𐲏𐲐𐲑𐲒𐲓𐲔𐲕𐲖</div>
|
||||
<div class="line">𐲗𐲘𐲙𐲚𐲛𐲜𐲝𐲞𐲟𐲠𐲡𐲢𐲣𐲤𐲥𐲦𐲧𐲨𐲩𐲪𐲫𐲬𐲭𐲮𐲯𐲰𐲱𐲲𐳀𐳁𐳂𐳃</div>
|
||||
<div class="line">𐳄𐳅𐳆𐳇𐳈𐳉𐳊𐳋𐳌𐳍𐳎𐳏𐳐𐳑𐳒𐳓𐳔𐳕𐳖𐳗𐳘𐳙𐳚𐳛𐳜𐳝𐳞𐳟𐳠𐳡𐳢𐳣</div>
|
||||
<div class="line">𐳤𐳥𐳦𐳧𐳨𐳩𐳪𐳫𐳬𐳭𐳮𐳯𐳰𐳱𐳲𐳺𐳻𐳼𐳽𐳾𐳿</div>
|
||||
</div>
|
||||
<div data-block="Rumi">
|
||||
<div class="line">𐹠𐹡𐹢𐹣𐹤𐹥𐹦𐹧𐹨𐹩𐹪𐹫𐹬𐹭𐹮𐹯𐹰𐹱𐹲𐹳𐹴𐹵𐹶𐹷𐹸𐹹𐹺𐹻𐹼𐹽𐹾</div>
|
||||
</div>
|
||||
<div data-block="Brahmi">
|
||||
<div class="line">𑀃𑀄𑀅𑀆𑀇𑀈𑀉𑀊𑀋𑀌𑀍𑀎𑀏𑀐𑀑𑀒𑀓𑀔𑀕𑀖𑀗𑀘𑀙𑀚𑀛𑀜𑀝𑀞𑀟𑀠𑀡𑀢</div>
|
||||
<div class="line">𑀣𑀤𑀥𑀦𑀧𑀨𑀩𑀪𑀫𑀬𑀭𑀮𑀯𑀰𑀱𑀲𑀳𑀴𑀵𑀶𑀷𑁇𑁈𑁉𑁊𑁋𑁌𑁍𑁒𑁓𑁔𑁕</div>
|
||||
<div class="line">𑁖𑁗𑁘𑁙𑁚𑁛𑁜𑁝𑁞𑁟𑁠𑁡𑁢𑁣𑁤𑁥𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯</div>
|
||||
</div>
|
||||
<div data-block="Kaithi">
|
||||
<div class="line">𑂃𑂄𑂅𑂆𑂇𑂈𑂉𑂊𑂋𑂌𑂍𑂎𑂏𑂐𑂑𑂒𑂓𑂔𑂕𑂖𑂗𑂘𑂙𑂚𑂛𑂜𑂝𑂞𑂟𑂠𑂡𑂢</div>
|
||||
<div class="line">𑂣𑂤𑂥𑂦𑂧𑂨𑂩𑂪𑂫𑂬𑂭𑂮𑂯𑂻𑂼𑂾𑂿𑃀𑃁</div>
|
||||
</div>
|
||||
<div data-block="Sora">
|
||||
<div class="line">𑃐𑃑𑃒𑃓𑃔𑃕𑃖𑃗𑃘𑃙𑃚𑃛𑃜𑃝𑃞𑃟𑃠𑃡𑃢𑃣𑃤𑃥𑃦𑃧𑃨𑃰𑃱𑃲𑃳𑃴𑃵𑃶</div>
|
||||
<div class="line">𑃷𑃸𑃹</div>
|
||||
</div>
|
||||
<div data-block="Chakma">
|
||||
<div class="line">𑄃𑄄𑄅𑄆𑄇𑄈𑄉𑄊𑄋𑄌𑄍𑄎𑄏𑄐𑄑𑄒𑄓𑄔𑄕𑄖𑄗𑄘𑄙𑄚𑄛𑄜𑄝𑄞𑄟𑄠𑄡𑄢</div>
|
||||
<div class="line">𑄣𑄤𑄥𑄦𑄶𑄷𑄸𑄹𑄺𑄻𑄼𑄽𑄾𑄿𑅀𑅁𑅂𑅃</div>
|
||||
</div>
|
||||
<div data-block="Mahajani">
|
||||
<div class="line">𑅐𑅑</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,155 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#7/9, 2048 code points in U+11152-124FA).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#7/9, 2048 code points in U+11152-124FA)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Mahajani">
|
||||
<div class="line">𑅒𑅓𑅔𑅕𑅖𑅗𑅘𑅙𑅚𑅛𑅜𑅝𑅞𑅟𑅠𑅡𑅢𑅣𑅤𑅥𑅦𑅧𑅨𑅩𑅪𑅫𑅬𑅭𑅮𑅯𑅰𑅱</div>
|
||||
<div class="line">𑅲𑅴𑅵𑅶</div>
|
||||
</div>
|
||||
<div data-block="Sharada">
|
||||
<div class="line">𑆃𑆄𑆅𑆆𑆇𑆈𑆉𑆊𑆋𑆌𑆍𑆎𑆏𑆐𑆑𑆒𑆓𑆔𑆕𑆖𑆗𑆘𑆙𑆚𑆛𑆜𑆝𑆞𑆟𑆠𑆡𑆢</div>
|
||||
<div class="line">𑆣𑆤𑆥𑆦𑆧𑆨𑆩𑆪𑆫𑆬𑆭𑆮𑆯𑆰𑆱𑆲𑇁𑇂𑇃𑇄𑇅𑇆𑇇𑇈𑇉𑇍𑇐𑇑𑇒𑇓𑇔𑇕</div>
|
||||
<div class="line">𑇖𑇗𑇘𑇙𑇚𑇛𑇜𑇝𑇞𑇟</div>
|
||||
</div>
|
||||
<div data-block="Sinhala">
|
||||
<div class="line">𑇡𑇢𑇣𑇤𑇥𑇦𑇧𑇨𑇩𑇪𑇫𑇬𑇭𑇮𑇯𑇰𑇱𑇲𑇳𑇴</div>
|
||||
</div>
|
||||
<div data-block="Khojki">
|
||||
<div class="line">𑈀𑈁𑈂𑈃𑈄𑈅𑈆𑈇𑈈𑈉𑈊𑈋𑈌𑈍𑈎𑈏𑈐𑈑𑈓𑈔𑈕𑈖𑈗𑈘𑈙𑈚𑈛𑈜𑈝𑈞𑈟𑈠</div>
|
||||
<div class="line">𑈡𑈢𑈣𑈤𑈥𑈦𑈧𑈨𑈩𑈪𑈫𑈸𑈹𑈺𑈻𑈼𑈽</div>
|
||||
</div>
|
||||
<div data-block="Multani">
|
||||
<div class="line">𑊀𑊁𑊂𑊃𑊄𑊅𑊆𑊈𑊊𑊋𑊌𑊍𑊏𑊐𑊑𑊒𑊓𑊔𑊕𑊖𑊗𑊘𑊙𑊚𑊛𑊜𑊝𑊟𑊠𑊡𑊢𑊣</div>
|
||||
<div class="line">𑊤𑊥𑊦𑊧𑊨𑊩</div>
|
||||
</div>
|
||||
<div data-block="Khudawadi">
|
||||
<div class="line">𑊰𑊱𑊲𑊳𑊴𑊵𑊶𑊷𑊸𑊹𑊺𑊻𑊼𑊽𑊾𑊿𑋀𑋁𑋂𑋃𑋄𑋅𑋆𑋇𑋈𑋉𑋊𑋋𑋌𑋍𑋎𑋏</div>
|
||||
<div class="line">𑋐𑋑𑋒𑋓𑋔𑋕𑋖𑋗𑋘𑋙𑋚𑋛𑋜𑋝𑋞𑋰𑋱𑋲𑋳𑋴𑋵𑋶𑋷𑋸𑋹</div>
|
||||
</div>
|
||||
<div data-block="Grantha">
|
||||
<div class="line">𑌅𑌆𑌇𑌈𑌉𑌊𑌋𑌌𑌏𑌐𑌓𑌔𑌕𑌖𑌗𑌘𑌙𑌚𑌛𑌜𑌝𑌞𑌟𑌠𑌡𑌢𑌣𑌤𑌥𑌦𑌧𑌨</div>
|
||||
<div class="line">𑌪𑌫𑌬𑌭𑌮𑌯𑌰𑌲𑌳𑌵𑌶𑌷𑌸𑌹𑌽𑍐𑍝𑍞𑍟𑍠𑍡</div>
|
||||
</div>
|
||||
<div data-block="Newa">
|
||||
<div class="line">𑐀𑐁𑐂𑐃𑐄𑐅𑐆𑐇𑐈𑐉𑐊𑐋𑐌𑐍𑐎𑐏𑐐𑐑𑐒𑐓𑐔𑐕𑐖𑐗𑐘𑐙𑐚𑐛𑐜𑐝𑐞𑐟</div>
|
||||
<div class="line">𑐠𑐡𑐢𑐣𑐤𑐥𑐦𑐧𑐨𑐩𑐪𑐫𑐬𑐭𑐮𑐯𑐰𑐱𑐲𑐳𑐴𑑇𑑈𑑉𑑊𑑋𑑌𑑍𑑎𑑏𑑐𑑑</div>
|
||||
<div class="line">𑑒𑑓𑑔𑑕𑑖𑑗𑑘𑑙𑑛𑑝</div>
|
||||
</div>
|
||||
<div data-block="Tirhuta">
|
||||
<div class="line">𑒀𑒁𑒂𑒃𑒄𑒅𑒆𑒇𑒈𑒉𑒊𑒋𑒌𑒍𑒎𑒏𑒐𑒑𑒒𑒓𑒔𑒕𑒖𑒗𑒘𑒙𑒚𑒛𑒜𑒝𑒞𑒟</div>
|
||||
<div class="line">𑒠𑒡𑒢𑒣𑒤𑒥𑒦𑒧𑒨𑒩𑒪𑒫𑒬𑒭𑒮𑒯𑓄𑓅𑓆𑓇𑓐𑓑𑓒𑓓𑓔𑓕𑓖𑓗𑓘𑓙</div>
|
||||
</div>
|
||||
<div data-block="Modi">
|
||||
<div class="line">𑘀𑘁𑘂𑘃𑘄𑘅𑘆𑘇𑘈𑘉𑘊𑘋𑘌𑘍𑘎𑘏𑘐𑘑𑘒𑘓𑘔𑘕𑘖𑘗𑘘𑘙𑘚𑘛𑘜𑘝𑘞𑘟</div>
|
||||
<div class="line">𑘠𑘡𑘢𑘣𑘤𑘥𑘦𑘧𑘨𑘩𑘪𑘫𑘬𑘭𑘮𑘯𑙁𑙂𑙃𑙄𑙐𑙑𑙒𑙓𑙔𑙕𑙖𑙗𑙘𑙙</div>
|
||||
</div>
|
||||
<div data-block="Mongolian">
|
||||
<div class="line">𑙠𑙡𑙢𑙣𑙤𑙥𑙦𑙧𑙨𑙩𑙪𑙫𑙬</div>
|
||||
</div>
|
||||
<div data-block="Takri">
|
||||
<div class="line">𑚀𑚁𑚂𑚃𑚄𑚅𑚆𑚇𑚈𑚉𑚊𑚋𑚌𑚍𑚎𑚏𑚐𑚑𑚒𑚓𑚔𑚕𑚖𑚗𑚘𑚙𑚚𑚛𑚜𑚝𑚞𑚟</div>
|
||||
<div class="line">𑚠𑚡𑚢𑚣𑚤𑚥𑚦𑚧𑚨𑚩𑚪𑛀𑛁𑛂𑛃𑛄𑛅𑛆𑛇𑛈𑛉</div>
|
||||
</div>
|
||||
<div data-block="Ahom">
|
||||
<div class="line">𑜀𑜁𑜂𑜃𑜄𑜅𑜆𑜇𑜈𑜉𑜊𑜋𑜌𑜍𑜎𑜏𑜐𑜑𑜒𑜓𑜔𑜕𑜖𑜗𑜘𑜙𑜰𑜱𑜲𑜳𑜴𑜵</div>
|
||||
<div class="line">𑜶𑜷𑜸𑜹𑜺𑜻𑜼𑜽𑜾𑜿</div>
|
||||
</div>
|
||||
<div data-block="Warang">
|
||||
<div class="line">𑢠𑢡𑢢𑢣𑢤𑢥𑢦𑢧𑢨𑢩𑢪𑢫𑢬𑢭𑢮𑢯𑢰𑢱𑢲𑢳𑢴𑢵𑢶𑢷𑢸𑢹𑢺𑢻𑢼𑢽𑢾𑢿</div>
|
||||
<div class="line">𑣀𑣁𑣂𑣃𑣄𑣅𑣆𑣇𑣈𑣉𑣊𑣋𑣌𑣍𑣎𑣏𑣐𑣑𑣒𑣓𑣔𑣕𑣖𑣗𑣘𑣙𑣚𑣛𑣜𑣝𑣞𑣟</div>
|
||||
<div class="line">𑣠𑣡𑣢𑣣𑣤𑣥𑣦𑣧𑣨𑣩𑣪𑣫𑣬𑣭𑣮𑣯𑣰𑣱𑣲𑣿</div>
|
||||
</div>
|
||||
<div data-block="Pau">
|
||||
<div class="line">𑫀𑫁𑫂𑫃𑫄𑫅𑫆𑫇𑫈𑫉𑫊𑫋𑫌𑫍𑫎𑫏𑫐𑫑𑫒𑫓𑫔𑫕𑫖𑫗𑫘𑫙𑫚𑫛𑫜𑫝𑫞𑫟</div>
|
||||
<div class="line">𑫠𑫡𑫢𑫣𑫤𑫥𑫦𑫧𑫨𑫩𑫪𑫫𑫬𑫭𑫮𑫯𑫰𑫱𑫲𑫳𑫴𑫵𑫶𑫷𑫸</div>
|
||||
</div>
|
||||
<div data-block="Bhaiksuki">
|
||||
<div class="line">𑰀𑰁𑰂𑰃𑰄𑰅𑰆𑰇𑰈𑰊𑰋𑰌𑰍𑰎𑰏𑰐𑰑𑰒𑰓𑰔𑰕𑰖𑰗𑰘𑰙𑰚𑰛𑰜𑰝𑰞𑰟𑰠</div>
|
||||
<div class="line">𑰡𑰢𑰣𑰤𑰥𑰦𑰧𑰨𑰩𑰪𑰫𑰬𑰭𑰮𑱀𑱁𑱂𑱃𑱄𑱅𑱐𑱑𑱒𑱓𑱔𑱕𑱖𑱗𑱘𑱙𑱚𑱛</div>
|
||||
<div class="line">𑱜𑱝𑱞𑱟𑱠𑱡𑱢𑱣𑱤𑱥𑱦𑱧𑱨𑱩𑱪𑱫𑱬</div>
|
||||
</div>
|
||||
<div data-block="Marchen">
|
||||
<div class="line">𑱰𑱱𑱲𑱳𑱴𑱵𑱶𑱷𑱸𑱹𑱺𑱻𑱼𑱽𑱾𑱿𑲀𑲁𑲂𑲃𑲄𑲅𑲆𑲇𑲈𑲉𑲊𑲋𑲌𑲍𑲎𑲏</div>
|
||||
</div>
|
||||
<div data-block="Cuneiform">
|
||||
<div class="line">𒀀𒀁𒀂𒀃𒀄𒀅𒀆𒀇𒀈𒀉𒀊𒀋𒀌𒀍𒀎𒀏𒀐𒀑𒀒𒀓𒀔𒀕𒀖𒀗𒀘𒀙𒀚𒀛𒀜𒀝𒀞𒀟</div>
|
||||
<div class="line">𒀠𒀡𒀢𒀣𒀤𒀥𒀦𒀧𒀨𒀩𒀪𒀫𒀬𒀭𒀮𒀯𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿</div>
|
||||
<div class="line">𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁙𒁚𒁛𒁜𒁝𒁞𒁟</div>
|
||||
<div class="line">𒁠𒁡𒁢𒁣𒁤𒁥𒁦𒁧𒁨𒁩𒁪𒁫𒁬𒁭𒁮𒁯𒁰𒁱𒁲𒁳𒁴𒁵𒁶𒁷𒁸𒁹𒁺𒁻𒁼𒁽𒁾𒁿</div>
|
||||
<div class="line">𒂀𒂁𒂂𒂃𒂄𒂅𒂆𒂇𒂈𒂉𒂊𒂋𒂌𒂍𒂎𒂏𒂐𒂑𒂒𒂓𒂔𒂕𒂖𒂗𒂘𒂙𒂚𒂛𒂜𒂝𒂞𒂟</div>
|
||||
<div class="line">𒂠𒂡𒂢𒂣𒂤𒂥𒂦𒂧𒂨𒂩𒂪𒂫𒂬𒂭𒂮𒂯𒂰𒂱𒂲𒂳𒂴𒂵𒂶𒂷𒂸𒂹𒂺𒂻𒂼𒂽𒂾𒂿</div>
|
||||
<div class="line">𒃀𒃁𒃂𒃃𒃄𒃅𒃆𒃇𒃈𒃉𒃊𒃋𒃌𒃍𒃎𒃏𒃐𒃑𒃒𒃓𒃔𒃕𒃖𒃗𒃘𒃙𒃚𒃛𒃜𒃝𒃞𒃟</div>
|
||||
<div class="line">𒃠𒃡𒃢𒃣𒃤𒃥𒃦𒃧𒃨𒃩𒃪𒃫𒃬𒃭𒃮𒃯𒃰𒃱𒃲𒃳𒃴𒃵𒃶𒃷𒃸𒃹𒃺𒃻𒃼𒃽𒃾𒃿</div>
|
||||
<div class="line">𒄀𒄁𒄂𒄃𒄄𒄅𒄆𒄇𒄈𒄉𒄊𒄋𒄌𒄍𒄎𒄏𒄐𒄑𒄒𒄓𒄔𒄕𒄖𒄗𒄘𒄙𒄚𒄛𒄜𒄝𒄞𒄟</div>
|
||||
<div class="line">𒄠𒄡𒄢𒄣𒄤𒄥𒄦𒄧𒄨𒄩𒄪𒄫𒄬𒄭𒄮𒄯𒄰𒄱𒄲𒄳𒄴𒄵𒄶𒄷𒄸𒄹𒄺𒄻𒄼𒄽𒄾𒄿</div>
|
||||
<div class="line">𒅀𒅁𒅂𒅃𒅄𒅅𒅆𒅇𒅈𒅉𒅊𒅋𒅌𒅍𒅎𒅏𒅐𒅑𒅒𒅓𒅔𒅕𒅖𒅗𒅘𒅙𒅚𒅛𒅜𒅝𒅞𒅟</div>
|
||||
<div class="line">𒅠𒅡𒅢𒅣𒅤𒅥𒅦𒅧𒅨𒅩𒅪𒅫𒅬𒅭𒅮𒅯𒅰𒅱𒅲𒅳𒅴𒅵𒅶𒅷𒅸𒅹𒅺𒅻𒅼𒅽𒅾𒅿</div>
|
||||
<div class="line">𒆀𒆁𒆂𒆃𒆄𒆅𒆆𒆇𒆈𒆉𒆊𒆋𒆌𒆍𒆎𒆏𒆐𒆑𒆒𒆓𒆔𒆕𒆖𒆗𒆘𒆙𒆚𒆛𒆜𒆝𒆞𒆟</div>
|
||||
<div class="line">𒆠𒆡𒆢𒆣𒆤𒆥𒆦𒆧𒆨𒆩𒆪𒆫𒆬𒆭𒆮𒆯𒆰𒆱𒆲𒆳𒆴𒆵𒆶𒆷𒆸𒆹𒆺𒆻𒆼𒆽𒆾𒆿</div>
|
||||
<div class="line">𒇀𒇁𒇂𒇃𒇄𒇅𒇆𒇇𒇈𒇉𒇊𒇋𒇌𒇍𒇎𒇏𒇐𒇑𒇒𒇓𒇔𒇕𒇖𒇗𒇘𒇙𒇚𒇛𒇜𒇝𒇞𒇟</div>
|
||||
<div class="line">𒇠𒇡𒇢𒇣𒇤𒇥𒇦𒇧𒇨𒇩𒇪𒇫𒇬𒇭𒇮𒇯𒇰𒇱𒇲𒇳𒇴𒇵𒇶𒇷𒇸𒇹𒇺𒇻𒇼𒇽𒇾𒇿</div>
|
||||
<div class="line">𒈀𒈁𒈂𒈃𒈄𒈅𒈆𒈇𒈈𒈉𒈊𒈋𒈌𒈍𒈎𒈏𒈐𒈑𒈒𒈓𒈔𒈕𒈖𒈗𒈘𒈙𒈚𒈛𒈜𒈝𒈞𒈟</div>
|
||||
<div class="line">𒈠𒈡𒈢𒈣𒈤𒈥𒈦𒈧𒈨𒈩𒈪𒈫𒈬𒈭𒈮𒈯𒈰𒈱𒈲𒈳𒈴𒈵𒈶𒈷𒈸𒈹𒈺𒈻𒈼𒈽𒈾𒈿</div>
|
||||
<div class="line">𒉀𒉁𒉂𒉃𒉄𒉅𒉆𒉇𒉈𒉉𒉊𒉋𒉌𒉍𒉎𒉏𒉐𒉑𒉒𒉓𒉔𒉕𒉖𒉗𒉘𒉙𒉚𒉛𒉜𒉝𒉞𒉟</div>
|
||||
<div class="line">𒉠𒉡𒉢𒉣𒉤𒉥𒉦𒉧𒉨𒉩𒉪𒉫𒉬𒉭𒉮𒉯𒉰𒉱𒉲𒉳𒉴𒉵𒉶𒉷𒉸𒉹𒉺𒉻𒉼𒉽𒉾𒉿</div>
|
||||
<div class="line">𒊀𒊁𒊂𒊃𒊄𒊅𒊆𒊇𒊈𒊉𒊊𒊋𒊌𒊍𒊎𒊏𒊐𒊑𒊒𒊓𒊔𒊕𒊖𒊗𒊘𒊙𒊚𒊛𒊜𒊝𒊞𒊟</div>
|
||||
<div class="line">𒊠𒊡𒊢𒊣𒊤𒊥𒊦𒊧𒊨𒊩𒊪𒊫𒊬𒊭𒊮𒊯𒊰𒊱𒊲𒊳𒊴𒊵𒊶𒊷𒊸𒊹𒊺𒊻𒊼𒊽𒊾𒊿</div>
|
||||
<div class="line">𒋀𒋁𒋂𒋃𒋄𒋅𒋆𒋇𒋈𒋉𒋊𒋋𒋌𒋍𒋎𒋏𒋐𒋑𒋒𒋓𒋔𒋕𒋖𒋗𒋘𒋙𒋚𒋛𒋜𒋝𒋞𒋟</div>
|
||||
<div class="line">𒋠𒋡𒋢𒋣𒋤𒋥𒋦𒋧𒋨𒋩𒋪𒋫𒋬𒋭𒋮𒋯𒋰𒋱𒋲𒋳𒋴𒋵𒋶𒋷𒋸𒋹𒋺𒋻𒋼𒋽𒋾𒋿</div>
|
||||
<div class="line">𒌀𒌁𒌂𒌃𒌄𒌅𒌆𒌇𒌈𒌉𒌊𒌋𒌌𒌍𒌎𒌏𒌐𒌑𒌒𒌓𒌔𒌕𒌖𒌗𒌘𒌙𒌚𒌛𒌜𒌝𒌞𒌟</div>
|
||||
<div class="line">𒌠𒌡𒌢𒌣𒌤𒌥𒌦𒌧𒌨𒌩𒌪𒌫𒌬𒌭𒌮𒌯𒌰𒌱𒌲𒌳𒌴𒌵𒌶𒌷𒌸𒌹𒌺𒌻𒌼𒌽𒌾𒌿</div>
|
||||
<div class="line">𒍀𒍁𒍂𒍃𒍄𒍅𒍆𒍇𒍈𒍉𒍊𒍋𒍌𒍍𒍎𒍏𒍐𒍑𒍒𒍓𒍔𒍕𒍖𒍗𒍘𒍙𒍚𒍛𒍜𒍝𒍞𒍟</div>
|
||||
<div class="line">𒍠𒍡𒍢𒍣𒍤𒍥𒍦𒍧𒍨𒍩𒍪𒍫𒍬𒍭𒍮𒍯𒍰𒍱𒍲𒍳𒍴𒍵𒍶𒍷𒍸𒍹𒍺𒍻𒍼𒍽𒍾𒍿</div>
|
||||
<div class="line">𒎀𒎁𒎂𒎃𒎄𒎅𒎆𒎇𒎈𒎉𒎊𒎋𒎌𒎍𒎎𒎏𒎐𒎑𒎒𒎓𒎔𒎕𒎖𒎗𒎘𒎙𒐀𒐁𒐂𒐃𒐄𒐅</div>
|
||||
<div class="line">𒐆𒐇𒐈𒐉𒐊𒐋𒐌𒐍𒐎𒐏𒐐𒐑𒐒𒐓𒐔𒐕𒐖𒐗𒐘𒐙𒐚𒐛𒐜𒐝𒐞𒐟𒐠𒐡𒐢𒐣𒐤𒐥</div>
|
||||
<div class="line">𒐦𒐧𒐨𒐩𒐪𒐫𒐬𒐭𒐮𒐯𒐰𒐱𒐲𒐳𒐴𒐵𒐶𒐷𒐸𒐹𒐺𒐻𒐼𒐽𒐾𒐿𒑀𒑁𒑂𒑃𒑄𒑅</div>
|
||||
<div class="line">𒑆𒑇𒑈𒑉𒑊𒑋𒑌𒑍𒑎𒑏𒑐𒑑𒑒𒑓𒑔𒑕𒑖𒑗𒑘𒑙𒑚𒑛𒑜𒑝𒑞𒑟𒑠𒑡𒑢𒑣𒑤𒑥</div>
|
||||
<div class="line">𒑦𒑧𒑨𒑩𒑪𒑫𒑬𒑭𒑮𒑰𒑱𒑲𒑳𒑴</div>
|
||||
</div>
|
||||
<div data-block="Early">
|
||||
<div class="line">𒒀𒒁𒒂𒒃𒒄𒒅𒒆𒒇𒒈𒒉𒒊𒒋𒒌𒒍𒒎𒒏𒒐𒒑𒒒𒒓𒒔𒒕𒒖𒒗𒒘𒒙𒒚𒒛𒒜𒒝𒒞𒒟</div>
|
||||
<div class="line">𒒠𒒡𒒢𒒣𒒤𒒥𒒦𒒧𒒨𒒩𒒪𒒫𒒬𒒭𒒮𒒯𒒰𒒱𒒲𒒳𒒴𒒵𒒶𒒷𒒸𒒹𒒺𒒻𒒼𒒽𒒾𒒿</div>
|
||||
<div class="line">𒓀𒓁𒓂𒓃𒓄𒓅𒓆𒓇𒓈𒓉𒓊𒓋𒓌𒓍𒓎𒓏𒓐𒓑𒓒𒓓𒓔𒓕𒓖𒓗𒓘𒓙𒓚𒓛𒓜𒓝𒓞𒓟</div>
|
||||
<div class="line">𒓠𒓡𒓢𒓣𒓤𒓥𒓦𒓧𒓨𒓩𒓪𒓫𒓬𒓭𒓮𒓯𒓰𒓱𒓲𒓳𒓴𒓵𒓶𒓷𒓸𒓹𒓺</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,131 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#8/9, 2048 code points in U+124FB-1D7B2).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#8/9, 2048 code points in U+124FB-1D7B2)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Early">
|
||||
<div class="line">𒓻𒓼𒓽𒓾𒓿𒔀𒔁𒔂𒔃𒔄𒔅𒔆𒔇𒔈𒔉𒔊𒔋𒔌𒔍𒔎𒔏𒔐𒔑𒔒𒔓𒔔𒔕𒔖𒔗𒔘𒔙𒔚</div>
|
||||
<div class="line">𒔛𒔜𒔝𒔞𒔟𒔠𒔡𒔢𒔣𒔤𒔥𒔦𒔧𒔨𒔩𒔪𒔫𒔬𒔭𒔮𒔯𒔰𒔱𒔲𒔳𒔴𒔵𒔶𒔷𒔸𒔹𒔺</div>
|
||||
<div class="line">𒔻𒔼𒔽𒔾𒔿𒕀𒕁𒕂𒕃</div>
|
||||
</div>
|
||||
<div data-block="Bamum">
|
||||
<div class="line">𖠀𖠁𖠂𖠃𖠄𖠅𖠆𖠇𖠈𖠉𖠊𖠋𖠌𖠍𖠎𖠏𖠐𖠑𖠒𖠓𖠔𖠕𖠖𖠗𖠘𖠙𖠚𖠛𖠜𖠝𖠞𖠟</div>
|
||||
<div class="line">𖠠𖠡𖠢𖠣𖠤𖠥𖠦𖠧𖠨𖠩𖠪𖠫𖠬𖠭𖠮𖠯𖠰𖠱𖠲𖠳𖠴𖠵𖠶𖠷𖠸𖠹𖠺𖠻𖠼𖠽𖠾𖠿</div>
|
||||
<div class="line">𖡀𖡁𖡂𖡃𖡄𖡅𖡆𖡇𖡈𖡉𖡊𖡋𖡌𖡍𖡎𖡏𖡐𖡑𖡒𖡓𖡔𖡕𖡖𖡗𖡘𖡙𖡚𖡛𖡜𖡝𖡞𖡟</div>
|
||||
<div class="line">𖡠𖡡𖡢𖡣𖡤𖡥𖡦𖡧𖡨𖡩𖡪𖡫𖡬𖡭𖡮𖡯𖡰𖡱𖡲𖡳𖡴𖡵𖡶𖡷𖡸𖡹𖡺𖡻𖡼𖡽𖡾𖡿</div>
|
||||
<div class="line">𖢀𖢁𖢂𖢃𖢄𖢅𖢆𖢇𖢈𖢉𖢊𖢋𖢌𖢍𖢎𖢏𖢐𖢑𖢒𖢓𖢔𖢕𖢖𖢗𖢘𖢙𖢚𖢛𖢜𖢝𖢞𖢟</div>
|
||||
<div class="line">𖢠𖢡𖢢𖢣𖢤𖢥𖢦𖢧𖢨𖢩𖢪𖢫𖢬𖢭𖢮𖢯𖢰𖢱𖢲𖢳𖢴𖢵𖢶𖢷𖢸𖢹𖢺𖢻𖢼𖢽𖢾𖢿</div>
|
||||
<div class="line">𖣀𖣁𖣂𖣃𖣄𖣅𖣆𖣇𖣈𖣉𖣊𖣋𖣌𖣍𖣎𖣏𖣐𖣑𖣒𖣓𖣔𖣕𖣖𖣗𖣘𖣙𖣚𖣛𖣜𖣝𖣞𖣟</div>
|
||||
<div class="line">𖣠𖣡𖣢𖣣𖣤𖣥𖣦𖣧𖣨𖣩𖣪𖣫𖣬𖣭𖣮𖣯𖣰𖣱𖣲𖣳𖣴𖣵𖣶𖣷𖣸𖣹𖣺𖣻𖣼𖣽𖣾𖣿</div>
|
||||
<div class="line">𖤀𖤁𖤂𖤃𖤄𖤅𖤆𖤇𖤈𖤉𖤊𖤋𖤌𖤍𖤎𖤏𖤐𖤑𖤒𖤓𖤔𖤕𖤖𖤗𖤘𖤙𖤚𖤛𖤜𖤝𖤞𖤟</div>
|
||||
<div class="line">𖤠𖤡𖤢𖤣𖤤𖤥𖤦𖤧𖤨𖤩𖤪𖤫𖤬𖤭𖤮𖤯𖤰𖤱𖤲𖤳𖤴𖤵𖤶𖤷𖤸𖤹𖤺𖤻𖤼𖤽𖤾𖤿</div>
|
||||
<div class="line">𖥀𖥁𖥂𖥃𖥄𖥅𖥆𖥇𖥈𖥉𖥊𖥋𖥌𖥍𖥎𖥏𖥐𖥑𖥒𖥓𖥔𖥕𖥖𖥗𖥘𖥙𖥚𖥛𖥜𖥝𖥞𖥟</div>
|
||||
<div class="line">𖥠𖥡𖥢𖥣𖥤𖥥𖥦𖥧𖥨𖥩𖥪𖥫𖥬𖥭𖥮𖥯𖥰𖥱𖥲𖥳𖥴𖥵𖥶𖥷𖥸𖥹𖥺𖥻𖥼𖥽𖥾𖥿</div>
|
||||
<div class="line">𖦀𖦁𖦂𖦃𖦄𖦅𖦆𖦇𖦈𖦉𖦊𖦋𖦌𖦍𖦎𖦏𖦐𖦑𖦒𖦓𖦔𖦕𖦖𖦗𖦘𖦙𖦚𖦛𖦜𖦝𖦞𖦟</div>
|
||||
<div class="line">𖦠𖦡𖦢𖦣𖦤𖦥𖦦𖦧𖦨𖦩𖦪𖦫𖦬𖦭𖦮𖦯𖦰𖦱𖦲𖦳𖦴𖦵𖦶𖦷𖦸𖦹𖦺𖦻𖦼𖦽𖦾𖦿</div>
|
||||
<div class="line">𖧀𖧁𖧂𖧃𖧄𖧅𖧆𖧇𖧈𖧉𖧊𖧋𖧌𖧍𖧎𖧏𖧐𖧑𖧒𖧓𖧔𖧕𖧖𖧗𖧘𖧙𖧚𖧛𖧜𖧝𖧞𖧟</div>
|
||||
<div class="line">𖧠𖧡𖧢𖧣𖧤𖧥𖧦𖧧𖧨𖧩𖧪𖧫𖧬𖧭𖧮𖧯𖧰𖧱𖧲𖧳𖧴𖧵𖧶𖧷𖧸𖧹𖧺𖧻𖧼𖧽𖧾𖧿</div>
|
||||
<div class="line">𖨀𖨁𖨂𖨃𖨄𖨅𖨆𖨇𖨈𖨉𖨊𖨋𖨌𖨍𖨎𖨏𖨐𖨑𖨒𖨓𖨔𖨕𖨖𖨗𖨘𖨙𖨚𖨛𖨜𖨝𖨞𖨟</div>
|
||||
<div class="line">𖨠𖨡𖨢𖨣𖨤𖨥𖨦𖨧𖨨𖨩𖨪𖨫𖨬𖨭𖨮𖨯𖨰𖨱𖨲𖨳𖨴𖨵𖨶𖨷𖨸</div>
|
||||
</div>
|
||||
<div data-block="Mro">
|
||||
<div class="line">𖩀𖩁𖩂𖩃𖩄𖩅𖩆𖩇𖩈𖩉𖩊𖩋𖩌𖩍𖩎𖩏𖩐𖩑𖩒𖩓𖩔𖩕𖩖𖩗𖩘𖩙𖩚𖩛𖩜𖩝𖩞𖩠</div>
|
||||
<div class="line">𖩡𖩢𖩣𖩤𖩥𖩦𖩧𖩨𖩩𖩮𖩯</div>
|
||||
</div>
|
||||
<div data-block="Bassa">
|
||||
<div class="line">𖫐𖫑𖫒𖫓𖫔𖫕𖫖𖫗𖫘𖫙𖫚𖫛𖫜𖫝𖫞𖫟𖫠𖫡𖫢𖫣𖫤𖫥𖫦𖫧𖫨𖫩𖫪𖫫𖫬𖫭𖫵</div>
|
||||
</div>
|
||||
<div data-block="Pahawh">
|
||||
<div class="line">𖬀𖬁𖬂𖬃𖬄𖬅𖬆𖬇𖬈𖬉𖬊𖬋𖬌𖬍𖬎𖬏𖬐𖬑𖬒𖬓𖬔𖬕𖬖𖬗𖬘𖬙𖬚𖬛𖬜𖬝𖬞𖬟</div>
|
||||
<div class="line">𖬠𖬡𖬢𖬣𖬤𖬥𖬦𖬧𖬨𖬩𖬪𖬫𖬬𖬭𖬮𖬯𖬷𖬸𖬹𖬺𖬻𖬼𖬽𖬾𖬿𖭀𖭁𖭂𖭃𖭄𖭅𖭐</div>
|
||||
<div class="line">𖭑𖭒𖭓𖭔𖭕𖭖𖭗𖭘𖭙𖭛𖭜𖭝𖭞𖭟𖭠𖭡𖭣𖭤𖭥𖭦𖭧𖭨𖭩𖭪𖭫𖭬𖭭𖭮𖭯𖭰𖭱𖭲</div>
|
||||
<div class="line">𖭳𖭴𖭵𖭶𖭷𖭽𖭾𖭿𖮀𖮁𖮂𖮃𖮄𖮅𖮆𖮇𖮈𖮉𖮊𖮋𖮌𖮍𖮎𖮏</div>
|
||||
</div>
|
||||
<div data-block="Miao">
|
||||
<div class="line">𖼀𖼁𖼂𖼃𖼄𖼅𖼆𖼇𖼈𖼉𖼊𖼋𖼌𖼍𖼎𖼏𖼐𖼑𖼒𖼓𖼔𖼕𖼖𖼗𖼘𖼙𖼚𖼛𖼜𖼝𖼞𖼟</div>
|
||||
<div class="line">𖼠𖼡𖼢𖼣𖼤𖼥𖼦𖼧𖼨𖼩𖼪𖼫𖼬𖼭𖼮𖼯𖼰𖼱𖼲𖼳𖼴𖼵𖼶𖼷𖼸𖼹𖼺𖼻𖼼𖼽𖼾𖼿</div>
|
||||
<div class="line">𖽀𖽁𖽂𖽃𖽄𖽐𖾓𖾔𖾕𖾖𖾗𖾘𖾙𖾚𖾛𖾜𖾝𖾞𖾟</div>
|
||||
</div>
|
||||
<div data-block="Duployan">
|
||||
<div class="line">𛰀𛰁𛰂𛰃𛰄𛰅𛰆𛰇𛰈𛰉𛰊𛰋𛰌𛰍𛰎𛰏𛰐𛰑𛰒𛰓𛰔𛰕𛰖𛰗𛰘𛰙𛰚𛰛𛰜𛰝𛰞𛰟</div>
|
||||
<div class="line">𛰠𛰡𛰢𛰣𛰤𛰥𛰦𛰧𛰨𛰩𛰪𛰫𛰬𛰭𛰮𛰯𛰰𛰱𛰲𛰳𛰴𛰵𛰶𛰷𛰸𛰹𛰺𛰻𛰼𛰽𛰾𛰿</div>
|
||||
<div class="line">𛱀𛱁𛱂𛱃𛱄𛱅𛱆𛱇𛱈𛱉𛱊𛱋𛱌𛱍𛱎𛱏𛱐𛱑𛱒𛱓𛱔𛱕𛱖𛱗𛱘𛱙𛱚𛱛𛱜𛱝𛱞𛱟</div>
|
||||
<div class="line">𛱠𛱡𛱢𛱣𛱤𛱥𛱦𛱧𛱨𛱩𛱪𛱰𛱱𛱲𛱳𛱴𛱵𛱶𛱷𛱸𛱹𛱺𛱻𛱼𛲀𛲁𛲂𛲃𛲄𛲅𛲆𛲇</div>
|
||||
<div class="line">𛲈𛲐𛲑𛲒𛲓𛲔𛲕𛲖𛲗𛲘𛲙𛲜𛲟</div>
|
||||
</div>
|
||||
<div data-block="Ancient">
|
||||
<div class="line">𝈀𝈁𝈂𝈃𝈄𝈅𝈆𝈇𝈈𝈉𝈊𝈋𝈌𝈍𝈎𝈏𝈐𝈑𝈒𝈓𝈔𝈕𝈖𝈗𝈘𝈙𝈚𝈛𝈜𝈝𝈞𝈟</div>
|
||||
<div class="line">𝈠𝈡𝈢𝈣𝈤𝈥𝈦𝈧𝈨𝈩𝈪𝈫𝈬𝈭𝈮𝈯𝈰𝈱𝈲𝈳𝈴𝈵𝈶𝈷𝈸𝈹𝈺𝈻𝈼𝈽𝈾𝈿</div>
|
||||
<div class="line">𝉀𝉁𝉅</div>
|
||||
</div>
|
||||
<div data-block="Mathematical">
|
||||
<div class="line">𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙𝐚𝐛𝐜𝐝𝐞𝐟</div>
|
||||
<div class="line">𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿</div>
|
||||
<div class="line">𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍𝑎𝑏𝑐𝑑𝑒𝑓𝑔𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠</div>
|
||||
<div class="line">𝑡𝑢𝑣𝑤𝑥𝑦𝑧𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀</div>
|
||||
<div class="line">𝒁𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛𝒜𝒞𝒟𝒢𝒥</div>
|
||||
<div class="line">𝒦𝒩𝒪𝒫𝒬𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹𝒻𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝓅𝓆𝓇𝓈𝓉𝓊𝓋</div>
|
||||
<div class="line">𝓌𝓍𝓎𝓏𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩𝓪𝓫</div>
|
||||
<div class="line">𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃𝔄𝔅𝔇𝔈𝔉𝔊𝔍𝔎</div>
|
||||
<div class="line">𝔏𝔐𝔑𝔒𝔓𝔔𝔖𝔗𝔘𝔙𝔚𝔛𝔜𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰</div>
|
||||
<div class="line">𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹𝔻𝔼𝔽𝔾𝕀𝕁𝕂𝕃𝕄𝕆𝕊𝕋𝕌𝕍𝕎𝕏𝕐𝕒𝕓𝕔𝕕𝕖𝕗</div>
|
||||
<div class="line">𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷</div>
|
||||
<div class="line">𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗</div>
|
||||
<div class="line">𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷</div>
|
||||
<div class="line">𝖸𝖹𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓𝗔𝗕𝗖𝗗</div>
|
||||
<div class="line">𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷</div>
|
||||
<div class="line">𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗</div>
|
||||
<div class="line">𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷</div>
|
||||
<div class="line">𝘸𝘹𝘺𝘻𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕𝙖𝙗</div>
|
||||
<div class="line">𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷</div>
|
||||
<div class="line">𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗</div>
|
||||
<div class="line">𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣𝚤𝚥𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚹</div>
|
||||
<div class="line">𝚺𝚻𝚼𝚽𝚾𝚿𝛀𝛁𝛂𝛃𝛄𝛅𝛆𝛇𝛈𝛉𝛊𝛋𝛌𝛍𝛎𝛏𝛐𝛑𝛒𝛓𝛔𝛕𝛖𝛗𝛘𝛙</div>
|
||||
<div class="line">𝛚𝛛𝛜𝛝𝛞𝛟𝛠𝛡𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛳𝛴𝛵𝛶𝛷𝛸𝛹</div>
|
||||
<div class="line">𝛺𝛻𝛼𝛽𝛾𝛿𝜀𝜁𝜂𝜃𝜄𝜅𝜆𝜇𝜈𝜉𝜊𝜋𝜌𝜍𝜎𝜏𝜐𝜑𝜒𝜓𝜔𝜕𝜖𝜗𝜘𝜙</div>
|
||||
<div class="line">𝜚𝜛𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜭𝜮𝜯𝜰𝜱𝜲𝜳𝜴𝜵𝜶𝜷𝜸𝜹</div>
|
||||
<div class="line">𝜺𝜻𝜼𝜽𝜾𝜿𝝀𝝁𝝂𝝃𝝄𝝅𝝆𝝇𝝈𝝉𝝊𝝋𝝌𝝍𝝎𝝏𝝐𝝑𝝒𝝓𝝔𝝕𝝖𝝗𝝘𝝙</div>
|
||||
<div class="line">𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮𝝯𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹</div>
|
||||
<div class="line">𝝺𝝻𝝼𝝽𝝾𝝿𝞀𝞁𝞂𝞃𝞄𝞅𝞆𝞇𝞈𝞉𝞊𝞋𝞌𝞍𝞎𝞏𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞘𝞙</div>
|
||||
<div class="line">𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞡𝞢𝞣𝞤𝞥𝞦𝞧𝞨𝞩𝞪𝞫𝞬𝞭𝞮𝞯𝞰𝞱𝞲</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,78 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=R (#9/9, 652 code points in U+1D7B3-1F8AD).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=R (#9/9, 652 code points in U+1D7B3-1F8AD)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="R" class="test">
|
||||
<div data-block="Mathematical">
|
||||
<div class="line">𝞳𝞴𝞵𝞶𝞷𝞸𝞹𝞺𝞻𝞼𝞽𝞾𝞿𝟀𝟁𝟂𝟃𝟄𝟅𝟆𝟇𝟈𝟉𝟊𝟋𝟎𝟏𝟐𝟑𝟒𝟓𝟔</div>
|
||||
<div class="line">𝟕𝟖𝟗𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴</div>
|
||||
<div class="line">𝟵𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿</div>
|
||||
</div>
|
||||
<div data-block="Mende">
|
||||
<div class="line">𞠀𞠁𞠂𞠃𞠄𞠅𞠆𞠇𞠈𞠉𞠊𞠋𞠌𞠍𞠎𞠏𞠐𞠑𞠒𞠓𞠔𞠕𞠖𞠗𞠘𞠙𞠚𞠛𞠜𞠝𞠞𞠟</div>
|
||||
<div class="line">𞠠𞠡𞠢𞠣𞠤𞠥𞠦𞠧𞠨𞠩𞠪𞠫𞠬𞠭𞠮𞠯𞠰𞠱𞠲𞠳𞠴𞠵𞠶𞠷𞠸𞠹𞠺𞠻𞠼𞠽𞠾𞠿</div>
|
||||
<div class="line">𞡀𞡁𞡂𞡃𞡄𞡅𞡆𞡇𞡈𞡉𞡊𞡋𞡌𞡍𞡎𞡏𞡐𞡑𞡒𞡓𞡔𞡕𞡖𞡗𞡘𞡙𞡚𞡛𞡜𞡝𞡞𞡟</div>
|
||||
<div class="line">𞡠𞡡𞡢𞡣𞡤𞡥𞡦𞡧𞡨𞡩𞡪𞡫𞡬𞡭𞡮𞡯𞡰𞡱𞡲𞡳𞡴𞡵𞡶𞡷𞡸𞡹𞡺𞡻𞡼𞡽𞡾𞡿</div>
|
||||
<div class="line">𞢀𞢁𞢂𞢃𞢄𞢅𞢆𞢇𞢈𞢉𞢊𞢋𞢌𞢍𞢎𞢏𞢐𞢑𞢒𞢓𞢔𞢕𞢖𞢗𞢘𞢙𞢚𞢛𞢜𞢝𞢞𞢟</div>
|
||||
<div class="line">𞢠𞢡𞢢𞢣𞢤𞢥𞢦𞢧𞢨𞢩𞢪𞢫𞢬𞢭𞢮𞢯𞢰𞢱𞢲𞢳𞢴𞢵𞢶𞢷𞢸𞢹𞢺𞢻𞢼𞢽𞢾𞢿</div>
|
||||
<div class="line">𞣀𞣁𞣂𞣃𞣄𞣇𞣈𞣉𞣊𞣋𞣌𞣍𞣎𞣏</div>
|
||||
</div>
|
||||
<div data-block="Adlam">
|
||||
<div class="line">𞤀𞤁𞤂𞤃𞤄𞤅𞤆𞤇𞤈𞤉𞤊𞤋𞤌𞤍𞤎𞤏𞤐𞤑𞤒𞤓𞤔𞤕𞤖𞤗𞤘𞤙𞤚𞤛𞤜𞤝𞤞𞤟</div>
|
||||
<div class="line">𞤠𞤡𞤢𞤣𞤤𞤥𞤦𞤧𞤨𞤩𞤪𞤫𞤬𞤭𞤮𞤯𞤰𞤱𞤲𞤳𞤴𞤵𞤶𞤷𞤸𞤹𞤺𞤻𞤼𞤽𞤾𞤿</div>
|
||||
<div class="line">𞥀𞥁𞥂𞥃𞥐𞥑𞥒𞥓𞥔𞥕𞥖𞥗𞥘𞥙𞥞𞥟</div>
|
||||
</div>
|
||||
<div data-block="Arabic">
|
||||
<div class="line">𞸀𞸁𞸂𞸃𞸅𞸆𞸇𞸈𞸉𞸊𞸋𞸌𞸍𞸎𞸏𞸐𞸑𞸒𞸓𞸔𞸕𞸖𞸗𞸘𞸙𞸚𞸛𞸜𞸝𞸞𞸟𞸡</div>
|
||||
<div class="line">𞸢𞸤𞸧𞸩𞸪𞸫𞸬𞸭𞸮𞸯𞸰𞸱𞸲𞸴𞸵𞸶𞸷𞸹𞸻𞹂𞹇𞹉𞹋𞹍𞹎𞹏𞹑𞹒𞹔𞹗𞹙𞹛</div>
|
||||
<div class="line">𞹝𞹟𞹡𞹢𞹤𞹧𞹨𞹩𞹪𞹬𞹭𞹮𞹯𞹰𞹱𞹲𞹴𞹵𞹶𞹷𞹹𞹺𞹻𞹼𞹾𞺀𞺁𞺂𞺃𞺄𞺅𞺆</div>
|
||||
<div class="line">𞺇𞺈𞺉𞺋𞺌𞺍𞺎𞺏𞺐𞺑𞺒𞺓𞺔𞺕𞺖𞺗𞺘𞺙𞺚𞺛𞺡𞺢𞺣𞺥𞺦𞺧𞺨𞺩𞺫𞺬𞺭𞺮</div>
|
||||
<div class="line">𞺯𞺰𞺱𞺲𞺳𞺴𞺵𞺶𞺷𞺸𞺹𞺺𞺻𞻰𞻱</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">🠀🠁🠂🠃🠄🠅🠆🠇🠈🠉🠊🠋🠐🠑🠒🠓🠔🠕🠖🠗🠘🠙🠚🠛🠜🠝🠞🠟🠠🠡🠢🠣</div>
|
||||
<div class="line">🠤🠥🠦🠧🠨🠩🠪🠫🠬🠭🠮🠯🠰🠱🠲🠳🠴🠵🠶🠷🠸🠹🠺🠻🠼🠽🠾🠿🡀🡁🡂🡃</div>
|
||||
<div class="line">🡄🡅🡆🡇🡐🡑🡒🡓🡔🡕🡖🡗🡘🡙🡠🡡🡢🡣🡤🡥🡦🡧🡨🡩🡪🡫🡬🡭🡮🡯🡰🡱</div>
|
||||
<div class="line">🡲🡳🡴🡵🡶🡷🡸🡹🡺🡻🡼🡽🡾🡿🢀🢁🢂🢃🢄🢅🢆🢇🢐🢑🢒🢓🢔🢕🢖🢗🢘🢙</div>
|
||||
<div class="line">🢚🢛🢜🢝🢞🢟🢠🢡🢢🢣🢤🢥🢦🢧🢨🢩🢪🢫🢬🢭</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,151 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#1/6, 2048 code points in U+00A7-2ED3).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#1/6, 2048 code points in U+00A7-2ED3)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="Latin">
|
||||
<div class="line">§©®±¼½¾×÷</div>
|
||||
</div>
|
||||
<div data-block="Spacing">
|
||||
<div class="line">˪˫</div>
|
||||
</div>
|
||||
<div data-block="Hangul">
|
||||
<div class="line">ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒᄓᄔᄕᄖᄗᄘᄙᄚᄛᄜᄝᄞᄟ</div>
|
||||
<div class="line">ᄠᄡᄢᄣᄤᄥᄦᄧᄨᄩᄪᄫᄬᄭᄮᄯᄰᄱᄲᄳᄴᄵᄶᄷᄸᄹᄺᄻᄼᄽᄾᄿ</div>
|
||||
<div class="line">ᅀᅁᅂᅃᅄᅅᅆᅇᅈᅉᅊᅋᅌᅍᅎᅏᅐᅑᅒᅓᅔᅕᅖᅗᅘᅙᅚᅛᅜᅝᅞᅟ</div>
|
||||
<div class="line">ᅠᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᅶᅷᅸᅹᅺᅻᅼᅽᅾᅿ</div>
|
||||
<div class="line">ᆀᆁᆂᆃᆄᆅᆆᆇᆈᆉᆊᆋᆌᆍᆎᆏᆐᆑᆒᆓᆔᆕᆖᆗᆘᆙᆚᆛᆜᆝᆞᆟ</div>
|
||||
<div class="line">ᆠᆡᆢᆣᆤᆥᆦᆧᆨᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷᆸᆹᆺᆻᆼᆽᆾᆿ</div>
|
||||
<div class="line">ᇀᇁᇂᇃᇄᇅᇆᇇᇈᇉᇊᇋᇌᇍᇎᇏᇐᇑᇒᇓᇔᇕᇖᇗᇘᇙᇚᇛᇜᇝᇞᇟ</div>
|
||||
<div class="line">ᇠᇡᇢᇣᇤᇥᇦᇧᇨᇩᇪᇫᇬᇭᇮᇯᇰᇱᇲᇳᇴᇵᇶᇷᇸᇹᇺᇻᇼᇽᇾᇿ</div>
|
||||
</div>
|
||||
<div data-block="Unified">
|
||||
<div class="line">ᐁᐂᐃᐄᐅᐆᐇᐈᐉᐊᐋᐌᐍᐎᐏᐐᐑᐒᐓᐔᐕᐖᐗᐘᐙᐚᐛᐜᐝᐞᐟᐠ</div>
|
||||
<div class="line">ᐡᐢᐣᐤᐥᐦᐧᐨᐩᐪᐫᐬᐭᐮᐯᐰᐱᐲᐳᐴᐵᐶᐷᐸᐹᐺᐻᐼᐽᐾᐿᑀ</div>
|
||||
<div class="line">ᑁᑂᑃᑄᑅᑆᑇᑈᑉᑊᑋᑌᑍᑎᑏᑐᑑᑒᑓᑔᑕᑖᑗᑘᑙᑚᑛᑜᑝᑞᑟᑠ</div>
|
||||
<div class="line">ᑡᑢᑣᑤᑥᑦᑧᑨᑩᑪᑫᑬᑭᑮᑯᑰᑱᑲᑳᑴᑵᑶᑷᑸᑹᑺᑻᑼᑽᑾᑿᒀ</div>
|
||||
<div class="line">ᒁᒂᒃᒄᒅᒆᒇᒈᒉᒊᒋᒌᒍᒎᒏᒐᒑᒒᒓᒔᒕᒖᒗᒘᒙᒚᒛᒜᒝᒞᒟᒠ</div>
|
||||
<div class="line">ᒡᒢᒣᒤᒥᒦᒧᒨᒩᒪᒫᒬᒭᒮᒯᒰᒱᒲᒳᒴᒵᒶᒷᒸᒹᒺᒻᒼᒽᒾᒿᓀ</div>
|
||||
<div class="line">ᓁᓂᓃᓄᓅᓆᓇᓈᓉᓊᓋᓌᓍᓎᓏᓐᓑᓒᓓᓔᓕᓖᓗᓘᓙᓚᓛᓜᓝᓞᓟᓠ</div>
|
||||
<div class="line">ᓡᓢᓣᓤᓥᓦᓧᓨᓩᓪᓫᓬᓭᓮᓯᓰᓱᓲᓳᓴᓵᓶᓷᓸᓹᓺᓻᓼᓽᓾᓿᔀ</div>
|
||||
<div class="line">ᔁᔂᔃᔄᔅᔆᔇᔈᔉᔊᔋᔌᔍᔎᔏᔐᔑᔒᔓᔔᔕᔖᔗᔘᔙᔚᔛᔜᔝᔞᔟᔠ</div>
|
||||
<div class="line">ᔡᔢᔣᔤᔥᔦᔧᔨᔩᔪᔫᔬᔭᔮᔯᔰᔱᔲᔳᔴᔵᔶᔷᔸᔹᔺᔻᔼᔽᔾᔿᕀ</div>
|
||||
<div class="line">ᕁᕂᕃᕄᕅᕆᕇᕈᕉᕊᕋᕌᕍᕎᕏᕐᕑᕒᕓᕔᕕᕖᕗᕘᕙᕚᕛᕜᕝᕞᕟᕠ</div>
|
||||
<div class="line">ᕡᕢᕣᕤᕥᕦᕧᕨᕩᕪᕫᕬᕭᕮᕯᕰᕱᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽᕾᕿᖀ</div>
|
||||
<div class="line">ᖁᖂᖃᖄᖅᖆᖇᖈᖉᖊᖋᖌᖍᖎᖏᖐᖑᖒᖓᖔᖕᖖᖗᖘᖙᖚᖛᖜᖝᖞᖟᖠ</div>
|
||||
<div class="line">ᖡᖢᖣᖤᖥᖦᖧᖨᖩᖪᖫᖬᖭᖮᖯᖰᖱᖲᖳᖴᖵᖶᖷᖸᖹᖺᖻᖼᖽᖾᖿᗀ</div>
|
||||
<div class="line">ᗁᗂᗃᗄᗅᗆᗇᗈᗉᗊᗋᗌᗍᗎᗏᗐᗑᗒᗓᗔᗕᗖᗗᗘᗙᗚᗛᗜᗝᗞᗟᗠ</div>
|
||||
<div class="line">ᗡᗢᗣᗤᗥᗦᗧᗨᗩᗪᗫᗬᗭᗮᗯᗰᗱᗲᗳᗴᗵᗶᗷᗸᗹᗺᗻᗼᗽᗾᗿᘀ</div>
|
||||
<div class="line">ᘁᘂᘃᘄᘅᘆᘇᘈᘉᘊᘋᘌᘍᘎᘏᘐᘑᘒᘓᘔᘕᘖᘗᘘᘙᘚᘛᘜᘝᘞᘟᘠ</div>
|
||||
<div class="line">ᘡᘢᘣᘤᘥᘦᘧᘨᘩᘪᘫᘬᘭᘮᘯᘰᘱᘲᘳᘴᘵᘶᘷᘸᘹᘺᘻᘼᘽᘾᘿᙀ</div>
|
||||
<div class="line">ᙁᙂᙃᙄᙅᙆᙇᙈᙉᙊᙋᙌᙍᙎᙏᙐᙑᙒᙓᙔᙕᙖᙗᙘᙙᙚᙛᙜᙝᙞᙟᙠ</div>
|
||||
<div class="line">ᙡᙢᙣᙤᙥᙦᙧᙨᙩᙪᙫᙬ᙭᙮ᙯᙰᙱᙲᙳᙴᙵᙶᙷᙸᙹᙺᙻᙼᙽᙾᙿᢰ</div>
|
||||
<div class="line">ᢱᢲᢳᢴᢵᢶᢷᢸᢹᢺᢻᢼᢽᢾᢿᣀᣁᣂᣃᣄᣅᣆᣇᣈᣉᣊᣋᣌᣍᣎᣏᣐ</div>
|
||||
<div class="line">ᣑᣒᣓᣔᣕᣖᣗᣘᣙᣚᣛᣜᣝᣞᣟᣠᣡᣢᣣᣤᣥᣦᣧᣨᣩᣪᣫᣬᣭᣮᣯᣰ</div>
|
||||
<div class="line">ᣱᣲᣳᣴᣵ</div>
|
||||
</div>
|
||||
<div data-block="General">
|
||||
<div class="line">‖†‡‰‱※‼⁂⁇⁈⁉⁑</div>
|
||||
</div>
|
||||
<div data-block="Letterlike">
|
||||
<div class="line">℀℁℃℄℅℆ℇ℈℉ℏℓ℔№℗℞℟℠℡™℣℥℧℩℮ℵℶℷℸℹ℺℻ℼ</div>
|
||||
<div class="line">ℽℾℿⅅⅆⅇⅈⅉ⅊⅌⅍⅏</div>
|
||||
</div>
|
||||
<div data-block="Number">
|
||||
<div class="line">⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅟ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ</div>
|
||||
<div class="line">ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂↃↄↅↆↇↈ↉</div>
|
||||
</div>
|
||||
<div data-block="Mathematical">
|
||||
<div class="line">∞∴∵</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⌀⌁⌂⌃⌄⌅⌆⌇⌌⌍⌎⌏⌐⌑⌒⌓⌔⌕⌖⌗⌘⌙⌚⌛⌜⌝⌞⌟⌤⌥⌦⌧</div>
|
||||
<div class="line">⌨⌫⍽⍾⍿⎀⎁⎂⎃⎄⎅⎆⎇⎈⎉⎊⎋⎌⎍⎎⎏⎐⎑⎒⎓⎔⎕⎖⎗⎘⎙⎚</div>
|
||||
<div class="line">⎾⎿⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌⏍⏏⏑⏒⏓⏔⏕⏖⏗⏘⏙⏚⏛⏢⏣⏤⏥</div>
|
||||
<div class="line">⏦⏧⏨⏩⏪⏫⏬⏭⏮⏯⏰⏱⏲⏳⏴⏵⏶⏷⏸⏹⏺⏻⏼⏽⏾</div>
|
||||
</div>
|
||||
<div data-block="Control">
|
||||
<div class="line">␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟</div>
|
||||
<div class="line">␠␡␢␥␦</div>
|
||||
</div>
|
||||
<div data-block="Optical">
|
||||
<div class="line">⑀⑁⑂⑃⑄⑅⑆⑇⑈⑉⑊</div>
|
||||
</div>
|
||||
<div data-block="Enclosed">
|
||||
<div class="line">①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿</div>
|
||||
<div class="line">⒀⒁⒂⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⒜⒝⒞⒟</div>
|
||||
<div class="line">⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿ</div>
|
||||
<div class="line">ⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟ</div>
|
||||
<div class="line">ⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ⓪⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾⓿</div>
|
||||
</div>
|
||||
<div data-block="Geometric">
|
||||
<div class="line">■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱▲△▴▵▶▷▸▹►▻▼▽▾▿</div>
|
||||
<div class="line">◀◁◂◃◄◅◆◇◈◉◊○◌◍◎●◐◑◒◓◔◕◖◗◘◙◚◛◜◝◞◟</div>
|
||||
<div class="line">◠◡◢◣◤◥◦◧◨◩◪◫◬◭◮◯◰◱◲◳◴◵◶◷◸◹◺◻◼◽◾◿</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓☔☕☖☗☘☙☠☡☢☣☤☥</div>
|
||||
<div class="line">☦☧☨☩☪☫☬☭☮☯☰☱☲☳☴☵☶☷☸☹☺☻☼☽☾☿♀♁♂♃♄♅</div>
|
||||
<div class="line">♆♇♈♉♊♋♌♍♎♏♐♑♒♓♔♕♖♗♘♙♚♛♜♝♞♟♠♡♢♣♤♥</div>
|
||||
<div class="line">♦♧♨♩♪♫♬♭♮♯♰♱♲♳♴♵♶♷♸♹♺♻♼♽♾♿⚀⚁⚂⚃⚄⚅</div>
|
||||
<div class="line">⚆⚇⚈⚉⚊⚋⚌⚍⚎⚏⚐⚑⚒⚓⚔⚕⚖⚗⚘⚙⚚⚛⚜⚝⚞⚟⚠⚡⚢⚣⚤⚥</div>
|
||||
<div class="line">⚦⚧⚨⚩⚪⚫⚬⚭⚮⚯⚰⚱⚲⚳⚴⚵⚶⚷⚸⚹⚺⚻⚼⚽⚾⚿⛀⛁⛂⛃⛄⛅</div>
|
||||
<div class="line">⛆⛇⛈⛉⛊⛋⛌⛍⛎⛏⛐⛑⛒⛓⛔⛕⛖⛗⛘⛙⛚⛛⛜⛝⛞⛟⛠⛡⛢⛣⛤⛥</div>
|
||||
<div class="line">⛦⛧⛨⛩⛪⛫⛬⛭⛮⛯⛰⛱⛲⛳⛴⛵⛶⛷⛸⛹⛺⛻⛼⛽⛾⛿</div>
|
||||
</div>
|
||||
<div data-block="Dingbats">
|
||||
<div class="line">✀✁✂✃✄✅✆✇✈✉✊✋✌✍✎✏✐✑✒✓✔✕✖✗✘✙✚✛✜✝✞✟</div>
|
||||
<div class="line">✠✡✢✣✤✥✦✧✨✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿</div>
|
||||
<div class="line">❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞❟</div>
|
||||
<div class="line">❠❡❢❣❤❥❦❧❶❷❸❹❺❻❼❽❾❿➀➁➂➃➄➅➆➇➈➉➊➋➌➍</div>
|
||||
<div class="line">➎➏➐➑➒➓</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">⬒⬓⬔⬕⬖⬗⬘⬙⬚⬛⬜⬝⬞⬟⬠⬡⬢⬣⬤⬥⬦⬧⬨⬩⬪⬫⬬⬭⬮⬯⭐⭑</div>
|
||||
<div class="line">⭒⭓⭔⭕⭖⭗⭘⭙⮸⮹⮽⮾⮿⯀⯁⯂⯃⯄⯅⯆⯇⯈⯊⯋⯌⯍⯎⯏⯐⯑</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠</div>
|
||||
<div class="line">⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀</div>
|
||||
<div class="line">⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,148 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#2/6, 2048 code points in U+2ED4-A37A).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#2/6, 2048 code points in U+2ED4-A37A)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="CJK">
|
||||
<div class="line">⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠⻡⻢⻣⻤⻥⻦⻧⻨⻩⻪⻫⻬⻭⻮⻯⻰⻱⻲⻳</div>
|
||||
</div>
|
||||
<div data-block="Kangxi">
|
||||
<div class="line">⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟</div>
|
||||
<div class="line">⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿</div>
|
||||
<div class="line">⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟</div>
|
||||
<div class="line">⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿</div>
|
||||
<div class="line">⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟</div>
|
||||
<div class="line">⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿</div>
|
||||
<div class="line">⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕</div>
|
||||
</div>
|
||||
<div data-block="Ideographic">
|
||||
<div class="line">⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line"> 〃〄々〆〇〒〓〠〡〢〣〤〥〦〧〨〩〱〲〳〴〵〶〷〸〹〺〻〼〽〾</div>
|
||||
<div class="line">〿</div>
|
||||
</div>
|
||||
<div data-block="Hiragana">
|
||||
<div class="line">あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢつづて</div>
|
||||
<div class="line">でとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもやゆよら</div>
|
||||
<div class="line">りるれろわゐゑをんゔゝゞゟ</div>
|
||||
</div>
|
||||
<div data-block="Katakana">
|
||||
<div class="line">アイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテ</div>
|
||||
<div class="line">デトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラ</div>
|
||||
<div class="line">リルレロワヰヱヲンヴヷヸヹヺ・ヽヾヿ</div>
|
||||
</div>
|
||||
<div data-block="Bopomofo">
|
||||
<div class="line">ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤ</div>
|
||||
<div class="line">ㄥㄦㄨㄩㄪㄫㄬㄭ</div>
|
||||
</div>
|
||||
<div data-block="Hangul">
|
||||
<div class="line">ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐ</div>
|
||||
<div class="line">ㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰ</div>
|
||||
<div class="line">ㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ</div>
|
||||
</div>
|
||||
<div data-block="Kanbun">
|
||||
<div class="line">㆐㆑㆒㆓㆔㆕㆖㆗㆘㆙㆚㆛㆜㆝㆞㆟</div>
|
||||
</div>
|
||||
<div data-block="Bopomofo">
|
||||
<div class="line">ㆠㆡㆢㆣㆤㆥㆦㆧㆨㆩㆪㆫㆬㆭㆮㆯㆰㆱㆲㆳㆴㆵㆶㆷㆸㆹㆺ</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">㇀㇁㇂㇃㇄㇅㇆㇇㇈㇉㇊㇋㇌㇍㇎㇏㇐㇑㇒㇓㇔㇕㇖㇗㇘㇙㇚㇛㇜㇝㇞㇟</div>
|
||||
<div class="line">㇠㇡㇢㇣</div>
|
||||
</div>
|
||||
<div data-block="Enclosed">
|
||||
<div class="line">㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛㈜㈝㈞㈠</div>
|
||||
<div class="line">㈡㈢㈣㈤㈥㈦㈧㈨㈩㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀</div>
|
||||
<div class="line">㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊㉋㉌㉍㉎㉏㉐㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㉠</div>
|
||||
<div class="line">㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻㉼㉽㉾㉿㊀</div>
|
||||
<div class="line">㊁㊂㊃㊄㊅㊆㊇㊈㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠</div>
|
||||
<div class="line">㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿㋀</div>
|
||||
<div class="line">㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋌㋍㋎㋏㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠</div>
|
||||
<div class="line">㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸㋹㋺㋻㋼㋽㋾</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰㍱㍲㍳㍴㍵㍶㍷</div>
|
||||
<div class="line">㍸㍹㍺㎀㎁㎂㎃㎄㎅㎆㎇㎈㎉㎊㎋㎌㎍㎎㎏㎐㎑㎒㎓㎔㎕㎖㎗㎘㎙㎚㎛㎜</div>
|
||||
<div class="line">㎝㎞㎟㎠㎡㎢㎣㎤㎥㎦㎧㎨㎩㎪㎫㎬㎭㎮㎯㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎺㎻㎼</div>
|
||||
<div class="line">㎽㎾㎿㏀㏁㏂㏃㏄㏅㏆㏇㏈㏉㏊㏋㏌㏍㏎㏏㏐㏑㏒㏓㏔㏕㏖㏗㏘㏙㏚㏛㏜</div>
|
||||
<div class="line">㏝㏞㏟㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼</div>
|
||||
<div class="line">㏽㏾㏿㐀䶵</div>
|
||||
</div>
|
||||
<div data-block="Yijing">
|
||||
<div class="line">䷀䷁䷂䷃䷄䷅䷆䷇䷈䷉䷊䷋䷌䷍䷎䷏䷐䷑䷒䷓䷔䷕䷖䷗䷘䷙䷚䷛䷜䷝䷞䷟</div>
|
||||
<div class="line">䷠䷡䷢䷣䷤䷥䷦䷧䷨䷩䷪䷫䷬䷭䷮䷯䷰䷱䷲䷳䷴䷵䷶䷷䷸䷹䷺䷻䷼䷽䷾䷿</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">一鿌鿍鿎鿏鿐鿑鿒鿓鿔鿕</div>
|
||||
</div>
|
||||
<div data-block="Yi">
|
||||
<div class="line">ꀀꀁꀂꀃꀄꀅꀆꀇꀈꀉꀊꀋꀌꀍꀎꀏꀐꀑꀒꀓꀔꀕꀖꀗꀘꀙꀚꀛꀜꀝꀞꀟ</div>
|
||||
<div class="line">ꀠꀡꀢꀣꀤꀥꀦꀧꀨꀩꀪꀫꀬꀭꀮꀯꀰꀱꀲꀳꀴꀵꀶꀷꀸꀹꀺꀻꀼꀽꀾꀿ</div>
|
||||
<div class="line">ꁀꁁꁂꁃꁄꁅꁆꁇꁈꁉꁊꁋꁌꁍꁎꁏꁐꁑꁒꁓꁔꁕꁖꁗꁘꁙꁚꁛꁜꁝꁞꁟ</div>
|
||||
<div class="line">ꁠꁡꁢꁣꁤꁥꁦꁧꁨꁩꁪꁫꁬꁭꁮꁯꁰꁱꁲꁳꁴꁵꁶꁷꁸꁹꁺꁻꁼꁽꁾꁿ</div>
|
||||
<div class="line">ꂀꂁꂂꂃꂄꂅꂆꂇꂈꂉꂊꂋꂌꂍꂎꂏꂐꂑꂒꂓꂔꂕꂖꂗꂘꂙꂚꂛꂜꂝꂞꂟ</div>
|
||||
<div class="line">ꂠꂡꂢꂣꂤꂥꂦꂧꂨꂩꂪꂫꂬꂭꂮꂯꂰꂱꂲꂳꂴꂵꂶꂷꂸꂹꂺꂻꂼꂽꂾꂿ</div>
|
||||
<div class="line">ꃀꃁꃂꃃꃄꃅꃆꃇꃈꃉꃊꃋꃌꃍꃎꃏꃐꃑꃒꃓꃔꃕꃖꃗꃘꃙꃚꃛꃜꃝꃞꃟ</div>
|
||||
<div class="line">ꃠꃡꃢꃣꃤꃥꃦꃧꃨꃩꃪꃫꃬꃭꃮꃯꃰꃱꃲꃳꃴꃵꃶꃷꃸꃹꃺꃻꃼꃽꃾꃿ</div>
|
||||
<div class="line">ꄀꄁꄂꄃꄄꄅꄆꄇꄈꄉꄊꄋꄌꄍꄎꄏꄐꄑꄒꄓꄔꄕꄖꄗꄘꄙꄚꄛꄜꄝꄞꄟ</div>
|
||||
<div class="line">ꄠꄡꄢꄣꄤꄥꄦꄧꄨꄩꄪꄫꄬꄭꄮꄯꄰꄱꄲꄳꄴꄵꄶꄷꄸꄹꄺꄻꄼꄽꄾꄿ</div>
|
||||
<div class="line">ꅀꅁꅂꅃꅄꅅꅆꅇꅈꅉꅊꅋꅌꅍꅎꅏꅐꅑꅒꅓꅔꅕꅖꅗꅘꅙꅚꅛꅜꅝꅞꅟ</div>
|
||||
<div class="line">ꅠꅡꅢꅣꅤꅥꅦꅧꅨꅩꅪꅫꅬꅭꅮꅯꅰꅱꅲꅳꅴꅵꅶꅷꅸꅹꅺꅻꅼꅽꅾꅿ</div>
|
||||
<div class="line">ꆀꆁꆂꆃꆄꆅꆆꆇꆈꆉꆊꆋꆌꆍꆎꆏꆐꆑꆒꆓꆔꆕꆖꆗꆘꆙꆚꆛꆜꆝꆞꆟ</div>
|
||||
<div class="line">ꆠꆡꆢꆣꆤꆥꆦꆧꆨꆩꆪꆫꆬꆭꆮꆯꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿ</div>
|
||||
<div class="line">ꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟ</div>
|
||||
<div class="line">ꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹꇺꇻꇼꇽꇾꇿ</div>
|
||||
<div class="line">ꈀꈁꈂꈃꈄꈅꈆꈇꈈꈉꈊꈋꈌꈍꈎꈏꈐꈑꈒꈓꈔꈕꈖꈗꈘꈙꈚꈛꈜꈝꈞꈟ</div>
|
||||
<div class="line">ꈠꈡꈢꈣꈤꈥꈦꈧꈨꈩꈪꈫꈬꈭꈮꈯꈰꈱꈲꈳꈴꈵꈶꈷꈸꈹꈺꈻꈼꈽꈾꈿ</div>
|
||||
<div class="line">ꉀꉁꉂꉃꉄꉅꉆꉇꉈꉉꉊꉋꉌꉍꉎꉏꉐꉑꉒꉓꉔꉕꉖꉗꉘꉙꉚꉛꉜꉝꉞꉟ</div>
|
||||
<div class="line">ꉠꉡꉢꉣꉤꉥꉦꉧꉨꉩꉪꉫꉬꉭꉮꉯꉰꉱꉲꉳꉴꉵꉶꉷꉸꉹꉺꉻꉼꉽꉾꉿ</div>
|
||||
<div class="line">ꊀꊁꊂꊃꊄꊅꊆꊇꊈꊉꊊꊋꊌꊍꊎꊏꊐꊑꊒꊓꊔꊕꊖꊗꊘꊙꊚꊛꊜꊝꊞꊟ</div>
|
||||
<div class="line">ꊠꊡꊢꊣꊤꊥꊦꊧꊨꊩꊪꊫꊬꊭꊮꊯꊰꊱꊲꊳꊴꊵꊶꊷꊸꊹꊺꊻꊼꊽꊾꊿ</div>
|
||||
<div class="line">ꋀꋁꋂꋃꋄꋅꋆꋇꋈꋉꋊꋋꋌꋍꋎꋏꋐꋑꋒꋓꋔꋕꋖꋗꋘꋙꋚꋛꋜꋝꋞꋟ</div>
|
||||
<div class="line">ꋠꋡꋢꋣꋤꋥꋦꋧꋨꋩꋪꋫꋬꋭꋮꋯꋰꋱꋲꋳꋴꋵꋶꋷꋸꋹꋺꋻꋼꋽꋾꋿ</div>
|
||||
<div class="line">ꌀꌁꌂꌃꌄꌅꌆꌇꌈꌉꌊꌋꌌꌍꌎꌏꌐꌑꌒꌓꌔꌕꌖꌗꌘꌙꌚꌛꌜꌝꌞꌟ</div>
|
||||
<div class="line">ꌠꌡꌢꌣꌤꌥꌦꌧꌨꌩꌪꌫꌬꌭꌮꌯꌰꌱꌲꌳꌴꌵꌶꌷꌸꌹꌺꌻꌼꌽꌾꌿ</div>
|
||||
<div class="line">ꍀꍁꍂꍃꍄꍅꍆꍇꍈꍉꍊꍋꍌꍍꍎꍏꍐꍑꍒꍓꍔꍕꍖꍗꍘꍙꍚꍛꍜꍝꍞꍟ</div>
|
||||
<div class="line">ꍠꍡꍢꍣꍤꍥꍦꍧꍨꍩꍪꍫꍬꍭꍮꍯꍰꍱꍲꍳꍴꍵꍶꍷꍸꍹꍺ</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,137 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#3/6, 2048 code points in U+A37B-1338B).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#3/6, 2048 code points in U+A37B-1338B)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="Yi">
|
||||
<div class="line">ꍻꍼꍽꍾꍿꎀꎁꎂꎃꎄꎅꎆꎇꎈꎉꎊꎋꎌꎍꎎꎏꎐꎑꎒꎓꎔꎕꎖꎗꎘꎙꎚ</div>
|
||||
<div class="line">ꎛꎜꎝꎞꎟꎠꎡꎢꎣꎤꎥꎦꎧꎨꎩꎪꎫꎬꎭꎮꎯꎰꎱꎲꎳꎴꎵꎶꎷꎸꎹꎺ</div>
|
||||
<div class="line">ꎻꎼꎽꎾꎿꏀꏁꏂꏃꏄꏅꏆꏇꏈꏉꏊꏋꏌꏍꏎꏏꏐꏑꏒꏓꏔꏕꏖꏗꏘꏙꏚ</div>
|
||||
<div class="line">ꏛꏜꏝꏞꏟꏠꏡꏢꏣꏤꏥꏦꏧꏨꏩꏪꏫꏬꏭꏮꏯꏰꏱꏲꏳꏴꏵꏶꏷꏸꏹꏺ</div>
|
||||
<div class="line">ꏻꏼꏽꏾꏿꐀꐁꐂꐃꐄꐅꐆꐇꐈꐉꐊꐋꐌꐍꐎꐏꐐꐑꐒꐓꐔꐕꐖꐗꐘꐙꐚ</div>
|
||||
<div class="line">ꐛꐜꐝꐞꐟꐠꐡꐢꐣꐤꐥꐦꐧꐨꐩꐪꐫꐬꐭꐮꐯꐰꐱꐲꐳꐴꐵꐶꐷꐸꐹꐺ</div>
|
||||
<div class="line">ꐻꐼꐽꐾꐿꑀꑁꑂꑃꑄꑅꑆꑇꑈꑉꑊꑋꑌꑍꑎꑏꑐꑑꑒꑓꑔꑕꑖꑗꑘꑙꑚ</div>
|
||||
<div class="line">ꑛꑜꑝꑞꑟꑠꑡꑢꑣꑤꑥꑦꑧꑨꑩꑪꑫꑬꑭꑮꑯꑰꑱꑲꑳꑴꑵꑶꑷꑸꑹꑺ</div>
|
||||
<div class="line">ꑻꑼꑽꑾꑿꒀꒁꒂꒃꒄꒅꒆꒇꒈꒉꒊꒋꒌ꒐꒑꒒꒓꒔꒕꒖꒗꒘꒙꒚꒛꒜꒝</div>
|
||||
<div class="line">꒞꒟꒠꒡꒢꒣꒤꒥꒦꒧꒨꒩꒪꒫꒬꒭꒮꒯꒰꒱꒲꒳꒴꒵꒶꒷꒸꒹꒺꒻꒼꒽</div>
|
||||
<div class="line">꒾꒿꓀꓁꓂꓃꓄꓅꓆</div>
|
||||
</div>
|
||||
<div data-block="Hangul">
|
||||
<div class="line">ꥠꥡꥢꥣꥤꥥꥦꥧꥨꥩꥪꥫꥬꥭꥮꥯꥰꥱꥲꥳꥴꥵꥶꥷꥸꥹꥺꥻꥼ가힣ힰ</div>
|
||||
<div class="line">ힱힲힳힴힵힶힷힸힹힺힻힼힽힾힿퟀퟁퟂퟃퟄퟅퟆퟋퟌퟍퟎퟏퟐퟑퟒퟓퟔ</div>
|
||||
<div class="line">ퟕퟖퟗퟘퟙퟚퟛퟜퟝퟞퟟퟠퟡퟢퟣퟤퟥퟦퟧퟨퟩퟪퟫퟬퟭퟮퟯퟰퟱퟲퟳퟴ</div>
|
||||
<div class="line">ퟵퟶퟷퟸퟹퟺퟻ</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">豈更車賈滑串句龜龜契金喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭</div>
|
||||
<div class="line">鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧老蘆虜路露魯鷺碌祿綠菉錄</div>
|
||||
<div class="line">鹿論壟弄籠聾牢磊賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏樂諾丹寧</div>
|
||||
<div class="line">怒率異北磻便復不泌數索參塞省葉說殺辰沈拾若掠略亮兩凉梁糧良諒量勵</div>
|
||||
<div class="line">呂女廬旅濾礪閭驪麗黎力曆歷轢年憐戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈</div>
|
||||
<div class="line">裂說廉念捻殮簾獵令囹寧嶺怜玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料樂</div>
|
||||
<div class="line">燎療蓼遼龍暈阮劉杻柳流溜琉留硫紐類六戮陸倫崙淪輪律慄栗率隆利吏履</div>
|
||||
<div class="line">易李梨泥理痢罹裏裡里離匿溺吝燐璘藺隣鱗麟林淋臨立笠粒狀炙識什茶刺</div>
|
||||
<div class="line">切度拓糖宅洞暴輻行降見廓兀嗀﨎﨏塚﨑晴﨓﨔凞猪益礼神祥福靖精羽﨟</div>
|
||||
<div class="line">蘒﨡諸﨣﨤逸都﨧﨨﨩飯飼館鶴郞隷侮僧免勉勤卑喝嘆器塀墨層屮悔慨憎</div>
|
||||
<div class="line">懲敏既暑梅海渚漢煮爫琢碑社祉祈祐祖祝禍禎穀突節練縉繁署者臭艹艹著</div>
|
||||
<div class="line">褐視謁謹賓贈辶逸難響頻恵𤋮舘並况全侀充冀勇勺喝啕喙嗢塚墳奄奔婢嬨</div>
|
||||
<div class="line">廒廙彩徭惘慎愈憎慠懲戴揄搜摒敖晴朗望杖歹殺流滛滋漢瀞煮瞧爵犯猪瑱</div>
|
||||
<div class="line">甆画瘝瘟益盛直睊着磌窱節类絛練缾者荒華蝹襁覆視調諸請謁諾諭謹變贈</div>
|
||||
<div class="line">輸遲醙鉶陼難靖韛響頋頻鬒龜𢡊𢡄𣏕㮝䀘䀹𥉉𥳐𧻓齃龎</div>
|
||||
</div>
|
||||
<div data-block="Vertical">
|
||||
<div class="line">︐︑︒︓︔︕︖︗︘︙</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">︰︱︲︳︴︵︶︷︸︹︺︻︼︽︾︿﹀﹁﹂﹃﹄﹅﹆﹇﹈</div>
|
||||
</div>
|
||||
<div data-block="Small">
|
||||
<div class="line">﹔﹕﹖﹗﹟﹠﹡﹢﹨﹩﹪﹫</div>
|
||||
</div>
|
||||
<div data-block="Halfwidth">
|
||||
<div class="line">"#$%&'*+/0123456789@ABCDEFGHIJKL</div>
|
||||
<div class="line">MNOPQRSTUVWXYZ\^`abcdefghijklmno</div>
|
||||
<div class="line">pqrstuvwxyz¢£¬¦¥₩</div>
|
||||
</div>
|
||||
<div data-block="Specials">
|
||||
<div class="line"><EFBFBD></div>
|
||||
</div>
|
||||
<div data-block="Meroitic">
|
||||
<div class="line">𐦀𐦁𐦂𐦃𐦄𐦅𐦆𐦇𐦈𐦉𐦊𐦋𐦌𐦍𐦎𐦏𐦐𐦑𐦒𐦓𐦔𐦕𐦖𐦗𐦘𐦙𐦚𐦛𐦜𐦝𐦞𐦟</div>
|
||||
</div>
|
||||
<div data-block="Siddham">
|
||||
<div class="line">𑖀𑖁𑖂𑖃𑖄𑖅𑖆𑖇𑖈𑖉𑖊𑖋𑖌𑖍𑖎𑖏𑖐𑖑𑖒𑖓𑖔𑖕𑖖𑖗𑖘𑖙𑖚𑖛𑖜𑖝𑖞𑖟</div>
|
||||
<div class="line">𑖠𑖡𑖢𑖣𑖤𑖥𑖦𑖧𑖨𑖩𑖪𑖫𑖬𑖭𑖮𑗁𑗂𑗃𑗄𑗅𑗆𑗇𑗈𑗉𑗊𑗋𑗌𑗍𑗎𑗏𑗐𑗑</div>
|
||||
<div class="line">𑗒𑗓𑗔𑗕𑗖𑗗𑗘𑗙𑗚𑗛</div>
|
||||
</div>
|
||||
<div data-block="Egyptian">
|
||||
<div class="line">𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟</div>
|
||||
<div class="line">𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻𓀼𓀽𓀾𓀿</div>
|
||||
<div class="line">𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁋𓁌𓁍𓁎𓁏𓁐𓁑𓁒𓁓𓁔𓁕𓁖𓁗𓁘𓁙𓁚𓁛𓁜𓁝𓁞𓁟</div>
|
||||
<div class="line">𓁠𓁡𓁢𓁣𓁤𓁥𓁦𓁧𓁨𓁩𓁪𓁫𓁬𓁭𓁮𓁯𓁰𓁱𓁲𓁳𓁴𓁵𓁶𓁷𓁸𓁹𓁺𓁻𓁼𓁽𓁾𓁿</div>
|
||||
<div class="line">𓂀𓂁𓂂𓂃𓂄𓂅𓂆𓂇𓂈𓂉𓂊𓂋𓂌𓂍𓂎𓂏𓂐𓂑𓂒𓂓𓂔𓂕𓂖𓂗𓂘𓂙𓂚𓂛𓂜𓂝𓂞𓂟</div>
|
||||
<div class="line">𓂠𓂡𓂢𓂣𓂤𓂥𓂦𓂧𓂨𓂩𓂪𓂫𓂬𓂭𓂮𓂯𓂰𓂱𓂲𓂳𓂴𓂵𓂶𓂷𓂸𓂹𓂺𓂻𓂼𓂽𓂾𓂿</div>
|
||||
<div class="line">𓃀𓃁𓃂𓃃𓃄𓃅𓃆𓃇𓃈𓃉𓃊𓃋𓃌𓃍𓃎𓃏𓃐𓃑𓃒𓃓𓃔𓃕𓃖𓃗𓃘𓃙𓃚𓃛𓃜𓃝𓃞𓃟</div>
|
||||
<div class="line">𓃠𓃡𓃢𓃣𓃤𓃥𓃦𓃧𓃨𓃩𓃪𓃫𓃬𓃭𓃮𓃯𓃰𓃱𓃲𓃳𓃴𓃵𓃶𓃷𓃸𓃹𓃺𓃻𓃼𓃽𓃾𓃿</div>
|
||||
<div class="line">𓄀𓄁𓄂𓄃𓄄𓄅𓄆𓄇𓄈𓄉𓄊𓄋𓄌𓄍𓄎𓄏𓄐𓄑𓄒𓄓𓄔𓄕𓄖𓄗𓄘𓄙𓄚𓄛𓄜𓄝𓄞𓄟</div>
|
||||
<div class="line">𓄠𓄡𓄢𓄣𓄤𓄥𓄦𓄧𓄨𓄩𓄪𓄫𓄬𓄭𓄮𓄯𓄰𓄱𓄲𓄳𓄴𓄵𓄶𓄷𓄸𓄹𓄺𓄻𓄼𓄽𓄾𓄿</div>
|
||||
<div class="line">𓅀𓅁𓅂𓅃𓅄𓅅𓅆𓅇𓅈𓅉𓅊𓅋𓅌𓅍𓅎𓅏𓅐𓅑𓅒𓅓𓅔𓅕𓅖𓅗𓅘𓅙𓅚𓅛𓅜𓅝𓅞𓅟</div>
|
||||
<div class="line">𓅠𓅡𓅢𓅣𓅤𓅥𓅦𓅧𓅨𓅩𓅪𓅫𓅬𓅭𓅮𓅯𓅰𓅱𓅲𓅳𓅴𓅵𓅶𓅷𓅸𓅹𓅺𓅻𓅼𓅽𓅾𓅿</div>
|
||||
<div class="line">𓆀𓆁𓆂𓆃𓆄𓆅𓆆𓆇𓆈𓆉𓆊𓆋𓆌𓆍𓆎𓆏𓆐𓆑𓆒𓆓𓆔𓆕𓆖𓆗𓆘𓆙𓆚𓆛𓆜𓆝𓆞𓆟</div>
|
||||
<div class="line">𓆠𓆡𓆢𓆣𓆤𓆥𓆦𓆧𓆨𓆩𓆪𓆫𓆬𓆭𓆮𓆯𓆰𓆱𓆲𓆳𓆴𓆵𓆶𓆷𓆸𓆹𓆺𓆻𓆼𓆽𓆾𓆿</div>
|
||||
<div class="line">𓇀𓇁𓇂𓇃𓇄𓇅𓇆𓇇𓇈𓇉𓇊𓇋𓇌𓇍𓇎𓇏𓇐𓇑𓇒𓇓𓇔𓇕𓇖𓇗𓇘𓇙𓇚𓇛𓇜𓇝𓇞𓇟</div>
|
||||
<div class="line">𓇠𓇡𓇢𓇣𓇤𓇥𓇦𓇧𓇨𓇩𓇪𓇫𓇬𓇭𓇮𓇯𓇰𓇱𓇲𓇳𓇴𓇵𓇶𓇷𓇸𓇹𓇺𓇻𓇼𓇽𓇾𓇿</div>
|
||||
<div class="line">𓈀𓈁𓈂𓈃𓈄𓈅𓈆𓈇𓈈𓈉𓈊𓈋𓈌𓈍𓈎𓈏𓈐𓈑𓈒𓈓𓈔𓈕𓈖𓈗𓈘𓈙𓈚𓈛𓈜𓈝𓈞𓈟</div>
|
||||
<div class="line">𓈠𓈡𓈢𓈣𓈤𓈥𓈦𓈧𓈨𓈩𓈪𓈫𓈬𓈭𓈮𓈯𓈰𓈱𓈲𓈳𓈴𓈵𓈶𓈷𓈸𓈹𓈺𓈻𓈼𓈽𓈾𓈿</div>
|
||||
<div class="line">𓉀𓉁𓉂𓉃𓉄𓉅𓉆𓉇𓉈𓉉𓉊𓉋𓉌𓉍𓉎𓉏𓉐𓉑𓉒𓉓𓉔𓉕𓉖𓉗𓉘𓉙𓉚𓉛𓉜𓉝𓉞𓉟</div>
|
||||
<div class="line">𓉠𓉡𓉢𓉣𓉤𓉥𓉦𓉧𓉨𓉩𓉪𓉫𓉬𓉭𓉮𓉯𓉰𓉱𓉲𓉳𓉴𓉵𓉶𓉷𓉸𓉹𓉺𓉻𓉼𓉽𓉾𓉿</div>
|
||||
<div class="line">𓊀𓊁𓊂𓊃𓊄𓊅𓊆𓊇𓊈𓊉𓊊𓊋𓊌𓊍𓊎𓊏𓊐𓊑𓊒𓊓𓊔𓊕𓊖𓊗𓊘𓊙𓊚𓊛𓊜𓊝𓊞𓊟</div>
|
||||
<div class="line">𓊠𓊡𓊢𓊣𓊤𓊥𓊦𓊧𓊨𓊩𓊪𓊫𓊬𓊭𓊮𓊯𓊰𓊱𓊲𓊳𓊴𓊵𓊶𓊷𓊸𓊹𓊺𓊻𓊼𓊽𓊾𓊿</div>
|
||||
<div class="line">𓋀𓋁𓋂𓋃𓋄𓋅𓋆𓋇𓋈𓋉𓋊𓋋𓋌𓋍𓋎𓋏𓋐𓋑𓋒𓋓𓋔𓋕𓋖𓋗𓋘𓋙𓋚𓋛𓋜𓋝𓋞𓋟</div>
|
||||
<div class="line">𓋠𓋡𓋢𓋣𓋤𓋥𓋦𓋧𓋨𓋩𓋪𓋫𓋬𓋭𓋮𓋯𓋰𓋱𓋲𓋳𓋴𓋵𓋶𓋷𓋸𓋹𓋺𓋻𓋼𓋽𓋾𓋿</div>
|
||||
<div class="line">𓌀𓌁𓌂𓌃𓌄𓌅𓌆𓌇𓌈𓌉𓌊𓌋𓌌𓌍𓌎𓌏𓌐𓌑𓌒𓌓𓌔𓌕𓌖𓌗𓌘𓌙𓌚𓌛𓌜𓌝𓌞𓌟</div>
|
||||
<div class="line">𓌠𓌡𓌢𓌣𓌤𓌥𓌦𓌧𓌨𓌩𓌪𓌫𓌬𓌭𓌮𓌯𓌰𓌱𓌲𓌳𓌴𓌵𓌶𓌷𓌸𓌹𓌺𓌻𓌼𓌽𓌾𓌿</div>
|
||||
<div class="line">𓍀𓍁𓍂𓍃𓍄𓍅𓍆𓍇𓍈𓍉𓍊𓍋𓍌𓍍𓍎𓍏𓍐𓍑𓍒𓍓𓍔𓍕𓍖𓍗𓍘𓍙𓍚𓍛𓍜𓍝𓍞𓍟</div>
|
||||
<div class="line">𓍠𓍡𓍢𓍣𓍤𓍥𓍦𓍧𓍨𓍩𓍪𓍫𓍬𓍭𓍮𓍯𓍰𓍱𓍲𓍳𓍴𓍵𓍶𓍷𓍸𓍹𓍺𓍻𓍼𓍽𓍾𓍿</div>
|
||||
<div class="line">𓎀𓎁𓎂𓎃𓎄𓎅𓎆𓎇𓎈𓎉𓎊𓎋</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,144 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#4/6, 2048 code points in U+1338C-1F0E1).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#4/6, 2048 code points in U+1338C-1F0E1)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="Egyptian">
|
||||
<div class="line">𓎌𓎍𓎎𓎏𓎐𓎑𓎒𓎓𓎔𓎕𓎖𓎗𓎘𓎙𓎚𓎛𓎜𓎝𓎞𓎟𓎠𓎡𓎢𓎣𓎤𓎥𓎦𓎧𓎨𓎩𓎪𓎫</div>
|
||||
<div class="line">𓎬𓎭𓎮𓎯𓎰𓎱𓎲𓎳𓎴𓎵𓎶𓎷𓎸𓎹𓎺𓎻𓎼𓎽𓎾𓎿𓏀𓏁𓏂𓏃𓏄𓏅𓏆𓏇𓏈𓏉𓏊𓏋</div>
|
||||
<div class="line">𓏌𓏍𓏎𓏏𓏐𓏑𓏒𓏓𓏔𓏕𓏖𓏗𓏘𓏙𓏚𓏛𓏜𓏝𓏞𓏟𓏠𓏡𓏢𓏣𓏤𓏥𓏦𓏧𓏨𓏩𓏪𓏫</div>
|
||||
<div class="line">𓏬𓏭𓏮𓏯𓏰𓏱𓏲𓏳𓏴𓏵𓏶𓏷𓏸𓏹𓏺𓏻𓏼𓏽𓏾𓏿𓐀𓐁𓐂𓐃𓐄𓐅𓐆𓐇𓐈𓐉𓐊𓐋</div>
|
||||
<div class="line">𓐌𓐍𓐎𓐏𓐐𓐑𓐒𓐓𓐔𓐕𓐖𓐗𓐘𓐙𓐚𓐛𓐜𓐝𓐞𓐟𓐠𓐡𓐢𓐣𓐤𓐥𓐦𓐧𓐨𓐩𓐪𓐫</div>
|
||||
<div class="line">𓐬𓐭𓐮</div>
|
||||
</div>
|
||||
<div data-block="Anatolian">
|
||||
<div class="line">𔐀𔐁𔐂𔐃𔐄𔐅𔐆𔐇𔐈𔐉𔐊𔐋𔐌𔐍𔐎𔐏𔐐𔐑𔐒𔐓𔐔𔐕𔐖𔐗𔐘𔐙𔐚𔐛𔐜𔐝𔐞𔐟</div>
|
||||
<div class="line">𔐠𔐡𔐢𔐣𔐤𔐥𔐦𔐧𔐨𔐩𔐪𔐫𔐬𔐭𔐮𔐯𔐰𔐱𔐲𔐳𔐴𔐵𔐶𔐷𔐸𔐹𔐺𔐻𔐼𔐽𔐾𔐿</div>
|
||||
<div class="line">𔑀𔑁𔑂𔑃𔑄𔑅𔑆𔑇𔑈𔑉𔑊𔑋𔑌𔑍𔑎𔑏𔑐𔑑𔑒𔑓𔑔𔑕𔑖𔑗𔑘𔑙𔑚𔑛𔑜𔑝𔑞𔑟</div>
|
||||
<div class="line">𔑠𔑡𔑢𔑣𔑤𔑥𔑦𔑧𔑨𔑩𔑪𔑫𔑬𔑭𔑮𔑯𔑰𔑱𔑲𔑳𔑴𔑵𔑶𔑷𔑸𔑹𔑺𔑻𔑼𔑽𔑾𔑿</div>
|
||||
<div class="line">𔒀𔒁𔒂𔒃𔒄𔒅𔒆𔒇𔒈𔒉𔒊𔒋𔒌𔒍𔒎𔒏𔒐𔒑𔒒𔒓𔒔𔒕𔒖𔒗𔒘𔒙𔒚𔒛𔒜𔒝𔒞𔒟</div>
|
||||
<div class="line">𔒠𔒡𔒢𔒣𔒤𔒥𔒦𔒧𔒨𔒩𔒪𔒫𔒬𔒭𔒮𔒯𔒰𔒱𔒲𔒳𔒴𔒵𔒶𔒷𔒸𔒹𔒺𔒻𔒼𔒽𔒾𔒿</div>
|
||||
<div class="line">𔓀𔓁𔓂𔓃𔓄𔓅𔓆𔓇𔓈𔓉𔓊𔓋𔓌𔓍𔓎𔓏𔓐𔓑𔓒𔓓𔓔𔓕𔓖𔓗𔓘𔓙𔓚𔓛𔓜𔓝𔓞𔓟</div>
|
||||
<div class="line">𔓠𔓡𔓢𔓣𔓤𔓥𔓦𔓧𔓨𔓩𔓪𔓫𔓬𔓭𔓮𔓯𔓰𔓱𔓲𔓳𔓴𔓵𔓶𔓷𔓸𔓹𔓺𔓻𔓼𔓽𔓾𔓿</div>
|
||||
<div class="line">𔔀𔔁𔔂𔔃𔔄𔔅𔔆𔔇𔔈𔔉𔔊𔔋𔔌𔔍𔔎𔔏𔔐𔔑𔔒𔔓𔔔𔔕𔔖𔔗𔔘𔔙𔔚𔔛𔔜𔔝𔔞𔔟</div>
|
||||
<div class="line">𔔠𔔡𔔢𔔣𔔤𔔥𔔦𔔧𔔨𔔩𔔪𔔫𔔬𔔭𔔮𔔯𔔰𔔱𔔲𔔳𔔴𔔵𔔶𔔷𔔸𔔹𔔺𔔻𔔼𔔽𔔾𔔿</div>
|
||||
<div class="line">𔕀𔕁𔕂𔕃𔕄𔕅𔕆𔕇𔕈𔕉𔕊𔕋𔕌𔕍𔕎𔕏𔕐𔕑𔕒𔕓𔕔𔕕𔕖𔕗𔕘𔕙𔕚𔕛𔕜𔕝𔕞𔕟</div>
|
||||
<div class="line">𔕠𔕡𔕢𔕣𔕤𔕥𔕦𔕧𔕨𔕩𔕪𔕫𔕬𔕭𔕮𔕯𔕰𔕱𔕲𔕳𔕴𔕵𔕶𔕷𔕸𔕹𔕺𔕻𔕼𔕽𔕾𔕿</div>
|
||||
<div class="line">𔖀𔖁𔖂𔖃𔖄𔖅𔖆𔖇𔖈𔖉𔖊𔖋𔖌𔖍𔖎𔖏𔖐𔖑𔖒𔖓𔖔𔖕𔖖𔖗𔖘𔖙𔖚𔖛𔖜𔖝𔖞𔖟</div>
|
||||
<div class="line">𔖠𔖡𔖢𔖣𔖤𔖥𔖦𔖧𔖨𔖩𔖪𔖫𔖬𔖭𔖮𔖯𔖰𔖱𔖲𔖳𔖴𔖵𔖶𔖷𔖸𔖹𔖺𔖻𔖼𔖽𔖾𔖿</div>
|
||||
<div class="line">𔗀𔗁𔗂𔗃𔗄𔗅𔗆𔗇𔗈𔗉𔗊𔗋𔗌𔗍𔗎𔗏𔗐𔗑𔗒𔗓𔗔𔗕𔗖𔗗𔗘𔗙𔗚𔗛𔗜𔗝𔗞𔗟</div>
|
||||
<div class="line">𔗠𔗡𔗢𔗣𔗤𔗥𔗦𔗧𔗨𔗩𔗪𔗫𔗬𔗭𔗮𔗯𔗰𔗱𔗲𔗳𔗴𔗵𔗶𔗷𔗸𔗹𔗺𔗻𔗼𔗽𔗾𔗿</div>
|
||||
<div class="line">𔘀𔘁𔘂𔘃𔘄𔘅𔘆𔘇𔘈𔘉𔘊𔘋𔘌𔘍𔘎𔘏𔘐𔘑𔘒𔘓𔘔𔘕𔘖𔘗𔘘𔘙𔘚𔘛𔘜𔘝𔘞𔘟</div>
|
||||
<div class="line">𔘠𔘡𔘢𔘣𔘤𔘥𔘦𔘧𔘨𔘩𔘪𔘫𔘬𔘭𔘮𔘯𔘰𔘱𔘲𔘳𔘴𔘵𔘶𔘷𔘸𔘹𔘺𔘻𔘼𔘽𔘾𔘿</div>
|
||||
<div class="line">𔙀𔙁𔙂𔙃𔙄𔙅𔙆</div>
|
||||
</div>
|
||||
<div data-block="Ideographic">
|
||||
<div class="line">𖿠</div>
|
||||
</div>
|
||||
<div data-block="Tangut">
|
||||
<div class="line">𗀀𘟬𘠀𘫲</div>
|
||||
</div>
|
||||
<div data-block="Kana">
|
||||
<div class="line">𛀀𛀁</div>
|
||||
</div>
|
||||
<div data-block="Byzantine">
|
||||
<div class="line">𝀀𝀁𝀂𝀃𝀄𝀅𝀆𝀇𝀈𝀉𝀊𝀋𝀌𝀍𝀎𝀏𝀐𝀑𝀒𝀓𝀔𝀕𝀖𝀗𝀘𝀙𝀚𝀛𝀜𝀝𝀞𝀟</div>
|
||||
<div class="line">𝀠𝀡𝀢𝀣𝀤𝀥𝀦𝀧𝀨𝀩𝀪𝀫𝀬𝀭𝀮𝀯𝀰𝀱𝀲𝀳𝀴𝀵𝀶𝀷𝀸𝀹𝀺𝀻𝀼𝀽𝀾𝀿</div>
|
||||
<div class="line">𝁀𝁁𝁂𝁃𝁄𝁅𝁆𝁇𝁈𝁉𝁊𝁋𝁌𝁍𝁎𝁏𝁐𝁑𝁒𝁓𝁔𝁕𝁖𝁗𝁘𝁙𝁚𝁛𝁜𝁝𝁞𝁟</div>
|
||||
<div class="line">𝁠𝁡𝁢𝁣𝁤𝁥𝁦𝁧𝁨𝁩𝁪𝁫𝁬𝁭𝁮𝁯𝁰𝁱𝁲𝁳𝁴𝁵𝁶𝁷𝁸𝁹𝁺𝁻𝁼𝁽𝁾𝁿</div>
|
||||
<div class="line">𝂀𝂁𝂂𝂃𝂄𝂅𝂆𝂇𝂈𝂉𝂊𝂋𝂌𝂍𝂎𝂏𝂐𝂑𝂒𝂓𝂔𝂕𝂖𝂗𝂘𝂙𝂚𝂛𝂜𝂝𝂞𝂟</div>
|
||||
<div class="line">𝂠𝂡𝂢𝂣𝂤𝂥𝂦𝂧𝂨𝂩𝂪𝂫𝂬𝂭𝂮𝂯𝂰𝂱𝂲𝂳𝂴𝂵𝂶𝂷𝂸𝂹𝂺𝂻𝂼𝂽𝂾𝂿</div>
|
||||
<div class="line">𝃀𝃁𝃂𝃃𝃄𝃅𝃆𝃇𝃈𝃉𝃊𝃋𝃌𝃍𝃎𝃏𝃐𝃑𝃒𝃓𝃔𝃕𝃖𝃗𝃘𝃙𝃚𝃛𝃜𝃝𝃞𝃟</div>
|
||||
<div class="line">𝃠𝃡𝃢𝃣𝃤𝃥𝃦𝃧𝃨𝃩𝃪𝃫𝃬𝃭𝃮𝃯𝃰𝃱𝃲𝃳𝃴𝃵</div>
|
||||
</div>
|
||||
<div data-block="Musical">
|
||||
<div class="line">𝄀𝄁𝄂𝄃𝄄𝄅𝄆𝄇𝄈𝄉𝄊𝄋𝄌𝄍𝄎𝄏𝄐𝄑𝄒𝄓𝄔𝄕𝄖𝄗𝄘𝄙𝄚𝄛𝄜𝄝𝄞𝄟</div>
|
||||
<div class="line">𝄠𝄡𝄢𝄣𝄤𝄥𝄦𝄩𝄪𝄫𝄬𝄭𝄮𝄯𝄰𝄱𝄲𝄳𝄴𝄵𝄶𝄷𝄸𝄹𝄺𝄻𝄼𝄽𝄾𝄿𝅀𝅁</div>
|
||||
<div class="line">𝅂𝅃𝅄𝅅𝅆𝅇𝅈𝅉𝅊𝅋𝅌𝅍𝅎𝅏𝅐𝅑𝅒𝅓𝅔𝅕𝅖𝅗𝅘𝅙𝅚𝅛𝅜𝅝𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯</div>
|
||||
<div class="line">𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝅪𝅫𝅬𝆃𝆄𝆌𝆍𝆎𝆏𝆐𝆑𝆒𝆓𝆔𝆕𝆖𝆗𝆘𝆙𝆚𝆛𝆜𝆝𝆞𝆟𝆠𝆡𝆢𝆣</div>
|
||||
<div class="line">𝆤𝆥𝆦𝆧𝆨𝆩𝆮𝆯𝆰𝆱𝆲𝆳𝆴𝆵𝆶𝆷𝆸𝆹𝆺𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯𝇁𝇂𝇃𝇄𝇅𝇆𝇇</div>
|
||||
<div class="line">𝇈𝇉𝇊𝇋𝇌𝇍𝇎𝇏𝇐𝇑𝇒𝇓𝇔𝇕𝇖𝇗𝇘𝇙𝇚𝇛𝇜𝇝𝇞𝇟𝇠𝇡𝇢𝇣𝇤𝇥𝇦𝇧</div>
|
||||
<div class="line">𝇨</div>
|
||||
</div>
|
||||
<div data-block="Tai">
|
||||
<div class="line">𝌀𝌁𝌂𝌃𝌄𝌅𝌆𝌇𝌈𝌉𝌊𝌋𝌌𝌍𝌎𝌏𝌐𝌑𝌒𝌓𝌔𝌕𝌖𝌗𝌘𝌙𝌚𝌛𝌜𝌝𝌞𝌟</div>
|
||||
<div class="line">𝌠𝌡𝌢𝌣𝌤𝌥𝌦𝌧𝌨𝌩𝌪𝌫𝌬𝌭𝌮𝌯𝌰𝌱𝌲𝌳𝌴𝌵𝌶𝌷𝌸𝌹𝌺𝌻𝌼𝌽𝌾𝌿</div>
|
||||
<div class="line">𝍀𝍁𝍂𝍃𝍄𝍅𝍆𝍇𝍈𝍉𝍊𝍋𝍌𝍍𝍎𝍏𝍐𝍑𝍒𝍓𝍔𝍕𝍖</div>
|
||||
</div>
|
||||
<div data-block="Counting">
|
||||
<div class="line">𝍠𝍡𝍢𝍣𝍤𝍥𝍦𝍧𝍨𝍩𝍪𝍫𝍬𝍭𝍮𝍯𝍰𝍱</div>
|
||||
</div>
|
||||
<div data-block="Sutton">
|
||||
<div class="line">𝠀𝠁𝠂𝠃𝠄𝠅𝠆𝠇𝠈𝠉𝠊𝠋𝠌𝠍𝠎𝠏𝠐𝠑𝠒𝠓𝠔𝠕𝠖𝠗𝠘𝠙𝠚𝠛𝠜𝠝𝠞𝠟</div>
|
||||
<div class="line">𝠠𝠡𝠢𝠣𝠤𝠥𝠦𝠧𝠨𝠩𝠪𝠫𝠬𝠭𝠮𝠯𝠰𝠱𝠲𝠳𝠴𝠵𝠶𝠷𝠸𝠹𝠺𝠻𝠼𝠽𝠾𝠿</div>
|
||||
<div class="line">𝡀𝡁𝡂𝡃𝡄𝡅𝡆𝡇𝡈𝡉𝡊𝡋𝡌𝡍𝡎𝡏𝡐𝡑𝡒𝡓𝡔𝡕𝡖𝡗𝡘𝡙𝡚𝡛𝡜𝡝𝡞𝡟</div>
|
||||
<div class="line">𝡠𝡡𝡢𝡣𝡤𝡥𝡦𝡧𝡨𝡩𝡪𝡫𝡬𝡭𝡮𝡯𝡰𝡱𝡲𝡳𝡴𝡵𝡶𝡷𝡸𝡹𝡺𝡻𝡼𝡽𝡾𝡿</div>
|
||||
<div class="line">𝢀𝢁𝢂𝢃𝢄𝢅𝢆𝢇𝢈𝢉𝢊𝢋𝢌𝢍𝢎𝢏𝢐𝢑𝢒𝢓𝢔𝢕𝢖𝢗𝢘𝢙𝢚𝢛𝢜𝢝𝢞𝢟</div>
|
||||
<div class="line">𝢠𝢡𝢢𝢣𝢤𝢥𝢦𝢧𝢨𝢩𝢪𝢫𝢬𝢭𝢮𝢯𝢰𝢱𝢲𝢳𝢴𝢵𝢶𝢷𝢸𝢹𝢺𝢻𝢼𝢽𝢾𝢿</div>
|
||||
<div class="line">𝣀𝣁𝣂𝣃𝣄𝣅𝣆𝣇𝣈𝣉𝣊𝣋𝣌𝣍𝣎𝣏𝣐𝣑𝣒𝣓𝣔𝣕𝣖𝣗𝣘𝣙𝣚𝣛𝣜𝣝𝣞𝣟</div>
|
||||
<div class="line">𝣠𝣡𝣢𝣣𝣤𝣥𝣦𝣧𝣨𝣩𝣪𝣫𝣬𝣭𝣮𝣯𝣰𝣱𝣲𝣳𝣴𝣵𝣶𝣷𝣸𝣹𝣺𝣻𝣼𝣽𝣾𝣿</div>
|
||||
<div class="line">𝤀𝤁𝤂𝤃𝤄𝤅𝤆𝤇𝤈𝤉𝤊𝤋𝤌𝤍𝤎𝤏𝤐𝤑𝤒𝤓𝤔𝤕𝤖𝤗𝤘𝤙𝤚𝤛𝤜𝤝𝤞𝤟</div>
|
||||
<div class="line">𝤠𝤡𝤢𝤣𝤤𝤥𝤦𝤧𝤨𝤩𝤪𝤫𝤬𝤭𝤮𝤯𝤰𝤱𝤲𝤳𝤴𝤵𝤶𝤷𝤸𝤹𝤺𝤻𝤼𝤽𝤾𝤿</div>
|
||||
<div class="line">𝥀𝥁𝥂𝥃𝥄𝥅𝥆𝥇𝥈𝥉𝥊𝥋𝥌𝥍𝥎𝥏𝥐𝥑𝥒𝥓𝥔𝥕𝥖𝥗𝥘𝥙𝥚𝥛𝥜𝥝𝥞𝥟</div>
|
||||
<div class="line">𝥠𝥡𝥢𝥣𝥤𝥥𝥦𝥧𝥨𝥩𝥪𝥫𝥬𝥭𝥮𝥯𝥰𝥱𝥲𝥳𝥴𝥵𝥶𝥷𝥸𝥹𝥺𝥻𝥼𝥽𝥾𝥿</div>
|
||||
<div class="line">𝦀𝦁𝦂𝦃𝦄𝦅𝦆𝦇𝦈𝦉𝦊𝦋𝦌𝦍𝦎𝦏𝦐𝦑𝦒𝦓𝦔𝦕𝦖𝦗𝦘𝦙𝦚𝦛𝦜𝦝𝦞𝦟</div>
|
||||
<div class="line">𝦠𝦡𝦢𝦣𝦤𝦥𝦦𝦧𝦨𝦩𝦪𝦫𝦬𝦭𝦮𝦯𝦰𝦱𝦲𝦳𝦴𝦵𝦶𝦷𝦸𝦹𝦺𝦻𝦼𝦽𝦾𝦿</div>
|
||||
<div class="line">𝧀𝧁𝧂𝧃𝧄𝧅𝧆𝧇𝧈𝧉𝧊𝧋𝧌𝧍𝧎𝧏𝧐𝧑𝧒𝧓𝧔𝧕𝧖𝧗𝧘𝧙𝧚𝧛𝧜𝧝𝧞𝧟</div>
|
||||
<div class="line">𝧠𝧡𝧢𝧣𝧤𝧥𝧦𝧧𝧨𝧩𝧪𝧫𝧬𝧭𝧮𝧯𝧰𝧱𝧲𝧳𝧴𝧵𝧶𝧷𝧸𝧹𝧺𝧻𝧼𝧽𝧾𝧿</div>
|
||||
<div class="line">𝨷𝨸𝨹𝨺𝩭𝩮𝩯𝩰𝩱𝩲𝩳𝩴𝩶𝩷𝩸𝩹𝩺𝩻𝩼𝩽𝩾𝩿𝪀𝪁𝪂𝪃𝪅𝪆𝪇𝪈𝪉𝪊</div>
|
||||
<div class="line">𝪋</div>
|
||||
</div>
|
||||
<div data-block="Mahjong">
|
||||
<div class="line">🀀🀁🀂🀃🀄🀅🀆🀇🀈🀉🀊🀋🀌🀍🀎🀏🀐🀑🀒🀓🀔🀕🀖🀗🀘🀙🀚🀛🀜🀝🀞🀟</div>
|
||||
<div class="line">🀠🀡🀢🀣🀤🀥🀦🀧🀨🀩🀪🀫</div>
|
||||
</div>
|
||||
<div data-block="Domino">
|
||||
<div class="line">🀰🀱🀲🀳🀴🀵🀶🀷🀸🀹🀺🀻🀼🀽🀾🀿🁀🁁🁂🁃🁄🁅🁆🁇🁈🁉🁊🁋🁌🁍🁎🁏</div>
|
||||
<div class="line">🁐🁑🁒🁓🁔🁕🁖🁗🁘🁙🁚🁛🁜🁝🁞🁟🁠🁡🁢🁣🁤🁥🁦🁧🁨🁩🁪🁫🁬🁭🁮🁯</div>
|
||||
<div class="line">🁰🁱🁲🁳🁴🁵🁶🁷🁸🁹🁺🁻🁼🁽🁾🁿🂀🂁🂂🂃🂄🂅🂆🂇🂈🂉🂊🂋🂌🂍🂎🂏</div>
|
||||
<div class="line">🂐🂑🂒🂓</div>
|
||||
</div>
|
||||
<div data-block="Playing">
|
||||
<div class="line">🂠🂡🂢🂣🂤🂥🂦🂧🂨🂩🂪🂫🂬🂭🂮🂱🂲🂳🂴🂵🂶🂷🂸🂹🂺🂻🂼🂽🂾🂿🃁🃂</div>
|
||||
<div class="line">🃃🃄🃅🃆🃇🃈🃉🃊🃋🃌🃍🃎🃏🃑🃒🃓🃔🃕🃖🃗🃘🃙🃚🃛🃜🃝🃞🃟🃠🃡</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,133 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#5/6, 2048 code points in U+1F0E2-2F9EA).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#5/6, 2048 code points in U+1F0E2-2F9EA)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="Playing">
|
||||
<div class="line">🃢🃣🃤🃥🃦🃧🃨🃩🃪🃫🃬🃭🃮🃯🃰🃱🃲🃳🃴🃵</div>
|
||||
</div>
|
||||
<div data-block="Enclosed">
|
||||
<div class="line">🄀🄁🄂🄃🄄🄅🄆🄇🄈🄉🄊🄋🄌🄐🄑🄒🄓🄔🄕🄖🄗🄘🄙🄚🄛🄜🄝🄞🄟🄠🄡🄢</div>
|
||||
<div class="line">🄣🄤🄥🄦🄧🄨🄩🄪🄫🄬🄭🄮🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃</div>
|
||||
<div class="line">🅄🅅🅆🅇🅈🅉🅊🅋🅌🅍🅎🅏🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣</div>
|
||||
<div class="line">🅤🅥🅦🅧🅨🅩🅪🅫🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇</div>
|
||||
<div class="line">🆈🆉🆊🆋🆌🆍🆎🆏🆐🆑🆒🆓🆔🆕🆖🆗🆘🆙🆚🆛🆜🆝🆞🆟🆠🆡🆢🆣🆤🆥🆦🆧</div>
|
||||
<div class="line">🆨🆩🆪🆫🆬🇦🇧🇨🇩🇪🇫🇬🇭🇮🇯🇰🇱🇲🇳🇴🇵🇶🇷🇸🇹🇺🇻🇼🇽🇾🇿🈂</div>
|
||||
<div class="line">🈐🈑🈒🈓🈔🈕🈖🈗🈘🈙🈚🈛🈜🈝🈞🈟🈠🈡🈢🈣🈤🈥🈦🈧🈨🈩🈪🈫🈬🈭🈮🈯</div>
|
||||
<div class="line">🈰🈱🈲🈳🈴🈵🈶🈷🈸🈹🈺🈻🉀🉁🉂🉃🉄🉅🉆🉇🉈🉐🉑</div>
|
||||
</div>
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">🌀🌁🌂🌃🌄🌅🌆🌇🌈🌉🌊🌋🌌🌍🌎🌏🌐🌑🌒🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜🌝🌞🌟</div>
|
||||
<div class="line">🌠🌡🌢🌣🌤🌥🌦🌧🌨🌩🌪🌫🌬🌭🌮🌯🌰🌱🌲🌳🌴🌵🌶🌷🌸🌹🌺🌻🌼🌽🌾🌿</div>
|
||||
<div class="line">🍀🍁🍂🍃🍄🍅🍆🍇🍈🍉🍊🍋🍌🍍🍎🍏🍐🍑🍒🍓🍔🍕🍖🍗🍘🍙🍚🍛🍜🍝🍞🍟</div>
|
||||
<div class="line">🍠🍡🍢🍣🍤🍥🍦🍧🍨🍩🍪🍫🍬🍭🍮🍯🍰🍱🍲🍳🍴🍵🍶🍷🍸🍹🍺🍻🍼🍽🍾🍿</div>
|
||||
<div class="line">🎀🎁🎂🎃🎄🎅🎆🎇🎈🎉🎊🎋🎌🎍🎎🎏🎐🎑🎒🎓🎔🎕🎖🎗🎘🎙🎚🎛🎜🎝🎞🎟</div>
|
||||
<div class="line">🎠🎡🎢🎣🎤🎥🎦🎧🎨🎩🎪🎫🎬🎭🎮🎯🎰🎱🎲🎳🎴🎵🎶🎷🎸🎹🎺🎻🎼🎽🎾🎿</div>
|
||||
<div class="line">🏀🏁🏂🏃🏄🏅🏆🏇🏈🏉🏊🏋🏌🏍🏎🏏🏐🏑🏒🏓🏔🏕🏖🏗🏘🏙🏚🏛🏜🏝🏞🏟</div>
|
||||
<div class="line">🏠🏡🏢🏣🏤🏥🏦🏧🏨🏩🏪🏫🏬🏭🏮🏯🏰🏱🏲🏳🏴🏵🏶🏷🏸🏹🏺🏻🏼🏽🏾🏿</div>
|
||||
<div class="line">🐀🐁🐂🐃🐄🐅🐆🐇🐈🐉🐊🐋🐌🐍🐎🐏🐐🐑🐒🐓🐔🐕🐖🐗🐘🐙🐚🐛🐜🐝🐞🐟</div>
|
||||
<div class="line">🐠🐡🐢🐣🐤🐥🐦🐧🐨🐩🐪🐫🐬🐭🐮🐯🐰🐱🐲🐳🐴🐵🐶🐷🐸🐹🐺🐻🐼🐽🐾🐿</div>
|
||||
<div class="line">👀👁👂👃👄👅👆👇👈👉👊👋👌👍👎👏👐👑👒👓👔👕👖👗👘👙👚👛👜👝👞👟</div>
|
||||
<div class="line">👠👡👢👣👤👥👦👧👨👩👪👫👬👭👮👯👰👱👲👳👴👵👶👷👸👹👺👻👼👽👾👿</div>
|
||||
<div class="line">💀💁💂💃💄💅💆💇💈💉💊💋💌💍💎💏💐💑💒💓💔💕💖💗💘💙💚💛💜💝💞💟</div>
|
||||
<div class="line">💠💡💢💣💤💥💦💧💨💩💪💫💬💭💮💯💰💱💲💳💴💵💶💷💸💹💺💻💼💽💾💿</div>
|
||||
<div class="line">📀📁📂📃📄📅📆📇📈📉📊📋📌📍📎📏📐📑📒📓📔📕📖📗📘📙📚📛📜📝📞📟</div>
|
||||
<div class="line">📠📡📢📣📤📥📦📧📨📩📪📫📬📭📮📯📰📱📲📳📴📵📶📷📸📹📺📻📼📽📾📿</div>
|
||||
<div class="line">🔀🔁🔂🔃🔄🔅🔆🔇🔈🔉🔊🔋🔌🔍🔎🔏🔐🔑🔒🔓🔔🔕🔖🔗🔘🔙🔚🔛🔜🔝🔞🔟</div>
|
||||
<div class="line">🔠🔡🔢🔣🔤🔥🔦🔧🔨🔩🔪🔫🔬🔭🔮🔯🔰🔱🔲🔳🔴🔵🔶🔷🔸🔹🔺🔻🔼🔽🔾🔿</div>
|
||||
<div class="line">🕀🕁🕂🕃🕄🕅🕆🕇🕈🕉🕊🕋🕌🕍🕎🕏🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕜🕝🕞🕟</div>
|
||||
<div class="line">🕠🕡🕢🕣🕤🕥🕦🕧🕨🕩🕪🕫🕬🕭🕮🕯🕰🕱🕲🕳🕴🕵🕶🕷🕸🕹🕺🕻🕼🕽🕾🕿</div>
|
||||
<div class="line">🖀🖁🖂🖃🖄🖅🖆🖇🖈🖉🖊🖋🖌🖍🖎🖏🖐🖑🖒🖓🖔🖕🖖🖗🖘🖙🖚🖛🖜🖝🖞🖟</div>
|
||||
<div class="line">🖠🖡🖢🖣🖤🖥🖦🖧🖨🖩🖪🖫🖬🖭🖮🖯🖰🖱🖲🖳🖴🖵🖶🖷🖸🖹🖺🖻🖼🖽🖾🖿</div>
|
||||
<div class="line">🗀🗁🗂🗃🗄🗅🗆🗇🗈🗉🗊🗋🗌🗍🗎🗏🗐🗑🗒🗓🗔🗕🗖🗗🗘🗙🗚🗛🗜🗝🗞🗟</div>
|
||||
<div class="line">🗠🗡🗢🗣🗤🗥🗦🗧🗨🗩🗪🗫🗬🗭🗮🗯🗰🗱🗲🗳🗴🗵🗶🗷🗸🗹🗺🗻🗼🗽🗾🗿</div>
|
||||
</div>
|
||||
<div data-block="Emoticons">
|
||||
<div class="line">😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟</div>
|
||||
<div class="line">😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷😸😹😺😻😼😽😾😿</div>
|
||||
<div class="line">🙀🙁🙂🙃🙄🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏</div>
|
||||
</div>
|
||||
<div data-block="Ornamental">
|
||||
<div class="line">🙐🙑🙒🙓🙔🙕🙖🙗🙘🙙🙚🙛🙜🙝🙞🙟🙠🙡🙢🙣🙤🙥🙦🙧🙨🙩🙪🙫🙬🙭🙮🙯</div>
|
||||
<div class="line">🙰🙱🙲🙳🙴🙵🙶🙷🙸🙹🙺🙻🙼🙽🙾🙿</div>
|
||||
</div>
|
||||
<div data-block="Transport">
|
||||
<div class="line">🚀🚁🚂🚃🚄🚅🚆🚇🚈🚉🚊🚋🚌🚍🚎🚏🚐🚑🚒🚓🚔🚕🚖🚗🚘🚙🚚🚛🚜🚝🚞🚟</div>
|
||||
<div class="line">🚠🚡🚢🚣🚤🚥🚦🚧🚨🚩🚪🚫🚬🚭🚮🚯🚰🚱🚲🚳🚴🚵🚶🚷🚸🚹🚺🚻🚼🚽🚾🚿</div>
|
||||
<div class="line">🛀🛁🛂🛃🛄🛅🛆🛇🛈🛉🛊🛋🛌🛍🛎🛏🛐🛑🛒🛠🛡🛢🛣🛤🛥🛦🛧🛨🛩🛪🛫🛬</div>
|
||||
<div class="line">🛰🛱🛲🛳🛴🛵🛶</div>
|
||||
</div>
|
||||
<div data-block="Alchemical">
|
||||
<div class="line">🜀🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊🜋🜌🜍🜎🜏🜐🜑🜒🜓🜔🜕🜖🜗🜘🜙🜚🜛🜜🜝🜞🜟</div>
|
||||
<div class="line">🜠🜡🜢🜣🜤🜥🜦🜧🜨🜩🜪🜫🜬🜭🜮🜯🜰🜱🜲🜳🜴🜵🜶🜷🜸🜹🜺🜻🜼🜽🜾🜿</div>
|
||||
<div class="line">🝀🝁🝂🝃🝄🝅🝆🝇🝈🝉🝊🝋🝌🝍🝎🝏🝐🝑🝒🝓🝔🝕🝖🝗🝘🝙🝚🝛🝜🝝🝞🝟</div>
|
||||
<div class="line">🝠🝡🝢🝣🝤🝥🝦🝧🝨🝩🝪🝫🝬🝭🝮🝯🝰🝱🝲🝳</div>
|
||||
</div>
|
||||
<div data-block="Geometric">
|
||||
<div class="line">🞀🞁🞂🞃🞄🞅🞆🞇🞈🞉🞊🞋🞌🞍🞎🞏🞐🞑🞒🞓🞔🞕🞖🞗🞘🞙🞚🞛🞜🞝🞞🞟</div>
|
||||
<div class="line">🞠🞡🞢🞣🞤🞥🞦🞧🞨🞩🞪🞫🞬🞭🞮🞯🞰🞱🞲🞳🞴🞵🞶🞷🞸🞹🞺🞻🞼🞽🞾🞿</div>
|
||||
<div class="line">🟀🟁🟂🟃🟄🟅🟆🟇🟈🟉🟊🟋🟌🟍🟎🟏🟐🟑🟒🟓🟔</div>
|
||||
</div>
|
||||
<div data-block="Supplemental">
|
||||
<div class="line">🤐🤑🤒🤓🤔🤕🤖🤗🤘🤙🤚🤛🤜🤝🤞🤠🤡🤢🤣🤤🤥🤦🤧🤰🤳🤴🤵🤶🤷🤸🤹🤺</div>
|
||||
<div class="line">🤻🤼🤽🤾🥀🥁🥂🥃🥄🥅🥆🥇🥈🥉🥊🥋🥐🥑🥒🥓🥔🥕🥖🥗🥘🥙🥚🥛🥜🥝🥞🦀</div>
|
||||
<div class="line">🦁🦂🦃🦄🦅🦆🦇🦈🦉🦊🦋🦌🦍🦎🦏🦐🦑🧀</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">𠀀𪛖𪜀𫜴𫝀𫠝𫠠𬺡丽丸乁𠄢你侮侻倂偺備僧像㒞𠘺免兔兤具𠔜㒹內再𠕋冗</div>
|
||||
<div class="line">冤仌冬况𩇟凵刃㓟刻剆割剷㔕勇勉勤勺包匆北卉卑博即卽卿卿卿𠨬灰及叟</div>
|
||||
<div class="line">𠭣叫叱吆咞吸呈周咢哶唐啓啣善善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報</div>
|
||||
<div class="line">墬𡓤売壷夆多夢奢𡚨𡛪姬娛娧姘婦㛮㛼嬈嬾嬾𡧈寃寘寧寳𡬘寿将当尢㞁屠</div>
|
||||
<div class="line">屮峀岍𡷤嵃𡷦嵮嵫嵼巡巢㠯巽帨帽幩㡢𢆃㡼庰庳庶廊𪎒廾𢌱𢌱舁弢弢㣇𣊸</div>
|
||||
<div class="line">𦇚形彫㣣徚忍志忹悁㤺㤜悔𢛔惇慈慌慎慌慺憎憲憤憯懞懲懶成戛扝抱拔捐</div>
|
||||
<div class="line">𢬌挽拼捨掃揤𢯱搢揅掩㨮摩摾撝摷㩬敏敬𣀊旣書晉㬙暑㬈㫤冒冕最暜肭䏙</div>
|
||||
<div class="line">朗望朡杞杓𣏃㭉柺枅桒梅𣑭梎栟椔㮝楂榣槪檨𣚣櫛㰘次𣢧歔㱎歲殟殺殻𣪍</div>
|
||||
<div class="line">𡴋𣫺汎𣲼沿泍汧洖派海流浩浸涅𣴞洴港湮㴳滋滇𣻑淹潮𣽞𣾎濆瀹瀞瀛㶖灊</div>
|
||||
<div class="line">災灷炭𠔥煅𤉣熜𤎫爨爵牐𤘈犀犕𤜵𤠔獺王㺬玥㺸㺸瑇瑜瑱璅瓊㼛甤𤰶甾𤲒</div>
|
||||
<div class="line">異𢆟瘐𤾡𤾸𥁄㿼䀈直𥃳𥃲𥄙𥄳眞真真睊䀹瞋䁆䂖𥐝硎碌磌䃣𥘦祖𥚚𥛅福秫</div>
|
||||
<div class="line">䄯穀穊穏𥥼𥪧𥪧竮䈂𥮫篆築䈧𥲀糒䊠糨糣紀𥾆絣䌁緇縂繅䌴𦈨𦉇䍙𦋙罺𦌾</div>
|
||||
<div class="line">羕翺者𦓚𦔣聠𦖨聰𣍟䏕育脃䐋脾媵𦞧𦞵𣎓𣎜舁舄辞䑫芑芋芝劳花芳芽苦𦬼</div>
|
||||
<div class="line">若茝荣莭茣莽菧著荓菊菌菜𦰶𦵫𦳕䔫蓱蓳蔖𧏊蕤𦼬䕝䕡𦾱𧃒䕫虐虜虧虩蚩</div>
|
||||
<div class="line">蚈蜎蛢蝹蜨蝫螆䗗蟡蠁䗹衠衣𧙧裗裞䘵裺㒻𧢮𧥦䚾䛇誠諭變豕𧲨貫賁贛起</div>
|
||||
<div class="line">𧼯𠠄跋趼跰𠣞軔輸𨗒𨗭邔郱鄑𨜮鄛鈸鋗鋘鉼</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,49 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=U (#6/6, 51 code points in U+2F9EB-2FA1D).</title>
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=U (#6/6, 51 code points in U+2F9EB-2FA1D)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="U" class="test">
|
||||
<div data-block="CJK">
|
||||
<div class="line">鏹鐕𨯺開䦕閷𨵷䧦雃嶲霣𩅅𩈚䩮䩶韠𩐊䪲𩒖頋頋頩𩖶飢䬳餩馧駂駾䯎𩬰鬒</div>
|
||||
<div class="line">鱀鳽䳎䳭鵧𪃎䳸𪄅𪈎𪊑麻䵖黹黾鼅鼏鼖鼻𪘀</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,59 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=Tr (47 code points in U+2329-FFE3).</title>
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=Tr (47 code points in U+2329-FFE3)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="Tr" class="test">
|
||||
<div data-block="Miscellaneous">
|
||||
<div class="line">〈〉</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰</div>
|
||||
</div>
|
||||
<div data-block="Katakana">
|
||||
<div class="line">゠ー</div>
|
||||
</div>
|
||||
<div data-block="Small">
|
||||
<div class="line">﹙﹚﹛﹜﹝﹞</div>
|
||||
</div>
|
||||
<div data-block="Halfwidth">
|
||||
<div class="line">():;[]_{|}~⦅⦆ ̄</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,73 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: Test orientation of characters where vo=Tu (147 code points in U+3001-1F201).</title>
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="Test orientation of characters where vo=Tu (147 code points in U+3001-1F201)">
|
||||
<meta name="flags" content="dom">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<div data-vo="Tu" class="test">
|
||||
<div data-block="CJK">
|
||||
<div class="line">、。</div>
|
||||
</div>
|
||||
<div data-block="Hiragana">
|
||||
<div class="line">ぁぃぅぇぉっゃゅょゎゕゖ゛゜</div>
|
||||
</div>
|
||||
<div data-block="Katakana">
|
||||
<div class="line">ァィゥェォッャュョヮヵヶ</div>
|
||||
</div>
|
||||
<div data-block="Bopomofo">
|
||||
<div class="line">ㄧ</div>
|
||||
</div>
|
||||
<div data-block="Katakana">
|
||||
<div class="line">ㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ</div>
|
||||
</div>
|
||||
<div data-block="CJK">
|
||||
<div class="line">㌀㌁㌂㌃㌄㌅㌆㌇㌈㌉㌊㌋㌌㌍㌎㌏㌐㌑㌒㌓㌔㌕㌖㌗㌘㌙㌚㌛㌜㌝㌞㌟</div>
|
||||
<div class="line">㌠㌡㌢㌣㌤㌥㌦㌧㌨㌩㌪㌫㌬㌭㌮㌯㌰㌱㌲㌳㌴㌵㌶㌷㌸㌹㌺㌻㌼㌽㌾㌿</div>
|
||||
<div class="line">㍀㍁㍂㍃㍄㍅㍆㍇㍈㍉㍊㍋㍌㍍㍎㍏㍐㍑㍒㍓㍔㍕㍖㍗㍻㍼㍽㍾㍿</div>
|
||||
</div>
|
||||
<div data-block="Small">
|
||||
<div class="line">﹐﹑﹒</div>
|
||||
</div>
|
||||
<div data-block="Halfwidth">
|
||||
<div class="line">!,.?</div>
|
||||
</div>
|
||||
<div data-block="Enclosed">
|
||||
<div class="line">🈀🈁</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -3,7 +3,6 @@ Generators
|
|||
|
||||
Following test files are generated by the programs in this directory:
|
||||
* orthogonal-parent-shrink-to-fit-001
|
||||
* text-orientation-script-001
|
||||
|
||||
## Setup
|
||||
|
||||
|
|
|
@ -9,22 +9,12 @@ var argv = minimist(process.argv.slice(2));
|
|||
|
||||
gulp.task("default", [
|
||||
"orthogonal-parent-shrink-to-fit",
|
||||
"text-orientation",
|
||||
]);
|
||||
|
||||
gulp.task("test", ["browser-sync", "watch"]);
|
||||
|
||||
gulp.task("watch", function () {
|
||||
gulp.watch("orthogonal-parent-shrink-to-fit.ejs", ["orthogonal-parent-shrink-to-fit"]);
|
||||
gulp.watch(
|
||||
[
|
||||
"text-orientation-ref.ejs",
|
||||
"text-orientation-script.ejs",
|
||||
"text-orientation-generator.js",
|
||||
"unicode-data.js",
|
||||
],
|
||||
["text-orientation"])
|
||||
.on("change", file => delete require.cache[require.resolve(file.path)]);
|
||||
});
|
||||
|
||||
gulp.task("browser-sync", function () {
|
||||
|
@ -59,14 +49,6 @@ gulp.task("server", function () {
|
|||
|
||||
gulpTaskFromTemplateWithAffixes("orthogonal-parent-shrink-to-fit", "-001", -1, 24);
|
||||
|
||||
gulp.task("text-orientation", function () {
|
||||
var orientation = require("./text-orientation-generator.js");
|
||||
return Promise.all([
|
||||
orientation.generate(argv),
|
||||
orientation.generateRefTest(argv),
|
||||
]).then(reload);
|
||||
});
|
||||
|
||||
gulp.task("update", function () {
|
||||
const unicodeData = require('./unicode-data.js');
|
||||
unicodeData.copyToLocal();
|
||||
|
|
|
@ -1,190 +0,0 @@
|
|||
// This is a node.js program to generate text-orientation-script test files.
|
||||
'use strict';
|
||||
|
||||
(function (exports) {
|
||||
var ejs = require("ejs");
|
||||
var fs = require("fs");
|
||||
var unicodeData = require("./unicode-data.js");
|
||||
|
||||
class Generator {
|
||||
constructor(rangesByVO, gc, blocks) {
|
||||
this.rangesByVO = rangesByVO;
|
||||
this.gc = gc;
|
||||
this.blocks = blocks;
|
||||
this.charactersPerLine = 32;
|
||||
}
|
||||
generate(argv) {
|
||||
var codePointsByVO = {};
|
||||
var gc = this.gc;
|
||||
var skipFunc = this.createSkipFunc(argv.noskip);
|
||||
for (var value in this.rangesByVO)
|
||||
codePointsByVO[value] = unicodeData.codePointsFromRanges(this.rangesByVO[value], skipFunc);
|
||||
|
||||
this.codePointsByVO = codePointsByVO;
|
||||
var template = fs.readFileSync("text-orientation-script.ejs", "utf-8");
|
||||
this.template = ejs.compile(template);
|
||||
|
||||
if (!argv.nocombo)
|
||||
this.generateFile();
|
||||
if (argv.nochild)
|
||||
return;
|
||||
|
||||
var pageSize = this.charactersPerLine * 64;
|
||||
var fileIndex = 0;
|
||||
for (var vo in codePointsByVO) {
|
||||
var codePoints = codePointsByVO[vo];
|
||||
var limit = codePoints.length;
|
||||
var pages = Math.ceil(limit / pageSize);
|
||||
for (var min = 0, page = 1; min < limit; ++page, ++fileIndex) {
|
||||
var nextLimit = Math.min(limit, min + pageSize);
|
||||
this.codePointsByVO = {};
|
||||
this.codePointsByVO[vo] = codePoints.slice(min, nextLimit);
|
||||
this.generateFile(vo, fileIndex, page, pages);
|
||||
min = nextLimit;
|
||||
}
|
||||
}
|
||||
}
|
||||
generateFile(vo, fileIndex, page, pages) {
|
||||
var path = "../../text-orientation-script-001";
|
||||
this.title = "Test orientation of characters";
|
||||
this.flags = "dom";
|
||||
// if (fileIndex)
|
||||
// path += "-" + padZero(fileIndex, 3);
|
||||
if (fileIndex === undefined)
|
||||
this.flags += " combo";
|
||||
else
|
||||
path += affixFromIndex(fileIndex);
|
||||
if (vo) {
|
||||
this.title += " where vo=" + vo;
|
||||
var codePoints = this.codePointsByVO[vo];
|
||||
var rangeText = codePoints.length + " code points in U+" +
|
||||
unicodeData.toHex(codePoints[0]) + "-" +
|
||||
unicodeData.toHex(codePoints[codePoints.length - 1]);
|
||||
if (page && pages > 1)
|
||||
rangeText = "#" + page + "/" + pages + ", " + rangeText;
|
||||
this.title += " (" + rangeText + ")";
|
||||
}
|
||||
path += ".html";
|
||||
console.log("Writing " + path + ": " + this.title);
|
||||
var output = fs.openSync(path, "w");
|
||||
fs.writeSync(output, this.template(this));
|
||||
fs.closeSync(output);
|
||||
}
|
||||
generateRefTest() {
|
||||
var template = fs.readFileSync("text-orientation-ref.ejs", "utf-8");
|
||||
this.template = ejs.compile(template);
|
||||
this.codePointRanges = [
|
||||
[0x0020, 0x007E],
|
||||
[0x3000, 0x30FF],
|
||||
[0x4E00, 0x4E1F],
|
||||
[0xFF01, 0xFF60],
|
||||
];
|
||||
var writingModes = [
|
||||
{ key: "vlr", value: "vertical-lr" },
|
||||
{ key: "vrl", value: "vertical-rl" },
|
||||
];
|
||||
var voByCodePoint = unicodeData.arrayFromRangesByValue(this.rangesByVO);
|
||||
var R = 0x0041, U = 0x56FD;
|
||||
var textOrientations = [
|
||||
{ value: "mixed", ref: function (ch) { return voByCodePoint[ch] == "R" ? R : U; } },
|
||||
{ value: "sideways", ref: function (ch) { return R; } },
|
||||
{ value: "upright", ref: function (ch) { return U; } },
|
||||
];
|
||||
var self = this;
|
||||
writingModes.forEach(function (writingMode) {
|
||||
self.writingMode = writingMode.value;
|
||||
textOrientations.forEach(function (textOrientation) {
|
||||
self.textOrientation = textOrientation.value;
|
||||
self.title = "writing-mode: " + self.writingMode + "; text-orientation: " + self.textOrientation;
|
||||
var key = textOrientation.value + "-" + writingMode.key;
|
||||
self.generateRefTestFile(key, false);
|
||||
self.generateRefTestFile(key, true, textOrientation.ref);
|
||||
});
|
||||
});
|
||||
}
|
||||
generateRefTestFile(key, isReference, mapCodePointForRendering) {
|
||||
var name = "text-orientation-" + key + "-100";
|
||||
var path = name + ".html";
|
||||
var reference = name + "-ref.html";
|
||||
if (isReference) {
|
||||
path = "../../" + reference;
|
||||
this.reference = null;
|
||||
} else {
|
||||
path = "../../" + path;
|
||||
this.reference = reference;
|
||||
}
|
||||
console.log("Writing " + path + ": " + this.title);
|
||||
var skipFunc0 = this.createSkipFunc(true);
|
||||
// Workaround CSS test harness bug that double-escape < and >.
|
||||
var skipFunc = c => c == 0x3C || c == 0x3E || skipFunc0(c);
|
||||
this.codePointsFromRangeForRendering = mapCodePointForRendering
|
||||
? range => unicodeData.codePointsFromRanges(range, skipFunc).map(mapCodePointForRendering)
|
||||
: range => unicodeData.codePointsFromRanges(range, skipFunc);
|
||||
var output = fs.openSync(path, "w");
|
||||
fs.writeSync(output, this.template(this));
|
||||
fs.closeSync(output);
|
||||
}
|
||||
headingFromRange(range) {
|
||||
return "U+" + unicodeData.toHex(range[0]) + "-" + unicodeData.toHex(range[range.length - 1]);
|
||||
}
|
||||
createSkipFunc(noSkip) {
|
||||
var gc = this.gc;
|
||||
function skipCombiningMarks(code) {
|
||||
return unicodeData.isSkipGeneralCategory(code, gc) ||
|
||||
code == 0x0E33 || // Thai U+0E33 is class AM: https://www.microsoft.com/typography/OpenTypeDev/thai/intro.htm
|
||||
code == 0x0EB3; // Lao U+0EB3 is class AM: https://www.microsoft.com/typography/OpenTypeDev/lao/intro.htm
|
||||
}
|
||||
if (noSkip)
|
||||
return skipCombiningMarks;
|
||||
return function (code) { return unicodeData.isCJKMiddle(code) || skipCombiningMarks(code); };
|
||||
}
|
||||
splitCodePointsByBlocks(codePoints) {
|
||||
return unicodeData.splitCodePoints(codePoints, this.blocks);
|
||||
}
|
||||
linesFromCodePoints(codePoints) {
|
||||
var lines = [];
|
||||
var limit = codePoints.length;
|
||||
for (var index = 0; index < limit; ) {
|
||||
var lineLimit = Math.min(limit, index + this.charactersPerLine);
|
||||
var line = [];
|
||||
for (; index < lineLimit; ++index)
|
||||
unicodeData.encodeUtf16(codePoints[index], line);
|
||||
lines.push(String.fromCharCode.apply(String, line));
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
}
|
||||
|
||||
function affixFromIndex(index) {
|
||||
if (index < 0)
|
||||
return "";
|
||||
if (index >= 26)
|
||||
throw new Error("Affix index too large (" + index + ")");
|
||||
return String.fromCharCode("a".charCodeAt(0) + index);
|
||||
}
|
||||
|
||||
function createGenerator(argv) {
|
||||
var promise = new Promise(function(resolve, reject) {
|
||||
Promise.all([
|
||||
unicodeData.get(unicodeData.url.vo, unicodeData.formatAsRangesByValue),
|
||||
unicodeData.get(unicodeData.url.gc),
|
||||
unicodeData.get(unicodeData.url.blocks),
|
||||
]).then(function (results) {
|
||||
var generator = new Generator(results[0], results[1], results[2]);
|
||||
generator.prefix = argv.prefix ? "-" + argv.prefix + "-" : "";
|
||||
resolve(generator);
|
||||
});
|
||||
});
|
||||
return promise;
|
||||
}
|
||||
|
||||
exports.generate = function (argv) {
|
||||
return createGenerator(argv)
|
||||
.then(generator => generator.generate(argv));
|
||||
};
|
||||
|
||||
exports.generateRefTest = function (argv) {
|
||||
return createGenerator(argv)
|
||||
.then(generator => generator.generateRefTest(argv));
|
||||
};
|
||||
})(module.exports);
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: <%= title %>.</title>
|
||||
<% if (reference) {
|
||||
%><link rel="match" href="<%= reference %>">
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<% }
|
||||
%><link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
html {
|
||||
<%= prefix %>writing-mode: <%= writingMode %>;
|
||||
}
|
||||
.test {
|
||||
font: 20px/1 "orientation";
|
||||
height: 17em;
|
||||
<%= prefix %>text-orientation: <%= textOrientation %>;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div id="container">
|
||||
<% for (var range of codePointRanges) {
|
||||
%><div><%= headingFromRange(range) %><div class="test">
|
||||
<% var codePoints = codePointsFromRangeForRendering(range);
|
||||
for (var line of linesFromCodePoints(codePoints)) {
|
||||
%><div class="line"><%= line %></div>
|
||||
<% }
|
||||
%></div></div>
|
||||
<% } %></div>
|
||||
</body>
|
|
@ -1,53 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Writing Modes Test: <%= title %>.</title>
|
||||
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#text-orientation">
|
||||
<meta name="assert" content="<%= title %>">
|
||||
<meta name="flags" content="<%= flags %>">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "orientation";
|
||||
src: url("/fonts/adobe-fonts/CSSHWOrientationTest.otf");
|
||||
}
|
||||
.test {
|
||||
font: 16px/1 "orientation";
|
||||
height: 17em;
|
||||
<%= prefix %>writing-mode: vertical-rl;
|
||||
}
|
||||
.line {
|
||||
white-space: pre;
|
||||
}
|
||||
.U {
|
||||
<%= prefix %>text-orientation: upright;
|
||||
}
|
||||
.R {
|
||||
<%= prefix %>text-orientation: sideways;
|
||||
}
|
||||
#details {
|
||||
margin: 1em .5em;
|
||||
}
|
||||
summary {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-top: .5em;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
<div id="details"></div>
|
||||
<div id="container">
|
||||
<% for (var vo in codePointsByVO) {
|
||||
%><div data-vo="<%= vo %>" class="test">
|
||||
<% for (var codePointsOfBlock of splitCodePointsByBlocks(codePointsByVO[vo])) {
|
||||
%><div data-block="<%= codePointsOfBlock[1] %>">
|
||||
<% for (var line of linesFromCodePoints(codePointsOfBlock[0])) {
|
||||
%><div class="line"><%= line %></div>
|
||||
<% }
|
||||
%></div>
|
||||
<% }
|
||||
%></div>
|
||||
<% }
|
||||
%></div>
|
||||
<script src="support/text-orientation.js"></script>
|
|
@ -1,309 +0,0 @@
|
|||
# Blocks-9.0.0.txt
|
||||
# Date: 2016-02-05, 23:48:00 GMT [KW]
|
||||
# © 2016 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
#
|
||||
# Format:
|
||||
# Start Code..End Code; Block Name
|
||||
|
||||
# ================================================
|
||||
|
||||
# Note: When comparing block names, casing, whitespace, hyphens,
|
||||
# and underbars are ignored.
|
||||
# For example, "Latin Extended-A" and "latin extended a" are equivalent.
|
||||
# For more information on the comparison of property values,
|
||||
# see UAX #44: http://www.unicode.org/reports/tr44/
|
||||
#
|
||||
# All block ranges start with a value where (cp MOD 16) = 0,
|
||||
# and end with a value where (cp MOD 16) = 15. In other words,
|
||||
# the last hexadecimal digit of the start of range is ...0
|
||||
# and the last hexadecimal digit of the end of range is ...F.
|
||||
# This constraint on block ranges guarantees that allocations
|
||||
# are done in terms of whole columns, and that code chart display
|
||||
# never involves splitting columns in the charts.
|
||||
#
|
||||
# All code points not explicitly listed for Block
|
||||
# have the value No_Block.
|
||||
|
||||
# Property: Block
|
||||
#
|
||||
# @missing: 0000..10FFFF; No_Block
|
||||
|
||||
0000..007F; Basic Latin
|
||||
0080..00FF; Latin-1 Supplement
|
||||
0100..017F; Latin Extended-A
|
||||
0180..024F; Latin Extended-B
|
||||
0250..02AF; IPA Extensions
|
||||
02B0..02FF; Spacing Modifier Letters
|
||||
0300..036F; Combining Diacritical Marks
|
||||
0370..03FF; Greek and Coptic
|
||||
0400..04FF; Cyrillic
|
||||
0500..052F; Cyrillic Supplement
|
||||
0530..058F; Armenian
|
||||
0590..05FF; Hebrew
|
||||
0600..06FF; Arabic
|
||||
0700..074F; Syriac
|
||||
0750..077F; Arabic Supplement
|
||||
0780..07BF; Thaana
|
||||
07C0..07FF; NKo
|
||||
0800..083F; Samaritan
|
||||
0840..085F; Mandaic
|
||||
08A0..08FF; Arabic Extended-A
|
||||
0900..097F; Devanagari
|
||||
0980..09FF; Bengali
|
||||
0A00..0A7F; Gurmukhi
|
||||
0A80..0AFF; Gujarati
|
||||
0B00..0B7F; Oriya
|
||||
0B80..0BFF; Tamil
|
||||
0C00..0C7F; Telugu
|
||||
0C80..0CFF; Kannada
|
||||
0D00..0D7F; Malayalam
|
||||
0D80..0DFF; Sinhala
|
||||
0E00..0E7F; Thai
|
||||
0E80..0EFF; Lao
|
||||
0F00..0FFF; Tibetan
|
||||
1000..109F; Myanmar
|
||||
10A0..10FF; Georgian
|
||||
1100..11FF; Hangul Jamo
|
||||
1200..137F; Ethiopic
|
||||
1380..139F; Ethiopic Supplement
|
||||
13A0..13FF; Cherokee
|
||||
1400..167F; Unified Canadian Aboriginal Syllabics
|
||||
1680..169F; Ogham
|
||||
16A0..16FF; Runic
|
||||
1700..171F; Tagalog
|
||||
1720..173F; Hanunoo
|
||||
1740..175F; Buhid
|
||||
1760..177F; Tagbanwa
|
||||
1780..17FF; Khmer
|
||||
1800..18AF; Mongolian
|
||||
18B0..18FF; Unified Canadian Aboriginal Syllabics Extended
|
||||
1900..194F; Limbu
|
||||
1950..197F; Tai Le
|
||||
1980..19DF; New Tai Lue
|
||||
19E0..19FF; Khmer Symbols
|
||||
1A00..1A1F; Buginese
|
||||
1A20..1AAF; Tai Tham
|
||||
1AB0..1AFF; Combining Diacritical Marks Extended
|
||||
1B00..1B7F; Balinese
|
||||
1B80..1BBF; Sundanese
|
||||
1BC0..1BFF; Batak
|
||||
1C00..1C4F; Lepcha
|
||||
1C50..1C7F; Ol Chiki
|
||||
1C80..1C8F; Cyrillic Extended-C
|
||||
1CC0..1CCF; Sundanese Supplement
|
||||
1CD0..1CFF; Vedic Extensions
|
||||
1D00..1D7F; Phonetic Extensions
|
||||
1D80..1DBF; Phonetic Extensions Supplement
|
||||
1DC0..1DFF; Combining Diacritical Marks Supplement
|
||||
1E00..1EFF; Latin Extended Additional
|
||||
1F00..1FFF; Greek Extended
|
||||
2000..206F; General Punctuation
|
||||
2070..209F; Superscripts and Subscripts
|
||||
20A0..20CF; Currency Symbols
|
||||
20D0..20FF; Combining Diacritical Marks for Symbols
|
||||
2100..214F; Letterlike Symbols
|
||||
2150..218F; Number Forms
|
||||
2190..21FF; Arrows
|
||||
2200..22FF; Mathematical Operators
|
||||
2300..23FF; Miscellaneous Technical
|
||||
2400..243F; Control Pictures
|
||||
2440..245F; Optical Character Recognition
|
||||
2460..24FF; Enclosed Alphanumerics
|
||||
2500..257F; Box Drawing
|
||||
2580..259F; Block Elements
|
||||
25A0..25FF; Geometric Shapes
|
||||
2600..26FF; Miscellaneous Symbols
|
||||
2700..27BF; Dingbats
|
||||
27C0..27EF; Miscellaneous Mathematical Symbols-A
|
||||
27F0..27FF; Supplemental Arrows-A
|
||||
2800..28FF; Braille Patterns
|
||||
2900..297F; Supplemental Arrows-B
|
||||
2980..29FF; Miscellaneous Mathematical Symbols-B
|
||||
2A00..2AFF; Supplemental Mathematical Operators
|
||||
2B00..2BFF; Miscellaneous Symbols and Arrows
|
||||
2C00..2C5F; Glagolitic
|
||||
2C60..2C7F; Latin Extended-C
|
||||
2C80..2CFF; Coptic
|
||||
2D00..2D2F; Georgian Supplement
|
||||
2D30..2D7F; Tifinagh
|
||||
2D80..2DDF; Ethiopic Extended
|
||||
2DE0..2DFF; Cyrillic Extended-A
|
||||
2E00..2E7F; Supplemental Punctuation
|
||||
2E80..2EFF; CJK Radicals Supplement
|
||||
2F00..2FDF; Kangxi Radicals
|
||||
2FF0..2FFF; Ideographic Description Characters
|
||||
3000..303F; CJK Symbols and Punctuation
|
||||
3040..309F; Hiragana
|
||||
30A0..30FF; Katakana
|
||||
3100..312F; Bopomofo
|
||||
3130..318F; Hangul Compatibility Jamo
|
||||
3190..319F; Kanbun
|
||||
31A0..31BF; Bopomofo Extended
|
||||
31C0..31EF; CJK Strokes
|
||||
31F0..31FF; Katakana Phonetic Extensions
|
||||
3200..32FF; Enclosed CJK Letters and Months
|
||||
3300..33FF; CJK Compatibility
|
||||
3400..4DBF; CJK Unified Ideographs Extension A
|
||||
4DC0..4DFF; Yijing Hexagram Symbols
|
||||
4E00..9FFF; CJK Unified Ideographs
|
||||
A000..A48F; Yi Syllables
|
||||
A490..A4CF; Yi Radicals
|
||||
A4D0..A4FF; Lisu
|
||||
A500..A63F; Vai
|
||||
A640..A69F; Cyrillic Extended-B
|
||||
A6A0..A6FF; Bamum
|
||||
A700..A71F; Modifier Tone Letters
|
||||
A720..A7FF; Latin Extended-D
|
||||
A800..A82F; Syloti Nagri
|
||||
A830..A83F; Common Indic Number Forms
|
||||
A840..A87F; Phags-pa
|
||||
A880..A8DF; Saurashtra
|
||||
A8E0..A8FF; Devanagari Extended
|
||||
A900..A92F; Kayah Li
|
||||
A930..A95F; Rejang
|
||||
A960..A97F; Hangul Jamo Extended-A
|
||||
A980..A9DF; Javanese
|
||||
A9E0..A9FF; Myanmar Extended-B
|
||||
AA00..AA5F; Cham
|
||||
AA60..AA7F; Myanmar Extended-A
|
||||
AA80..AADF; Tai Viet
|
||||
AAE0..AAFF; Meetei Mayek Extensions
|
||||
AB00..AB2F; Ethiopic Extended-A
|
||||
AB30..AB6F; Latin Extended-E
|
||||
AB70..ABBF; Cherokee Supplement
|
||||
ABC0..ABFF; Meetei Mayek
|
||||
AC00..D7AF; Hangul Syllables
|
||||
D7B0..D7FF; Hangul Jamo Extended-B
|
||||
D800..DB7F; High Surrogates
|
||||
DB80..DBFF; High Private Use Surrogates
|
||||
DC00..DFFF; Low Surrogates
|
||||
E000..F8FF; Private Use Area
|
||||
F900..FAFF; CJK Compatibility Ideographs
|
||||
FB00..FB4F; Alphabetic Presentation Forms
|
||||
FB50..FDFF; Arabic Presentation Forms-A
|
||||
FE00..FE0F; Variation Selectors
|
||||
FE10..FE1F; Vertical Forms
|
||||
FE20..FE2F; Combining Half Marks
|
||||
FE30..FE4F; CJK Compatibility Forms
|
||||
FE50..FE6F; Small Form Variants
|
||||
FE70..FEFF; Arabic Presentation Forms-B
|
||||
FF00..FFEF; Halfwidth and Fullwidth Forms
|
||||
FFF0..FFFF; Specials
|
||||
10000..1007F; Linear B Syllabary
|
||||
10080..100FF; Linear B Ideograms
|
||||
10100..1013F; Aegean Numbers
|
||||
10140..1018F; Ancient Greek Numbers
|
||||
10190..101CF; Ancient Symbols
|
||||
101D0..101FF; Phaistos Disc
|
||||
10280..1029F; Lycian
|
||||
102A0..102DF; Carian
|
||||
102E0..102FF; Coptic Epact Numbers
|
||||
10300..1032F; Old Italic
|
||||
10330..1034F; Gothic
|
||||
10350..1037F; Old Permic
|
||||
10380..1039F; Ugaritic
|
||||
103A0..103DF; Old Persian
|
||||
10400..1044F; Deseret
|
||||
10450..1047F; Shavian
|
||||
10480..104AF; Osmanya
|
||||
104B0..104FF; Osage
|
||||
10500..1052F; Elbasan
|
||||
10530..1056F; Caucasian Albanian
|
||||
10600..1077F; Linear A
|
||||
10800..1083F; Cypriot Syllabary
|
||||
10840..1085F; Imperial Aramaic
|
||||
10860..1087F; Palmyrene
|
||||
10880..108AF; Nabataean
|
||||
108E0..108FF; Hatran
|
||||
10900..1091F; Phoenician
|
||||
10920..1093F; Lydian
|
||||
10980..1099F; Meroitic Hieroglyphs
|
||||
109A0..109FF; Meroitic Cursive
|
||||
10A00..10A5F; Kharoshthi
|
||||
10A60..10A7F; Old South Arabian
|
||||
10A80..10A9F; Old North Arabian
|
||||
10AC0..10AFF; Manichaean
|
||||
10B00..10B3F; Avestan
|
||||
10B40..10B5F; Inscriptional Parthian
|
||||
10B60..10B7F; Inscriptional Pahlavi
|
||||
10B80..10BAF; Psalter Pahlavi
|
||||
10C00..10C4F; Old Turkic
|
||||
10C80..10CFF; Old Hungarian
|
||||
10E60..10E7F; Rumi Numeral Symbols
|
||||
11000..1107F; Brahmi
|
||||
11080..110CF; Kaithi
|
||||
110D0..110FF; Sora Sompeng
|
||||
11100..1114F; Chakma
|
||||
11150..1117F; Mahajani
|
||||
11180..111DF; Sharada
|
||||
111E0..111FF; Sinhala Archaic Numbers
|
||||
11200..1124F; Khojki
|
||||
11280..112AF; Multani
|
||||
112B0..112FF; Khudawadi
|
||||
11300..1137F; Grantha
|
||||
11400..1147F; Newa
|
||||
11480..114DF; Tirhuta
|
||||
11580..115FF; Siddham
|
||||
11600..1165F; Modi
|
||||
11660..1167F; Mongolian Supplement
|
||||
11680..116CF; Takri
|
||||
11700..1173F; Ahom
|
||||
118A0..118FF; Warang Citi
|
||||
11AC0..11AFF; Pau Cin Hau
|
||||
11C00..11C6F; Bhaiksuki
|
||||
11C70..11CBF; Marchen
|
||||
12000..123FF; Cuneiform
|
||||
12400..1247F; Cuneiform Numbers and Punctuation
|
||||
12480..1254F; Early Dynastic Cuneiform
|
||||
13000..1342F; Egyptian Hieroglyphs
|
||||
14400..1467F; Anatolian Hieroglyphs
|
||||
16800..16A3F; Bamum Supplement
|
||||
16A40..16A6F; Mro
|
||||
16AD0..16AFF; Bassa Vah
|
||||
16B00..16B8F; Pahawh Hmong
|
||||
16F00..16F9F; Miao
|
||||
16FE0..16FFF; Ideographic Symbols and Punctuation
|
||||
17000..187FF; Tangut
|
||||
18800..18AFF; Tangut Components
|
||||
1B000..1B0FF; Kana Supplement
|
||||
1BC00..1BC9F; Duployan
|
||||
1BCA0..1BCAF; Shorthand Format Controls
|
||||
1D000..1D0FF; Byzantine Musical Symbols
|
||||
1D100..1D1FF; Musical Symbols
|
||||
1D200..1D24F; Ancient Greek Musical Notation
|
||||
1D300..1D35F; Tai Xuan Jing Symbols
|
||||
1D360..1D37F; Counting Rod Numerals
|
||||
1D400..1D7FF; Mathematical Alphanumeric Symbols
|
||||
1D800..1DAAF; Sutton SignWriting
|
||||
1E000..1E02F; Glagolitic Supplement
|
||||
1E800..1E8DF; Mende Kikakui
|
||||
1E900..1E95F; Adlam
|
||||
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
|
||||
1F000..1F02F; Mahjong Tiles
|
||||
1F030..1F09F; Domino Tiles
|
||||
1F0A0..1F0FF; Playing Cards
|
||||
1F100..1F1FF; Enclosed Alphanumeric Supplement
|
||||
1F200..1F2FF; Enclosed Ideographic Supplement
|
||||
1F300..1F5FF; Miscellaneous Symbols and Pictographs
|
||||
1F600..1F64F; Emoticons
|
||||
1F650..1F67F; Ornamental Dingbats
|
||||
1F680..1F6FF; Transport and Map Symbols
|
||||
1F700..1F77F; Alchemical Symbols
|
||||
1F780..1F7FF; Geometric Shapes Extended
|
||||
1F800..1F8FF; Supplemental Arrows-C
|
||||
1F900..1F9FF; Supplemental Symbols and Pictographs
|
||||
20000..2A6DF; CJK Unified Ideographs Extension B
|
||||
2A700..2B73F; CJK Unified Ideographs Extension C
|
||||
2B740..2B81F; CJK Unified Ideographs Extension D
|
||||
2B820..2CEAF; CJK Unified Ideographs Extension E
|
||||
2F800..2FA1F; CJK Compatibility Ideographs Supplement
|
||||
E0000..E007F; Tags
|
||||
E0100..E01EF; Variation Selectors Supplement
|
||||
F0000..FFFFF; Supplementary Private Use Area-A
|
||||
100000..10FFFF; Supplementary Private Use Area-B
|
||||
|
||||
# EOF
|
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue