aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-1.htm57
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-2.htm131
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-3.htm153
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-4.htm141
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-5.htm183
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/chapter-6.htm159
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/floats-clear-breaks-002.htm86
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-012.htm83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-029.htm90
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-030.htm88
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/position-relative-001.htm77
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm59
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm69
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm67
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm68
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/position-relative-001-ref.htm56
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-008-ref.htm35
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm20
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-ref.htm21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-020-ref.htm21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reftest-toc.htm121
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/reftest.list13
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-008.htm74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-009.htm74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-013.htm47
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-020.htm61
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-021.htm53
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-022.htm83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/html/toc.htm54
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/implementation-report-TEMPLATE.data27
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/index.htm140
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/index.xht140
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/indices.css96
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/testinfo.data12
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-1.xht57
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-2.xht131
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-3.xht153
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-4.xht141
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-5.xht183
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-6.xht159
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht86
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht90
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht88
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/position-relative-001.xht77
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht59
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht69
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht67
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht68
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht56
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht35
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht20
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest-toc.xht121
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest.list13
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-008.xht74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-009.xht74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-013.xht47
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-020.xht61
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-021.xht53
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-022.xht83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1/toc.xht54
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-1.xht57
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-2.xht131
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-3.xht153
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-4.xht141
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-5.xht183
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-6.xht159
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht86
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht90
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht88
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/position-relative-001.xht77
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht59
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht69
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht67
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht68
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht56
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht35
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht20
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest-toc.xht121
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest.list13
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-008.xht74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-009.xht74
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-013.xht47
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-020.xht61
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-021.xht53
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-022.xht83
-rw-r--r--tests/wpt/css-tests/css-break-3_dev/xhtml1print/toc.xht54
-rw-r--r--tests/wpt/css-tests/css-counter-styles-3_dev/html/css3-counter-styles-016a.htm4
-rw-r--r--tests/wpt/css-tests/css-counter-styles-3_dev/implementation-report-TEMPLATE.data4
-rw-r--r--tests/wpt/css-tests/css-counter-styles-3_dev/testinfo.data2
-rw-r--r--tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1/css3-counter-styles-016a.xht4
-rw-r--r--tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1print/css3-counter-styles-016a.xht4
-rw-r--r--tests/wpt/css-tests/css-gcpm-3_dev/index.htm4
-rw-r--r--tests/wpt/css-tests/css-gcpm-3_dev/index.xht4
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-1.htm39
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-2.htm51
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-3.htm66
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-4.htm90
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/reftest-toc.htm30
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/reftest.list1
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/html/toc.htm44
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/implementation-report-TEMPLATE.data5
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/index.htm130
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/index.xht130
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/indices.css96
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/testinfo.data1
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-1.xht39
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-2.xht51
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-3.xht66
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-4.xht90
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest-toc.xht30
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest.list1
-rw-r--r--tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/toc.xht44
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-1.htm39
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-2.htm126
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-3.htm111
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-4.htm66
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-5.htm42
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-6.htm222
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-001.htm33
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-002.htm35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-003.htm35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm25
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/reftest-toc.htm54
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/reftest.list4
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/html/toc.htm54
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/implementation-report-TEMPLATE.data11
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/index.htm138
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/index.xht138
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/indices.css96
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/testinfo.data4
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-1.xht39
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-2.xht126
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-3.xht111
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-4.xht66
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-5.xht42
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-6.xht222
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-001.xht33
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-002.xht35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-003.xht35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht25
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest-toc.xht54
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest.list4
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/toc.xht54
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-1.xht39
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-2.xht126
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-3.xht111
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-4.xht66
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-5.xht42
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-6.xht222
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-001.xht33
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-002.xht35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-003.xht35
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht25
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest-toc.xht54
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest.list4
-rw-r--r--tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/toc.xht54
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/absolute_length_units.htm77
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-background-image-gradient-1.htm23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-background-linear-gradient-1.htm42
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-background-position-1.htm27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-background-size-1.htm27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-border-radius-1.htm33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-height-block-1.htm36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-height-table-1.htm31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-margin-block-1.htm24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-max-height-block-1.htm36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-1.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-min-height-block-1.htm36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-1.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-left-1.htm24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-right-1.htm24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-top-1.htm34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-left-1.htm23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-right-1.htm23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-top-1.htm33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-padding-block-1.htm25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-1.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-transform-origin-1.htm28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-unit-analysis.htm91
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-vertical-align-1.htm20
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-1.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-intrinsic-1.htm27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-auto-1.htm25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-fixed-1.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/ch-unit-001.htm38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-1.htm45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-2.htm117
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-3.htm156
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-4.htm117
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-5.htm468
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-6.htm136
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-7.htm57
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-8.htm418
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/chapter-9.htm207
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/min-width-001.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-001.htm45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-002.htm45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-003.htm45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-inherit-002.htm82
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-001.htm137
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-002.htm120
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/ref.htm18
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/all-green.htm2
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-position-1-ref.htm25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-size-1-ref.htm25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-block-1-ref.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-table-1-ref.htm29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm18
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-1-ref.htm24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/ch-unit-001-ref.htm19
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm32
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/regions-resizing-001-ref.htm11
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/2-80px-block-ref.html33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-float-ref.html27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-ref.html26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/README29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/black20x20.pngbin0 -> 165 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/generalParallelTest.js231
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/helper.js96
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/min-width-tables-001-iframe.html59
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/one.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/parsing-utils.js866
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-gg-gr.pngbin0 -> 203 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-rgr-grg-rgr.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/properties.js449
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/red20x20.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-body.html36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/runParallelAsyncHarness.js145
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-gray.pngbin0 -> 163 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-navy.pngbin0 -> 159 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-pink.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-purple.pngbin0 -> 153 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/two-regions-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/two.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/util.js29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/support/vendorPrefix.js86
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm49
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reftest-toc.htm486
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/reftest.list58
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-003.htm33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-007.htm41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-009.htm39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-002.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-004.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-002.htm30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-004.htm26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-inset-003.htm28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/shape-outside-polygon-004.htm38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/2-80px-block-ref.html33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-float-ref.html27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-ref.html26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/README29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/black20x20.pngbin0 -> 165 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/generalParallelTest.js231
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/helper.js96
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/min-width-tables-001-iframe.html59
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/one.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/parsing-utils.js866
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/pattern-gg-gr.pngbin0 -> 203 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/pattern-rgr-grg-rgr.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/properties.js449
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/red20x20.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/region-in-body.html36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/region-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/runParallelAsyncHarness.js145
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-gray.pngbin0 -> 163 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-navy.pngbin0 -> 159 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-pink.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-purple.pngbin0 -> 153 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/two-regions-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/two.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/util.js29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/support/vendorPrefix.js86
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/toc.htm69
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/transition-delay-001.htm106
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/transition-duration-001.htm107
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support-pct.htm36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support.htm36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-em-inherit.htm34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-inherit.htm35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-pct.htm41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-px.htm41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-vh.htm41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-support-atviewport.htm37
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-support-margin.htm34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-origin.htm35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-translate.htm35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-support.htm32
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh-zero-support.htm34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm52
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm84
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm48
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/html/viewport-units-css2-001.htm255
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/implementation-report-TEMPLATE.data143
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/index.htm147
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/index.xht147
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/indices.css96
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/testinfo.data70
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/absolute_length_units.xht77
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht42
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-position-1.xht27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-size-1.xht27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-border-radius-1.xht33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-block-1.xht36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-table-1.xht31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-margin-block-1.xht24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-height-block-1.xht36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-1.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-height-block-1.xht36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-1.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-padding-block-1.xht25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-1.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-transform-origin-1.xht28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht91
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-vertical-align-1.xht20
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-1.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/ch-unit-001.xht38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-1.xht45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-2.xht117
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-3.xht156
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-4.xht117
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-5.xht468
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-6.xht136
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-7.xht57
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-8.xht418
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-9.xht207
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/min-width-001.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht45
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-inherit-002.xht82
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-001.xht137
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-002.xht120
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/ref.xht18
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/all-green.xht2
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht25
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht21
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht31
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht18
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht24
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht23
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht19
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht32
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-rule-color-inherit-001-ref.xht22
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht11
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/2-80px-block-ref.html33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-float-ref.html27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-ref.html26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/README29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/black20x20.pngbin0 -> 165 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/generalParallelTest.js231
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/helper.js96
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/min-width-tables-001-iframe.html59
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/one.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/parsing-utils.js866
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-gg-gr.pngbin0 -> 203 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-rgr-grg-rgr.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/properties.js449
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/red20x20.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-body.html36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/runParallelAsyncHarness.js145
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-gray.pngbin0 -> 163 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-navy.pngbin0 -> 159 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-pink.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-purple.pngbin0 -> 153 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two-regions-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/util.js29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/vendorPrefix.js86
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht49
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest-toc.xht486
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest.list58
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-003.xht33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-007.xht41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-009.xht39
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-002.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-004.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht30
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-inset-003.xht28
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-polygon-004.xht38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/2-80px-block-ref.html33
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-float-ref.html27
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-ref.html26
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/README29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/black20x20.pngbin0 -> 165 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/generalParallelTest.js231
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/helper.js96
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/min-width-tables-001-iframe.html59
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/one.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/parsing-utils.js866
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-gg-gr.pngbin0 -> 203 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-rgr-grg-rgr.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/properties.js449
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/red20x20.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-body.html36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/runParallelAsyncHarness.js145
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-gray.pngbin0 -> 163 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-navy.pngbin0 -> 159 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-pink.pngbin0 -> 160 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-purple.pngbin0 -> 153 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two-regions-in-container.html38
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two.gifbin0 -> 184 bytes
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/util.js29
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/support/vendorPrefix.js86
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/toc.xht69
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-delay-001.xht106
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-duration-001.xht107
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support-pct.xht36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support.xht36
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-em-inherit.xht34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-inherit.xht35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-pct.xht41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-px.xht41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-vh.xht41
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-atviewport.xht37
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-margin.xht34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-origin.xht35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-translate.xht35
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support.xht32
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-zero-support.xht34
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht52
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht84
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht48
-rw-r--r--tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-units-css2-001.xht255
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/before-after-selector-001.htm1
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/chapter-5.htm4
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/lang-selector-001.htm1
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/reference/before-after-selector-001-ref.htm16
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/reference/lang-selector-001-ref.htm18
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/reftest-toc.htm16
-rw-r--r--tests/wpt/css-tests/css21_dev/html4/reftest.list2
-rw-r--r--tests/wpt/css-tests/css21_dev/implementation-report-TEMPLATE.data8
-rw-r--r--tests/wpt/css-tests/css21_dev/testinfo.data4
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/before-after-selector-001.xht1
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/chapter-5.xht4
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/lang-selector-001.xht1
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht16
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/reference/lang-selector-001-ref.xht18
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/reftest-toc.xht16
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1/reftest.list2
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/before-after-selector-001.xht1
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/chapter-5.xht4
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/lang-selector-001.xht1
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht25
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht27
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/reftest-toc.xht16
-rw-r--r--tests/wpt/css-tests/css21_dev/xhtml1print/reftest.list2
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/CaretPosition-001.htm43
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/MediaQueryList-001.htm21
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm32
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-1.htm39
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-10.htm45
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-11.htm69
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-12.htm72
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-13.htm51
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-14.htm108
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-2.htm48
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-3.htm141
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-4.htm63
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-5.htm333
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-6.htm105
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-7.htm161
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-8.htm70
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/chapter-9.htm45
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm31
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getClientRects.htm23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/cssom-view-window-screen-interface.htm39
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPoint-001.htm33
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPosition.htm144
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/matchMedia.htm186
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/matchMediaAddListener.htm67
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/media-query-list-interface.htm69
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/offsetParent_element_test.htm137
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/reftest-toc.htm30
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/reftest.list1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeight.htm146
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm136
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/README29
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-gg-gr.pngbin0 -> 148 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-rgr-grg-rgr.pngbin0 -> 223 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/toc.htm94
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/ttwf-scrollintoview.htm31
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-interface.htm97
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-immutable.htm27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-mutation-throws.htm23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height.htm37
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-immutable.htm27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-mutation-throws.htm23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width.htm37
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/implementation-report-TEMPLATE.data51
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/index.htm140
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/index.xht140
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/indices.css96
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/testinfo.data24
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/CaretPosition-001.xht43
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/MediaQueryList-001.xht21
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht32
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-1.xht39
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-10.xht45
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-11.xht69
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-12.xht72
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-13.xht51
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-14.xht108
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-2.xht48
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-3.xht141
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-4.xht63
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-5.xht333
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-6.xht105
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-7.xht161
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-8.xht70
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-9.xht45
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht31
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getClientRects.xht23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht39
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPoint-001.xht33
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPosition.xht144
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMedia.xht186
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMediaAddListener.xht67
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/media-query-list-interface.xht69
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/offsetParent_element_test.xht137
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest-toc.xht30
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest.list1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeight.xht146
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht136
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-green.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-lime.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-maroon.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-navy.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-red.pngbin0 -> 135 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-white.pngbin0 -> 109 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-gg-rr.pngbin0 -> 224 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-green.pngbin0 -> 218 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-red.pngbin0 -> 217 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/README29
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/a-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/b-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/c-red.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/cat.pngbin0 -> 1883 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-green.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-red.css1
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-gg-gr.pngbin0 -> 148 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rgr-grg.pngbin0 -> 222 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rrg-rgg.pngbin0 -> 231 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-rgr-grg-rgr.pngbin0 -> 223 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-tr.pngbin0 -> 137 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50%.pngbin0 -> 691 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50px.pngbin0 -> 671 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-100px.pngbin0 -> 760 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-50px.pngbin0 -> 757 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-purple.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-teal.pngbin0 -> 92 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-white.pngbin0 -> 78 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-blue.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-green.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-lime.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-orange.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-red.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-teal.pngbin0 -> 156 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-white.pngbin0 -> 85 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-yellow.pngbin0 -> 84 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-bl.pngbin0 -> 1368 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-br.pngbin0 -> 1045 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-inner-half-size.pngbin0 -> 180 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-outer.pngbin0 -> 2412 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tl.pngbin0 -> 1025 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tr.pngbin0 -> 1235 bytes
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/toc.xht94
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht31
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-interface.xht97
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height.xht37
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht27
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht23
-rw-r--r--tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width.xht37
-rw-r--r--tests/wpt/css-tests/source_rev2
-rw-r--r--tests/wpt/metadata-css/MANIFEST.json3708
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/lang-selector-001.htm.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json21
-rw-r--r--tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini6
-rw-r--r--tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini1
-rw-r--r--tests/wpt/metadata/mozilla-sync2
-rw-r--r--tests/wpt/web-platform-tests/.gitignore1
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm139
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/support.js23
-rw-r--r--tests/wpt/web-platform-tests/README.md6
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html63
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html.sub.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html35
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html14
-rw-r--r--tests/wpt/web-platform-tests/resources/testharness.js2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/base_test.py19
-rw-r--r--tests/wpt/web-platform-tests/webdriver/cookie/cookie_test.py26
-rw-r--r--tests/wpt/web-platform-tests/webdriver/element_location/element_location_test.py29
-rw-r--r--tests/wpt/web-platform-tests/webdriver/element_state/method_test.py22
-rw-r--r--tests/wpt/web-platform-tests/webdriver/element_state/properties.py17
-rw-r--r--tests/wpt/web-platform-tests/webdriver/element_state/res/elements_text.html10
-rw-r--r--tests/wpt/web-platform-tests/webdriver/element_state/visibility_test.py106
-rw-r--r--tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py1
-rw-r--r--tests/wpt/web-platform-tests/webdriver/modal/alerts_quit_test.py7
-rw-r--r--tests/wpt/web-platform-tests/webdriver/modal/alerts_test.py87
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/auth_tests.py2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/forward.py10
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/forwardToNothing.py6
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/get_from_http_test.py10
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/invalid_cert_test.py2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/navigation/refresh_page.py27
-rw-r--r--tests/wpt/web-platform-tests/webdriver/runtests_p0.py42
-rw-r--r--tests/wpt/web-platform-tests/webdriver/screenshot/__init__.py1
-rw-r--r--tests/wpt/web-platform-tests/webdriver/screenshot/res/screenshot.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/screenshot/take_screenshot.py15
-rw-r--r--tests/wpt/web-platform-tests/webdriver/timeouts/implicit_waits_tests.py36
-rw-r--r--tests/wpt/web-platform-tests/webdriver/timeouts/page_load_timeouts_tests.py2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/user_input/clear_test.py16
-rw-r--r--tests/wpt/web-platform-tests/webdriver/webdriver.cfg4
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/__init__.py1
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/res/win1.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/res/win2.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/res/win3.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/res/win4.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/res/win5.html5
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/tabbing.py30
-rw-r--r--tests/wpt/web-platform-tests/webdriver/windows/window_manipulation.py43
887 files changed, 43622 insertions, 257 deletions
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-1.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-1.htm
new file mode 100644
index 00000000000..ec7e0365eed
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-1.htm
@@ -0,0 +1,57 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Introduction - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#fragmentation">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#pagination">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#placement">1.1 Module Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#values">1.2 Values</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-2.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-2.htm
new file mode 100644
index 00000000000..69c4544e959
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-2.htm
@@ -0,0 +1,131 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Fragmentation Model and Terminology - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Fragmentation Model and Terminology (4 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#fragmentation-model">2 Fragmentation Model and Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#box-fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentainer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-container">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-context">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-root">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmented-flow">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#remaining-fragmentainer-extent">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#parallel-flows">2.1 Parallel Fragmentation Flows</a></th></tr>
+ <!-- 4 tests -->
+ <tr id="floats-clear-breaks-002-2.1" class="ahem">
+ <td>
+ <a href="floats-clear-breaks-002.htm">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: forced region breaks and clear on floats inside named flow contents
+ <ul class="assert">
+ <li>Test checks that no regions are left empty when setting a forced region break on a cleared float.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-012-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-012.htm">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>floats with forced region breaks inside them
+ <ul class="assert">
+ <li>Test checks that floats in named flow contents are floated relative to the region container and not their initial container, even when multiple regions are involved.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-029-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.htm">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.htm">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#nested-flows">2.2 Nested Fragmentation Flows</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-3.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-3.htm
new file mode 100644
index 00000000000..616d01894c0
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-3.htm
@@ -0,0 +1,153 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Controlling Breaks - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Controlling Breaks (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-controls">3 Controlling Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-between">3.1 Breaks Between Boxes: the &#8216;break-before&#8217; and &#8216;break-after&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#always">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#any">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#auto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#forced-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#generic-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#left">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#recto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#right">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#verso">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-within">3.2 Breaks Within Boxes: the &#8216;break-inside&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#auto0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-column0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-page0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-region0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#break-inside">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#widows-orphans">3.3 Breaks Between Lines: &#8216;orphans&#8217;, &#8216;widows&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#orphans">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#widows">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#page-break-properties">3.4 Page Break Aliases: the &#8216;page-break-before&#8217;, &#8216;page-break-after&#8217;, and &#8216;page-break-inside&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-4.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-4.htm
new file mode 100644
index 00000000000..f9f5de35a5e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-4.htm
@@ -0,0 +1,141 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Rules for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Rules for Breaking (2 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-rules">4 Rules for Breaking</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="regions-transforms-013-4" class="">
+ <td>
+ <a href="regions-transforms-013.htm">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.htm">=</a> <a href="reference/regions-transforms-013-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-4" class="">
+ <td>
+ <a href="regions-transforms-020.htm">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.#monolithic">
+ <!-- 1 tests -->
+ <tr id="regions-transforms-013-4.#monolithic" class="">
+ <td>
+ <a href="regions-transforms-013.htm">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.htm">=</a> <a href="reference/regions-transforms-013-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#possible-breaks">4.1 Possible Break Points</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-blocks">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-lines">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#end-block">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#monolithic-breaking">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-types">4.2 Types of Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#column-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#line-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#page-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#region-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#spread-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#forced-breaks">4.3 Forced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#forced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#unforced-breaks">4.4 Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4.#unforced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#best-breaks">4.5 Optimizing Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5.#widows-orphans-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-5.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-5.htm
new file mode 100644
index 00000000000..cfd96dd69d7
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-5.htm
@@ -0,0 +1,183 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Box Model for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Box Model for Breaking (9 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-boxes">5 Box Model for Breaking</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#varying-size-boxes">5.1 Breaking into Varying-size Fragmentainers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-margins">5.2 Adjoining Margins at Breaks</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="floats-in-named-flow-029-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.htm">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.htm">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#box-splitting">5.3 Splitting Boxes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-decoration">5.4 Fragmented Borders and Backgrounds: the &#8216;box-decoration-break&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#box-decoration-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#clone">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#slice">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#joining-boxes">5.4.1 Joining Boxes for &#8216;slice&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#transforms">5.5 Transforms, Positioning, and Pagination</a></th></tr>
+ <!-- 7 tests -->
+ <tr id="position-relative-001-5.5" class="ahem">
+ <td>
+ <a href="position-relative-001.htm">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: flowing content that has position: relative
+ <ul class="assert">
+ <li>Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-008-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-008.htm">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that named flow text content is transformed when it breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-009-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-009.htm">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that the regions are transformed when named flow text content breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-013-5.5" class="">
+ <td>
+ <a href="regions-transforms-013.htm">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.htm">=</a> <a href="reference/regions-transforms-013-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-5.5" class="">
+ <td>
+ <a href="regions-transforms-020.htm">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-021-5.5" class="">
+ <td>
+ <a href="regions-transforms-021.htm">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content node that breaks across multiple regions and that each fragment has its own transform origin.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-022-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-022.htm">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content text node that breaks across multiple regions</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/chapter-6.htm b/tests/wpt/css-tests/css-break-3_dev/html/chapter-6.htm
new file mode 100644
index 00000000000..a28e755495a
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/chapter-6.htm
@@ -0,0 +1,159 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Conformance - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance">6 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conventions">6.1 Document Conventions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance-classes">6.2 Conformance Classes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#authoring-tool">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#renderer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#style-sheet">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#partial">6.3 Partial Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#experimental">6.4 Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#testing">6.5 Non-Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#cr-exit-criteria">6.6 CR Exit Criteria</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#css-fragmentation-module">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#other-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#property-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-REGIONS-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-TEXT-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-WRITING-MODES-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-FLEXBOX">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-SIZING">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-TRANSFORMS">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3BG">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3COL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3PAGE">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3VAL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-RFC2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/floats-clear-breaks-002.htm b/tests/wpt/css-tests/css-break-3_dev/html/floats-clear-breaks-002.htm
new file mode 100644
index 00000000000..244a1e4d11c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/floats-clear-breaks-002.htm
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: forced region breaks and clear on floats inside named flow contents</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help">
+ <meta content="ahem" name="flags">
+ <meta content="Test checks that no regions are left empty when setting
+ a forced region break on a cleared float." name="assert">
+ <link href="reference/floats-clear-breaks-002-ref.htm" rel="match">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .break {
+ break-before: region;
+ }
+
+ .clear {
+ clear: left;
+ color: green;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+
+ .region > p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br>
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="bordered region">
+ <p>&nbsp;</p>
+ </div>
+ <!-- In case the clear + forced break lead to an empty region, the content will flow in this
+ third region ending up without a border. -->
+ <div class="region">
+ <p>&nbsp;</p>
+ </div>
+
+ <article class="flow">
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ <div class="break clear">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-012.htm b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-012.htm
new file mode 100644
index 00000000000..bc6740d843d
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-012.htm
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: floats with forced region breaks inside them</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help">
+ <meta content="ahem" name="flags">
+ <meta content="Test checks that floats in named flow contents are floated relative
+ to the region container and not their initial container, even when multiple regions
+ are involved." name="assert">
+ <link href="reference/floats-in-named-flow-012-ref.htm" rel="match">
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .flow {
+ flow-into: f;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .break {
+ break-before: region;
+ }
+ .region {
+ flow-from: f;
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+
+ .region > p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br>
+ Test fails is you see any red.
+ </p>
+
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ <div class="break">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ <div class="break">
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+
+ <div class="region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="region">
+ <p>&nbsp;</p>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-029.htm b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-029.htm
new file mode 100644
index 00000000000..62c430a3b0c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-029.htm
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: margins around forced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help">
+ <meta content="ahem" name="flags">
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via forced breaks." name="assert">
+ <link href="reference/floats-in-named-flow-029-ref.htm" rel="match">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .break {
+ break-before: region;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region > p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br>
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <p>&nbsp;</p>
+ </div><div class="bordered region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="region">
+ <p>&nbsp;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ <div class="break spaced">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-030.htm b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-030.htm
new file mode 100644
index 00000000000..1851c85894e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/floats-in-named-flow-030.htm
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: margins around unforced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help">
+ <meta content="ahem" name="flags">
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via unforced breaks." name="assert">
+ <link href="reference/floats-in-named-flow-030-ref.htm" rel="match">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region > p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <p>&nbsp;</p>
+ </div><div class="bordered region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="region">
+ <p>&nbsp;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ <div class="spaced">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/position-relative-001.htm b/tests/wpt/css-tests/css-break-3_dev/html/position-relative-001.htm
new file mode 100644
index 00000000000..228eeeb333f
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/position-relative-001.htm
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: flowing content that has position: relative</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <!-- Section points to section in the ED. Eventually this should be kept in the WD, too. -->
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <meta content="Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs." name="assert">
+ <meta content="ahem" name="flags">
+ <link href="reference/position-relative-001-ref.htm" rel="match">
+ <style>
+ .flow {
+ flow-into: f;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ flow-from: f;
+ margin: 0 0 0 20px;
+ }
+ .region p {
+ background-color: red;
+ height: 50%;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+
+ .marker {
+ background: red;
+ width: 20px;
+ height: 20px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxx
+ xxx
+ xxx
+ </div>
+ <div class="container">
+ <div class="big region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <p>&nbsp;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm
new file mode 100644
index 00000000000..3ba70f0537f
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ overflow: hidden;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br>
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <article>
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+ <div class="bordered region">
+ <article>
+ <div>
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm
new file mode 100644
index 00000000000..8fdf2dc5390
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .region {
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br>
+ Test fails is you see any red.
+ </p>
+
+
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm
new file mode 100644
index 00000000000..ce9eca89863
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ display: inline-block;
+ float: left;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br>
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="break spaced">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm
new file mode 100644
index 00000000000..013b13978a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 0 2em 3em 5em;
+ color: green;
+ }
+ .float {
+ margin-top: 1em;
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="spaced">
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx<br>
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/position-relative-001-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/position-relative-001-ref.htm
new file mode 100644
index 00000000000..46cd94fc7a2
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/position-relative-001-ref.htm
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <style>
+ .flow {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ margin: 0 0 0 20px;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="container">
+ <div class="big region">
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <div class="flow">
+ xxx
+ xxx
+ xxx
+ </div>
+ </div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-008-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-008-ref.htm
new file mode 100644
index 00000000000..ce9108ff292
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-008-ref.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .square {
+ float: left;
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ margin-left: 10px;
+ color: green;
+ width: 100px;
+ height: 100px;
+ border: 1px solid black;
+ }
+
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm
new file mode 100644
index 00000000000..0eace8442ab
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-rect {
+ width: 100px;
+ height: 200px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-rect"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-ref.htm
new file mode 100644
index 00000000000..3e94de81be9
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-013-ref.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-020-ref.htm b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-020-ref.htm
new file mode 100644
index 00000000000..1064759b018
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reference/regions-transforms-020-ref.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reftest-toc.htm b/tests/wpt/css-tests/css-break-3_dev/html/reftest-toc.htm
new file mode 100644
index 00000000000..e365643ca9a
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reftest-toc.htm
@@ -0,0 +1,121 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column">
+ <col id="ref-column">
+ <col id="flags-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="floats-clear-breaks-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: forced region breaks and clear on floats inside named flow contents">
+ <a href="floats-clear-breaks-002.htm">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-012" class="ahem">
+ <tr>
+ <td rowspan="1" title="floats with forced region breaks inside them">
+ <a href="floats-in-named-flow-012.htm">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-029" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around forced breaks when break is around float">
+ <a href="floats-in-named-flow-029.htm">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-030" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around unforced breaks when break is around float">
+ <a href="floats-in-named-flow-030.htm">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="position-relative-001" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: flowing content that has position: relative">
+ <a href="position-relative-001.htm">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-008" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-008.htm">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-009" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-009.htm">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-013" class="">
+ <tr>
+ <td rowspan="2" title="CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions">
+ <a href="regions-transforms-013.htm">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.htm">=</a> </td>
+ <td rowspan="2"></td>
+ </tr>
+ <tr>
+ <td><a href="reference/regions-transforms-013-alt-ref.htm">=</a></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-020" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions">
+ <a href="regions-transforms-020.htm">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-021" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions">
+ <a href="regions-transforms-021.htm">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-022" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions">
+ <a href="regions-transforms-022.htm">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/reftest.list b/tests/wpt/css-tests/css-break-3_dev/html/reftest.list
new file mode 100644
index 00000000000..f57885750a6
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/reftest.list
@@ -0,0 +1,13 @@
+
+floats-clear-breaks-002.htm == reference/floats-clear-breaks-002-ref.htm
+floats-in-named-flow-012.htm == reference/floats-in-named-flow-012-ref.htm
+floats-in-named-flow-029.htm == reference/floats-in-named-flow-029-ref.htm
+floats-in-named-flow-030.htm == reference/floats-in-named-flow-030-ref.htm
+position-relative-001.htm == reference/position-relative-001-ref.htm
+regions-transforms-008.htm == reference/regions-transforms-008-ref.htm
+regions-transforms-009.htm == reference/regions-transforms-008-ref.htm
+regions-transforms-013.htm == reference/regions-transforms-013-alt-ref.htm
+regions-transforms-013.htm == reference/regions-transforms-013-ref.htm
+regions-transforms-020.htm == reference/regions-transforms-020-ref.htm
+regions-transforms-021.htm == reference/regions-transforms-020-ref.htm
+regions-transforms-022.htm == reference/regions-transforms-020-ref.htm
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-008.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-008.htm
new file mode 100644
index 00000000000..6ccf4375168
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-008.htm
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer author" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="reference/regions-transforms-008-ref.htm" rel="match">
+ <meta content="ahem" name="flags">
+ <meta content="This test checks that named flow text content is transformed when it breaks across
+ multiple regions and that the overflow remains visible." name="assert">
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ margin-left: -50px;
+ transform: translateX(50px);
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ border: 1px solid black;
+ flow-from: f;
+ }
+ .failure {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ left: 8px;
+ }
+ .right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-009.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-009.htm
new file mode 100644
index 00000000000..bee9566e45d
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-009.htm
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="reference/regions-transforms-008-ref.htm" rel="match">
+ <meta content="ahem" name="flags">
+ <meta content="This test checks that the regions are transformed when named flow text content breaks
+ across multiple regions and that the overflow remains visible." name="assert">
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ float: left;
+ margin-left: 10px;
+ border: 1px solid black;
+ flow-from: f;
+ transform: translateX(50px);
+ }
+ .failure-left,
+ .failure-right {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ margin-left: -40px;
+ }
+ .failure-left {
+ left: 8px;
+ }
+ .failure-right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region left"></div>
+ <div class="region"></div>
+ <div class="ahem failure-left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure-right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-013.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-013.htm
new file mode 100644
index 00000000000..8a5feb9737a
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-013.htm
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#monolithic" rel="help">
+ <!-- This reference is for UAs that slice monolithic content -->
+ <link href="reference/regions-transforms-013-ref.htm" rel="match">
+ <!-- This reference is for UAs that overflow monolithic content -->
+ <link href="reference/regions-transforms-013-alt-ref.htm" rel="match">
+ <meta content="This test checks that the named flow content that is monolithic is transformed when it
+ breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge." name="assert">
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+ transform: scaleY(2);
+ transform-origin: top left;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ #region1 {
+ background-color: red;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div id="named-flow"></div>
+ <div class="region" id="region1"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-020.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-020.htm
new file mode 100644
index 00000000000..a6c0af09d5b
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-020.htm
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help">
+ <link href="reference/regions-transforms-020-ref.htm" rel="match">
+ <meta content="This test checks that the named flow content that is fragmentable (has a break point)
+ is transformed when it breaks across multiple regions." name="assert">
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ flow-into: f;
+ }
+ .src-child {
+ height: 50px;
+ background-color: green;
+ }
+ .region {
+ width: 100px;
+ height: 50px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ transform: scaleY(2);
+ transform-origin: top left;
+ }
+
+ .failure-div {
+ position: absolute;
+ margin-left: 10px;
+ background-color: red;
+ width: 98px;
+ height: 98px;
+ }
+ .right {
+ left: 119px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="failure-div"></div>
+ <div class="failure-div right"></div>
+ <div id="named-flow">
+ <div class="src-child"></div>
+ <div class="src-child"></div>
+ </div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-021.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-021.htm
new file mode 100644
index 00000000000..814129c4906
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-021.htm
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="reference/regions-transforms-020-ref.htm" rel="match">
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ node that breaks across multiple regions and that each fragment has its own transform origin." name="assert">
+ <style>
+ .named-flow {
+ float: left;
+ background-color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-top: 25px;
+ margin-left: 25px;
+ width: 50px;
+ height: 50px;
+ transform: scale(2);
+ transform-origin: center center;
+ }
+ #named-flow-2 {
+ width: 100px;
+ height: 50px;
+ margin-top: 25px;
+ transform-origin: top left;
+ transform: scaleY(2);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="named-flow"></div>
+ <div id="named-flow-2" class="named-flow"></div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-022.htm b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-022.htm
new file mode 100644
index 00000000000..e433da77ff4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/regions-transforms-022.htm
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="UTF-8">
+ <title>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan"> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help">
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help">
+ <link href="reference/regions-transforms-020-ref.htm" rel="match">
+ <meta content="ahem" name="flags">
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ text node that breaks across multiple regions" name="assert">
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ .named-flow {
+ width: 100px;
+ color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-left: -50px;
+ transform: translateX(50px);
+ }
+ #named-flow-2 {
+ transform: rotate(90deg);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ .failure {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ float: left;
+ margin-left: 10px;
+ background-color: green;
+ z-index: -1;
+ }
+ .left {
+ color: red;
+ }
+ .right {
+ left: 118px;
+ }
+ .vertical-bar {
+ width: 10px;
+ height: 100px;
+ float: left;
+ background-color: red;
+ margin-left: 5px;
+ margin-right: 5px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div id="named-flow-2" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/html/toc.htm b/tests/wpt/css-tests/css-break-3_dev/html/toc.htm
new file mode 100644
index 00000000000..ce47a1dbe86
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/html/toc.htm
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.htm">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.htm">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.htm">Chapter 2 -
+ Fragmentation Model and Terminology</a></th>
+ <td>(4 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.htm">Chapter 3 -
+ Controlling Breaks</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.htm">Chapter 4 -
+ Rules for Breaking</a></th>
+ <td>(2 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.htm">Chapter 5 -
+ Box Model for Breaking</a></th>
+ <td>(9 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.htm">Chapter 6 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css-break-3_dev/implementation-report-TEMPLATE.data
new file mode 100644
index 00000000000..ab33f718135
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/implementation-report-TEMPLATE.data
@@ -0,0 +1,27 @@
+# UA version OS version
+# UA string (if applicable)
+# http://test.csswg.org/suites/css-break-3_dev/DATESTAMP/
+# See http://wiki.csswg.org/test/implementation-report for instructions
+testname revision result comment
+html/floats-clear-breaks-002.htm 66e95858ed37b82eeb7e8e883d8f1b3a1b51f8a4 ?
+xhtml1/floats-clear-breaks-002.xht 66e95858ed37b82eeb7e8e883d8f1b3a1b51f8a4 ?
+html/floats-in-named-flow-012.htm eafba0507ab9b5fb89bea9e14f8256691bfd2891 ?
+xhtml1/floats-in-named-flow-012.xht eafba0507ab9b5fb89bea9e14f8256691bfd2891 ?
+html/floats-in-named-flow-029.htm 3a5945dba8044ac56ae8d27832493141b8e556c6 ?
+xhtml1/floats-in-named-flow-029.xht 3a5945dba8044ac56ae8d27832493141b8e556c6 ?
+html/floats-in-named-flow-030.htm 3ed67f145da3817c1a9fe305372efcfca35292cc ?
+xhtml1/floats-in-named-flow-030.xht 3ed67f145da3817c1a9fe305372efcfca35292cc ?
+html/position-relative-001.htm d5b56444d0e5b6a788abe05b11f6dd25076c10d2 ?
+xhtml1/position-relative-001.xht d5b56444d0e5b6a788abe05b11f6dd25076c10d2 ?
+html/regions-transforms-008.htm d8a4209344da1bc8fceaf310ad275d0c3bb56fb6 ?
+xhtml1/regions-transforms-008.xht d8a4209344da1bc8fceaf310ad275d0c3bb56fb6 ?
+html/regions-transforms-009.htm 14c43707256b41cd6dfc0e25dddd2bdf0131ce64 ?
+xhtml1/regions-transforms-009.xht 14c43707256b41cd6dfc0e25dddd2bdf0131ce64 ?
+html/regions-transforms-013.htm be1b126597c212f49292d68542edfe8c2a2fe844 ?
+xhtml1/regions-transforms-013.xht be1b126597c212f49292d68542edfe8c2a2fe844 ?
+html/regions-transforms-020.htm e73e7a72635a5605583e23fde99f54047a81c339 ?
+xhtml1/regions-transforms-020.xht e73e7a72635a5605583e23fde99f54047a81c339 ?
+html/regions-transforms-021.htm 0870c65471db6185829589066be514d54fe2d274 ?
+xhtml1/regions-transforms-021.xht 0870c65471db6185829589066be514d54fe2d274 ?
+html/regions-transforms-022.htm 9aa8e9bb44f895b0429ea824b447abdcb9f533e3 ?
+xhtml1/regions-transforms-022.xht 9aa8e9bb44f895b0429ea824b447abdcb9f533e3 ?
diff --git a/tests/wpt/css-tests/css-break-3_dev/index.htm b/tests/wpt/css-tests/css-break-3_dev/index.htm
new file mode 100644
index 00000000000..50eb5d31b48
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/index.htm
@@ -0,0 +1,140 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Fragmentation Module Level 3 CR Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-break-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-break-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css3-break/">CSS Fragmentation 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Fragmentation 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+ <dt><a href="xhtml1print/toc.xht">XHTML 1.1 for Printers</a></dt>
+ <dd>XHTML 1.1 tests with all images converted from PNG to JPEG
+ and formatted with headers and footers to ease testing of
+ embedded printer software. This is not a canonical format,
+ and some tests may fail due to the format conversion that
+ would otherwise pass in the above XHTML 1.1 format.</dd>
+ </dl>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>David Alcala</li>
+ <li>Mihai Balan</li>
+ <li>Rebecca Hauck</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-break-3_dev/index.xht b/tests/wpt/css-tests/css-break-3_dev/index.xht
new file mode 100644
index 00000000000..c90a9c03bc4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/index.xht
@@ -0,0 +1,140 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Fragmentation Module Level 3 CR Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-break-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-break-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css3-break/">CSS Fragmentation 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Fragmentation 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+ <dt><a href="xhtml1print/toc.xht">XHTML 1.1 for Printers</a></dt>
+ <dd>XHTML 1.1 tests with all images converted from PNG to JPEG
+ and formatted with headers and footers to ease testing of
+ embedded printer software. This is not a canonical format,
+ and some tests may fail due to the format conversion that
+ would otherwise pass in the above XHTML 1.1 format.</dd>
+ </dl>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>David Alcala</li>
+ <li>Mihai Balan</li>
+ <li>Rebecca Hauck</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-break-3_dev/indices.css b/tests/wpt/css-tests/css-break-3_dev/indices.css
new file mode 100644
index 00000000000..7bc70eeef94
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/indices.css
@@ -0,0 +1,96 @@
+/* CSS for CSS Conformance Test Indices */
+/* Written by fantasai */
+
+/* Test Tables */
+
+ table {
+ border-collapse: collapse;
+ }
+
+ thead {
+ border-bottom: 0.2em solid;
+ }
+
+ tbody {
+ border: thin solid;
+ border-style: solid none;
+ }
+
+ tbody.ch {
+ border-top: 0.2em solid;
+ }
+ tbody.ch th {
+ font-weight: bold;
+ }
+
+ tbody th {
+ border-bottom: silver dotted thin;
+ background: #EEE;
+ color: black;
+ font-weight: normal;
+ font-style: italic;
+ }
+ tbody th :link {
+ color: gray;
+ background: transparent;
+ }
+ tbody th :visited {
+ color: #333;
+ background: transparent;
+ }
+
+ th, td {
+ padding: 0.2em;
+ text-align: left;
+ vertical-align: baseline;
+ }
+
+ td {
+ font-size: 0.9em;
+ }
+
+ /* flags */
+ td abbr {
+ border: solid thin gray;
+ padding: 0 0.1em;
+ cursor: help;
+ }
+ td abbr:hover {
+ background: #ffa;
+ color: black;
+ }
+
+
+ tr:hover {
+ background: #F9F9F9;
+ color: navy;
+ }
+
+ th a,
+ td a {
+ text-decoration: none;
+ }
+ th a:hover,
+ td a:hover,
+ th a:focus,
+ td a:focus {
+ text-decoration: underline;
+ }
+
+ td a {
+ display: block;
+ padding-left: 2em;
+ text-indent: -1em;
+ }
+ .refs {
+ font-weight: bold;
+ font-size: larger;
+ }
+ .assert, .assert > li {
+ list-style-type: none;
+ font-style: italic;
+ color: gray;
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ }
diff --git a/tests/wpt/css-tests/css-break-3_dev/testinfo.data b/tests/wpt/css-tests/css-break-3_dev/testinfo.data
new file mode 100644
index 00000000000..6f5a5df130e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/testinfo.data
@@ -0,0 +1,12 @@
+id references title flags links revision credits assertion
+floats-clear-breaks-002 reference/floats-clear-breaks-002-ref CSS Regions: forced region breaks and clear on floats inside named flow contents ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-break/#parallel-flows 66e95858ed37b82eeb7e8e883d8f1b3a1b51f8a4 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that no regions are left empty when setting a forced region break on a cleared float.
+floats-in-named-flow-012 reference/floats-in-named-flow-012-ref floats with forced region breaks inside them ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-break/#parallel-flows eafba0507ab9b5fb89bea9e14f8256691bfd2891 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that floats in named flow contents are floated relative to the region container and not their initial container, even when multiple regions are involved.
+floats-in-named-flow-029 reference/floats-in-named-flow-029-ref CSS Regions: margins around forced breaks when break is around float ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-break/#break-margins,http://www.w3.org/TR/css3-break/#parallel-flows 3a5945dba8044ac56ae8d27832493141b8e556c6 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.
+floats-in-named-flow-030 reference/floats-in-named-flow-030-ref CSS Regions: margins around unforced breaks when break is around float ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-break/#break-margins,http://www.w3.org/TR/css3-break/#parallel-flows 3ed67f145da3817c1a9fe305372efcfca35292cc `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.
+position-relative-001 reference/position-relative-001-ref CSS Regions: flowing content that has position: relative ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css3-break/#transforms d5b56444d0e5b6a788abe05b11f6dd25076c10d2 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs.
+regions-transforms-008 reference/regions-transforms-008-ref CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms d8a4209344da1bc8fceaf310ad275d0c3bb56fb6 `Rebecca Hauck`<mailto:rhauck@adobe.com>,`David Alcala`<mailto:dalcala@adobe.com>,`Mihai Balan`<mailto:mibalan@adobe.com> This test checks that named flow text content is transformed when it breaks across multiple regions and that the overflow remains visible.
+regions-transforms-009 reference/regions-transforms-008-ref CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms 14c43707256b41cd6dfc0e25dddd2bdf0131ce64 `Rebecca Hauck`<mailto:rhauck@adobe.com>,`David Alcala`<mailto:dalcala@adobe.com> This test checks that the regions are transformed when named flow text content breaks across multiple regions and that the overflow remains visible.
+regions-transforms-013 reference/regions-transforms-013-alt-ref;reference/regions-transforms-013-ref CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms,http://www.w3.org/TR/css3-break/#breaking-rules,http://www.w3.org/TR/css3-break/#monolithic be1b126597c212f49292d68542edfe8c2a2fe844 `Rebecca Hauck`<mailto:rhauck@adobe.com>,`David Alcala`<mailto:dalcala@adobe.com> This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.
+regions-transforms-020 reference/regions-transforms-020-ref CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms,http://www.w3.org/TR/css3-break/#breaking-rules e73e7a72635a5605583e23fde99f54047a81c339 `David Alcala`<mailto:dalcala@adobe.com>,`Rebecca Hauck`<mailto:rhauck@adobe.com> This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.
+regions-transforms-021 reference/regions-transforms-020-ref CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms 0870c65471db6185829589066be514d54fe2d274 `David Alcala`<mailto:dalcala@adobe.com>,`Rebecca Hauck`<mailto:rhauck@adobe.com> This test checks that separate transforms can be applied to each named flow content node that breaks across multiple regions and that each fragment has its own transform origin.
+regions-transforms-022 reference/regions-transforms-020-ref CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions ahem http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions,http://www.w3.org/TR/css3-break/#transforms 9aa8e9bb44f895b0429ea824b447abdcb9f533e3 `David Alcala`<mailto:dalcala@adobe.com>,`Rebecca Hauck`<mailto:rhauck@adobe.com> This test checks that separate transforms can be applied to each named flow content text node that breaks across multiple regions
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-1.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-1.xht
new file mode 100644
index 00000000000..71d90c11cca
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-1.xht
@@ -0,0 +1,57 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#fragmentation">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#pagination">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#placement">1.1 Module Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#values">1.2 Values</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-2.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-2.xht
new file mode 100644
index 00000000000..f84166dea78
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-2.xht
@@ -0,0 +1,131 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Fragmentation Model and Terminology - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Fragmentation Model and Terminology (4 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#fragmentation-model">2 Fragmentation Model and Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#box-fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentainer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-container">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-context">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-root">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmented-flow">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#remaining-fragmentainer-extent">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#parallel-flows">2.1 Parallel Fragmentation Flows</a></th></tr>
+ <!-- 4 tests -->
+ <tr id="floats-clear-breaks-002-2.1" class="ahem">
+ <td>
+ <a href="floats-clear-breaks-002.xht">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: forced region breaks and clear on floats inside named flow contents
+ <ul class="assert">
+ <li>Test checks that no regions are left empty when setting a forced region break on a cleared float.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-012-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-012.xht">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>floats with forced region breaks inside them
+ <ul class="assert">
+ <li>Test checks that floats in named flow contents are floated relative to the region container and not their initial container, even when multiple regions are involved.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-029-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#nested-flows">2.2 Nested Fragmentation Flows</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-3.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-3.xht
new file mode 100644
index 00000000000..a55eecd1d7e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-3.xht
@@ -0,0 +1,153 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Controlling Breaks - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Controlling Breaks (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-controls">3 Controlling Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-between">3.1 Breaks Between Boxes: the &#8216;break-before&#8217; and &#8216;break-after&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#always">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#any">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#auto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#forced-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#generic-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#left">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#recto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#right">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#verso">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-within">3.2 Breaks Within Boxes: the &#8216;break-inside&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#auto0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-column0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-page0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-region0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#break-inside">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#widows-orphans">3.3 Breaks Between Lines: &#8216;orphans&#8217;, &#8216;widows&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#orphans">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#widows">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#page-break-properties">3.4 Page Break Aliases: the &#8216;page-break-before&#8217;, &#8216;page-break-after&#8217;, and &#8216;page-break-inside&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-4.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-4.xht
new file mode 100644
index 00000000000..ec92f8f91d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-4.xht
@@ -0,0 +1,141 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Rules for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Rules for Breaking (2 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-rules">4 Rules for Breaking</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="regions-transforms-013-4" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-4" class="">
+ <td>
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.#monolithic">
+ <!-- 1 tests -->
+ <tr id="regions-transforms-013-4.#monolithic" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#possible-breaks">4.1 Possible Break Points</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-blocks">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-lines">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#end-block">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#monolithic-breaking">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-types">4.2 Types of Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#column-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#line-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#page-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#region-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#spread-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#forced-breaks">4.3 Forced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#forced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#unforced-breaks">4.4 Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4.#unforced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#best-breaks">4.5 Optimizing Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5.#widows-orphans-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-5.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-5.xht
new file mode 100644
index 00000000000..6d8b802393c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-5.xht
@@ -0,0 +1,183 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Box Model for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Box Model for Breaking (9 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-boxes">5 Box Model for Breaking</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#varying-size-boxes">5.1 Breaking into Varying-size Fragmentainers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-margins">5.2 Adjoining Margins at Breaks</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="floats-in-named-flow-029-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#box-splitting">5.3 Splitting Boxes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-decoration">5.4 Fragmented Borders and Backgrounds: the &#8216;box-decoration-break&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#box-decoration-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#clone">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#slice">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#joining-boxes">5.4.1 Joining Boxes for &#8216;slice&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#transforms">5.5 Transforms, Positioning, and Pagination</a></th></tr>
+ <!-- 7 tests -->
+ <tr id="position-relative-001-5.5" class="ahem">
+ <td>
+ <a href="position-relative-001.xht">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: flowing content that has position: relative
+ <ul class="assert">
+ <li>Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-008-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-008.xht">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that named flow text content is transformed when it breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-009-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-009.xht">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that the regions are transformed when named flow text content breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-013-5.5" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-5.5" class="">
+ <td>
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-021-5.5" class="">
+ <td>
+ <a href="regions-transforms-021.xht">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content node that breaks across multiple regions and that each fragment has its own transform origin.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-022-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-022.xht">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content text node that breaks across multiple regions</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-6.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-6.xht
new file mode 100644
index 00000000000..4e010584986
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/chapter-6.xht
@@ -0,0 +1,159 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Conformance - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance">6 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conventions">6.1 Document Conventions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance-classes">6.2 Conformance Classes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#authoring-tool">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#renderer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#style-sheet">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#partial">6.3 Partial Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#experimental">6.4 Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#testing">6.5 Non-Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#cr-exit-criteria">6.6 CR Exit Criteria</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#css-fragmentation-module">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#other-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#property-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-REGIONS-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-TEXT-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-WRITING-MODES-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-FLEXBOX">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-SIZING">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-TRANSFORMS">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3BG">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3COL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3PAGE">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3VAL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-RFC2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht
new file mode 100644
index 00000000000..013f6292e66
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: forced region breaks and clear on floats inside named flow contents</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that no regions are left empty when setting
+ a forced region break on a cleared float." name="assert" />
+ <link href="reference/floats-clear-breaks-002-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .break {
+ break-before: region;
+ }
+
+ .clear {
+ clear: left;
+ color: green;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br />
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <!-- In case the clear + forced break lead to an empty region, the content will flow in this
+ third region ending up without a border. -->
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ <div class="break clear">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht
new file mode 100644
index 00000000000..9841dedb3a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: floats with forced region breaks inside them</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that floats in named flow contents are floated relative
+ to the region container and not their initial container, even when multiple regions
+ are involved." name="assert" />
+ <link href="reference/floats-in-named-flow-012-ref.xht" rel="match" />
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .flow {
+ flow-into: f;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .break {
+ break-before: region;
+ }
+ .region {
+ flow-from: f;
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br />
+ Test fails is you see any red.
+ </p>
+
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="break">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ <div class="break">
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht
new file mode 100644
index 00000000000..e0dcbfb7fcf
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: margins around forced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via forced breaks." name="assert" />
+ <link href="reference/floats-in-named-flow-029-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .break {
+ break-before: region;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br />
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div><div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="break spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht
new file mode 100644
index 00000000000..f5395288e60
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: margins around unforced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via unforced breaks." name="assert" />
+ <link href="reference/floats-in-named-flow-030-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <p>&#xA0;</p>
+ </div><div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/position-relative-001.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/position-relative-001.xht
new file mode 100644
index 00000000000..164308e3c52
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/position-relative-001.xht
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: flowing content that has position: relative</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <!-- Section points to section in the ED. Eventually this should be kept in the WD, too. -->
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <meta content="Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs." name="assert" />
+ <meta content="ahem" name="flags" />
+ <link href="reference/position-relative-001-ref.xht" rel="match" />
+ <style>
+ .flow {
+ flow-into: f;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ flow-from: f;
+ margin: 0 0 0 20px;
+ }
+ .region p {
+ background-color: red;
+ height: 50%;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+
+ .marker {
+ background: red;
+ width: 20px;
+ height: 20px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxx
+ xxx
+ xxx
+ </div>
+ <div class="container">
+ <div class="big region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht
new file mode 100644
index 00000000000..c30f67c556a
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ overflow: hidden;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br />
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <article>
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+ <div class="bordered region">
+ <article>
+ <div>
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht
new file mode 100644
index 00000000000..a2e7363432e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .region {
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br />
+ Test fails is you see any red.
+ </p>
+
+
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht
new file mode 100644
index 00000000000..bfa00b38045
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ display: inline-block;
+ float: left;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br />
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="break spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht
new file mode 100644
index 00000000000..8add5da17f8
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 0 2em 3em 5em;
+ color: green;
+ }
+ .float {
+ margin-top: 1em;
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht
new file mode 100644
index 00000000000..7162ce35318
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ .flow {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ margin: 0 0 0 20px;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="container">
+ <div class="big region">
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <div class="flow">
+ xxx
+ xxx
+ xxx
+ </div>
+ </div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht
new file mode 100644
index 00000000000..aab004e44bb
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .square {
+ float: left;
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ margin-left: 10px;
+ color: green;
+ width: 100px;
+ height: 100px;
+ border: 1px solid black;
+ }
+
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht
new file mode 100644
index 00000000000..e393e082bf9
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-rect {
+ width: 100px;
+ height: 200px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-rect"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht
new file mode 100644
index 00000000000..5a6a3049a08
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht
new file mode 100644
index 00000000000..aae13775fd8
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest-toc.xht
new file mode 100644
index 00000000000..48d26f46228
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest-toc.xht
@@ -0,0 +1,121 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="floats-clear-breaks-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: forced region breaks and clear on floats inside named flow contents">
+ <a href="floats-clear-breaks-002.xht">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-012" class="ahem">
+ <tr>
+ <td rowspan="1" title="floats with forced region breaks inside them">
+ <a href="floats-in-named-flow-012.xht">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-029" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around forced breaks when break is around float">
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-030" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around unforced breaks when break is around float">
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="position-relative-001" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: flowing content that has position: relative">
+ <a href="position-relative-001.xht">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-008" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-008.xht">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-009" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-009.xht">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-013" class="">
+ <tr>
+ <td rowspan="2" title="CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions">
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> </td>
+ <td rowspan="2"></td>
+ </tr>
+ <tr>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-020" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions">
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-021" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions">
+ <a href="regions-transforms-021.xht">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-022" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions">
+ <a href="regions-transforms-022.xht">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest.list b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest.list
new file mode 100644
index 00000000000..5e205e23727
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/reftest.list
@@ -0,0 +1,13 @@
+
+floats-clear-breaks-002.xht == reference/floats-clear-breaks-002-ref.xht
+floats-in-named-flow-012.xht == reference/floats-in-named-flow-012-ref.xht
+floats-in-named-flow-029.xht == reference/floats-in-named-flow-029-ref.xht
+floats-in-named-flow-030.xht == reference/floats-in-named-flow-030-ref.xht
+position-relative-001.xht == reference/position-relative-001-ref.xht
+regions-transforms-008.xht == reference/regions-transforms-008-ref.xht
+regions-transforms-009.xht == reference/regions-transforms-008-ref.xht
+regions-transforms-013.xht == reference/regions-transforms-013-alt-ref.xht
+regions-transforms-013.xht == reference/regions-transforms-013-ref.xht
+regions-transforms-020.xht == reference/regions-transforms-020-ref.xht
+regions-transforms-021.xht == reference/regions-transforms-020-ref.xht
+regions-transforms-022.xht == reference/regions-transforms-020-ref.xht
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-008.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-008.xht
new file mode 100644
index 00000000000..bfdf2d48850
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-008.xht
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer author" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-008-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that named flow text content is transformed when it breaks across
+ multiple regions and that the overflow remains visible." name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ margin-left: -50px;
+ transform: translateX(50px);
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ border: 1px solid black;
+ flow-from: f;
+ }
+ .failure {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ left: 8px;
+ }
+ .right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-009.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-009.xht
new file mode 100644
index 00000000000..f0d0c48658c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-009.xht
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-008-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that the regions are transformed when named flow text content breaks
+ across multiple regions and that the overflow remains visible." name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ float: left;
+ margin-left: 10px;
+ border: 1px solid black;
+ flow-from: f;
+ transform: translateX(50px);
+ }
+ .failure-left,
+ .failure-right {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ margin-left: -40px;
+ }
+ .failure-left {
+ left: 8px;
+ }
+ .failure-right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region left"></div>
+ <div class="region"></div>
+ <div class="ahem failure-left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure-right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-013.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-013.xht
new file mode 100644
index 00000000000..e711dec1af4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-013.xht
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#monolithic" rel="help" />
+ <!-- This reference is for UAs that slice monolithic content -->
+ <link href="reference/regions-transforms-013-ref.xht" rel="match" />
+ <!-- This reference is for UAs that overflow monolithic content -->
+ <link href="reference/regions-transforms-013-alt-ref.xht" rel="match" />
+ <meta content="This test checks that the named flow content that is monolithic is transformed when it
+ breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge." name="assert" />
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+ transform: scaleY(2);
+ transform-origin: top left;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ #region1 {
+ background-color: red;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div id="named-flow"></div>
+ <div class="region" id="region1"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-020.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-020.xht
new file mode 100644
index 00000000000..e0866521167
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-020.xht
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="This test checks that the named flow content that is fragmentable (has a break point)
+ is transformed when it breaks across multiple regions." name="assert" />
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ flow-into: f;
+ }
+ .src-child {
+ height: 50px;
+ background-color: green;
+ }
+ .region {
+ width: 100px;
+ height: 50px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ transform: scaleY(2);
+ transform-origin: top left;
+ }
+
+ .failure-div {
+ position: absolute;
+ margin-left: 10px;
+ background-color: red;
+ width: 98px;
+ height: 98px;
+ }
+ .right {
+ left: 119px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="failure-div"></div>
+ <div class="failure-div right"></div>
+ <div id="named-flow">
+ <div class="src-child"></div>
+ <div class="src-child"></div>
+ </div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-021.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-021.xht
new file mode 100644
index 00000000000..4e438ad285c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-021.xht
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ node that breaks across multiple regions and that each fragment has its own transform origin." name="assert" />
+ <style>
+ .named-flow {
+ float: left;
+ background-color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-top: 25px;
+ margin-left: 25px;
+ width: 50px;
+ height: 50px;
+ transform: scale(2);
+ transform-origin: center center;
+ }
+ #named-flow-2 {
+ width: 100px;
+ height: 50px;
+ margin-top: 25px;
+ transform-origin: top left;
+ transform: scaleY(2);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="named-flow"></div>
+ <div id="named-flow-2" class="named-flow"></div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-022.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-022.xht
new file mode 100644
index 00000000000..0836a17cd7d
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/regions-transforms-022.xht
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ text node that breaks across multiple regions" name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ .named-flow {
+ width: 100px;
+ color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-left: -50px;
+ transform: translateX(50px);
+ }
+ #named-flow-2 {
+ transform: rotate(90deg);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ .failure {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ float: left;
+ margin-left: 10px;
+ background-color: green;
+ z-index: -1;
+ }
+ .left {
+ color: red;
+ }
+ .right {
+ left: 118px;
+ }
+ .vertical-bar {
+ width: 10px;
+ height: 100px;
+ float: left;
+ background-color: red;
+ margin-left: 5px;
+ margin-right: 5px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div id="named-flow-2" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1/toc.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1/toc.xht
new file mode 100644
index 00000000000..e55c4a236d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1/toc.xht
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Fragmentation Model and Terminology</a></th>
+ <td>(4 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Controlling Breaks</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Rules for Breaking</a></th>
+ <td>(2 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Box Model for Breaking</a></th>
+ <td>(9 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-1.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-1.xht
new file mode 100644
index 00000000000..71d90c11cca
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-1.xht
@@ -0,0 +1,57 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#fragmentation">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.#pagination">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#placement">1.1 Module Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#values">1.2 Values</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-2.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-2.xht
new file mode 100644
index 00000000000..f84166dea78
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-2.xht
@@ -0,0 +1,131 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Fragmentation Model and Terminology - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Fragmentation Model and Terminology (4 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#fragmentation-model">2 Fragmentation Model and Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#box-fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragment">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentainer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-container">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-context">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation-root">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmentation0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#fragmented-flow">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#remaining-fragmentainer-extent">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#parallel-flows">2.1 Parallel Fragmentation Flows</a></th></tr>
+ <!-- 4 tests -->
+ <tr id="floats-clear-breaks-002-2.1" class="ahem">
+ <td>
+ <a href="floats-clear-breaks-002.xht">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: forced region breaks and clear on floats inside named flow contents
+ <ul class="assert">
+ <li>Test checks that no regions are left empty when setting a forced region break on a cleared float.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-012-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-012.xht">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>floats with forced region breaks inside them
+ <ul class="assert">
+ <li>Test checks that floats in named flow contents are floated relative to the region container and not their initial container, even when multiple regions are involved.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-029-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-2.1" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#nested-flows">2.2 Nested Fragmentation Flows</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-3.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-3.xht
new file mode 100644
index 00000000000..a55eecd1d7e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-3.xht
@@ -0,0 +1,153 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Controlling Breaks - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Controlling Breaks (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-controls">3 Controlling Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-between">3.1 Breaks Between Boxes: the &#8216;break-before&#8217; and &#8216;break-after&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#always">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#any">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#auto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#avoid-region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#break-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#column-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#forced-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#generic-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#left">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#page-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#recto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#region-break-values">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#right">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#verso">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-within">3.2 Breaks Within Boxes: the &#8216;break-inside&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#auto0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-column0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-page0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid-region0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#avoid0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#break-inside">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#widows-orphans">3.3 Breaks Between Lines: &#8216;orphans&#8217;, &#8216;widows&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#orphans">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#widows">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#page-break-properties">3.4 Page Break Aliases: the &#8216;page-break-before&#8217;, &#8216;page-break-after&#8217;, and &#8216;page-break-inside&#8217; properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-4.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-4.xht
new file mode 100644
index 00000000000..ec92f8f91d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-4.xht
@@ -0,0 +1,141 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Rules for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Rules for Breaking (2 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-rules">4 Rules for Breaking</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="regions-transforms-013-4" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-4" class="">
+ <td>
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.#monolithic">
+ <!-- 1 tests -->
+ <tr id="regions-transforms-013-4.#monolithic" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#possible-breaks">4.1 Possible Break Points</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-blocks">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#btw-lines">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#end-block">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#monolithic-breaking">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-types">4.2 Types of Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#column-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#line-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#page-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#region-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#spread-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#forced-breaks">4.3 Forced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#forced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#unforced-breaks">4.4 Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4.#unforced-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#best-breaks">4.5 Optimizing Unforced Breaks</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.5.#widows-orphans-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-5.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-5.xht
new file mode 100644
index 00000000000..6d8b802393c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-5.xht
@@ -0,0 +1,183 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Box Model for Breaking - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Box Model for Breaking (9 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#breaking-boxes">5 Box Model for Breaking</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#varying-size-boxes">5.1 Breaking into Varying-size Fragmentainers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-margins">5.2 Adjoining Margins at Breaks</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="floats-in-named-flow-029-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around forced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via forced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="floats-in-named-flow-030-5.2" class="ahem">
+ <td>
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: margins around unforced breaks when break is around float
+ <ul class="assert">
+ <li>Test checks that margins are correctly preserved when content has floats and is fragmented via unforced breaks.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#box-splitting">5.3 Splitting Boxes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#break-decoration">5.4 Fragmented Borders and Backgrounds: the &#8216;box-decoration-break&#8217; property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#box-decoration-break">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#clone">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.#slice">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#joining-boxes">5.4.1 Joining Boxes for &#8216;slice&#8217;</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#transforms">5.5 Transforms, Positioning, and Pagination</a></th></tr>
+ <!-- 7 tests -->
+ <tr id="position-relative-001-5.5" class="ahem">
+ <td>
+ <a href="position-relative-001.xht">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: flowing content that has position: relative
+ <ul class="assert">
+ <li>Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-008-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-008.xht">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that named flow text content is transformed when it breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-009-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-009.xht">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows
+ <ul class="assert">
+ <li>This test checks that the regions are transformed when named flow text content breaks across multiple regions and that the overflow remains visible.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-013-5.5" class="">
+ <td>
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> <a href="reference/regions-transforms-013-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is monolithic is transformed when it breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-020-5.5" class="">
+ <td>
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions
+ <ul class="assert">
+ <li>This test checks that the named flow content that is fragmentable (has a break point) is transformed when it breaks across multiple regions.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-021-5.5" class="">
+ <td>
+ <a href="regions-transforms-021.xht">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td></td>
+ <td>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content node that breaks across multiple regions and that each fragment has its own transform origin.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-transforms-022-5.5" class="ahem">
+ <td>
+ <a href="regions-transforms-022.xht">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions
+ <ul class="assert">
+ <li>This test checks that separate transforms can be applied to each named flow content text node that breaks across multiple regions</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-6.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-6.xht
new file mode 100644
index 00000000000..4e010584986
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/chapter-6.xht
@@ -0,0 +1,159 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Conformance - CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance">6 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conventions">6.1 Document Conventions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#conformance-classes">6.2 Conformance Classes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#authoring-tool">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#renderer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#style-sheet">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#partial">6.3 Partial Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.4">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#experimental">6.4 Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.5">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#testing">6.5 Non-Experimental Implementations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.6">+</a>
+ <a href="http://www.w3.org/TR/css3-break/#cr-exit-criteria">6.6 CR Exit Criteria</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#css-fragmentation-module">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#other-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#property-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-REGIONS-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-TEXT-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS-WRITING-MODES-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-FLEXBOX">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-SIZING">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3-TRANSFORMS">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3BG">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3COL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3PAGE">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-CSS3VAL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#ref-RFC2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht
new file mode 100644
index 00000000000..013f6292e66
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: forced region breaks and clear on floats inside named flow contents</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that no regions are left empty when setting
+ a forced region break on a cleared float." name="assert" />
+ <link href="reference/floats-clear-breaks-002-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .break {
+ break-before: region;
+ }
+
+ .clear {
+ clear: left;
+ color: green;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br />
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <!-- In case the clear + forced break lead to an empty region, the content will flow in this
+ third region ending up without a border. -->
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ <div class="break clear">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht
new file mode 100644
index 00000000000..9841dedb3a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: floats with forced region breaks inside them</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that floats in named flow contents are floated relative
+ to the region container and not their initial container, even when multiple regions
+ are involved." name="assert" />
+ <link href="reference/floats-in-named-flow-012-ref.xht" rel="match" />
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .flow {
+ flow-into: f;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .break {
+ break-before: region;
+ }
+ .region {
+ flow-from: f;
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br />
+ Test fails is you see any red.
+ </p>
+
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="break">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ <div class="break">
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht
new file mode 100644
index 00000000000..e0dcbfb7fcf
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: margins around forced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via forced breaks." name="assert" />
+ <link href="reference/floats-in-named-flow-029-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .break {
+ break-before: region;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br />
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <p>&#xA0;</p>
+ </div><div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="break spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht
new file mode 100644
index 00000000000..f5395288e60
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: margins around unforced breaks when break is around float</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#break-margins" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#parallel-flows" rel="help" />
+ <meta content="ahem" name="flags" />
+ <meta content="Test checks that margins are correctly preserved when content
+ has floats and is fragmented via unforced breaks." name="assert" />
+ <link href="reference/floats-in-named-flow-030-ref.xht" rel="match" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .flow {
+ flow-into: f;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ flow-from: f;
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;
+ margin-left: 10px;
+ }
+
+ .region &gt; p {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <p>&#xA0;</p>
+ </div><div class="bordered region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="region">
+ <p>&#xA0;</p>
+ </div>
+
+ <article class="flow">
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ <div class="spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/position-relative-001.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/position-relative-001.xht
new file mode 100644
index 00000000000..164308e3c52
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/position-relative-001.xht
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: flowing content that has position: relative</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <!-- Section points to section in the ED. Eventually this should be kept in the WD, too. -->
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <meta content="Test checks that fragments of content flowed in regions are positioned independently, after the fragmentation occurs." name="assert" />
+ <meta content="ahem" name="flags" />
+ <link href="reference/position-relative-001-ref.xht" rel="match" />
+ <style>
+ .flow {
+ flow-into: f;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ flow-from: f;
+ margin: 0 0 0 20px;
+ }
+ .region p {
+ background-color: red;
+ height: 50%;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+
+ .marker {
+ background: red;
+ width: 20px;
+ height: 20px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxx
+ xxx
+ xxx
+ </div>
+ <div class="container">
+ <div class="big region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <p>&#xA0;</p>
+ </div>
+ <div class="marker"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht
new file mode 100644
index 00000000000..c30f67c556a
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ overflow: hidden;
+ max-width: 100px;
+ margin-bottom: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two squares separated by a small vertical space. The squares should
+ have a black outline, the top square should be blue and the bottom one should be green.<br />
+ You should see no red.
+ </p>
+
+ <div class="bordered region">
+ <article>
+ <div class="float">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+ <div class="bordered region">
+ <article>
+ <div>
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht
new file mode 100644
index 00000000000..a2e7363432e
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ color: blue;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+ .float {
+ color: green;
+ float: left;
+ }
+ .region {
+ margin: 10px;
+ width: 200px;
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ Test passes if you see two identical rows of colored squares. Each row should have three
+ squares, from left to right as follows: blue, gray, green. The squares in a row should
+ be flush to each other, but the two rows should have some space between them.<br />
+ Test fails is you see any red.
+ </p>
+
+
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+ <div class="region">
+ <article>
+ <div class="flow">
+ <div class="float">
+ <div>
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </div>
+ <div>
+ xxxxx xxxxx xxxxx xxxxx xxxxx
+ </div>
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht
new file mode 100644
index 00000000000..bfa00b38045
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 1em 2em 3em 5em;
+ color: green;
+ }
+
+ .float {
+ float: left;
+ color: blue;
+ }
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ display: inline-block;
+ float: left;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small horizontal space</li>
+ <li>The colored squares should be positioned roughly in the top-left area of their
+ rectangles, but without being flush to any of its sides</li>
+ </ul><br />
+ You should see no red.
+ <p></p>
+
+ <div class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="break spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht
new file mode 100644
index 00000000000..8add5da17f8
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ article {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ }
+
+ .spaced {
+ margin: 0 2em 3em 5em;
+ color: green;
+ }
+ .float {
+ margin-top: 1em;
+ float: left;
+ color: blue;
+ }
+
+ .bordered {
+ border: 10px solid black;
+ }
+
+ .region {
+ /* float: left; is used to trigger shrink-to-fit sizing */
+ float: left;;
+ margin-left: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ <!-- TODO Determine what the outcome should be - currently expecting a resolution on
+ the issue on www-style/css3-break -->
+ Test passes if you see two colored squares each inside a black-bordered rectangle:
+ </p><ul>
+ <li>The black-bordered rectangles should be separated by a small vertical space</li>
+ <li>The green square should have its top edge flush with the top border of its
+ containing rectangle</li>
+ </ul>
+ You should see no red.
+ <p></p>
+
+ <div style="height: 125px;" class="bordered region">
+ <article>
+ <div class="spaced float">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div><div class="bordered region">
+ <article>
+ <div class="spaced">
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx<br />
+ xxxxx
+ </div>
+ </article>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht
new file mode 100644
index 00000000000..7162ce35318
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <style>
+ .flow {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ position: relative;
+ top: 20px;
+ left: -20px;
+ }
+
+ .container {
+ display: inline-block;
+ }
+
+ .region {
+ margin: 0 0 0 20px;
+ }
+ .big {
+ width: 100px;
+ height: 100px;
+ }
+ .small {
+ width: 60px;
+ height: 60px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see two green squares (one bigger and one smaller) and no red.</p>
+ <div class="container">
+ <div class="big region">
+ <div class="flow">
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ xxxxx
+ </div>
+ </div>
+ </div>
+ <div class="container">
+ <div class="small region">
+ <div class="flow">
+ xxx
+ xxx
+ xxx
+ </div>
+ </div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht
new file mode 100644
index 00000000000..aab004e44bb
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .square {
+ float: left;
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ margin-left: 10px;
+ color: green;
+ width: 100px;
+ height: 100px;
+ border: 1px solid black;
+ }
+
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="square">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht
new file mode 100644
index 00000000000..e393e082bf9
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-rect {
+ width: 100px;
+ height: 200px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-rect"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht
new file mode 100644
index 00000000000..5a6a3049a08
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht
new file mode 100644
index 00000000000..aae13775fd8
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <style type="text/css">
+ .green-square {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: green;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="green-square"></div>
+ <div class="green-square"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest-toc.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest-toc.xht
new file mode 100644
index 00000000000..48d26f46228
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest-toc.xht
@@ -0,0 +1,121 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="floats-clear-breaks-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: forced region breaks and clear on floats inside named flow contents">
+ <a href="floats-clear-breaks-002.xht">floats-clear-breaks-002</a></td>
+ <td><a href="reference/floats-clear-breaks-002-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-012" class="ahem">
+ <tr>
+ <td rowspan="1" title="floats with forced region breaks inside them">
+ <a href="floats-in-named-flow-012.xht">floats-in-named-flow-012</a></td>
+ <td><a href="reference/floats-in-named-flow-012-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-029" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around forced breaks when break is around float">
+ <a href="floats-in-named-flow-029.xht">floats-in-named-flow-029</a></td>
+ <td><a href="reference/floats-in-named-flow-029-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="floats-in-named-flow-030" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: margins around unforced breaks when break is around float">
+ <a href="floats-in-named-flow-030.xht">floats-in-named-flow-030</a></td>
+ <td><a href="reference/floats-in-named-flow-030-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="position-relative-001" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: flowing content that has position: relative">
+ <a href="position-relative-001.xht">position-relative-001</a></td>
+ <td><a href="reference/position-relative-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-008" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-008.xht">regions-transforms-008</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-009" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows">
+ <a href="regions-transforms-009.xht">regions-transforms-009</a></td>
+ <td><a href="reference/regions-transforms-008-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-013" class="">
+ <tr>
+ <td rowspan="2" title="CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions">
+ <a href="regions-transforms-013.xht">regions-transforms-013</a></td>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a> </td>
+ <td rowspan="2"></td>
+ </tr>
+ <tr>
+ <td><a href="reference/regions-transforms-013-alt-ref.xht">=</a></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-020" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions">
+ <a href="regions-transforms-020.xht">regions-transforms-020</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-021" class="">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions">
+ <a href="regions-transforms-021.xht">regions-transforms-021</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-transforms-022" class="ahem">
+ <tr>
+ <td rowspan="1" title="CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions">
+ <a href="regions-transforms-022.xht">regions-transforms-022</a></td>
+ <td><a href="reference/regions-transforms-020-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest.list b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest.list
new file mode 100644
index 00000000000..5e205e23727
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/reftest.list
@@ -0,0 +1,13 @@
+
+floats-clear-breaks-002.xht == reference/floats-clear-breaks-002-ref.xht
+floats-in-named-flow-012.xht == reference/floats-in-named-flow-012-ref.xht
+floats-in-named-flow-029.xht == reference/floats-in-named-flow-029-ref.xht
+floats-in-named-flow-030.xht == reference/floats-in-named-flow-030-ref.xht
+position-relative-001.xht == reference/position-relative-001-ref.xht
+regions-transforms-008.xht == reference/regions-transforms-008-ref.xht
+regions-transforms-009.xht == reference/regions-transforms-008-ref.xht
+regions-transforms-013.xht == reference/regions-transforms-013-alt-ref.xht
+regions-transforms-013.xht == reference/regions-transforms-013-ref.xht
+regions-transforms-020.xht == reference/regions-transforms-020-ref.xht
+regions-transforms-021.xht == reference/regions-transforms-020-ref.xht
+regions-transforms-022.xht == reference/regions-transforms-020-ref.xht
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-008.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-008.xht
new file mode 100644
index 00000000000..bfdf2d48850
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-008.xht
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer author" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-008-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that named flow text content is transformed when it breaks across
+ multiple regions and that the overflow remains visible." name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ margin-left: -50px;
+ transform: translateX(50px);
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ border: 1px solid black;
+ flow-from: f;
+ }
+ .failure {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ left: 8px;
+ }
+ .right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-009.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-009.xht
new file mode 100644
index 00000000000..f0d0c48658c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-009.xht
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed region with named flow (text) content that breaks across multiple regions and overflows</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-008-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that the regions are transformed when named flow text content breaks
+ across multiple regions and that the overflow remains visible." name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ #named-flow {
+ color: green;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ float: left;
+ margin-left: 10px;
+ border: 1px solid black;
+ flow-from: f;
+ transform: translateX(50px);
+ }
+ .failure-left,
+ .failure-right {
+ position: absolute;
+ width: 102px;
+ height: 102px;
+ margin-top: 1px;
+ margin-left: 10px;
+ padding-left: 1px;
+ color: red;
+ z-index: -1;
+ }
+ .left {
+ margin-left: -40px;
+ }
+ .failure-left {
+ left: 8px;
+ }
+ .failure-right {
+ left: 120px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if:</p>
+ <ul>
+ <li>The two squares each contain five green horizontal stripes</li>
+ <li>There are two green horizontal stripes below the square on right</li>
+ <li>There is no red</li>
+ </ul>
+ <div class="ahem" id="named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region left"></div>
+ <div class="region"></div>
+ <div class="ahem failure-left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure-right">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-013.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-013.xht
new file mode 100644
index 00000000000..e711dec1af4
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-013.xht
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed named flow (monolithic) content that breaks across multiple regions</title>
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#monolithic" rel="help" />
+ <!-- This reference is for UAs that slice monolithic content -->
+ <link href="reference/regions-transforms-013-ref.xht" rel="match" />
+ <!-- This reference is for UAs that overflow monolithic content -->
+ <link href="reference/regions-transforms-013-alt-ref.xht" rel="match" />
+ <meta content="This test checks that the named flow content that is monolithic is transformed when it
+ breaks across multiple regions whether it is sliced or overflowed at the fragmentainer edge." name="assert" />
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+ transform: scaleY(2);
+ transform-origin: top left;
+ flow-into: f;
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ #region1 {
+ background-color: red;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see either two green squares or one vertical green rectangle. There should be no red.</p>
+ <div id="named-flow"></div>
+ <div class="region" id="region1"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-020.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-020.xht
new file mode 100644
index 00000000000..e0866521167
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-020.xht
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transformed region with named flow (fragmentable) content that breaks across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#breaking-rules" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="This test checks that the named flow content that is fragmentable (has a break point)
+ is transformed when it breaks across multiple regions." name="assert" />
+ <style>
+ #named-flow {
+ width: 100px;
+ height: 100px;
+ flow-into: f;
+ }
+ .src-child {
+ height: 50px;
+ background-color: green;
+ }
+ .region {
+ width: 100px;
+ height: 50px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ transform: scaleY(2);
+ transform-origin: top left;
+ }
+
+ .failure-div {
+ position: absolute;
+ margin-left: 10px;
+ background-color: red;
+ width: 98px;
+ height: 98px;
+ }
+ .right {
+ left: 119px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div class="failure-div"></div>
+ <div class="failure-div right"></div>
+ <div id="named-flow">
+ <div class="src-child"></div>
+ <div class="src-child"></div>
+ </div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-021.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-021.xht
new file mode 100644
index 00000000000..4e438ad285c
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-021.xht
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transforms on multiple named flow (non-text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ node that breaks across multiple regions and that each fragment has its own transform origin." name="assert" />
+ <style>
+ .named-flow {
+ float: left;
+ background-color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-top: 25px;
+ margin-left: 25px;
+ width: 50px;
+ height: 50px;
+ transform: scale(2);
+ transform-origin: center center;
+ }
+ #named-flow-2 {
+ width: 100px;
+ height: 50px;
+ margin-top: 25px;
+ transform-origin: top left;
+ transform: scaleY(2);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ background-color: red;
+ flow-from: f;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="named-flow"></div>
+ <div id="named-flow-2" class="named-flow"></div>
+ <div class="region"></div>
+ <div class="region"></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-022.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-022.xht
new file mode 100644
index 00000000000..0836a17cd7d
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/regions-transforms-022.xht
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="UTF-8" />
+ <title>CSS Regions: Transforms on multiple named flow (text) content nodes that break across multiple regions</title>
+ <link href="mailto:dalcala@adobe.com" rel="author" title="David Alcala" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:mibalan@adobe.com" rel="reviewer" title="Mihai Balan" /> <!-- 2013-07-24 -->
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css-transforms-1/#two-d-transform-functions" rel="help" />
+ <link href="http://www.w3.org/TR/css3-break/#transforms" rel="help" />
+ <link href="reference/regions-transforms-020-ref.xht" rel="match" />
+ <meta content="ahem" name="flags" />
+ <meta content="This test checks that separate transforms can be applied to each named flow content
+ text node that breaks across multiple regions" name="assert" />
+ <style>
+ .ahem {
+ font-family: Ahem;
+ font-size: 10px;
+ line-height: 20px;
+ }
+ .named-flow {
+ width: 100px;
+ color: green;
+ flow-into: f;
+ }
+ #named-flow-1 {
+ margin-left: -50px;
+ transform: translateX(50px);
+ }
+ #named-flow-2 {
+ transform: rotate(90deg);
+ }
+ .region {
+ width: 100px;
+ height: 100px;
+ margin-left: 10px;
+ float: left;
+ flow-from: f;
+ }
+ .failure {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ float: left;
+ margin-left: 10px;
+ background-color: green;
+ z-index: -1;
+ }
+ .left {
+ color: red;
+ }
+ .right {
+ left: 118px;
+ }
+ .vertical-bar {
+ width: 10px;
+ height: 100px;
+ float: left;
+ background-color: red;
+ margin-left: 5px;
+ margin-right: 5px;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if you see two green squares and no red.</p>
+ <div id="named-flow-1" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div id="named-flow-2" class="ahem named-flow">XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX</div>
+ <div class="region"></div>
+ <div class="region"></div>
+ <div class="ahem failure left">
+ XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX
+ </div>
+ <div class="ahem failure right">
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ <div class="vertical-bar"></div>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-break-3_dev/xhtml1print/toc.xht b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/toc.xht
new file mode 100644
index 00000000000..e55c4a236d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-break-3_dev/xhtml1print/toc.xht
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Fragmentation Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Fragmentation Module Level 3 CR Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Fragmentation Model and Terminology</a></th>
+ <td>(4 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Controlling Breaks</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Rules for Breaking</a></th>
+ <td>(2 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Box Model for Breaking</a></th>
+ <td>(9 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-counter-styles-3_dev/html/css3-counter-styles-016a.htm b/tests/wpt/css-tests/css-counter-styles-3_dev/html/css3-counter-styles-016a.htm
index f3faaba9136..32c1a7d044e 100644
--- a/tests/wpt/css-tests/css-counter-styles-3_dev/html/css3-counter-styles-016a.htm
+++ b/tests/wpt/css-tests/css-counter-styles-3_dev/html/css3-counter-styles-016a.htm
@@ -19,8 +19,8 @@ ol { margin: 0; padding-left: 8em; }
<div class="test">
<ol start="10999">
<li title="10999">י׳תתקצט</li>
-<li title="12000">20000</li>
-<li title="12≠001">20001</li>
+<li title="11000">11000</li>
+<li title="11001">11001</li>
</ol>
</div>
<!--Notes:
diff --git a/tests/wpt/css-tests/css-counter-styles-3_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css-counter-styles-3_dev/implementation-report-TEMPLATE.data
index fd15874bd60..44b4b2e1cc0 100644
--- a/tests/wpt/css-tests/css-counter-styles-3_dev/implementation-report-TEMPLATE.data
+++ b/tests/wpt/css-tests/css-counter-styles-3_dev/implementation-report-TEMPLATE.data
@@ -29,8 +29,8 @@ html/css3-counter-styles-015.htm b6bc6867cf7169b1d8485677a4c0ffc95a77c3e4 ?
xhtml1/css3-counter-styles-015.xht b6bc6867cf7169b1d8485677a4c0ffc95a77c3e4 ?
html/css3-counter-styles-016.htm 0ccf4b7900aed65308833f58f89afc03894473fc ?
xhtml1/css3-counter-styles-016.xht 0ccf4b7900aed65308833f58f89afc03894473fc ?
-html/css3-counter-styles-016a.htm ed5a23de0ef36a644e68a1ed79e69213c9130b07 ?
-xhtml1/css3-counter-styles-016a.xht ed5a23de0ef36a644e68a1ed79e69213c9130b07 ?
+html/css3-counter-styles-016a.htm bb952655e967e65c0e26acfc0d75c8aeb2a99fc8 ?
+xhtml1/css3-counter-styles-016a.xht bb952655e967e65c0e26acfc0d75c8aeb2a99fc8 ?
html/css3-counter-styles-017.htm e01cfb2d3f427bcdc0a2e9269e18eff990d19c6e ?
xhtml1/css3-counter-styles-017.xht e01cfb2d3f427bcdc0a2e9269e18eff990d19c6e ?
html/css3-counter-styles-019.htm 582953ae69a481a9ac1feb7486d127c48651e493 ?
diff --git a/tests/wpt/css-tests/css-counter-styles-3_dev/testinfo.data b/tests/wpt/css-tests/css-counter-styles-3_dev/testinfo.data
index 2ee7000df16..73411dd0114 100644
--- a/tests/wpt/css-tests/css-counter-styles-3_dev/testinfo.data
+++ b/tests/wpt/css-tests/css-counter-styles-3_dev/testinfo.data
@@ -12,7 +12,7 @@ css3-counter-styles-012 georgian, outside range font http://www.w3.org/TR/css-c
css3-counter-styles-014 georgian, suffix font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric 56493e8b51b0c213e17836aed9a8da0c3d11b6fb `Richard Ishida`<mailto:ishida@w3.org> list-style-type: georgian produces a suffix per the spec.
css3-counter-styles-015 hebrew, 0-9 font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric b6bc6867cf7169b1d8485677a4c0ffc95a77c3e4 `Richard Ishida`<mailto:ishida@w3.org> list-style: hebrew produces numbers up to 9 items per the spec.
css3-counter-styles-016 hebrew, 10+ font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric 0ccf4b7900aed65308833f58f89afc03894473fc `Richard Ishida`<mailto:ishida@w3.org> list-style: hebrew produces numbers after 9 items per the spec.
-css3-counter-styles-016a hebrew, outside range font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric ed5a23de0ef36a644e68a1ed79e69213c9130b07 `Richard Ishida`<mailto:ishida@w3.org> list-style-type: hebrew produces numbers in the fallback counter style above the limit per the spec.
+css3-counter-styles-016a hebrew, outside range font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric bb952655e967e65c0e26acfc0d75c8aeb2a99fc8 `Richard Ishida`<mailto:ishida@w3.org> list-style-type: hebrew produces numbers in the fallback counter style above the limit per the spec.
css3-counter-styles-017 hebrew, suffix font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric e01cfb2d3f427bcdc0a2e9269e18eff990d19c6e `Richard Ishida`<mailto:ishida@w3.org> list-style: hebrew produces a suffix per the spec.
css3-counter-styles-019 lower-roman, 0-9 font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric 582953ae69a481a9ac1feb7486d127c48651e493 `Richard Ishida`<mailto:ishida@w3.org> list-style: lower-roman produces numbers up to 9 items per the spec.
css3-counter-styles-020 lower-roman, 10-3999 font http://www.w3.org/TR/css-counter-styles-3/#simple-numeric c71b7591f7f312dab252947136f47197624b90f8 `Richard Ishida`<mailto:ishida@w3.org> list-style: lower-roman produces numbers after 9 items per the spec.
diff --git a/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1/css3-counter-styles-016a.xht b/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1/css3-counter-styles-016a.xht
index 1928894d8ea..375410db0cc 100644
--- a/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1/css3-counter-styles-016a.xht
+++ b/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1/css3-counter-styles-016a.xht
@@ -19,8 +19,8 @@ ol { margin: 0; padding-left: 8em; }
<div class="test">
<ol start="10999">
<li title="10999">י׳תתקצט</li>
-<li title="12000">20000</li>
-<li title="12≠001">20001</li>
+<li title="11000">11000</li>
+<li title="11001">11001</li>
</ol>
</div>
<!--Notes:
diff --git a/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1print/css3-counter-styles-016a.xht b/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1print/css3-counter-styles-016a.xht
index 1928894d8ea..375410db0cc 100644
--- a/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1print/css3-counter-styles-016a.xht
+++ b/tests/wpt/css-tests/css-counter-styles-3_dev/xhtml1print/css3-counter-styles-016a.xht
@@ -19,8 +19,8 @@ ol { margin: 0; padding-left: 8em; }
<div class="test">
<ol start="10999">
<li title="10999">י׳תתקצט</li>
-<li title="12000">20000</li>
-<li title="12≠001">20001</li>
+<li title="11000">11000</li>
+<li title="11001">11001</li>
</ol>
</div>
<!--Notes:
diff --git a/tests/wpt/css-tests/css-gcpm-3_dev/index.htm b/tests/wpt/css-tests/css-gcpm-3_dev/index.htm
index 8b1b1b5d426..b1961254892 100644
--- a/tests/wpt/css-tests/css-gcpm-3_dev/index.htm
+++ b/tests/wpt/css-tests/css-gcpm-3_dev/index.htm
@@ -26,7 +26,7 @@
<p>Some tests in the test suite may contain errors.
Please check the latest version of the
- <a href="http://www.w3.org/TR/css-gcpm-3/">CSS Generated Content 3 specification</a>
+ <a href="http://www.w3.org/TR/css-gcpm-3/">CSS GCPM 3 specification</a>
<strong>and its errata</strong>
before assuming a failure is due to an implementation bug and
not a test suite bug.</p>
@@ -34,7 +34,7 @@
<p>
In time we hope to correct all errors and extend this test suite to
- cover all of CSS Generated Content 3. Your help is welcome in this effort.
+ cover all of CSS GCPM 3. Your help is welcome in this effort.
The appropriate mailing list for submitting tests and bug reports is
<a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
More information on the contribution process and test guidelines is
diff --git a/tests/wpt/css-tests/css-gcpm-3_dev/index.xht b/tests/wpt/css-tests/css-gcpm-3_dev/index.xht
index 8a8a7d7bafc..6eef37321f1 100644
--- a/tests/wpt/css-tests/css-gcpm-3_dev/index.xht
+++ b/tests/wpt/css-tests/css-gcpm-3_dev/index.xht
@@ -26,7 +26,7 @@
<p>Some tests in the test suite may contain errors.
Please check the latest version of the
- <a href="http://www.w3.org/TR/css-gcpm-3/">CSS Generated Content 3 specification</a>
+ <a href="http://www.w3.org/TR/css-gcpm-3/">CSS GCPM 3 specification</a>
<strong>and its errata</strong>
before assuming a failure is due to an implementation bug and
not a test suite bug.</p>
@@ -34,7 +34,7 @@
<p>
In time we hope to correct all errors and extend this test suite to
- cover all of CSS Generated Content 3. Your help is welcome in this effort.
+ cover all of CSS GCPM 3. Your help is welcome in this effort.
The appropriate mailing list for submitting tests and bug reports is
<a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
More information on the contribution process and test guidelines is
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-1.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-1.htm
new file mode 100644
index 00000000000..507c423f7a3
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-1.htm
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Introduction - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-2.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-2.htm
new file mode 100644
index 00000000000..b1107166230
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-2.htm
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Conformance - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#conformance">2 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#interpreter">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#style-sheet">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#terminology">2.1 Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-3.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-3.htm
new file mode 100644
index 00000000000..7d844b6360e
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-3.htm
@@ -0,0 +1,66 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Declaring namespaces: the @namespace rule - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Declaring namespaces: the @namespace rule (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#declaration">3 Declaring namespaces: the @namespace rule</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#expanded-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#syntax">3.1 Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#scope">3.2 Scope</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#prefixes">3.3 Declaring Prefixes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#default-namespace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#namespace-prefix">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-4.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-4.htm
new file mode 100644
index 00000000000..4b4adfc68e9
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/chapter-4.htm
@@ -0,0 +1,90 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Qualified Names - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>CSS Qualified Names (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#css-qnames">4 CSS Qualified Names</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.#css-qualified-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acks">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#property-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#select">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#xml-names">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest-toc.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest-toc.htm
new file mode 100644
index 00000000000..d28e3645d76
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest-toc.htm
@@ -0,0 +1,30 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column">
+ <col id="ref-column">
+ <col id="flags-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest.list b/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest.list
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/reftest.list
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/html/toc.htm b/tests/wpt/css-tests/css-namespaces-3_dev/html/toc.htm
new file mode 100644
index 00000000000..abe36b803ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/html/toc.htm
@@ -0,0 +1,44 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.htm">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.htm">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.htm">Chapter 2 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.htm">Chapter 3 -
+ Declaring namespaces: the @namespace rule</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.htm">Chapter 4 -
+ CSS Qualified Names</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css-namespaces-3_dev/implementation-report-TEMPLATE.data
new file mode 100644
index 00000000000..3f3cd8f5fdb
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/implementation-report-TEMPLATE.data
@@ -0,0 +1,5 @@
+# UA version OS version
+# UA string (if applicable)
+# http://test.csswg.org/suites/css-namespaces-3_dev/DATESTAMP/
+# See http://wiki.csswg.org/test/implementation-report for instructions
+testname revision result comment
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/index.htm b/tests/wpt/css-tests/css-namespaces-3_dev/index.htm
new file mode 100644
index 00000000000..686577122dc
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/index.htm
@@ -0,0 +1,130 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en">
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Namespaces Module Level 3 Conformance Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-namespaces-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-namespaces-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css-namespaces-3/">CSS Namespaces 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Namespaces 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/index.xht b/tests/wpt/css-tests/css-namespaces-3_dev/index.xht
new file mode 100644
index 00000000000..8204902887a
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/index.xht
@@ -0,0 +1,130 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Namespaces Module Level 3 Conformance Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-namespaces-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-namespaces-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css-namespaces-3/">CSS Namespaces 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Namespaces 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/indices.css b/tests/wpt/css-tests/css-namespaces-3_dev/indices.css
new file mode 100644
index 00000000000..7bc70eeef94
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/indices.css
@@ -0,0 +1,96 @@
+/* CSS for CSS Conformance Test Indices */
+/* Written by fantasai */
+
+/* Test Tables */
+
+ table {
+ border-collapse: collapse;
+ }
+
+ thead {
+ border-bottom: 0.2em solid;
+ }
+
+ tbody {
+ border: thin solid;
+ border-style: solid none;
+ }
+
+ tbody.ch {
+ border-top: 0.2em solid;
+ }
+ tbody.ch th {
+ font-weight: bold;
+ }
+
+ tbody th {
+ border-bottom: silver dotted thin;
+ background: #EEE;
+ color: black;
+ font-weight: normal;
+ font-style: italic;
+ }
+ tbody th :link {
+ color: gray;
+ background: transparent;
+ }
+ tbody th :visited {
+ color: #333;
+ background: transparent;
+ }
+
+ th, td {
+ padding: 0.2em;
+ text-align: left;
+ vertical-align: baseline;
+ }
+
+ td {
+ font-size: 0.9em;
+ }
+
+ /* flags */
+ td abbr {
+ border: solid thin gray;
+ padding: 0 0.1em;
+ cursor: help;
+ }
+ td abbr:hover {
+ background: #ffa;
+ color: black;
+ }
+
+
+ tr:hover {
+ background: #F9F9F9;
+ color: navy;
+ }
+
+ th a,
+ td a {
+ text-decoration: none;
+ }
+ th a:hover,
+ td a:hover,
+ th a:focus,
+ td a:focus {
+ text-decoration: underline;
+ }
+
+ td a {
+ display: block;
+ padding-left: 2em;
+ text-indent: -1em;
+ }
+ .refs {
+ font-weight: bold;
+ font-size: larger;
+ }
+ .assert, .assert > li {
+ list-style-type: none;
+ font-style: italic;
+ color: gray;
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ }
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/testinfo.data b/tests/wpt/css-tests/css-namespaces-3_dev/testinfo.data
new file mode 100644
index 00000000000..92ee8bf29d7
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/testinfo.data
@@ -0,0 +1 @@
+id references title flags links revision credits assertion
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-1.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-1.xht
new file mode 100644
index 00000000000..c3a5752d6d0
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-1.xht
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-2.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-2.xht
new file mode 100644
index 00000000000..2287e7980c2
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-2.xht
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Conformance - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#conformance">2 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#interpreter">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#style-sheet">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#terminology">2.1 Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-3.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-3.xht
new file mode 100644
index 00000000000..d6cd1a0202e
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-3.xht
@@ -0,0 +1,66 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Declaring namespaces: the @namespace rule - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>Declaring namespaces: the @namespace rule (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#declaration">3 Declaring namespaces: the @namespace rule</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#expanded-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#syntax">3.1 Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#scope">3.2 Scope</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#prefixes">3.3 Declaring Prefixes</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#default-namespace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#namespace-prefix">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-4.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-4.xht
new file mode 100644
index 00000000000..97f7d2b6232
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/chapter-4.xht
@@ -0,0 +1,90 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Qualified Names - CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite</h1>
+ <h2>CSS Qualified Names (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css-namespaces-3/#css-qnames">4 CSS Qualified Names</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.#css-qualified-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acks">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#property-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#select">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#xml-names">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest-toc.xht
new file mode 100644
index 00000000000..553905b6098
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest-toc.xht
@@ -0,0 +1,30 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest.list b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest.list
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/reftest.list
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/toc.xht b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/toc.xht
new file mode 100644
index 00000000000..78afb9d2aa4
--- /dev/null
+++ b/tests/wpt/css-tests/css-namespaces-3_dev/xhtml1/toc.xht
@@ -0,0 +1,44 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Namespaces Module Level 3 Conformance Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Namespaces Module Level 3 Conformance Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Declaring namespaces: the @namespace rule</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ CSS Qualified Names</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-1.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-1.htm
new file mode 100644
index 00000000000..a4085e2d4eb
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-1.htm
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Introduction - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-2.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-2.htm
new file mode 100644
index 00000000000..c99393f3a43
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-2.htm
@@ -0,0 +1,126 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Typographic Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Typographic Pseudo-elements (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#typographic-pseudos">2 Typographic Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-pseudo">2.1 The ::first-line pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#fictional-tag-sequence">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#selectordef-first-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-text-line">2.1.1 Finding the First Formatted Line</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1.#first-formatted-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-styling">2.1.2 Styling the First Line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-inheritance">2.1.3 Inheritance and the ::first-line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-pseudo">2.2 The ::first-letter pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#issue-703eb1d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#application-in-css">2.2.1 Finding the First Letter</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-styling">2.2.2 Styling the ::first-letter Pseudo-element</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="first-letter-001-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-001.htm">first-letter-001</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter follows the usual formating rules for floats.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-002-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-002.htm">first-letter-002</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-003-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-003.htm">first-letter-003</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-3.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-3.htm
new file mode 100644
index 00000000000..e82a5c3f294
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-3.htm
@@ -0,0 +1,111 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Highlight Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Highlight Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-pseudos">3 Highlight Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-selectors">3.1 Selecting Highlighted Content: the ::selection, ::spelling-error, and ::grammar-error pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#highlight-pseudo-elements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#issue-43364a12">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-grammar-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-selection">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-spelling-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-styling">3.2 Styling Highlights</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#issue-7be57116">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-bounds">3.3 Area of a Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-271a1b90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-b6466947">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#root-highlight-overlay">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-cascade">3.4 Cascading and Per-Element Highlight Styles</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#issue-d1a9f919">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-painting">3.5 Painting the Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-8f96bd90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-a5c22c51">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-security">3.6 Security Considerations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-4.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-4.htm
new file mode 100644
index 00000000000..f2a9c37ff9c
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-4.htm
@@ -0,0 +1,66 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Tree-Abiding Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Tree-Abiding Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#treelike">4 Tree-Abiding Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#generated-content">4.1 Generated Content Pseudo-elements: ::before and ::after</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#placeholder-pseudo">4.2 Placeholder Input: the ::placeholder pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-44dd3703">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-68e6c4d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#selectordef-placeholder">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-5.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-5.htm
new file mode 100644
index 00000000000..60d54349899
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-5.htm
@@ -0,0 +1,42 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Overlapping Pseudo-element Interactions - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Overlapping Pseudo-element Interactions (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#interactions">5 Overlapping Pseudo-element Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#overlapping-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-6.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-6.htm
new file mode 100644
index 00000000000..4a7f790da7f
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/chapter-6.htm
@@ -0,0 +1,222 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Additions to the CSS Object Model - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Additions to the CSS Object Model (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#cssom">6 Additions to the CSS Object Model</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#issue-116a9e33">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface">6.1 Interface CSSPseudoElement</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#csspseudoelement">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-65c50c19">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-b008e095">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElementList-interface">6.2 Interface CSSPseudoElementList</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#csspseudoelementlist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-getbytype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-item">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytype-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytypetype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-item-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-itemindex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#window-interface">6.3 Addition to the window interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudochildren">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-elt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelementselt-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-fonts">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-text-decor">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3bg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3cascade">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3color">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3text">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-cssom">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-dom-level-2-events">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-html5">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-selectors4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax29">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax44">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance-classes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conventions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#experimental">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#idl-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#issues-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#partial">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#testing">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-001.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-001.htm
new file mode 100644
index 00000000000..15d9a61987a
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-001.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal">
+ <link href="reference/first-letter-001-ref.htm" rel="match">
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help">
+ <meta content="" name="flags">
+ <meta content="Test checks that a floated ::first-letter follows the usual formating rules for floats." name="assert">
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ background: red;
+ }
+ span {
+ background : white;
+ }
+ div::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div>a<span>&nbsp;</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-002.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-002.htm
new file mode 100644
index 00000000000..cac4c897cd6
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-002.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal">
+ <link href="reference/first-letter-001-ref.htm" rel="match">
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help">
+ <meta content="" name="flags">
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert">
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1 span {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1"><span>a</span></div>
+ <div id="d2">a</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-003.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-003.htm
new file mode 100644
index 00000000000..5e4a524f73e
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/first-letter-003.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal">
+ <link href="reference/first-letter-001-ref.htm" rel="match">
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help">
+ <meta content="" name="flags">
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert">
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1::first-letter {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2 span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1">a</div>
+ <div id="d2"><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm
new file mode 100644
index 00000000000..326349734b3
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Reference File</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal">
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ div span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest-toc.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest-toc.htm
new file mode 100644
index 00000000000..5308346f2dc
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest-toc.htm
@@ -0,0 +1,54 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column">
+ <col id="ref-column">
+ <col id="flags-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="first-letter-001" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-001.htm">first-letter-001</a></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-002" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-002.htm">first-letter-002</a></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-003" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-003.htm">first-letter-003</a></td>
+ <td><a href="reference/first-letter-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest.list b/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest.list
new file mode 100644
index 00000000000..54eb43a10db
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/reftest.list
@@ -0,0 +1,4 @@
+
+first-letter-001.htm == reference/first-letter-001-ref.htm
+first-letter-002.htm == reference/first-letter-001-ref.htm
+first-letter-003.htm == reference/first-letter-001-ref.htm
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/html/toc.htm b/tests/wpt/css-tests/css-pseudo-4_dev/html/toc.htm
new file mode 100644
index 00000000000..84fae11e9b5
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/html/toc.htm
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.htm">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.htm">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.htm">Chapter 2 -
+ Typographic Pseudo-elements</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.htm">Chapter 3 -
+ Highlight Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.htm">Chapter 4 -
+ Tree-Abiding Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.htm">Chapter 5 -
+ Overlapping Pseudo-element Interactions</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.htm">Chapter 6 -
+ Additions to the CSS Object Model</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css-pseudo-4_dev/implementation-report-TEMPLATE.data
new file mode 100644
index 00000000000..22cd3ff64bc
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/implementation-report-TEMPLATE.data
@@ -0,0 +1,11 @@
+# UA version OS version
+# UA string (if applicable)
+# http://test.csswg.org/suites/css-pseudo-4_dev/DATESTAMP/
+# See http://wiki.csswg.org/test/implementation-report for instructions
+testname revision result comment
+html/first-letter-001.htm c24641384eb63b2c0aa812b52a527edfbb9055ec ?
+xhtml1/first-letter-001.xht c24641384eb63b2c0aa812b52a527edfbb9055ec ?
+html/first-letter-002.htm ac116d66971ad3a1f90b755f2e1f787dc438ed3d ?
+xhtml1/first-letter-002.xht ac116d66971ad3a1f90b755f2e1f787dc438ed3d ?
+html/first-letter-003.htm b88afcc7f30607a8d64f92e9cec01ba9f549fffe ?
+xhtml1/first-letter-003.xht b88afcc7f30607a8d64f92e9cec01ba9f549fffe ?
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/index.htm b/tests/wpt/css-tests/css-pseudo-4_dev/index.htm
new file mode 100644
index 00000000000..47d600ff1a2
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/index.htm
@@ -0,0 +1,138 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Pseudo-Elements Module Level 4 Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-pseudo-4_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-pseudo-4_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css-pseudo-4/">CSS Pseudo-Elements 4 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Pseudo-Elements 4. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+ <dt><a href="xhtml1print/toc.xht">XHTML 1.1 for Printers</a></dt>
+ <dd>XHTML 1.1 tests with all images converted from PNG to JPEG
+ and formatted with headers and footers to ease testing of
+ embedded printer software. This is not a canonical format,
+ and some tests may fail due to the format conversion that
+ would otherwise pass in the above XHTML 1.1 format.</dd>
+ </dl>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Florian Rivoal</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/index.xht b/tests/wpt/css-tests/css-pseudo-4_dev/index.xht
new file mode 100644
index 00000000000..b5104a2b258
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/index.xht
@@ -0,0 +1,138 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Pseudo-Elements Module Level 4 Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-pseudo-4_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-pseudo-4_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css-pseudo-4/">CSS Pseudo-Elements 4 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Pseudo-Elements 4. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+ <dt><a href="xhtml1print/toc.xht">XHTML 1.1 for Printers</a></dt>
+ <dd>XHTML 1.1 tests with all images converted from PNG to JPEG
+ and formatted with headers and footers to ease testing of
+ embedded printer software. This is not a canonical format,
+ and some tests may fail due to the format conversion that
+ would otherwise pass in the above XHTML 1.1 format.</dd>
+ </dl>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Florian Rivoal</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/indices.css b/tests/wpt/css-tests/css-pseudo-4_dev/indices.css
new file mode 100644
index 00000000000..7bc70eeef94
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/indices.css
@@ -0,0 +1,96 @@
+/* CSS for CSS Conformance Test Indices */
+/* Written by fantasai */
+
+/* Test Tables */
+
+ table {
+ border-collapse: collapse;
+ }
+
+ thead {
+ border-bottom: 0.2em solid;
+ }
+
+ tbody {
+ border: thin solid;
+ border-style: solid none;
+ }
+
+ tbody.ch {
+ border-top: 0.2em solid;
+ }
+ tbody.ch th {
+ font-weight: bold;
+ }
+
+ tbody th {
+ border-bottom: silver dotted thin;
+ background: #EEE;
+ color: black;
+ font-weight: normal;
+ font-style: italic;
+ }
+ tbody th :link {
+ color: gray;
+ background: transparent;
+ }
+ tbody th :visited {
+ color: #333;
+ background: transparent;
+ }
+
+ th, td {
+ padding: 0.2em;
+ text-align: left;
+ vertical-align: baseline;
+ }
+
+ td {
+ font-size: 0.9em;
+ }
+
+ /* flags */
+ td abbr {
+ border: solid thin gray;
+ padding: 0 0.1em;
+ cursor: help;
+ }
+ td abbr:hover {
+ background: #ffa;
+ color: black;
+ }
+
+
+ tr:hover {
+ background: #F9F9F9;
+ color: navy;
+ }
+
+ th a,
+ td a {
+ text-decoration: none;
+ }
+ th a:hover,
+ td a:hover,
+ th a:focus,
+ td a:focus {
+ text-decoration: underline;
+ }
+
+ td a {
+ display: block;
+ padding-left: 2em;
+ text-indent: -1em;
+ }
+ .refs {
+ font-weight: bold;
+ font-size: larger;
+ }
+ .assert, .assert > li {
+ list-style-type: none;
+ font-style: italic;
+ color: gray;
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ }
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/testinfo.data b/tests/wpt/css-tests/css-pseudo-4_dev/testinfo.data
new file mode 100644
index 00000000000..50fd642c5ca
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/testinfo.data
@@ -0,0 +1,4 @@
+id references title flags links revision credits assertion
+first-letter-001 reference/first-letter-001-ref ::first-letter formatting https://drafts.csswg.org/css-pseudo-4/#first-letter-styling c24641384eb63b2c0aa812b52a527edfbb9055ec `Florian Rivoal`<mailto:florian@rivoal.net> Test checks that a floated ::first-letter follows the usual formating rules for floats.
+first-letter-002 reference/first-letter-001-ref ::first-letter formatting https://drafts.csswg.org/css-pseudo-4/#first-letter-styling ac116d66971ad3a1f90b755f2e1f787dc438ed3d `Florian Rivoal`<mailto:florian@rivoal.net> Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.
+first-letter-003 reference/first-letter-001-ref ::first-letter formatting https://drafts.csswg.org/css-pseudo-4/#first-letter-styling b88afcc7f30607a8d64f92e9cec01ba9f549fffe `Florian Rivoal`<mailto:florian@rivoal.net> Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-1.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-1.xht
new file mode 100644
index 00000000000..1a2b8bc08e7
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-1.xht
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-2.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-2.xht
new file mode 100644
index 00000000000..dc48344347f
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-2.xht
@@ -0,0 +1,126 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Typographic Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Typographic Pseudo-elements (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#typographic-pseudos">2 Typographic Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-pseudo">2.1 The ::first-line pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#fictional-tag-sequence">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#selectordef-first-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-text-line">2.1.1 Finding the First Formatted Line</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1.#first-formatted-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-styling">2.1.2 Styling the First Line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-inheritance">2.1.3 Inheritance and the ::first-line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-pseudo">2.2 The ::first-letter pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#issue-703eb1d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#application-in-css">2.2.1 Finding the First Letter</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-styling">2.2.2 Styling the ::first-letter Pseudo-element</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="first-letter-001-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-001.xht">first-letter-001</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter follows the usual formating rules for floats.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-002-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-002.xht">first-letter-002</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-003-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-003.xht">first-letter-003</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-3.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-3.xht
new file mode 100644
index 00000000000..ff51bf84bad
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-3.xht
@@ -0,0 +1,111 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Highlight Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Highlight Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-pseudos">3 Highlight Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-selectors">3.1 Selecting Highlighted Content: the ::selection, ::spelling-error, and ::grammar-error pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#highlight-pseudo-elements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#issue-43364a12">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-grammar-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-selection">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-spelling-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-styling">3.2 Styling Highlights</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#issue-7be57116">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-bounds">3.3 Area of a Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-271a1b90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-b6466947">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#root-highlight-overlay">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-cascade">3.4 Cascading and Per-Element Highlight Styles</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#issue-d1a9f919">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-painting">3.5 Painting the Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-8f96bd90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-a5c22c51">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-security">3.6 Security Considerations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-4.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-4.xht
new file mode 100644
index 00000000000..45f63117483
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-4.xht
@@ -0,0 +1,66 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Tree-Abiding Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Tree-Abiding Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#treelike">4 Tree-Abiding Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#generated-content">4.1 Generated Content Pseudo-elements: ::before and ::after</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#placeholder-pseudo">4.2 Placeholder Input: the ::placeholder pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-44dd3703">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-68e6c4d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#selectordef-placeholder">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-5.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-5.xht
new file mode 100644
index 00000000000..7778d23eb53
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-5.xht
@@ -0,0 +1,42 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Overlapping Pseudo-element Interactions - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Overlapping Pseudo-element Interactions (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#interactions">5 Overlapping Pseudo-element Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#overlapping-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-6.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-6.xht
new file mode 100644
index 00000000000..354669d84c0
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/chapter-6.xht
@@ -0,0 +1,222 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Additions to the CSS Object Model - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Additions to the CSS Object Model (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#cssom">6 Additions to the CSS Object Model</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#issue-116a9e33">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface">6.1 Interface CSSPseudoElement</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#csspseudoelement">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-65c50c19">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-b008e095">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElementList-interface">6.2 Interface CSSPseudoElementList</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#csspseudoelementlist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-getbytype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-item">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytype-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytypetype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-item-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-itemindex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#window-interface">6.3 Addition to the window interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudochildren">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-elt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelementselt-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-fonts">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-text-decor">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3bg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3cascade">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3color">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3text">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-cssom">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-dom-level-2-events">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-html5">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-selectors4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax29">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax44">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance-classes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conventions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#experimental">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#idl-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#issues-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#partial">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#testing">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-001.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-001.xht
new file mode 100644
index 00000000000..5a4aae9e7c0
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-001.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter follows the usual formating rules for floats." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ background: red;
+ }
+ span {
+ background : white;
+ }
+ div::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div>a<span>&#xA0;</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-002.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-002.xht
new file mode 100644
index 00000000000..b94a8993991
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-002.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1 span {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1"><span>a</span></div>
+ <div id="d2">a</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-003.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-003.xht
new file mode 100644
index 00000000000..d38012d6f7e
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/first-letter-003.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1::first-letter {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2 span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1">a</div>
+ <div id="d2"><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht
new file mode 100644
index 00000000000..ae26a9699f7
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Reference File</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ div span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest-toc.xht
new file mode 100644
index 00000000000..078137968dd
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest-toc.xht
@@ -0,0 +1,54 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="first-letter-001" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-001.xht">first-letter-001</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-002" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-002.xht">first-letter-002</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-003" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-003.xht">first-letter-003</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest.list b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest.list
new file mode 100644
index 00000000000..251bbd8aa71
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/reftest.list
@@ -0,0 +1,4 @@
+
+first-letter-001.xht == reference/first-letter-001-ref.xht
+first-letter-002.xht == reference/first-letter-001-ref.xht
+first-letter-003.xht == reference/first-letter-001-ref.xht
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/toc.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/toc.xht
new file mode 100644
index 00000000000..597e02d5f5f
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1/toc.xht
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Typographic Pseudo-elements</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Highlight Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Tree-Abiding Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Overlapping Pseudo-element Interactions</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Additions to the CSS Object Model</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-1.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-1.xht
new file mode 100644
index 00000000000..1a2b8bc08e7
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-1.xht
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-2.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-2.xht
new file mode 100644
index 00000000000..dc48344347f
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-2.xht
@@ -0,0 +1,126 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Typographic Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Typographic Pseudo-elements (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#typographic-pseudos">2 Typographic Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-pseudo">2.1 The ::first-line pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#fictional-tag-sequence">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#selectordef-first-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-text-line">2.1.1 Finding the First Formatted Line</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.1.#first-formatted-line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-styling">2.1.2 Styling the First Line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-line-inheritance">2.1.3 Inheritance and the ::first-line Pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-pseudo">2.2 The ::first-letter pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#issue-703eb1d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#application-in-css">2.2.1 Finding the First Letter</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#first-letter-styling">2.2.2 Styling the ::first-letter Pseudo-element</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="first-letter-001-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-001.xht">first-letter-001</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter follows the usual formating rules for floats.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-002-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-002.xht">first-letter-002</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="first-letter-003-2.2.2" class="primary">
+ <td><strong>
+ <a href="first-letter-003.xht">first-letter-003</a></strong></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>::first-letter formatting
+ <ul class="assert">
+ <li>Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-3.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-3.xht
new file mode 100644
index 00000000000..ff51bf84bad
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-3.xht
@@ -0,0 +1,111 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Highlight Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Highlight Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-pseudos">3 Highlight Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-selectors">3.1 Selecting Highlighted Content: the ::selection, ::spelling-error, and ::grammar-error pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#highlight-pseudo-elements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#issue-43364a12">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-grammar-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-selection">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#selectordef-spelling-error">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-styling">3.2 Styling Highlights</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#issue-7be57116">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-bounds">3.3 Area of a Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-271a1b90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#issue-b6466947">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#root-highlight-overlay">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-cascade">3.4 Cascading and Per-Element Highlight Styles</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#issue-d1a9f919">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-painting">3.5 Painting the Highlight</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-8f96bd90">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.5.#issue-a5c22c51">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#highlight-security">3.6 Security Considerations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-4.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-4.xht
new file mode 100644
index 00000000000..45f63117483
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-4.xht
@@ -0,0 +1,66 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Tree-Abiding Pseudo-elements - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Tree-Abiding Pseudo-elements (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#treelike">4 Tree-Abiding Pseudo-elements</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#generated-content">4.1 Generated Content Pseudo-elements: ::before and ::after</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-after">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#selectordef-before">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#placeholder-pseudo">4.2 Placeholder Input: the ::placeholder pseudo-element</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-44dd3703">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#issue-68e6c4d7">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#selectordef-placeholder">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-5.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-5.xht
new file mode 100644
index 00000000000..7778d23eb53
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-5.xht
@@ -0,0 +1,42 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Overlapping Pseudo-element Interactions - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Overlapping Pseudo-element Interactions (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#interactions">5 Overlapping Pseudo-element Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#overlapping-example">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-6.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-6.xht
new file mode 100644
index 00000000000..354669d84c0
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/chapter-6.xht
@@ -0,0 +1,222 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Additions to the CSS Object Model - CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite</h1>
+ <h2>Additions to the CSS Object Model (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#cssom">6 Additions to the CSS Object Model</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#issue-116a9e33">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface">6.1 Interface CSSPseudoElement</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#csspseudoelement">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudochild-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-style">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-csspseudoelement-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-65c50c19">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#issue-b008e095">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#CSSPseudoElementList-interface">6.2 Interface CSSPseudoElementList</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#csspseudoelementlist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-getbytype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-item">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudochildlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytype-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-getbytypetype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-item-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-itemindex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#dom-csspseudoelementlist-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css-pseudo-4/#window-interface">6.3 Addition to the window interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudochildren">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-elt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelements-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#dom-window-getpseudoelementselt-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgements">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-fonts">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-text-decor">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3bg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3cascade">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3color">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3line">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3text">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-cssom">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-dom-level-2-events">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-html5">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-selectors4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax29">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-uax44">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance-classes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conventions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#experimental">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#idl-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#issues-index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#partial">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#testing">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-001.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-001.xht
new file mode 100644
index 00000000000..5a4aae9e7c0
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-001.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter follows the usual formating rules for floats." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ background: red;
+ }
+ span {
+ background : white;
+ }
+ div::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div>a<span>&#xA0;</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-002.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-002.xht
new file mode 100644
index 00000000000..b94a8993991
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-002.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1 span {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2::first-letter {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1"><span>a</span></div>
+ <div id="d2">a</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-003.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-003.xht
new file mode 100644
index 00000000000..d38012d6f7e
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/first-letter-003.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test: ::first-letter formatting</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <link href="reference/first-letter-001-ref.xht" rel="match" />
+ <link href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling" rel="help" />
+ <meta content="" name="flags" />
+ <meta content="Test checks that a floated ::first-letter is formatted identically to a floated non-pseudo element with the same content." name="assert" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ #d1::first-letter {
+ color: red;
+ background: red;
+ float: left;
+ }
+ #d2 span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div id="d1">a</div>
+ <div id="d2"><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht
new file mode 100644
index 00000000000..ae26a9699f7
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Reference File</title>
+ <link href="mailto:florian@rivoal.net" rel="author" title="Florian Rivoal" />
+ <style>
+ div {
+ font-size: 50px;
+ position: absolute;
+ left: 30px;
+ top: 50px;
+ }
+ div span {
+ color: green;
+ background: green;
+ float: left;
+ }
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green rectangle</strong> and <strong>no red</strong>.</p>
+ <div><span>a</span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest-toc.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest-toc.xht
new file mode 100644
index 00000000000..078137968dd
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest-toc.xht
@@ -0,0 +1,54 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="first-letter-001" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-001.xht">first-letter-001</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-002" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-002.xht">first-letter-002</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="first-letter-003" class="">
+ <tr>
+ <td rowspan="1" title="::first-letter formatting">
+ <a href="first-letter-003.xht">first-letter-003</a></td>
+ <td><a href="reference/first-letter-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest.list b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest.list
new file mode 100644
index 00000000000..251bbd8aa71
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/reftest.list
@@ -0,0 +1,4 @@
+
+first-letter-001.xht == reference/first-letter-001-ref.xht
+first-letter-002.xht == reference/first-letter-001-ref.xht
+first-letter-003.xht == reference/first-letter-001-ref.xht
diff --git a/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/toc.xht b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/toc.xht
new file mode 100644
index 00000000000..597e02d5f5f
--- /dev/null
+++ b/tests/wpt/css-tests/css-pseudo-4_dev/xhtml1print/toc.xht
@@ -0,0 +1,54 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Pseudo-Elements Module Level 4 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Pseudo-Elements Module Level 4 Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Typographic Pseudo-elements</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Highlight Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Tree-Abiding Pseudo-elements</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Overlapping Pseudo-element Interactions</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Additions to the CSS Object Model</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/absolute_length_units.htm b/tests/wpt/css-tests/css-values-3_dev/html/absolute_length_units.htm
new file mode 100644
index 00000000000..cbf8e61bb0b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/absolute_length_units.htm
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Values and Units Test: elements should be the real world size given in mm, cm, inches...</title>
+ <meta content="elements are not displayed with the real world size units they should be, when specified in millimeters, centimeters, inches, ..." name="assert">
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" title="5.1.2. Viewport-percentage lengths: the 'vw', 'vh', 'vmin', 'vmax' units">
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ .s1mm { background: #F00; width: 1mm; height: 1mm; }
+ .s10mm { background: #66F; width: 10mm; height: 10mm; }
+ .s1cm { background: #E90; width: 1cm; height: 1cm; }
+ .s254cm { background: #D0D; width: 2.54cm; height: 2.54cm; }
+ .s1in { background: #00F; width: 1in; height: 1in; }
+
+ .inline { float: left; }
+
+ .newline { clear: left; }
+
+ p { clear: both; margin: 10px 0; }
+
+ </style>
+
+</head>
+<body>
+
+<p>
+ This should be 1mm (width) by 1mm (height) size
+</p>
+
+<div class="s1mm"></div>
+
+<p>
+ This is 10 1mm x 1mm divs, so it should be 10mm (width) by 1mm (height) size
+</p>
+
+<div class="s1mm newline inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+
+<p>
+ This should be 10mm (width) by 10mm (height) size.
+</p>
+
+<div class="s10mm newline "></div>
+
+<p>
+ This should be 1cm (width) by 1cm (height) size. So, same width as the line above.
+</p>
+
+<div class="s1cm newline "></div>
+
+<p>
+ This should be 2.54cm (width) by 2.54cm (height) size.
+</p>
+
+<div class="s254cm newline "></div>
+
+<p>
+ This should be 1in (width) by 1in (height) size. So, same size as above.
+</p>
+
+<div class="s1in"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-background-image-gradient-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-image-gradient-1.htm
new file mode 100644
index 00000000000..c45b723ca58
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-image-gradient-1.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for calc() on background-image gradients</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-background-image-gradient-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+}
+
+#one { background-image: radial-gradient(circle farthest-side at calc(50px + 50%) calc(100% - 30px), red, green); }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-background-linear-gradient-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-linear-gradient-1.htm
new file mode 100644
index 00000000000..a0cc6804355
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-linear-gradient-1.htm
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Support calc() on gradient stop positions</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594935" rel="author" title="Yu-Sian (Thomasy) Liu">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-background-linear-gradient-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+div {
+ width:100px;
+ height:100px;
+ background:red;
+ margin:5px 0 0 5px;
+ float:left;
+}
+div#one {
+ background: linear-gradient(lime 0px, lime calc(100% - 10px), blue calc(100% - 10px), blue 100%);
+}
+div#two {
+ background: linear-gradient(blue calc(100% - 100px) ,green calc(10% + 20px) ,red 40px ,white calc(100% - 40px) , lime 80px);
+}
+div#three {
+ background: linear-gradient(blue calc(0px) ,purple calc(20%) ,red calc(10px + 10px + 20px) ,blue calc(30% + 30px) , lime calc(180% - 100px));
+}
+div#four {
+ background: linear-gradient(blue calc(0% + 0px) ,green calc(10% + 20px) ,red 40px ,blue calc(200% / 2 - 40px) , yellow 80px);
+}
+div#five {
+ background: linear-gradient(red calc(100% - 100px) ,green calc(10% + 20px));
+}
+
+</style>
+</head>
+<body>
+<div id="one">1</div>
+<div id="two">2</div>
+<div id="three">3</div>
+<div id="four">4</div>
+<div id="five">5</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-background-position-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-position-1.htm
new file mode 100644
index 00000000000..1afe1c24d36
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-position-1.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for calc() on background-position</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-background-position-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-position: calc(50px + 50%) calc(100% - 30px) }
+#two { background-position: calc(-12.5% + 3px) calc(-10px - 50%) }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-background-size-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-size-1.htm
new file mode 100644
index 00000000000..7062dbb62b5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-background-size-1.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for calc() on background-size</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-background-size-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-size: calc(50px + 50%) calc(100% - 30px) }
+#two { background-size: calc(50px + 50%) calc(10px - 50%) }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-border-radius-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-border-radius-1.htm
new file mode 100644
index 00000000000..b5ea5550465
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-border-radius-1.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: test for border-radius: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-border-radius-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ /* We use powers of two here to avoid floating-point issues.
+ See bug 590181. */
+
+ height: 256px;
+ width: 512px;
+ background: blue;
+ border-radius: calc((1/32 * 100%) + 5px)
+ calc((1/64 * 100%) - 2px)
+ calc(10px + (1/256 * 100%))
+ calc((1/16 * 100%) - 3px) /
+ calc((1/32 * 100%) - (1px + (1/128 * 100%)))
+ calc(1/16 * 100%)
+ calc(10px)
+ 3px;
+}
+
+</style>
+</head>
+<body>
+<p></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-height-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-height-block-1.htm
new file mode 100644
index 00000000000..1b99d74b1b9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-height-block-1.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-height-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 1px; }
+body > div > div { background: blue }
+
+/* for auto-height tests */
+body > div > div > div > div { height: 10px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="height: calc(50px)"></div></div>
+<div><div style="height: calc(50%)"></div></div>
+<div><div style="height: calc(25px + 50%)"></div></div>
+<div><div style="height: calc(150% / 2 - 30px)"></div></div>
+<div><div style="height: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="height: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="height: calc(50px)"><div></div></div></div></div>
+<div><div><div style="height: calc(50%)"><div></div></div></div></div>
+<div><div><div style="height: calc(25px + 50%)"><div></div></div></div></div>
+<div><div><div style="height: calc(150% / 2 - 30px)"><div></div></div></div></div>
+<div><div><div style="height: calc(40px + 10% - 20% / 2)"><div></div></div></div></div>
+<div><div><div style="height: calc(40px - 10%)"><div></div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-height-table-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-height-table-1.htm
new file mode 100644
index 00000000000..1117ca08026
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-height-table-1.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test that height:calc() with no percentages has an effect on inner table elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-height-table-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+tbody, tr, td {
+ height: calc(500px);
+ min-height: calc(700px);
+ max-height: calc(2px);
+}
+</style>
+</head>
+<body>
+<table border="">
+ <tbody>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ </tbody>
+</table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-margin-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-margin-block-1.htm
new file mode 100644
index 00000000000..abced49291d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-margin-block-1.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test of margin-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-margin-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+div { border: medium solid green; width: 500px }
+p { background: yellow }
+
+</style>
+</head>
+<body>
+
+<div><p style="margin: calc(10px + 1%) 0 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 calc(10px + 1%) 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 calc(10px + 1%) 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 0 calc(10px + 1%)">paragraph with margin</p></div>
+<div><p style="margin: calc(30px - 1%)">paragraph with margin</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-max-height-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-height-block-1.htm
new file mode 100644
index 00000000000..5f1d9788853
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-height-block-1.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for max-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-max-height-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 1px; }
+body > div > div { background: blue }
+
+/* to give the max-height something to restrict */
+span { display: block; height: 300px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="max-height: calc(50px)"><span></span></div></div>
+<div><div style="max-height: calc(50%)"><span></span></div></div>
+<div><div style="max-height: calc(25px + 50%)"><span></span></div></div>
+<div><div style="max-height: calc(150% / 2 - 30px)"><span></span></div></div>
+<div><div style="max-height: calc(40px + 10% - 20% / 2)"><span></span></div></div>
+<div><div style="max-height: calc(40px - 10%)"><span></span></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="max-height: calc(50px)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(50%)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(25px + 50%)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(150% / 2 - 30px)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(40px + 10% - 20% / 2)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(40px - 10%)"><span></span></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-1.htm
new file mode 100644
index 00000000000..7f3d64adb4e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-1.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px; width: 1000px; }
+
+</style>
+</head>
+<body>
+
+<p style="max-width: calc(50% - 3px)">50% - 3px</p>
+<p style="max-width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="max-width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="max-width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="max-width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="max-width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="max-width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm
new file mode 100644
index 00000000000..101088c0d0e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: intrinsic width of max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-max-width-block-intrinsic-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { font-size: 10px }
+body > div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body > div > div { width: 400px }
+body > div > div > div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="max-width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="max-width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="max-width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="max-width: calc(50%)"><div></div></div></div>
+<div><div style="max-width: calc(50px)"><div></div></div></div>
+<div><div style="max-width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-min-height-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-height-block-1.htm
new file mode 100644
index 00000000000..aca672e860b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-height-block-1.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for min-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-height-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 1px; }
+body > div > div { background: blue }
+
+/* for auto-height tests */
+body > div > div > div > div { height: 10px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="min-height: calc(50px)"></div></div>
+<div><div style="min-height: calc(50%)"></div></div>
+<div><div style="min-height: calc(25px + 50%)"></div></div>
+<div><div style="min-height: calc(150% / 2 - 30px)"></div></div>
+<div><div style="min-height: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="min-height: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="min-height: calc(50px)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(50%)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(25px + 50%)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(150% / 2 - 30px)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(40px + 10% - 20% / 2)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(40px - 10%)"><div></div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-1.htm
new file mode 100644
index 00000000000..6876d31ce6e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-1.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px; width: 0 }
+
+</style>
+</head>
+<body>
+
+<p style="min-width: calc(50% - 3px)">50% - 3px</p>
+<p style="min-width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="min-width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="min-width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="min-width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="min-width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="min-width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm
new file mode 100644
index 00000000000..21dd63361b4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: intrinsic width of min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-min-width-block-intrinsic-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { font-size: 10px }
+body > div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body > div > div { width: 1px }
+body > div > div > div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="min-width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="min-width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="min-width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="min-width: calc(50%)"><div></div></div></div>
+<div><div style="min-width: calc(50px)"><div></div></div></div>
+<div><div style="min-width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm
new file mode 100644
index 00000000000..13cf902a738
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for bottom:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-absolute-top-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; margin-top: -90px; height: 100px; margin-bottom: 90px; width: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 10px; width: 3px }
+div.space { height: 100px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="bottom: calc(-50px)"></div></div>
+<div><div style="bottom: calc(-50%)"></div></div>
+<div><div style="bottom: calc(-25px - 50%)"></div></div>
+<div><div style="bottom: calc(-150% / 2 + 30px)"></div></div>
+<div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div>
+<div><div style="bottom: calc(-40px + 10%)"></div></div>
+
+<!-- tests with an auto-bottom container -->
+<div><div><div style="bottom: calc(-50px)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-50%)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-25px - 50%)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-150% / 2 + 30px)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-40px + 10%)"></div><div class="space"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-left-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-left-1.htm
new file mode 100644
index 00000000000..a9ff82e42c4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-left-1.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for left:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-left-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 100px; width: 200px }
+body > div { height: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 3px; width: 100px }
+</style>
+</head>
+<body>
+
+<div><div style="left: calc(50px)"></div></div>
+<div><div style="left: calc(-25%)"></div></div>
+<div><div style="left: calc(25px + 25%)"></div></div>
+<div><div style="left: calc(-75% / 2 + 30px)"></div></div>
+<div><div style="left: calc(40px + 5% - 10% / 2)"></div></div>
+<div><div style="left: calc(5% - 40px)"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-right-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-right-1.htm
new file mode 100644
index 00000000000..a98a753f928
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-right-1.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for right:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-left-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0; width: 200px }
+body > div { height: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 3px; width: 100px }
+</style>
+</head>
+<body>
+
+<div><div style="right: calc(-50px)"></div></div>
+<div><div style="right: calc(25%)"></div></div>
+<div><div style="right: calc(-25px - 25%)"></div></div>
+<div><div style="right: calc(75% / 2 - 30px)"></div></div>
+<div><div style="right: calc(-40px - 5% + 10% / 2)"></div></div>
+<div><div style="right: calc(-5% + 40px)"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-top-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-top-1.htm
new file mode 100644
index 00000000000..beb375a8d59
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-absolute-top-1.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for top:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-absolute-top-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 10px; width: 3px }
+div.space { height: 100px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: calc(50px)"></div></div>
+<div><div style="top: calc(50%)"></div></div>
+<div><div style="top: calc(25px + 50%)"></div></div>
+<div><div style="top: calc(150% / 2 - 30px)"></div></div>
+<div><div style="top: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="top: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="top: calc(50px)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(50%)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(25px + 50%)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(150% / 2 - 30px)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(40px + 10% - 20% / 2)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(40px - 10%)"></div><div class="space"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm
new file mode 100644
index 00000000000..d6612e74a1c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for bottom:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-top-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="bottom: calc(-50px)"></div></div>
+<div><div style="bottom: calc(-50%)"></div></div>
+<div><div style="bottom: calc(-25px - 50%)"></div></div>
+<div><div style="bottom: calc(-150% / 2 + 30px)"></div></div>
+<div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div>
+<div><div style="bottom: calc(-40px + 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="bottom: calc(-50px)"></div></div></div>
+<div><div><div style="bottom: calc(-50%)"></div></div></div>
+<div><div><div style="bottom: calc(-25px - 50%)"></div></div></div>
+<div><div><div style="bottom: calc(-150% / 2 + 30px)"></div></div></div>
+<div><div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div></div>
+<div><div><div style="bottom: calc(-40px + 10%)"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-left-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-left-1.htm
new file mode 100644
index 00000000000..f7fc52195ef
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-left-1.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for left:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-left-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="left: calc(50px)"></div>
+<div style="left: calc(-50%)"></div>
+<div style="left: calc(25px + 50%)"></div>
+<div style="left: calc(-150% / 2 + 30px)"></div>
+<div style="left: calc(40px + 10% - 20% / 2)"></div>
+<div style="left: calc(10% - 40px)"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-right-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-right-1.htm
new file mode 100644
index 00000000000..d40fef9b00f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-right-1.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for right:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-left-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="right: calc(-50px)"></div>
+<div style="right: calc(50%)"></div>
+<div style="right: calc(-25px - 50%)"></div>
+<div style="right: calc(150% / 2 - 30px)"></div>
+<div style="right: calc(-40px - 10% + 20% / 2)"></div>
+<div style="right: calc(-10% + 40px)"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-top-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-top-1.htm
new file mode 100644
index 00000000000..3c4fb0f9c51
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-offsets-relative-top-1.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for top:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-offsets-relative-top-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: calc(50px)"></div></div>
+<div><div style="top: calc(50%)"></div></div>
+<div><div style="top: calc(25px + 50%)"></div></div>
+<div><div style="top: calc(150% / 2 - 30px)"></div></div>
+<div><div style="top: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="top: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="top: calc(50px)"></div></div></div>
+<div><div><div style="top: calc(50%)"></div></div></div>
+<div><div><div style="top: calc(25px + 50%)"></div></div></div>
+<div><div><div style="top: calc(150% / 2 - 30px)"></div></div></div>
+<div><div><div style="top: calc(40px + 10% - 20% / 2)"></div></div></div>
+<div><div><div style="top: calc(40px - 10%)"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-padding-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-padding-block-1.htm
new file mode 100644
index 00000000000..3721d313fbf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-padding-block-1.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test of padding-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-padding-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+div { border: medium solid green }
+p { background: yellow; margin: 0 }
+
+</style>
+</head>
+<body>
+
+<div style="padding: calc(10px + 1%) 0 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 calc(10px + 1%) 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 calc(10px + 1%) 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 0 calc(10px + 1%)"><p>paragraph with padding</p></div>
+<div style="padding: calc(30px - 1%)"><p>paragraph with padding</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-1.htm
new file mode 100644
index 00000000000..024c2c13bfd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-1.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-text-indent-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="text-indent: calc(50% - 3px)">50% - 3px</p>
+<p style="text-indent: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="text-indent: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="text-indent: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="text-indent: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="text-indent: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="text-indent: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm
new file mode 100644
index 00000000000..f06dd239147
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: intrinsic width of text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-text-indent-intrinsic-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { font-size: 10px }
+div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+span { display: inline-block; width: 10px }
+
+</style>
+</head>
+<body>
+
+<div style="text-indent: calc(50% - 3px)"><span></span></div>
+<div style="text-indent: calc(5em - 3px)"><span></span></div>
+<div style="text-indent: calc(5em - 0%)"><span></span></div>
+<div style="text-indent: calc(50%)"><span></span></div>
+<div style="text-indent: calc(50px)"><span></span></div>
+<div style="text-indent: calc(25% + 25%)"><span></span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-transform-origin-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-transform-origin-1.htm
new file mode 100644
index 00000000000..5fd093cf0cb
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-transform-origin-1.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for calc() on transform-origin</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-transform-origin-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { margin: 100px }
+
+p {
+ height: 50px; width: 200px;
+ background: yellow;
+ transform: rotate(15deg);
+}
+
+#one { transform-origin: calc(50px + 50%) calc(100% - 30px); }
+#two { transform-origin: calc(-12.5% + 3px) calc(-10px - 50%); }
+
+</style>
+</head>
+<body>
+<p id="one">hello</p>
+<p id="two">hello</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-unit-analysis.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-unit-analysis.htm
new file mode 100644
index 00000000000..ec29491271a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-unit-analysis.htm
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Variables Allowed Syntax</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://mozilla.com/" rel="author" title="Mozilla Corporation">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#calc-type-checking" rel="help">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+<style id="style"></style>
+<script id="metadata_cache">/*
+{
+ "unitless_zero_in_calc_is_a_numeric_type_not_length": { "assert": "invalid calc expression: unitless zero in calc() is a numeric type, not length" },
+ "0px_in_calc": { "assert": "invalid calc expression: 0px in calc()" },
+ "addition_of_length_and_number": { "assert": "invalid calc expression: addition of length and number" },
+ "addition_of_number_and_length": { "assert": "invalid calc expression: addition of number and length" },
+ "subtraction_of_length_and_number": { "assert": "invalid calc expression: subtraction of length and number" },
+ "subtraction_of_number_and_length": { "assert": "invalid calc expression: subtraction of number and length" },
+ "multiplication_of_length_and_number": { "assert": "invalid calc expression: multiplication of length and number" },
+ "multiplication_of_number_and_length": { "assert": "invalid calc expression: multiplication of number and length" },
+ "multiplication_of_length_and_length": { "assert": "invalid calc expression: multiplication of length and length" }
+}
+*/</script>
+</head>
+<body onload="run()">
+<div id="log"></div>
+<div id="test"></div>
+<script>
+
+function run() {
+ var test_elt = document.getElementById("test");
+ var test_cs = window.getComputedStyle(test_elt, "");
+
+ function description_to_name(description) {
+ return description.replace(/\W+/g, "_").replace(/^_/, "").replace(/_$/, "");
+ }
+
+ function assert_invalid_value(property, value, description) {
+ test(function() {
+ test_elt.style.setProperty(property, "inherit");
+ test_elt.style.setProperty(property, value);
+ assert_equals(test_elt.style.getPropertyValue(property),
+ "inherit");
+ test_elt.style.setProperty(property, value);
+ test_elt.style.removeProperty(property);
+ },
+ description_to_name(description),
+ { assert: "invalid calc expression: " + description });
+ }
+
+ function assert_valid_value(property, value, computes_to, description) {
+ test(function() {
+ test_elt.style.setProperty(property, "inherit");
+ test_elt.style.setProperty(property, value);
+ assert_not_equals(test_elt.style.getPropertyValue(property),
+ "inherit");
+ assert_equals(test_cs.getPropertyValue(property),
+ computes_to);
+ test_elt.style.removeProperty(property);
+ },
+ description_to_name(description),
+ { assert: "valid calc expression: " + description });
+ }
+
+ assert_invalid_value("margin-left", "calc(0)",
+ "unitless zero in calc() is a numeric type, not length");
+ assert_valid_value("margin-left", "calc(0px)", "0px",
+ "0px in calc()");
+ assert_invalid_value("margin-left", "calc(1px + 2)",
+ "addition of length and number");
+ assert_invalid_value("margin-left", "calc(2 + 1px)",
+ "addition of number and length");
+ assert_invalid_value("margin-left", "calc(1px - 2)",
+ "subtraction of length and number");
+ assert_invalid_value("margin-left", "calc(2 - 1px)",
+ "subtraction of number and length");
+ assert_valid_value("margin-left", "calc(2px * 2)", "4px",
+ "multiplication of length and number");
+ assert_valid_value("margin-left", "calc(2 * 2px)", "4px",
+ "multiplication of number and length");
+ assert_invalid_value("margin-left", "calc(2px * 1px)",
+ "multiplication of length and length");
+
+}
+
+run();
+
+</script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-vertical-align-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-vertical-align-1.htm
new file mode 100644
index 00000000000..41acc3d90d1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-vertical-align-1.htm
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: Test for vertical-align:calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-vertical-align-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+
+</head><body><div style="line-height: 100px; margin-top: 100px">
+ <span>x</span>
+ <span style="vertical-align: calc(50px)">x</span>
+ <span style="vertical-align: calc(50%)">x</span>
+ <span style="vertical-align: calc(25px + 50%)">x</span>
+ <span style="vertical-align: calc(150% / 2 - 30px)">x</span>
+ <span style="vertical-align: calc(40px + 10% - 20% / 2)">x</span>
+ <span style="vertical-align: calc(40px - 10%)">x</span>
+</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-1.htm
new file mode 100644
index 00000000000..99ffea3c38f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-1.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-block-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="width: calc(50% - 3px)">50% - 3px</p>
+<p style="width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-intrinsic-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-intrinsic-1.htm
new file mode 100644
index 00000000000..80b82d5c7e6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-block-intrinsic-1.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: intrinsic width of width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-block-intrinsic-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { font-size: 10px }
+body > div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body > div > div > div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="width: calc(50%)"><div></div></div></div>
+<div><div style="width: calc(50px)"><div></div></div></div>
+<div><div style="width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-auto-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-auto-1.htm
new file mode 100644
index 00000000000..9604b77f350
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-auto-1.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-table-auto-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+</head><body><table border="">
+ <tbody><tr>
+ <td style="width: calc(500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(50%)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(2 * 10% + 0.5 * 500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-fixed-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-fixed-1.htm
new file mode 100644
index 00000000000..305591378fd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/calc-width-table-fixed-1.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help">
+ <link href="reference/calc-width-table-fixed-1-ref.htm" rel="match">
+ <meta content="" name="flags">
+<style type="text/css">
+table { table-layout: fixed; width: 500px; border-spacing: 0 }
+</style>
+</head>
+<body>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(50%)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(2 * 10% + 0.5 * 500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/ch-unit-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/ch-unit-001.htm
new file mode 100644
index 00000000000..90aff98cc0c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/ch-unit-001.htm
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html><head><meta charset="utf-8">
+<title>CSS Values and Units Test: support for the ch unit</title>
+<link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal">
+<link href="https://drafts.csswg.org/css-values-3/#font-relative-lengths" rel="help">
+<meta content="" name="flags">
+<link href="reference/ch-unit-001-ref.htm" rel="match">
+<meta content="The ch unit is equal to the used advance measure of the 0 (ZERO, U+0030) glyph found in the font used to render it." name="assert">
+<style>
+span {
+ background: green;
+ color: green;
+ top: 0; bottom: 0;
+ position: absolute;
+}
+div {
+ background: red;
+ color: red;
+ position: relative;
+ height: 10ch;
+ width: 5ch;
+ float: left;
+}
+
+div + div {
+ width: auto;
+}
+
+div + div span {
+ width: 5ch;
+}
+</style>
+</head><body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div><span>00000</span></div>
+ <div><span></span>00000</div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-1.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-1.htm
new file mode 100644
index 00000000000..69790fdaed3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-1.htm
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Introduction - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#placement">1.1 Module Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-2.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-2.htm
new file mode 100644
index 00000000000..961d9967990
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-2.htm
@@ -0,0 +1,117 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Value Definition Syntax - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Value Definition Syntax (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#value-defs">2 Value Definition Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-types">2.1 Component value types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#comb-comma">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#example-1c610a4c">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-combinators">2.2 Component value combinators</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-all">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-any">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-one">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-multipliers">2.3 Component value multipliers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-comma">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-num">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-num-range">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-one-plus">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-opt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-req">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-zero-plus">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#combinator-multiplier-patterns">2.4 Combinator and Multiplier Patterns</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.5">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-whitespace">2.5 Component values and white space</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.6">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#value-examples">2.6 Property value examples</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6.#example-ceb46dd6">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6.#propvalues">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-3.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-3.htm
new file mode 100644
index 00000000000..c15556695a2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-3.htm
@@ -0,0 +1,156 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Textual Data Types - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Textual Data Types (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#textual-values">3 Textual Data Types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#identifier">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#keywords">3.1 Pre-defined Keywords</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#example-fefeae88">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#common-keywords">3.1.1 CSS-wide keywords: initial, inherit and unset</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="multicol-inherit-002-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-inherit-002.htm">multicol-inherit-002</a></td>
+ <td><a href="reference/multicol-inherit-002-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>'column-count' and inherit
+ <ul class="assert">
+ <li>This test checks that 'column-count' can be inherited by setting it with the CSS-wide keyword 'inherit'.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-rule-color-inherit-001-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-rule-color-inherit-001.htm">multicol-rule-color-inherit-001</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>column-rule-color: inherit
+ <ul class="assert">
+ <li>This test checks that, by default, column-rule-color is the current color applying to the element unless reserved keyword 'inherit' is used in which case column-rule-color will be inherited from the parent's column-rule-color value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-rule-color-inherit-002-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-rule-color-inherit-002.htm">multicol-rule-color-inherit-002</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>column-rule-color: inherit (complex)
+ <ul class="assert">
+ <li>This test checks that, by default, column-rule-color is the current color applying to the element.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s3.1.1.#css_wide-keywords">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#custom-idents">3.2 Author-defined Identifiers: the <custom-ident> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#example-4adf48cf">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#identifier-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#strings">3.3 Quoted Strings: the <string> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#example-a6100cec">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#example-aecae029">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#string">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#string-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#urls">3.4 Resource Locators: the <url> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#example-f4b87e68">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#url">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#url-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#relative-urls">3.4.1 Relative URLs</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.1.#example-b20bc0e0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#url-modifiers">3.4.2 URL Modifiers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.2.#typedef-url-modifier">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-4.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-4.htm
new file mode 100644
index 00000000000..66005f9f62b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-4.htm
@@ -0,0 +1,117 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Numeric Data Types - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Numeric Data Types (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#numeric-types">4 Numeric Data Types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#integers">4.1 Integers: the <integer> type</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="multicol-count-non-integer-001-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-001.htm">multicol-count-non-integer-001</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-count-non-integer-002-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-002.htm">multicol-count-non-integer-002</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-count-non-integer-003-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-003.htm">multicol-count-non-integer-003</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.1.#integer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#integer-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#numbers">4.2 Real Numbers: the <number> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#number">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#number-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#percentages">4.3 Percentages: the <percentage> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#percentage">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#percentage-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#dimensions">4.4 Numbers with Units: dimensions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4.#dimension">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-5.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-5.htm
new file mode 100644
index 00000000000..a4d8578a69e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-5.htm
@@ -0,0 +1,468 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Distance Units: the <length> type - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Distance Units: the <length> type (30 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#lengths">5 Distance Units: the <length> type</a></th></tr>
+ <!-- 7 tests -->
+ <tr id="calc-unit-analysis-5" class="primary script">
+ <td><strong>
+ <a href="calc-unit-analysis.htm">calc-unit-analysis</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSS Variables Allowed Syntax
+ </td>
+ </tr>
+ <tr id="shape-outside-circle-002-5" class="dom script">
+ <td>
+ <a href="shape-outside-circle-002.htm">shape-outside-circle-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Circle Valid Positions
+ <ul class="assert">
+ <li>A circle's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-circle-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-circle-004.htm">shape-outside-circle-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Circle - Position Length Units
+ <ul class="assert">
+ <li>A circle's position arguments may in any valid &lt;length&gt; unit allowed by a &lt;position&gt; value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-ellipse-002-5" class="dom script">
+ <td>
+ <a href="shape-outside-ellipse-002.htm">shape-outside-ellipse-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Ellipse Valid Positions
+ <ul class="assert">
+ <li>An ellipse's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-ellipse-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-ellipse-004.htm">shape-outside-ellipse-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Ellipse - Position Length Units
+ <ul class="assert">
+ <li>An ellipse's position arguments may in any valid &lt;length&gt; unit allowed by a &lt;position&gt; value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-inset-003-5" class="dom script">
+ <td>
+ <a href="shape-outside-inset-003.htm">shape-outside-inset-003</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Inset Valid Round Length Units
+ <ul class="assert">
+ <li>An inset's radial component's values can be in any length unit</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-polygon-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-polygon-004.htm">shape-outside-polygon-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Polygon - Argument Length Units
+ <ul class="assert">
+ <li>A polygon's veritices may in percentage or any valid &lt;length&gt; units.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#length-value">
+ <!-- 1 tests -->
+ <tr id="min-width-001-5.#length-value" class="">
+ <td>
+ <a href="min-width-001.htm">min-width-001</a></td>
+ <td><a href="ref.htm">=</a> </td>
+ <td></td>
+ <td>min-width length value approximation
+ <ul class="assert">
+ <li>min-width length values that are too large to be supported must be clamped, rounded to infinity, or approximated, but not overflowed to a small or negative value.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#relative-lengths">5.1 Relative lengths</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#relative-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#font-relative-lengths">5.1.1 Font-relative lengths: the em, ex, ch, rem units</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="ch-unit-001-5.1.1" class="primary">
+ <td><strong>
+ <a href="ch-unit-001.htm">ch-unit-001</a></strong></td>
+ <td><a href="reference/ch-unit-001-ref.htm">=</a> </td>
+ <td></td>
+ <td>support for the ch unit
+ <ul class="assert">
+ <li>The ch unit is equal to the used advance measure of the 0 (ZERO, U+0030) glyph found in the font used to render it.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1.1.#ch">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#em">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#ex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#example-14cae19d">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#font-relative-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#rem">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths">5.1.2 Viewport-percentage lengths: the vw, vh, vmin, vmax units</a></th></tr>
+ <!-- 21 tests -->
+ <tr id="absolute_length_units-5.1.2" class="primary">
+ <td><strong>
+ <a href="absolute_length_units.htm">absolute_length_units</a></strong></td>
+ <td></td>
+ <td></td>
+ <td>elements should be the real world size given in mm, cm, inches...
+ <ul class="assert">
+ <li>elements are not displayed with the real world size units they should be, when specified in millimeters, centimeters, inches, ...</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-003-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-003.htm">regions-resizing-003</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing region that is sized using viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing a region sized using viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-007-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-007.htm">regions-resizing-007</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing region with percentage size inside a container that has size set in viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing a region that has a percentage size relative to a parent sized using viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-009-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-009.htm">regions-resizing-009</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing autosized region when content flowed in it is sized with viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing an autosized region when the content flowed in it is sized with viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-calc-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-calc-support.htm">vh-calc-support</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are supported inside calc expressions.
+ <ul class="assert">
+ <li>Check that viewport units add correctly to pixels in calc() expressions</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-calc-support-pct-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-calc-support-pct.htm">vh-calc-support-pct</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are supported inside calc expressions.
+ <ul class="assert">
+ <li>Check that viewport units add correctly to percentages in calc() expressions</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-em-inherit-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-em-inherit.htm">vh-em-inherit</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>0vh and 0vw are correctly treated as 0px
+ <ul class="assert">
+ <li>0vh and 0vw are correctly treated as 0px</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-inherit-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-inherit.htm">vh-inherit</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are inherited properly
+ <ul class="assert">
+ <li>Viewport units are inherited properly</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-pct-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-pct.htm">vh-interpolate-pct</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-px-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-px.htm">vh-interpolate-px</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-vh-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-vh.htm">vh-interpolate-vh</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 75vh and 125vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support.htm">vh-support</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in sizing properties
+ <ul class="assert">
+ <li>Viewports units are supported in sizing properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-atviewport-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-atviewport.htm">vh-support-atviewport</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in @viewport rules
+ <ul class="assert">
+ <li>Viewports units are supported in @viewport rules</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-margin-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-margin.htm">vh-support-margin</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in margin properties
+ <ul class="assert">
+ <li>Viewports units are supported in margin properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-transform-origin-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-transform-origin.htm">vh-support-transform-origin</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in transform properties
+ <ul class="assert">
+ <li>Viewports units are supported in transform properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-transform-translate-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-transform-translate.htm">vh-support-transform-translate</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in transform properties
+ <ul class="assert">
+ <li>Viewports units are supported in transform properties (translate)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-zero-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-zero-support.htm">vh-zero-support</a></strong></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td></td>
+ <td>0vh and 0vw are correctly treated as 0px
+ <ul class="assert">
+ <li>0vh and 0vw are correctly treated as 0px</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh_not_refreshing_on_chrome-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh_not_refreshing_on_chrome.htm">vh_not_refreshing_on_chrome</a></strong></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.htm">=</a> </td>
+ <td></td>
+ <td>vh-based dimension doesn't change when the element's other dimension doesn't change.
+ <ul class="assert">
+ <li>vh-based dimension doesn't change when the element's other dimension doesn't change.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh_not_refreshing_on_chrome_iframe-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh_not_refreshing_on_chrome_iframe.htm">vh_not_refreshing_on_chrome_iframe</a></strong></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.htm">=</a> </td>
+ <td></td>
+ <td>vh-based dimension doesn't change when the element other dimension doesn't change.
+ <ul class="assert">
+ <li>vh-based dimension doesn't change when the element other dimension doesn't change. Bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="viewport-relative-lengths-scaled-viewport-5.1.2" class="primary script">
+ <td><strong>
+ <a href="viewport-relative-lengths-scaled-viewport.htm">viewport-relative-lengths-scaled-viewport</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Viewport units in scaled viewport
+ <ul class="assert">
+ <li>viewport relative units scale with viewport.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="viewport-units-css2-001-5.1.2" class="primary script">
+ <td><strong>
+ <a href="viewport-units-css2-001.htm">viewport-units-css2-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Checks viewport units against CSS 2.1 properties and the CSSOM
+ <ul class="assert">
+ <li>Testing what happens when one applies and rereads viewport unit lengths to CSS 2.1 properties that accept length values</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1.2.#example-74b4de35">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vh">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#viewport_percentage-lengths">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vmax">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vmin">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vw">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#absolute-lengths">5.2 Absolute lengths: the cm, mm, q, in, pt, pc, px units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#absolute-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#cm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#example-42a5d4eb">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#in">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#pc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#physical-units">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#pt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#px">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#q">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#reference-pixel">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#visual-angle-unit">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-6.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-6.htm
new file mode 100644
index 00000000000..3bbea53c601
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-6.htm
@@ -0,0 +1,136 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Other Quantities - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Other Quantities (2 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#other-units">6 Other Quantities</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#angles">6.1 Angle Units: the <angle> type and deg, grad, rad, turn units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#angle-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#bearing-angle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#deg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#grad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#rad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#turn">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#time">6.2 Duration Units: the <time> type and s, ms units</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="transition-delay-001-6.2" class="dom script">
+ <td>
+ <a href="transition-delay-001.htm">transition-delay-001</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Parsing transition-delay
+ <ul class="assert">
+ <li>Test checks that transition-delay values are parsed properly</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="transition-duration-001-6.2" class="dom script">
+ <td>
+ <a href="transition-duration-001.htm">transition-duration-001</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Parsing transition-duration
+ <ul class="assert">
+ <li>Test checks that transition-duration values are parsed properly</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.2.#ms">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#s">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#time-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#frequency">6.3 Frequency Units: the <frequency> type and Hz, kHz units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#frequency-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#hz">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#khz">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#resolution">6.4 Resolution Units: the <resolution> type and dpi, dpcm, dppx units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dpcm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dpi">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dppx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#example-0c0bf820">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#resolution-value">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-7.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-7.htm
new file mode 100644
index 00000000000..6b97c6a134c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-7.htm
@@ -0,0 +1,57 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Data Types Defined Elsewhere - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Data Types Defined Elsewhere (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s7">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#defined-elsewhere">7 Data Types Defined Elsewhere</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#colors">7.1 Colors: the <color> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#images">7.2 Images: the <image> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#position">7.3 2D Positioning: the <position> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-8.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-8.htm
new file mode 100644
index 00000000000..d806b4647c2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-8.htm
@@ -0,0 +1,418 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Functional Notations - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Functional Notations (32 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s8">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#functional-notations">8 Functional Notations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#example-9de05e52">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#functional-notation">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-notation">8.1 Mathematical Expressions: calc()</a></th></tr>
+ <!-- 31 tests -->
+ <tr id="calc-background-image-gradient-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-image-gradient-1.htm">calc-background-image-gradient-1</a></strong></td>
+ <td><a href="reference/calc-background-image-gradient-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-image gradients
+ </td>
+ </tr>
+ <tr id="calc-background-linear-gradient-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-linear-gradient-1.htm">calc-background-linear-gradient-1</a></strong></td>
+ <td><a href="reference/calc-background-linear-gradient-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Support calc() on gradient stop positions
+ </td>
+ </tr>
+ <tr id="calc-background-position-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-position-1.htm">calc-background-position-1</a></strong></td>
+ <td><a href="reference/calc-background-position-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-position
+ </td>
+ </tr>
+ <tr id="calc-background-size-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-size-1.htm">calc-background-size-1</a></strong></td>
+ <td><a href="reference/calc-background-size-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-size
+ </td>
+ </tr>
+ <tr id="calc-border-radius-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-border-radius-1.htm">calc-border-radius-1</a></strong></td>
+ <td><a href="reference/calc-border-radius-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>test for border-radius: calc()
+ </td>
+ </tr>
+ <tr id="calc-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-height-block-1.htm">calc-height-block-1</a></strong></td>
+ <td><a href="reference/calc-height-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-height-table-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-height-table-1.htm">calc-height-table-1</a></strong></td>
+ <td><a href="reference/calc-height-table-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test that height:calc() with no percentages has an effect on inner table elements
+ </td>
+ </tr>
+ <tr id="calc-margin-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-margin-block-1.htm">calc-margin-block-1</a></strong></td>
+ <td><a href="reference/calc-margin-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test of margin-*: calc()
+ </td>
+ </tr>
+ <tr id="calc-max-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-height-block-1.htm">calc-max-height-block-1</a></strong></td>
+ <td><a href="reference/calc-max-height-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for max-height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-max-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-width-block-1.htm">calc-max-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>max-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-max-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-width-block-intrinsic-1.htm">calc-max-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-max-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>intrinsic width of max-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-height-block-1.htm">calc-min-height-block-1</a></strong></td>
+ <td><a href="reference/calc-height-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for min-height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-width-block-1.htm">calc-min-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>min-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-width-block-intrinsic-1.htm">calc-min-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-min-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>intrinsic width of min-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-bottom-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-bottom-1.htm">calc-offsets-absolute-bottom-1</a></strong></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for bottom:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-left-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-left-1.htm">calc-offsets-absolute-left-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for left:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-right-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-right-1.htm">calc-offsets-absolute-right-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for right:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-top-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-top-1.htm">calc-offsets-absolute-top-1</a></strong></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for top:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-bottom-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-bottom-1.htm">calc-offsets-relative-bottom-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for bottom:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-left-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-left-1.htm">calc-offsets-relative-left-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for left:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-right-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-right-1.htm">calc-offsets-relative-right-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for right:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-top-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-top-1.htm">calc-offsets-relative-top-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for top:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-padding-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-padding-block-1.htm">calc-padding-block-1</a></strong></td>
+ <td><a href="reference/calc-padding-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test of padding-*: calc()
+ </td>
+ </tr>
+ <tr id="calc-text-indent-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-text-indent-1.htm">calc-text-indent-1</a></strong></td>
+ <td><a href="reference/calc-text-indent-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>text-indent: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-text-indent-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-text-indent-intrinsic-1.htm">calc-text-indent-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-text-indent-intrinsic-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>intrinsic width of text-indent: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-transform-origin-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-transform-origin-1.htm">calc-transform-origin-1</a></strong></td>
+ <td><a href="reference/calc-transform-origin-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for calc() on transform-origin
+ </td>
+ </tr>
+ <tr id="calc-vertical-align-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-vertical-align-1.htm">calc-vertical-align-1</a></strong></td>
+ <td><a href="reference/calc-vertical-align-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>Test for vertical-align:calc()
+ </td>
+ </tr>
+ <tr id="calc-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-block-1.htm">calc-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-block-intrinsic-1.htm">calc-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>intrinsic width of width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-width-table-auto-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-table-auto-1.htm">calc-width-table-auto-1</a></strong></td>
+ <td><a href="reference/calc-width-table-auto-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>width: calc() on table-layout: auto tables
+ </td>
+ </tr>
+ <tr id="calc-width-table-fixed-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-table-fixed-1.htm">calc-width-table-fixed-1</a></strong></td>
+ <td><a href="reference/calc-width-table-fixed-1-ref.htm">=</a> </td>
+ <td></td>
+ <td>width: calc() on table-layout: auto tables
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.1.#example-0bd12a8e">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-2b4e561f">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-6e868f9c">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-776de6b9">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-f570e599">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#funcdef-calc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-syntax">8.1.1 Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-product">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-sum">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-dimension">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-type-checking">8.1.2 Type Checking</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="calc-unit-analysis-8.1.2" class="script">
+ <td>
+ <a href="calc-unit-analysis.htm">calc-unit-analysis</a></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSS Variables Allowed Syntax
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.1.2.#resolved-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-computed-value">8.1.3 Computed Value</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.3.#example-240b0ace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-range">8.1.4 Range Checking</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.4.#example-02a3b71f">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#toggle-notation">8.2 Toggling Between Values: toggle()</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-17046e65">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-349c53dd">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-851607de">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-9492bba0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#funcdef-toggle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#typedef-toggle-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#attr-notation">8.3 Attribute References: attr()</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#example-0366e27a">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#example-4771a1ff">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#funcdef-attr">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-attr-fallback">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-attr-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-type-or-unit">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/chapter-9.htm b/tests/wpt/css-tests/css-values-3_dev/html/chapter-9.htm
new file mode 100644
index 00000000000..fb3b6bd487c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/chapter-9.htm
@@ -0,0 +1,207 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Appendix A: IANA Considerations - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Appendix A: IANA Considerations (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s9">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#iana">9 Appendix A: IANA Considerations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#about-invalid">9.1 Registration for the about:invalid URL scheme</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-compositing-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-animations-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-backgrounds-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-break-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-cascade-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-color-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-color-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-counter-styles-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-fonts-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-images-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-overflow-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-syntax-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-text-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-text-decor-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-transitions-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-ui-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-fonts">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-images">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3bg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3cascade">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3color">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3namespace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3syn">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-dom-ls">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-filters-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-mediaq">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-mediaqueries-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc6694">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-selectors-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-url">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance-classes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conventions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#example-f839f6c8">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#experimental">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index-defined-elsewhere">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index-defined-here">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#partial">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#testing">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/min-width-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/min-width-001.htm
new file mode 100644
index 00000000000..d54e7cacbe5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/min-width-001.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Media Queries Test: min-width length value approximation</title>
+ <link rel="author" title="Chris Rebert" href="http://chrisrebert.com">
+ <link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#width">
+ <link rel="help" href="http://www.w3.org/TR/mediaqueries-4/#width">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#length-value">
+ <link rel="match" href="ref.htm">
+ <meta name="flags" content="">
+ <meta name="assert" content="min-width length values that are too large to be supported must be clamped, rounded to infinity, or approximated, but not overflowed to a small or negative value.">
+ <style>
+div {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+@media (min-width: 9999999999px) {
+ div {
+ background-color: red;
+ }
+}
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-001.htm
new file mode 100644
index 00000000000..dc420869df0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-001.htm
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '<integer>' type">
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.htm">
+ <meta name="flags" content="ahem invalid">
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored.">
+ <style type="text/css">
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 2.1; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ </style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-002.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-002.htm
new file mode 100644
index 00000000000..07ba712da9c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-002.htm
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '<integer>' type">
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.htm">
+ <meta name="flags" content="ahem invalid">
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored.">
+ <style type="text/css">
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 1.9; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ </style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-003.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-003.htm
new file mode 100644
index 00000000000..1047b5c5b74
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-count-non-integer-003.htm
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '<integer>' type">
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.htm">
+ <meta name="flags" content="ahem invalid">
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored.">
+ <style type="text/css">
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 2.0; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ </style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-inherit-002.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-inherit-002.htm
new file mode 100644
index 00000000000..f3063fb4ff0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-inherit-002.htm
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: 'column-count' and inherit</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/">
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-08-08 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#cc" title="3.2 'column-count'">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'">
+ <link rel="match" href="reference/multicol-inherit-002-ref.htm">
+ <meta name="flags" content="ahem">
+ <meta name="assert" content="This test checks that 'column-count' can be inherited by setting it with the CSS-wide keyword 'inherit'.">
+ <style type="text/css">
+ body > div
+ {
+ background-color: blue;
+ column-count: 3;
+ column-gap: 1em;
+ font: 1.25em/1 Ahem;
+ width: 32em;
+
+ /*
+ N == 3;
+
+ 32em
+ - 2em : 2 column gaps
+ ==========
+ 30em : available width of the 3 inner multi-column elements
+
+ So, W == 10em;
+
+ 30em
+ - 6em : 3 mult by 2em: horizontal margin of 3 inner multi-column elements
+ - 6em : 3 mult by 2em: horizontal column-gaps of all 3 inner multi-column elements
+ ==========
+ 18em : 6em for each of the 3 column boxes without their own horizontal margins
+ So, each column boxes of inner multi-column elements is 2em wide.
+ */
+ }
+
+ div
+ {
+ color: black;
+ margin: 1em;
+ orphans: 1;
+ widows: 1;
+ }
+
+ div > div
+ {
+ background-color: yellow;
+ column-count: inherit;
+ column-gap: 1em;
+ }
+
+ div > div:first-child {margin-top: 0;}
+ </style>
+ </head>
+ <body>
+
+ <div>
+ <div>
+ aa aa
+ aa aa
+ aa aa
+ aa aa
+ </div>
+ <div>
+ mm mm
+ mm mm
+ mm mm
+ mm mm
+ </div>
+ <div>
+ xx xx
+ xx xx
+ xx xx
+ xx xx
+ </div>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-001.htm
new file mode 100644
index 00000000000..6dec53517f6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-001.htm
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: column-rule-color: inherit</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/">
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-09-02 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#crc" title="4.2. 'column-rule-color'">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'">
+ <link rel="match" href="reference/multicol-rule-color-inherit-001-ref.htm">
+ <meta name="flags" content="ahem">
+ <meta name="assert" content="This test checks that, by default, column-rule-color is the current color applying to the element unless reserved keyword 'inherit' is used in which case column-rule-color will be inherited from the parent's column-rule-color value.">
+ <style type="text/css">
+ div#parent
+ {
+ column-rule-color: green;
+ column-rule-style: none;
+ font: 1.25em/1 Ahem;
+ width: 17em;
+ }
+
+ /*
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (17em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (17em - (2 * 1em)) / 3);
+ W == max(0, (17em - 2em) / 3);
+ W == max(0, 15em / 3);
+ W == max(0, 5em);
+ W == 5em;
+
+ The height of column rule depends on number of line boxes in
+ each outer column box which depends on number of line boxes
+ in each inner column box.
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (5em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (5em - (2 * 1em)) / 3);
+ W == max(0, (5em - 2em) / 3);
+ W == max(0, 3em / 3);
+ W == max(0, 1em);
+ W == 1em;
+
+ */
+
+ div
+ {
+ color: red; /* both div#parent and div.child have and use 'color: red' */
+ orphans: 1;
+ widows: 1;
+
+ column-count: 3;
+ column-gap: 1em;
+ column-rule-width: 1em;
+ }
+
+ div.child
+ {
+ column-rule-color: inherit;
+ column-rule-style: solid;
+ font-size: 1em;
+ }
+ </style>
+ </head>
+
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div id="parent">
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-002.htm b/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-002.htm
new file mode 100644
index 00000000000..50405c56669
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/multicol-rule-color-inherit-002.htm
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Multi-column Layout Test: column-rule-color: inherit (complex)</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-09-03 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#crc" title="4.2. 'column-rule-color'">
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'">
+ <link rel="match" href="reference/multicol-rule-color-inherit-001-ref.htm">
+ <meta name="flags" content="ahem">
+ <meta name="assert" content="This test checks that, by default, column-rule-color is the current color applying to the element.">
+ <style type="text/css">
+ div#parent
+ {
+ color: green;
+ font: 1.25em/1 Ahem;
+ }
+
+ div.child
+ {
+ color: red;
+ display: inline-block;
+ font-size: 1em;
+ width: 5em;
+
+ column-count: 3;
+ column-gap: 1em;
+ column-rule-color: inherit;
+ column-rule-style: solid;
+ column-rule-width: 1em;
+ }
+
+ /*
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (5em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (5em - (2 * 1em)) / 3);
+ W == max(0, (5em - 2em) / 3);
+ W == max(0, 3em / 3);
+ W == max(0, 1em);
+ W == 1em;
+
+ */
+
+ </style>
+ </head>
+
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div id="parent">
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/ref.htm
new file mode 100644
index 00000000000..ed960eb4c55
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/ref.htm
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal">
+ <style>
+ div {
+ background-color:green;
+ height:100px;
+ width:100px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/all-green.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/all-green.htm
new file mode 100644
index 00000000000..7d0623049ec
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/all-green.htm
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<html style="background: green"><head></head><body></body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm
new file mode 100644
index 00000000000..2970d8da1d7
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for calc() on background-image gradients</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+}
+
+#one { background-image: radial-gradient(circle farthest-side at 150px 20px, red, green); }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm
new file mode 100644
index 00000000000..beec7912ca4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Support calc() on gradient stop positions</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594935" rel="author" title="Yu-Sian (Thomasy) Liu">
+ <meta content="" name="flags">
+<style type="text/css">
+div {
+ width:100px;
+ height:100px;
+ background:red;
+ margin:5px 0 0 5px;
+ float:left;
+}
+div#one {
+ background: linear-gradient(lime 0px, lime 90px, blue 90px, blue 100%);
+}
+div#two {
+ background: linear-gradient(blue 0px ,green 30px ,red 40px ,white 60px , lime 80px);
+}
+div#three {
+ background: linear-gradient(blue 0px ,purple 20px ,red 40px ,blue 60px , lime 80px);
+}
+div#four {
+ background: linear-gradient(blue 0px ,green 30px ,red 40px ,blue 60px , yellow 80px);
+}
+div#five {
+ background: linear-gradient(red 0px ,green 30px);
+}
+</style>
+</head>
+<body>
+<div id="one">1</div>
+<div id="two">2</div>
+<div id="three">3</div>
+<div id="four">4</div>
+<div id="five">5</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-position-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-position-1-ref.htm
new file mode 100644
index 00000000000..efad51b3ef3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-position-1-ref.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for calc() on background-position</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-position: 134px -12px }
+#two { background-position: -18px -19px }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-size-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-size-1-ref.htm
new file mode 100644
index 00000000000..5349633dd34
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-background-size-1-ref.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for calc() on background-size</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-size: 150px 20px; }
+#two { background-image: none }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm
new file mode 100644
index 00000000000..6412e4f54e5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: test for border-radius: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+p {
+ height: 256px;
+ width: 512px;
+ background: blue;
+ border-radius: 21px 6px 12px 29px / 5px 16px 10px 3px;
+}
+
+</style>
+</head>
+<body>
+<p></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-block-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-block-1-ref.htm
new file mode 100644
index 00000000000..b80c5c77a8b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-block-1-ref.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for height:calc() or min-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; width: 1px; background: blue; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div style="height: 50px"></div>
+<div style="height: 50px"></div>
+<div style="height: 75px"></div>
+<div style="height: 45px"></div>
+<div style="height: 40px"></div>
+<div style="height: 30px"></div>
+
+<!-- tests with an auto-height container -->
+<div style="height: 50px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-table-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-table-1-ref.htm
new file mode 100644
index 00000000000..742fa057ccc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-height-table-1-ref.htm
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test that height:calc() with no percentages has an effect on inner table elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+tbody, tr, td {
+ height: 500px;
+ min-height: 700px;
+ max-height: 2px;
+}
+</style>
+</head>
+<body>
+<table border="">
+ <tbody>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ </tbody>
+</table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm
new file mode 100644
index 00000000000..b7ba0075fd8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test of margin-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+div { border: medium solid green; width: 500px }
+p { background: yellow }
+
+</style>
+</head>
+<body>
+
+<div><p style="margin: 15px 0 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 15px 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 15px 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 0 15px">paragraph with margin</p></div>
+<div><p style="margin: 25px 25px 25px 25px">paragraph with margin</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm
new file mode 100644
index 00000000000..22ef8e87b36
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for max-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; width: 1px; background: blue; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div style="height: 50px"></div>
+<div style="height: 50px"></div>
+<div style="height: 75px"></div>
+<div style="height: 45px"></div>
+<div style="height: 40px"></div>
+<div style="height: 30px"></div>
+
+<!-- tests with an auto-height container -->
+<div style="height: 50px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm
new file mode 100644
index 00000000000..30091d121dc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: intrinsic width of max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body > div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 400px"></div>
+<div style="width: 47px"></div>
+<div style="width: 400px"></div>
+<div style="width: 400px"></div>
+<div style="width: 50px"></div>
+<div style="width: 400px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm
new file mode 100644
index 00000000000..e0a6fe03156
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: intrinsic width of min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body > div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 1px"></div>
+<div style="width: 47px"></div>
+<div style="width: 1px"></div>
+<div style="width: 1px"></div>
+<div style="width: 50px"></div>
+<div style="width: 1px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm
new file mode 100644
index 00000000000..69506b3d946
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for top:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm
new file mode 100644
index 00000000000..b2c96b2de0e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for left:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="left: 50px"></div>
+<div style="left: -50px"></div>
+<div style="left: 75px"></div>
+<div style="left: -45px"></div>
+<div style="left: 40px"></div>
+<div style="left: -30px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm
new file mode 100644
index 00000000000..4585ecbce9a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for top:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+body { margin: 0 }
+body > div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm
new file mode 100644
index 00000000000..d04c843f8b0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test of padding-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+div { border: medium solid green }
+p { background: yellow; margin: 0 }
+
+</style>
+</head>
+<body>
+
+<div style="padding: 15px 0 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 15px 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 15px 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 0 15px"><p>paragraph with padding</p></div>
+<div style="padding: 25px 25px 25px 25px"><p>paragraph with padding</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm
new file mode 100644
index 00000000000..99f7b1d7056
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: text-indent: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="text-indent: 247px">50% - 3px</p>
+<p style="text-indent: 247px">25% - 3px + 25%</p>
+<p style="text-indent: 247px">25% - 3px + 12.5% * 2</p>
+<p style="text-indent: 247px">25% - 3px + 12.5%*2</p>
+<p style="text-indent: 247px">25% - 3px + 2*12.5%</p>
+<p style="text-indent: 247px">25% - 3px + 2 * 12.5%</p>
+<p style="text-indent: 250px">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm
new file mode 100644
index 00000000000..f04c1ead38f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: intrinsic width of text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body > div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 10px"></div>
+<div style="width: 57px"></div>
+<div style="width: 10px"></div>
+<div style="width: 10px"></div>
+<div style="width: 60px"></div>
+<div style="width: 10px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm
new file mode 100644
index 00000000000..6336dffc5b1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for calc() on transform-origin</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { margin: 100px }
+
+p {
+ height: 50px; width: 200px;
+ background: yellow;
+ transform: rotate(15deg);
+}
+
+#one { transform-origin: 150px 20px; }
+#two { transform-origin: -22px -35px; }
+
+</style>
+</head>
+<body>
+<p id="one">hello</p>
+<p id="two">hello</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm
new file mode 100644
index 00000000000..56abae429a3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: Test for vertical-align:calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+
+</head><body><div style="line-height: 100px; margin-top: 100px">
+ <span>x</span>
+ <span style="vertical-align: 50px">x</span>
+ <span style="vertical-align: 50px">x</span>
+ <span style="vertical-align: 75px">x</span>
+ <span style="vertical-align: 45px">x</span>
+ <span style="vertical-align: 40px">x</span>
+ <span style="vertical-align: 30px">x</span>
+</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-1-ref.htm
new file mode 100644
index 00000000000..2969c4036d3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-1-ref.htm
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: width: calc() and min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="width: 247px">50% - 3px</p>
+<p style="width: 247px">25% - 3px + 25%</p>
+<p style="width: 247px">25% - 3px + 12.5% * 2</p>
+<p style="width: 247px">25% - 3px + 12.5%*2</p>
+<p style="width: 247px">25% - 3px + 2*12.5%</p>
+<p style="width: 247px">25% - 3px + 2 * 12.5%</p>
+<p style="width: 250px">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm
new file mode 100644
index 00000000000..41c6d7627b9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: intrinsic width of width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+
+body > div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 200px"></div>
+<div style="width: 47px"></div>
+<div style="width: 200px"></div>
+<div style="width: 200px"></div>
+<div style="width: 50px"></div>
+<div style="width: 200px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm
new file mode 100644
index 00000000000..9282019418e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+</head><body><table border="">
+ <tbody><tr>
+ <td style="width: 500px">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm
new file mode 100644
index 00000000000..bceb564126b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reference: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron">
+ <meta content="" name="flags">
+<style type="text/css">
+table { table-layout: fixed; width: 500px; border-spacing: 0 }
+</style>
+</head>
+<body>
+<table border="">
+ <tbody><tr>
+ <td style="width: 500px">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/ch-unit-001-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/ch-unit-001-ref.htm
new file mode 100644
index 00000000000..1ace5ca4b55
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/ch-unit-001-ref.htm
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html><head><meta charset="utf-8">
+<title>CSS Values and Units Test Reference File</title>
+<link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal">
+<meta content="" name="flags">
+<style>
+div {
+ background: green;
+ height: 10ch;
+ width: 10ch;
+ float: left;
+}
+
+</style>
+</head><body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm
new file mode 100644
index 00000000000..c5aad1a7b52
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/">
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-07-26 -->
+ <meta name="flags" content="image">
+ <style type="text/css">
+ table
+ {
+ background-color: yellow;
+ border-spacing: 0px;
+ border: gray solid 1em;
+ font: 1.25em/1 serif;
+ }
+
+ td {padding: 0 1em 0 0;}
+
+ img, td {vertical-align: top;}
+ </style>
+ </head>
+ <body>
+ <table>
+ <tr>
+ <td><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled"></td>
+ <td><img src="support/swatch-blue.png" width="40" height="40" alt="Image download support must be enabled"></td>
+ <td><img src="support/swatch-blue.png" width="40" height="40" alt="Image download support must be enabled"></td>
+ <td><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled"></td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm
new file mode 100644
index 00000000000..4f3dd9cd8fc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/">
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-08-08 -->
+ <meta name="flags" content="image">
+ <style type="text/css">
+ div
+ {
+ background-color: blue;
+ font: 1.25em/1 serif;
+ margin: 1em;
+ padding: 0em 1em 1em;
+ width: 30em;
+ }
+
+ img {vertical-align: top;}
+
+ img.column-gap
+ {
+ margin-left: -2em;
+ margin-right: 3em;
+ vertical-align: bottom;
+ }
+
+ img#last
+ {
+ margin-left: -2em;
+ vertical-align: bottom;
+ }
+ </style>
+ </head>
+ <body>
+
+ <div><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled"><img class="column-gap" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled"><img class="column-gap" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled"><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled"><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled"><img id="last" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled"></div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm
new file mode 100644
index 00000000000..5b3a38288ef
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/">
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2013-09-03 -->
+ <meta name="flags" content="image">
+ <style type="text/css">
+ div {font-size: 1.25em;}
+ img {padding-left: 1em;}
+ </style>
+ </head>
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div>
+ <img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-white.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-white.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled"><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled">
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/regions-resizing-001-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/regions-resizing-001-ref.htm
new file mode 100644
index 00000000000..5f637e85cbb
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/regions-resizing-001-ref.htm
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="160" height="400" frameborder="0" src="../support/80px-block-ref.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-green.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-lime.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-maroon.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-navy.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-red.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-white.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/2-80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/2-80px-block-ref.html
new file mode 100644
index 00000000000..f616001554c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/2-80px-block-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ .content {
+ margin: 10px;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-gg-rr.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-green.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-red.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-float-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-float-ref.html
new file mode 100644
index 00000000000..6adeeb6fa99
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-float-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ float: right;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-ref.html
new file mode 100644
index 00000000000..2c910e93411
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/80px-block-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/README b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/a-green.css b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/b-green.css b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/black20x20.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/black20x20.png
new file mode 100644
index 00000000000..ebf7027ee78
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/black20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/c-red.css b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/cat.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/generalParallelTest.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/generalParallelTest.js
new file mode 100644
index 00000000000..1a4bf343df0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/generalParallelTest.js
@@ -0,0 +1,231 @@
+(function(root) {
+'use strict';
+//
+var index = 0;
+var suite = root.generalParallelTest = {
+ // prepare individual test
+ setup: function(data, options) {
+ suite._setupDom(data, options);
+ suite._setupEvents(data, options);
+ },
+ // clone fixture and prepare data containers
+ _setupDom: function(data, options) {
+ // clone fixture into off-viewport test-canvas
+ data.fixture = document.getElementById('fixture').cloneNode(true);
+ data.fixture.id = 'test-' + (index++);
+ (document.getElementById('offscreen') || document.body).appendChild(data.fixture);
+
+ // data container for #fixture > .container > .transition
+ data.transition = {
+ node: data.fixture.querySelector('.transition'),
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property);
+ }
+ };
+
+ // data container for #fixture > .container
+ data.container = {
+ node: data.transition.node.parentNode,
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.container.node, property);
+ }
+ };
+
+ // data container for #fixture > .container > .transition[:before | :after]
+ if (data.pseudo) {
+ data.pseudo = {
+ name: data.pseudo,
+ values: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property, ':' + data.pseudo.name);
+ }
+ };
+ }
+ },
+ // bind TransitionEnd event listeners
+ _setupEvents: function(data, options) {
+ ['transition', 'container'].forEach(function(elem) {
+ var handler = function(event) {
+ event.stopPropagation();
+ var name = event.propertyName;
+ var time = Math.round(event.elapsedTime * 1000) / 1000;
+ var pseudo = event.pseudoElement ? (':' + event.pseudoElement) : '';
+ data[elem].events.push(name + pseudo + ":" + time + "s");
+ };
+ data[elem].node.addEventListener('transitionend', handler, false);
+ data[elem]._events = {'transitionend': handler};
+ });
+ },
+ // cleanup after individual test
+ teardown: function(data, options) {
+ // data.fixture.remove();
+ if (data.fixture.parentNode) {
+ data.fixture.parentNode.removeChild(data.fixture);
+ }
+ },
+ // invoked prior to running a slice of tests
+ sliceStart: function(options, tests) {
+ // inject styles into document
+ setStyle(options.styles);
+ // kick off value collection loop
+ generalParallelTest.startValueCollection(options);
+ },
+ // invoked after running a slice of tests
+ sliceDone: function(options, tests) {
+ // stop value collection loop
+ generalParallelTest.stopValueCollection(options);
+ // reset styles cache
+ options.styles = {};
+ },
+ // called once all tests are done
+ done: function(options) {
+ // reset document styles
+ setStyle();
+ reflow();
+ },
+ // add styles of individual test to slice cache
+ addStyles: function(data, options, styles) {
+ if (!options.styles) {
+ options.styles = {};
+ }
+
+ Object.keys(styles).forEach(function(key) {
+ var selector = '#' + data.fixture.id
+ // fixture must become #fixture.fixture rather than a child selector
+ + (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ + key;
+
+ options.styles[selector] = styles[key];
+ });
+ },
+ // set style and compute values for container and transition
+ getStyle: function(data) {
+ reflow();
+ // grab current styles: "initial state"
+ suite._getStyleFor(data, 'from');
+ // apply target state
+ suite._addClass(data, 'to', true);
+ // grab current styles: "target state"
+ suite._getStyleFor(data, 'to');
+ // remove target state
+ suite._removeClass(data, 'to', true);
+
+ // clean up the mess created for value collection
+ data.container._values = [];
+ data.transition._values = [];
+ if (data.pseudo) {
+ data.pseudo._values = [];
+ }
+ },
+ // grab current styles and store in respective element's data container
+ _getStyleFor: function(data, key) {
+ data.container[key] = data.container.computedStyle(data.property);
+ data.transition[key] = data.transition.computedStyle(data.property);
+ if (data.pseudo) {
+ data.pseudo[key] = data.pseudo.computedStyle(data.property);
+ }
+ },
+ // add class to test's elements and possibly reflow
+ _addClass: function(data, className, forceReflow) {
+ data.container.node.classList.add(className);
+ data.transition.node.classList.add(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // remove class from test's elements and possibly reflow
+ _removeClass: function(data, className, forceReflow) {
+ data.container.node.classList.remove(className);
+ data.transition.node.classList.remove(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // add transition and to classes to container and transition
+ startTransition: function(data) {
+ // add transition-defining class
+ suite._addClass(data, 'how', true);
+ // add target state (without reflowing)
+ suite._addClass(data, 'to', false);
+ },
+ // requestAnimationFrame runLoop to collect computed values
+ startValueCollection: function(options) {
+ var raf = window.requestAnimationFrame || function(callback){
+ setTimeout(callback, 20);
+ };
+
+ // flag denoting if the runLoop should continue (true) or exit (false)
+ options._collectValues = true;
+
+ function runLoop() {
+ if (!options._collectValues) {
+ // test's are done, stop annoying the CPU
+ return;
+ }
+
+ // collect current style for test's elements
+ options.tests.forEach(function(data) {
+ if (!data.property) {
+ return;
+ }
+
+ ['transition', 'container', 'pseudo'].forEach(function(elem) {
+ var pseudo = null;
+ if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
+ return;
+ }
+
+ var current = data[elem].computedStyle(data.property);
+ var values = data[elem].values;
+ var length = values.length;
+ if (!length || values[length - 1] !== current) {
+ values.push(current);
+ }
+ });
+ });
+
+ // rinse and repeat
+ raf(runLoop);
+ }
+
+ runLoop();
+ },
+ // stop requestAnimationFrame runLoop collecting computed values
+ stopValueCollection: function(options) {
+ options._collectValues = false;
+ },
+
+ // generate test.step function asserting collected events match expected
+ assertExpectedEventsFunc: function(data, elem, expected) {
+ return function() {
+ var _result = data[elem].events.sort().join(" ");
+ var _expected = typeof expected === 'string' ? expected : expected.sort().join(" ");
+ assert_equals(_result, _expected, "Expected TransitionEnd events triggered on ." + elem);
+ };
+ },
+ // generate test.step function asserting collected values are neither initial nor target
+ assertIntermediateValuesFunc: function(data, elem) {
+ return function() {
+ // the first value (index: 0) is always going to be the initial value
+ // the last value is always going to be the target value
+ var values = data[elem].values;
+ if (data.flags.discrete) {
+ // a discrete value will just switch from one state to another without having passed intermediate states.
+ assert_equals(values[0], data[elem].from, "must be initial value while transitioning on ." + elem);
+ assert_equals(values[1], data[elem].to, "must be target value after transitioning on ." + elem);
+ assert_equals(values.length, 2, "discrete property only has 2 values ." + elem);
+ } else {
+ assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
+ assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
+ }
+
+ // TODO: first value must be initial, last value must be target
+ };
+ }
+};
+
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/helper.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/helper.js
new file mode 100644
index 00000000000..242cd3ca635
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/helper.js
@@ -0,0 +1,96 @@
+//
+// Simple Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+// serialize styles object and dump to dom
+// appends <style id="dynamic-style"> to <head>
+// setStyle("#some-selector", {"some-style" : "value"})
+// setStyle({"#some-selector": {"some-style" : "value"}})
+root.setStyle = function(selector, styles) {
+ var target = document.getElementById('dynamic-style');
+ if (!target) {
+ target = document.createElement('style');
+ target.id = 'dynamic-style';
+ target.type = "text/css";
+ document.getElementsByTagName('head')[0].appendChild(target);
+ }
+
+ var data = [];
+ // single selector/styles
+ if (typeof selector === 'string' && styles !== undefined) {
+ data = [selector, '{', serializeStyles(styles), '}'];
+ target.textContent = data.join("\n");
+ return;
+ }
+ // map of selector/styles
+ for (var key in selector) {
+ if (Object.prototype.hasOwnProperty.call(selector, key)) {
+ var _data = [key, '{', serializeStyles(selector[key]), '}'];
+ data.push(_data.join('\n'));
+ }
+ }
+
+ target.textContent = data.join("\n");
+};
+
+function serializeStyles(styles) {
+ var data = [];
+ for (var property in styles) {
+ if (Object.prototype.hasOwnProperty.call(styles, property)) {
+ var prefixedProperty = addVendorPrefix(property);
+ data.push(prefixedProperty + ":" + styles[property] + ";");
+ }
+ }
+
+ return data.join('\n');
+}
+
+
+// shorthand for computed style
+root.computedStyle = function(element, property, pseudo) {
+ var prefixedProperty = addVendorPrefix(property);
+ return window
+ .getComputedStyle(element, pseudo || null)
+ .getPropertyValue(prefixedProperty);
+};
+
+// flush rendering buffer
+root.reflow = function() {
+ document.body.offsetWidth;
+};
+
+// merge objects
+root.extend = function(target /*, ..rest */) {
+ Array.prototype.slice.call(arguments, 1).forEach(function(obj) {
+ Object.keys(obj).forEach(function(key) {
+ target[key] = obj[key];
+ });
+ });
+
+ return target;
+};
+
+// dom fixture helper ("resetting dom test elements")
+var _domFixture;
+var _domFixtureSelector;
+root.domFixture = function(selector) {
+ var fixture = document.querySelector(selector || _domFixtureSelector);
+ if (!fixture) {
+ throw new Error('fixture ' + (selector || _domFixtureSelector) + ' not found!');
+ }
+ if (!_domFixture && selector) {
+ // save a copy
+ _domFixture = fixture.cloneNode(true);
+ _domFixtureSelector = selector;
+ } else if (_domFixture) {
+ // restore the copy
+ var tmp = _domFixture.cloneNode(true);
+ fixture.parentNode.replaceChild(tmp, fixture);
+ } else {
+ throw new Error('domFixture must be initialized first!');
+ }
+};
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-green.css b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-red.css b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/min-width-tables-001-iframe.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/min-width-tables-001-iframe.html
new file mode 100644
index 00000000000..edc548a6aab
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/min-width-tables-001-iframe.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>iframe containing the meat of the test</title>
+ <style>
+body {
+ margin: 0;
+ overflow: hidden;
+}
+/* green div that should cover the red divs */
+#green {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: green;
+ width: 100%;
+ height: 600px;
+}
+.spacer {
+ height: 98px;
+ width: 20px;
+}
+.item {
+ background-color: red;
+ display: block;/* property under test */
+ /* border to aid understanding of boundaries between items */
+ border-style: solid;
+ border-width: 1px;
+ border-color: red;/* Note: if you're trying to debug this, use a different color here */
+}
+/* 100px = 10*(1 + 8 + 1) */
+@media (min-width: 100px) {
+ #green {
+ width: 100px;
+ height: 100px;/* = 1 + 98 + 1 */
+ }
+ .item {
+ display: table-cell;/* property and value under test */
+ }
+}
+ </style>
+</head>
+<body>
+ <div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ </div>
+ <div id="green"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/one.gif b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/one.gif
new file mode 100644
index 00000000000..74cf7839c9f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/one.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/parsing-utils.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/parsing-utils.js
new file mode 100644
index 00000000000..beea4958ce8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/parsing-utils.js
@@ -0,0 +1,866 @@
+var ParsingUtils = (function() {
+function testInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ var actual = div.style.getPropertyValue('shape-outside');
+ assert_equals(actual, expected);
+}
+
+function testComputedStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ document.body.appendChild(div);
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-outside');
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // Some of the tests in this suite have either/or expected results
+ // so this check allows for testing that at least one of them passes.
+ // Description of the 2 expecteds is below near calcTestValues.
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, typeof expected !== 'undefined' ? expected : value);
+ }
+}
+
+function testShapeMarginInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', "border-box inset(10px)");
+ div.style.setProperty('shape-margin', value);
+ var actual = div.style.getPropertyValue('shape-margin');
+ assert_equals(actual, expected);
+}
+
+function testShapeMarginComputedStyle(value, expected) {
+
+ var outerDiv = document.createElement('div');
+ outerDiv.style.setProperty('width', '100px');
+
+ var innerDiv = document.createElement('div');
+ innerDiv.style.setProperty('shape-outside', "border-box inset(10px)");
+ innerDiv.style.setProperty('shape-margin', value);
+
+ outerDiv.appendChild(innerDiv);
+ document.body.appendChild(outerDiv);
+
+ var style = getComputedStyle(innerDiv);
+ var actual = style.getPropertyValue('shape-margin');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(outerDiv);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0px' : expected);
+ }
+}
+
+function testShapeThresholdInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ var actual = div.style.getPropertyValue('shape-image-threshold');
+ assert_equals(actual, expected);
+}
+
+function testShapeThresholdComputedStyle(value, expected) {
+
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ document.body.appendChild(div);
+
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-image-threshold');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0' : expected);
+ }
+}
+
+// Builds an array of test cases to send to testharness.js where one test case is: [name, actual, expected]
+// These test cases will verify results from testInlineStyle() or testComputedStyle()
+function buildTestCases(testCases, testType) {
+ var results = [];
+
+ // If test_type isn't specified, test inline style
+ var type = typeof testType == 'undefined' ? 'invalid': testType;
+
+ testCases.forEach(function(test) {
+ oneTestCase = [];
+
+ // name - annotated by type (inline vs. computed)
+ if ( test.hasOwnProperty('name') ) {
+ oneTestCase.push(test['name'] +' - '+ type);
+ } else {
+ // If test_name isn't specified, use the actual
+ oneTestCase.push(test['actual'] +' - '+ type);
+ }
+
+ // actual
+ oneTestCase.push(test['actual'])
+
+ // expected
+ if( type.indexOf('invalid') != -1 ){
+ oneTestCase.push(null)
+ } else if( type == 'inline' ) {
+ oneTestCase.push(test['expected_inline']);
+ } else if( type == 'computed' ){
+ oneTestCase.push( convertToPx(test['expected_computed']) );
+ }
+ results.push(oneTestCase);
+ });
+ return results;
+}
+
+
+function buildPositionTests(shape, valid, type, units) {
+ var results = new Array();
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( units ) === '[object Array]') {
+ units.forEach(function(unit) {
+ positionTests = buildPositionTests(shape, valid, type, unit);
+ results = results.concat(positionTests);
+ });
+ } else {
+ if (valid) {
+ validPositions.forEach(function(test) {
+ var testCase = [], testName, actual, expected;
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1)) {
+ // actual
+ actual = shape + '(at ' + setUnit(test[0], false, units) +')';
+
+ // expected
+ // if(convert && shape == 'circle')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else if(convert && shape == 'ellipse')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else
+ expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+
+ // name
+ if (type == 'lengthUnit + inline')
+ testName = 'test unit (inline): ' + units +' - '+ actual;
+ else if (type == 'lengthUnit + computed')
+ testName = 'test unit (computed): ' + units +' - '+ actual;
+ else
+ testName = (actual + ' serializes as ' + expected +' - '+ type);
+
+ testCase.push(testName)
+ testCase.push(actual);
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ } else {
+ invalidPositions.forEach(function(test) {
+ var testValue = shape + '(at ' + setUnit(test, false, units) +')';
+ testCase = new Array();
+ testCase.push(testValue + ' is invalid');
+ testCase.push(testValue);
+ testCase.push(null);
+ results.push(testCase);
+ });
+ }
+ }
+ return unique(results);
+}
+
+function buildRadiiTests(shape, type, units) {
+ var results = new Array();
+ var testUnits = typeof units == 'undefined' ? 'px': units;
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( testUnits ) === '[object Array]') {
+ testUnits.forEach(function(unit) {
+ radiiTests = buildRadiiTests(shape, type, unit);
+ results = results.concat(radiiTests);
+ });
+ } else {
+ var validRadii = shape == 'circle' ? validCircleRadii : validEllipseRadii;
+ validRadii.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1) ) {
+ actual = shape + '(' + setUnit(test[0], false, testUnits) +')';
+ // name
+ if (type.indexOf('lengthUnit') != -1) {
+ name = 'test unit: ' + units +' - '+ actual;
+ if(type.indexOf('computed') != -1)
+ name = name + ' - computed';
+ else
+ name = name + ' - inline';
+ }
+ else
+ name = actual +' - '+ type;
+
+ testCase.push(name);
+
+ // actual
+ testCase.push(actual);
+
+ // expected
+ if(type.indexOf('computed') != -1 && test.length == 3) {
+ expected = shape + '(' + setUnit(test[2], convert, testUnits) +')';
+ } else {
+ expected = shape + '(' + setUnit(test[1], convert, testUnits) +')';
+ }
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ }
+ return unique(results);
+}
+
+function buildInsetTests(unit1, unit2, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ if(Object.prototype.toString.call( unit1 ) === '[object Array]') {
+ unit1.forEach(function(unit) {
+ insetTests = buildInsetTests(unit, unit2, type);
+ results = results.concat(insetTests);
+ });
+ } else {
+ validInsets.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ name = setUnit(test[0], false, unit1, unit2) +' - '+ type;
+ actual = 'inset(' + setUnit(test[1], convert, unit1, unit2) +')';
+ expected = actual;
+
+ testCase.push(name);
+ testCase.push(actual);
+ testCase.push(expected);
+
+ results.push(testCase);
+ });
+ }
+ return unique(results);
+}
+
+function buildPolygonTests(unitSet, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ unitSet.forEach(function(set) {
+ validPolygons.forEach(function(test) {
+ var testCase = [];
+ // name
+ testCase.push(setUnit(test[0], false, set[0], set[1], set[2]) +' - '+ type);
+ // actual
+ testCase.push('polygon(' + setUnit(test[1], false, set[0], set[1], set[2]) +')');
+ // expected
+ testCase.push('polygon(' + setUnit(test[1], convert, set[0], set[1], set[2]) +')');
+ results.push(testCase);
+ });
+ });
+ return unique(results);
+}
+
+function buildCalcTests(testCases, type) {
+ var results = new Array();
+ testCases.forEach(function(test){
+ var testCase = [];
+ if(type == 'computed') {
+ testCase.push(test[0] + ' - computed style');
+ testCase.push(test[0]);
+ testCase.push(test[2]);
+ }
+ else {
+ testCase.push(test[0] + ' - inline style');
+ testCase.push(test[0]);
+ testCase.push(test[1]);
+ }
+ testCase.push(type);
+ results.push(testCase)
+ });
+ return unique(results);
+}
+
+function unique(tests) {
+ var list = tests.concat();
+ for(var i = 0; i< list.length; ++i) {
+ for(var j = i+1; j < list.length; ++j) {
+ if(list[i][0] === list[j][0])
+ list.splice(j--, 1);
+ }
+ }
+ return list;
+}
+
+function setUnit(str, convert, unit1, unit2, unit3) {
+ var retStr = str;
+ if(typeof unit1 !== 'undefined') {
+ retStr = retStr.replace(new RegExp('u1', 'g'), unit1);
+ }
+ if(typeof unit2 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u2", 'g'), unit2);
+ }
+ if(typeof unit3 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u3", 'g'), unit3);
+ }
+ retStr = convert ? convertToPx(retStr) : retStr;
+ return retStr;
+}
+
+function convertToPx(origValue) {
+
+ var valuesToConvert = origValue.match(/[0-9]+(\.[0-9]+)?([a-z]{2,4}|%)/g);
+ if(!valuesToConvert)
+ return origValue;
+
+ var retStr = origValue;
+ for(var i = 0; i < valuesToConvert.length; i++) {
+ var unit = valuesToConvert[i].match(/[a-z]{2,4}|%/).toString();
+ var numberStr = valuesToConvert[i].match(/[0-9]+(\.[0-9]+)?/)[0];
+
+ var number = parseFloat(numberStr);
+ var convertedUnit = 'px';
+ if( typeof number !== 'NaN' )
+ {
+ if (unit == 'in') {
+ number = (96 * number);
+ } else if (unit == 'cm') {
+ number = (37.795275591 * number);
+ } else if (unit == 'mm') {
+ number = (3.779527559 * number);
+ } else if (unit == 'pt') {
+ number = (1.333333333333 * number);
+ } else if (unit == 'pc') {
+ number = (16 * number);
+ } else if (unit == 'em') {
+ number = (16 * number);
+ } else if (unit == 'ex') {
+ number = (7.1796875 * number);
+ } else if (unit == 'ch') {
+ number = (8 * number);
+ } else if (unit == 'rem') {
+ number = (16 * number);
+ } else if (unit == 'vw') {
+ number = ((.01 * window.innerWidth) * number);
+ } else if (unit == 'vh') {
+ number = ((.01 * window.innerHeight) * number);
+ } else if (unit == 'vmin') {
+ number = Math.min( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ } else if (unit == 'vmax') {
+ number = Math.max( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ }
+ else {
+ convertedUnit = unit;
+ }
+ number = Math.round(number * 1000) / 1000;
+ var find = valuesToConvert[i];
+ var replace = number.toString() + convertedUnit;
+ retStr = retStr.replace(valuesToConvert[i], number.toString() + convertedUnit);
+ }
+ }
+ return retStr.replace(',,', ',');
+}
+
+function roundResultStr(str) {
+ if(Object.prototype.toString.call( str ) !== '[object String]')
+ return str;
+
+ var numbersToRound = str.match(/[0-9]+\.[0-9]+/g);
+ if(!numbersToRound)
+ return str;
+
+ var retStr = str;
+ for(var i = 0; i < numbersToRound.length; i++) {
+ num = parseFloat(numbersToRound[i]);
+ if( !isNaN(num) ) {
+ roundedNum = Math.round(num*1000)/1000;
+ retStr = retStr.replace(numbersToRound[i].toString(), roundedNum.toString());
+ }
+ }
+
+ return retStr;
+}
+
+function generateInsetRoundCases(units, testType) {
+ var convert = testType.indexOf('computed') != -1 ? true : false;
+ var testUnit = units;
+ var sizes = [
+ '10' + units,
+ '20' + units,
+ '30' + units,
+ '40' + units
+ ];
+
+ function insetRound(value) {
+ return 'inset(10' +testUnit+ ' round ' + value + ')';
+ }
+
+ function serializedInsetRound(lhsValues, rhsValues, convert) {
+ var retStr = '';
+ if(!rhsValues)
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +')';
+ else
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +' / '+ rhsValues +')';
+
+ if(convert)
+ return convertToPx(retStr);
+
+ return retStr;
+ }
+
+ var results = [], left, lhs, right, rhs;
+ for (left = 1; left <= 4; left++) {
+ lhs = sizes.slice(0, left).join(' ');
+ results.push([insetRound(lhs) +' - '+ testType, insetRound(lhs), serializedInsetRound(lhs, null, convert)]);
+ for (right = 1; right <= 4; right++) {
+ rhs = sizes.slice(0, right).join(' ');
+ if(lhs == rhs)
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, null, convert)]);
+ else
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, rhs, convert)]);
+ }
+ }
+ return results;
+}
+
+var validUnits = [
+ "cm","mm","in","pt","pc", // Absolute length units (omitting px b/c we default to that in all tests)
+ "em","ex","ch","rem", // Font relative length units
+ "vw","vh","vmin","vmax" // Viewport percentage units
+ ]
+
+/// [actual, expected]
+var validPositions = [
+
+/// [ percent ], [ length ], [ percent | percent ], [ percent | length ], [ length | percent ], [ length | length ]
+ ["50%", "50% 50%"],
+ ["50u1", "50u1 50%"],
+ ["50% 50%", "50% 50%"],
+ ["50% 50u1", "50% 50u1"],
+ ["50u1 50%", "50u1 50%"],
+ ["50u1 50u1", "50u1 50u1"],
+
+///// [ keyword ], [ keyword keyword ] x 5 keywords
+ ["left", "0% 50%"],
+ ["top", "50% 0%"],
+ ["right", "100% 50%"],
+ ["bottom", "50% 100%"],
+ ["center", "50% 50%"],
+
+ ["left top", "0% 0%"],
+ ["left bottom", "0% 100%"],
+ ["left center", "0% 50%"],
+
+ ["top left", "0% 0%"],
+ ["top right", "100% 0%"],
+ ["top center", "50% 0%"],
+
+ ["right top", "100% 0%"],
+ ["right bottom", "100% 100%"],
+ ["right center", "100% 50%"],
+
+ ["bottom left", "0% 100%"],
+ ["bottom right", "100% 100%"],
+ ["bottom center", "50% 100%"],
+
+ ["center top", "50% 0%"],
+ ["center left", "0% 50%"],
+ ["center right", "100% 50%"],
+ ["center bottom", "50% 100%"],
+ ["center center", "50% 50%"],
+
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ ["left 50%", "0% 50%"],
+ ["left 50u1", "0% 50u1"],
+
+ ["50% top", "50% 0%"],
+ ["50u1 top", "50u1 0%"],
+
+ ["right 80%", "100% 80%"],
+ ["right 80u1", "100% 80u1"],
+
+ ["70% bottom", "70% 100%"],
+ ["70u1 bottom", "70u1 100%"],
+
+ ["center 60%", "50% 60%"],
+ ["center 60u1", "50% 60u1"],
+ ["60% center", "60% 50%"],
+ ["60u1 center", "60u1 50%"],
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ ["center top 50%", "50% 50%"],
+ ["center top 50u1", "50% 50u1"],
+ ["center left 50%", "50% 50%"],
+ ["center left 50u1", "50u1 50%"],
+ ["center right 70%", "30% 50%"],
+ ["center right 70u1", "right 70u1 top 50%"],
+ ["center bottom 70%", "50% 30%"],
+ ["center bottom 70u1", "left 50% bottom 70u1"],
+
+ ["left top 50%", "0% 50%"],
+ ["left top 50u1", "0% 50u1"],
+ ["left bottom 70%", "0% 30%"],
+ ["left bottom 70u1", "left 0% bottom 70u1"],
+
+ ["top left 50%", "50% 0%"],
+ ["top left 50u1", "50u1 0%"],
+ ["top right 70%", "30% 0%"],
+ ["top right 70u1", "right 70u1 top 0%"],
+
+ ["bottom left 50%", "50% 100%"],
+ ["bottom left 50u1", "50u1 100%"],
+ ["bottom right 70%", "30% 100%"],
+ ["bottom right 70u1", "right 70u1 top 100%"],
+
+ ["right bottom 70%", "100% 30%"],
+ ["right bottom 70u1", "left 100% bottom 70u1"],
+ ["right top 50%", "100% 50%"],
+ ["right top 50u1", "100% 50u1"],
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ ["left 50% center", "50% 50%"],
+ ["left 50u1 center", "50u1 50%"],
+ ["left 50% top", "50% 0%"],
+ ["left 50u1 top", "50u1 0%"],
+ ["left 50% bottom", "50% 100%"],
+ ["left 50u1 bottom", "50u1 100%"],
+
+ ["top 50% center", "50% 50%"],
+ ["top 50u1 center", "50% 50u1"],
+ ["top 50% left", "0% 50%"],
+ ["top 50u1 left", "0% 50u1"],
+ ["top 50% right", "100% 50%"],
+ ["top 50u1 right", "100% 50u1"],
+
+ ["bottom 70% center", "50% 30%"],
+ ["bottom 70u1 center", "left 50% bottom 70u1"],
+ ["bottom 70% left", "0% 30%"],
+ ["bottom 70u1 left", "left 0% bottom 70u1"],
+ ["bottom 70% right", "100% 30%"],
+ ["bottom 70u1 right", "left 100% bottom 70u1"],
+
+ ["right 80% center", "20% 50%"],
+ ["right 80u1 center", "right 80u1 top 50%"],
+ ["right 80% bottom", "20% 100%"],
+ ["right 80u1 bottom", "right 80u1 top 100%"],
+ ["right 80% top", "20% 0%"],
+ ["right 80u1 top", "right 80u1 top 0%"],
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ ["left 50% top 50%", "50% 50%"],
+ ["left 50% top 50u1", "50% 50u1"],
+ ["left 50% bottom 70%", "50% 30%"],
+ ["left 50% bottom 70u1", "left 50% bottom 70u1"],
+ ["left 50u1 top 50%", "50u1 50%"],
+ ["left 50u1 top 50u1", "50u1 50u1"],
+ ["left 50u1 bottom 70%", "50u1 30%"],
+ ["left 50u1 bottom 70u1", "left 50u1 bottom 70u1"],
+
+ ["top 50% left 50%", "50% 50%"],
+ ["top 50% left 50u1", "50u1 50%"],
+ ["top 50% right 80%", "20% 50%"],
+ ["top 50% right 80u1", "right 80u1 top 50%"],
+ ["top 50u1 left 50%", "50% 50u1"],
+ ["top 50u1 left 50u1", "50u1 50u1"],
+ ["top 50u1 right 80%", "20% 50u1"],
+ ["top 50u1 right 80u1", "right 80u1 top 50u1"],
+
+ ["bottom 70% left 50%", "50% 30%"],
+ ["bottom 70% left 50u1", "50u1 30%"],
+ ["bottom 70% right 80%", "20% 30%"],
+ ["bottom 70% right 80u1", "right 80u1 top 30%"],
+ ["bottom 70u1 left 50%", "left 50% bottom 70u1"],
+ ["bottom 70u1 left 50u1", "left 50u1 bottom 70u1"],
+ ["bottom 70u1 right 80%", "left 20% bottom 70u1"],
+ ["bottom 70u1 right 80u1", "right 80u1 bottom 70u1"],
+
+ ["right 80% top 50%", "20% 50%"],
+ ["right 80% top 50u1", "20% 50u1"],
+ ["right 80% bottom 70%", "20% 30%"],
+ ["right 80% bottom 70u1", "left 20% bottom 70u1"],
+ ["right 80u1 top 50%", "right 80u1 top 50%"],
+ ["right 80u1 top 50u1", "right 80u1 top 50u1"],
+ ["right 80u1 bottom 70%", "right 80u1 top 30%"],
+ ["right 80u1 bottom 70u1", "right 80u1 bottom 70u1"],
+];
+
+var invalidPositions = [
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ "50% left",
+ "50px left",
+ "top 50%",
+ "80% right",
+ "80px right",
+ "bottom 70%",
+ "bottom 70px",
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ "center center 60%",
+ "center center 60px",
+
+ "left center 60%",
+ "left center 60px",
+ "left right 80%",
+ "left right 80px",
+ "left left 50%",
+ "left left 50px",
+
+ "top center 60%",
+ "top center 60px",
+ "top bottom 80%",
+ "top bottom 80px",
+ "top top 50%",
+ "top top 50px",
+
+ "bottom center 60%",
+ "bottom center 60px",
+ "bottom top 50%",
+ "bottom top 50px",
+ "bottom bottom 50%",
+ "bottom bottom 50px",
+
+ "right center 60%",
+ "right center 60px",
+ "right left 50%",
+ "right left 50px",
+ "right right 70%",
+ "right right 70px",
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ "center 60% top",
+ "center 60px top",
+ "center 60% bottom",
+ "center 60px bottom",
+ "center 60% left",
+ "center 60px left",
+ "center 60% right",
+ "center 60px right",
+ "center 60% center",
+ "center 60px center",
+
+ "left 50% right",
+ "left 50px right",
+ "left 50% left",
+ "left 50px left",
+
+ "top 50% bottom",
+ "top 50px bottom",
+ "top 50% top",
+ "top 50px top",
+
+ "bottom 70% top",
+ "bottom 70px top",
+ "bottom 70% bottom",
+ "bottom 70px bottom",
+
+ "right 80% left",
+ "right 80px left",
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ "center 60% top 50%",
+ "center 60% top 50px",
+ "center 60% bottom 70%",
+ "center 60% bottom 70px",
+ "center 60% left 50%",
+ "center 60% left 50px",
+ "center 60% right 70%",
+ "center 60% right 70px",
+ "center 60% center 65%",
+ "center 60% center 65px",
+ "center 60px top 50%",
+ "center 60px top 50px",
+ "center 60px bottom 70%",
+ "center 60px bottom 70px",
+ "center 60px left 50%",
+ "center 60px left 50px",
+ "center 60px right 70%",
+ "center 60px right 70px",
+ "center 60px center 65%",
+ "center 60px center 65px",
+
+ "left 50% center 60%",
+ "left 50% center 60px",
+ "left 50% right 80%",
+ "left 50% right 80px",
+ "left 50% left 50%",
+ "left 50% left 50px",
+ "left 50px center 60%",
+ "left 50px center 60px",
+ "left 50px right 80%",
+ "left 50px right 80px",
+ "left 50px left 50%",
+ "left 50px left 50px",
+
+ "top 50% center 60%",
+ "top 50% center 60px",
+ "top 50% bottom 50%",
+ "top 50% bottom 50px",
+ "top 50% top 50%",
+ "top 50% top 50px",
+ "top 50px center 60%",
+ "top 50px center 60px",
+ "top 50px bottom 70%",
+ "top 50px bottom 70px",
+ "top 50px top 50%",
+ "top 50px top 50px",
+
+ "bottom 70% center 60%",
+ "bottom 70% center 60px",
+ "bottom 70% top 50%",
+ "bottom 70% top 50px",
+ "bottom 70% bottom 50%",
+ "bottom 70% bottom 50px",
+ "bottom 70px center 60%",
+ "bottom 70px center 60px",
+ "bottom 70px top 50%",
+ "bottom 70px top 50px",
+ "bottom 70px bottom 50%",
+ "bottom 70px bottom 50px",
+
+ "right 80% center 60%",
+ "right 80% center 60px",
+ "right 80% left 50%",
+ "right 80% left 50px",
+ "right 80% right 85%",
+ "right 80% right 85px",
+ "right 80px center 60%",
+ "right 80px center 60px",
+ "right 80px left 50%",
+ "right 80px left 50px",
+ "right 80px right 85%",
+ "right 80px right 85px"
+];
+
+// valid radii values for circle + ellipse
+// [value, expected_inline, [expected_computed?]]
+var validCircleRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%']
+]
+var validEllipseRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%', 'farthest-side at 50% 50%'],
+ ['50u1 100u1', '50u1 100u1 at 50% 50%'],
+ ['100u1 100px', '100u1 100px at 50% 50%'],
+ ['25% 50%', '25% 50% at 50% 50%'],
+ ['50u1 25%', '50u1 25% at 50% 50%'],
+ ['25% 50u1', '25% 50u1 at 50% 50%'],
+ ['25% closest-side', '25% at 50% 50%'],
+ ['25u1 closest-side', '25u1 at 50% 50%'],
+ ['closest-side 75%', 'closest-side 75% at 50% 50%'],
+ ['closest-side 75u1', 'closest-side 75u1 at 50% 50%'],
+ ['25% farthest-side', '25% farthest-side at 50% 50%'],
+ ['25u1 farthest-side', '25u1 farthest-side at 50% 50%'],
+ ['farthest-side 75%', 'farthest-side 75% at 50% 50%'],
+ ['farthest-side 75u1', 'farthest-side 75u1 at 50% 50%'],
+ ['closest-side closest-side', 'at 50% 50%'],
+ ['farthest-side farthest-side', 'farthest-side farthest-side at 50% 50%'],
+ ['closest-side farthest-side', 'closest-side farthest-side at 50% 50%'],
+ ['farthest-side closest-side', 'farthest-side at 50% 50%']
+]
+
+var validInsets = [
+ ["One arg - u1", "10u1"],
+ ["One arg - u2", "10u2"],
+ ["Two args - u1 u1", "10u1 20u1"],
+ ["Two args - u1 u2", "10u1 20u2"],
+ ["Two args - u2 u1", "10u2 20u1"],
+ ["Two args - u2 u2", "10u2 20u2"],
+ ["Three args - u1 u1 u1", "10u1 20u1 30u1"],
+ ["Three args - u1 u1 u2", "10u1 20u1 30u2"],
+ ["Three args - u1 u2 u1", "10u1 20u2 30u1"],
+ ["Three args - u1 u2 u2 ", "10u1 20u2 30u2"],
+ ["Three args - u2 u1 u1", "10u2 20u1 30u1"],
+ ["Three args - u2 u1 u2 ", "10u2 20u1 30u2"],
+ ["Three args - u2 u2 u1 ", "10u2 20u2 30u1"],
+ ["Three args - u2 u2 u2 ","10u2 20u2 30u2"],
+ ["Four args - u1 u1 u1 u1", "10u1 20u1 30u1 40u1"],
+ ["Four args - u1 u1 u1 u2", "10u1 20u1 30u1 40u2"],
+ ["Four args - u1 u1 u2 u1", "10u1 20u1 30u2 40u1"],
+ ["Four args - u1 u1 u2 u2", "10u1 20u1 30u2 40u2"],
+ ["Four args - u1 u2 u1 u1", "10u1 20u2 30u1 40u1"],
+ ["Four args - u1 u2 u1 u2", "10u1 20u2 30u1 40u2"],
+ ["Four args - u1 u2 u2 u1", "10u1 20u2 30u2 40u1"],
+ ["Four args - u1 u2 u2 u2", "10u1 20u2 30u2 40u2"],
+ ["Four args - u2 u1 u1 u1", "10u2 20u1 30u1 40u1"],
+ ["Four args - u2 u1 u1 u2", "10u2 20u1 30u1 40u2"],
+ ["Four args - u2 u1 u2 u1", "10u2 20u1 30u2 40u1"],
+ ["Four args - u2 u1 u2 u2", "10u2 20u1 30u2 40u2"],
+ ["Four args - u2 u2 u1 u1", "10u2 20u2 30u1 40u1"],
+ ["Four args - u2 u2 u1 u2", "10u2 20u2 30u1 40u2"],
+ ["Four args - u2 u2 u2 u1", "10u2 20u2 30u2 40u1"],
+ ["Four args - u2 u2 u2 u2", "10u2 20u2 30u2 40u2"]
+]
+
+var validPolygons = [
+ ["One vertex - u1 u1", "10u1 20u1"],
+ ["One vertex - u1 u2", "10u1 20u2"],
+ ["Two vertices - u1 u1, u1 u1", "10u1 20u1, 30u1 40u1"],
+ ["Two vertices - u1 u1, u2 u2", "10u1 20u1, 30u2 40u2"],
+ ["Two vertices - u2 u2, u1 u1", "10u2 20u2, 30u1 40u1"],
+ ["Two vertices - u1 u2, u2 u1", "10u1 20u2, 30u2 40u1"],
+ ["Three vertices - u1 u1, u1 u1, u1 u1", "10u1 20u1, 30u1 40u1, 50u1 60u1"],
+ ["Three vertices - u2 u2, u2 u2, u2 u2", "10u2 20u2, 30u2 40u2, 50u2 60u2"],
+ ["Three vertices - u3 u3, u3 u3, u3 u3", "10u3 20u3, 30u3 40u3, 50u3 60u3"],
+ ["Three vertices - u1 u1, u2 u2, u3 u3", "10u1 20u1, 30u2 40u2, 50u3 60u3"],
+ ["Three vertices - u3 u3, u1, u1, u2 u2", "10u3 20u3, 30u1 40u1, 50u2 60u2"],
+]
+
+// [test value, expected property value, expected computed style]
+var calcTestValues = [
+ ["calc(10in)", "calc(10in)", "960px"],
+ ["calc(10in + 20px)", "calc(980px)", "980px"],
+ ["calc(30%)", "calc(30%)", "30%"],
+ ["calc(100%/4)", "calc(25%)", "25%"],
+ ["calc(25%*3)", "calc(75%)", "75%"],
+ // These following two test cases represent an either/or situation in the spec
+ // computed value is always supposed to be, at most, a tuple of a length and a percentage.
+ // the computed value of a ‘calc()’ expression can be represented as either a number or a tuple
+ // of a dimension and a percentage.
+ // http://www.w3.org/TR/css3-values/#calc-notation
+ ["calc(25%*3 - 10in)", "calc(75% - 10in)", ["calc(75% - 960px)", "calc(-960px + 75%)"]],
+ ["calc((12.5%*6 + 10in) / 4)", "calc((75% + 10in) / 4)", ["calc((75% + 960px) / 4)", "calc(240px + 18.75%)"]]
+]
+
+return {
+ testInlineStyle: testInlineStyle,
+ testComputedStyle: testComputedStyle,
+ testShapeMarginInlineStyle: testShapeMarginInlineStyle,
+ testShapeMarginComputedStyle: testShapeMarginComputedStyle,
+ testShapeThresholdInlineStyle: testShapeThresholdInlineStyle,
+ testShapeThresholdComputedStyle: testShapeThresholdComputedStyle,
+ buildTestCases: buildTestCases,
+ buildRadiiTests: buildRadiiTests,
+ buildPositionTests: buildPositionTests,
+ buildInsetTests: buildInsetTests,
+ buildPolygonTests: buildPolygonTests,
+ generateInsetRoundCases: generateInsetRoundCases,
+ buildCalcTests: buildCalcTests,
+ validUnits: validUnits,
+ calcTestValues: calcTestValues,
+ roundResultStr: roundResultStr
+}
+})();
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-gg-gr.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..091de70bb72
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..6fcfeb4883e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..db8ed5cf7bd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-tr.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/properties.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/properties.js
new file mode 100644
index 00000000000..ddecfb6e336
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/properties.js
@@ -0,0 +1,449 @@
+(function(root){
+
+/*
+ * General Value Types definition
+ * they return an object of arrays of type { <name>: [<start-value>, <end-value>], ... }
+ */
+var values = {
+ 'length' : function() {
+ // http://www.w3.org/TR/css3-values/#lengths
+ return {
+ // CSS Values and Module Level 3
+ // ch: ['1ch', '10ch'],
+ // rem: ['1rem', '10rem'],
+ // vw: ['1vw', '10vw'],
+ // vh: ['1vh', '10vh'],
+ // vmin: ['1vmin', '10vmin'],
+ // vmax: ['1vmax', '10vmax'],
+ // CSS Values and Module Level 2
+ pt: ['1pt', '10pt'],
+ pc: ['1pc', '10pc'],
+ px: ['1px', '10px'],
+ // CSS Values and Module Level 1
+ em: ['1em', '10em'],
+ ex: ['1ex', '10ex'],
+ mm: ['1mm', '10mm'],
+ cm: ['1cm', '10cm'],
+ 'in': ['1in', '10in']
+ };
+ },
+ 'length-em': function() {
+ return {
+ em: ['1.1em', '1.5em']
+ };
+ },
+ 'percentage': function() {
+ // http://www.w3.org/TR/css3-values/#percentages
+ return {
+ '%': ['33%', '80%']
+ };
+ },
+ 'color': function() {
+ // http://www.w3.org/TR/css3-values/#colors
+ // http://www.w3.org/TR/css3-color/
+ return {
+ rgba: ['rgba(100,100,100,1)', 'rgba(10,10,10,0.4)']
+ };
+ },
+ 'rectangle': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#value-def-shape
+ return {
+ rectangle: ['rect(10px,10px,10px,10px)', 'rect(15px,15px,5px,5px)']
+ };
+ },
+ 'font-weight': function() {
+ // http://www.w3.org/TR/css3-fonts/#font-weight-prop
+ return {
+ keyword: ["normal", "bold"],
+ numeric: ["100", "900"]
+ };
+ },
+ 'number': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ return {
+ integer: ["1", "10"],
+ decimal: ["1.1", "9.55"]
+ };
+ },
+ 'number[0,1]': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ // applies to [0,1]-ranged properties like opacity
+ return {
+ "zero-to-one": ["0.2", "0.9"]
+ };
+ },
+ 'integer': function() {
+ // http://www.w3.org/TR/css3-values/#integer
+ return {
+ integer: ["1", "10"]
+ };
+ },
+ 'shadow': function() {
+ // http://www.w3.org/TR/css-text-decor-3/#text-shadow-property
+ return {
+ shadow: ['rgba(0,0,0,0.1) 5px 6px 7px', 'rgba(10,10,10,0.9) 5px 6px 7px']
+ };
+ },
+ 'visibility': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#visibility
+ return {
+ keyword: ['visible', 'hidden', {discrete: true}]
+ };
+ },
+ 'auto': function(property) {
+ var types = properties[property] || unspecified_properties[property];
+ var val = values[types[0]](property);
+ var key = Object.keys(val).shift();
+ return {
+ to: [val[key][1], 'auto'],
+ from: ['auto', val[key][1]]
+ };
+ },
+ // types reqired for non-specified properties
+ 'border-radius': function() {
+ return {
+ px: ['1px', '10px'],
+ "px-px": ['1px 3px', '10px 13px']
+ };
+ },
+ 'image' : function() {
+ var prefix = getValueVendorPrefix('background-image', 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)');
+ return {
+ // Chrome implements this
+ url: ['url(support/one.gif)', 'url(support/two.gif)'],
+ data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
+ // A hunch, as from the spec:
+ // http://www.w3.org/TR/css3-transitions/#animatable-types
+ // gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
+ gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
+ };
+ },
+ 'background-size': function() {
+ return {
+ keyword: ['cover', 'contain']
+ };
+ },
+ 'box-shadow': function() {
+ // http://www.w3.org/TR/css3-background/#ltshadowgt
+ return {
+ shadow: ['60px -16px teal', '60px -16px red']
+ };
+ },
+ 'vertical': function() {
+ return {
+ keyword: ['top', 'bottom']
+ };
+ },
+ 'horizontal': function() {
+ return {
+ keyword: ['left', 'right']
+ };
+ },
+ 'font-stretch': function() {
+ return {
+ keyword: ['condensed', 'expanded']
+ };
+ },
+ 'transform': function() {
+ return {
+ rotate: ['rotate(10deg)', 'rotate(20deg)']
+ };
+ },
+ 'position': function() {
+ return {
+ 'static to absolute': ['static', 'absolute', {discrete: true}],
+ 'relative to absolute': ['relative', 'absolute', {discrete: true}],
+ 'absolute to fixed': ['absolute', 'fixed', {discrete: true}]
+ };
+ },
+ 'display': function() {
+ return {
+ 'static to absolute': ['none', 'block', {discrete: true}],
+ 'block to inline-block': ['block', 'inline-block', {discrete: true}]
+ };
+ }
+};
+
+/*
+ * Property to Type table
+ * (as stated in specification)
+ */
+var properties = {
+ 'background-color': ['color'],
+ 'background-position': ['length', 'percentage'],
+
+ 'border-top-width': ['length'],
+ 'border-right-width': ['length'],
+ 'border-bottom-width': ['length'],
+ 'border-left-width': ['length'],
+
+ 'border-top-color': ['color'],
+ 'border-right-color': ['color'],
+ 'border-bottom-color': ['color'],
+ 'border-left-color': ['color'],
+
+ 'padding-bottom': ['length'],
+ 'padding-left': ['length'],
+ 'padding-right': ['length'],
+ 'padding-top': ['length'],
+
+ 'margin-bottom': ['length'],
+ 'margin-left': ['length'],
+ 'margin-right': ['length'],
+ 'margin-top': ['length'],
+
+ 'height': ['length', 'percentage'],
+ 'width': ['length', 'percentage'],
+ 'min-height': ['length', 'percentage'],
+ 'min-width': ['length', 'percentage'],
+ 'max-height': ['length', 'percentage'],
+ 'max-width': ['length', 'percentage'],
+
+ 'top': ['length', 'percentage'],
+ 'right': ['length', 'percentage'],
+ 'bottom': ['length', 'percentage'],
+ 'left': ['length', 'percentage'],
+
+ 'color': ['color'],
+ 'font-size': ['length', 'percentage'],
+ 'font-weight': ['font-weight'],
+ 'line-height': ['number', 'length', 'percentage'],
+ 'letter-spacing': ['length'],
+ // Note: percentage is Level3 and not implemented anywhere yet
+ // https://drafts.csswg.org/css3-text/#word-spacing
+ 'word-spacing': ['length', 'percentage'],
+ 'text-indent': ['length', 'percentage'],
+ 'text-shadow': ['shadow'],
+
+ 'outline-color': ['color'],
+ // outline-offset <integer> used to be an error in the spec
+ 'outline-offset': ['length'],
+ 'outline-width': ['length'],
+
+ 'clip': ['rectangle'],
+ // Note: doesn't seem implemented anywhere
+ 'crop': ['rectangle'],
+
+ 'vertical-align': ['length', 'percentage'],
+ 'opacity': ['number[0,1]'],
+ 'visibility': ['visibility'],
+ 'z-index': ['integer']
+};
+
+/*
+ * Property to auto-value mapping
+ * (lazily taken from http://www.siliconbaytraining.com/pages/csspv.html)
+ */
+var properties_auto = [
+ 'margin-top',
+ 'margin-right',
+ 'margin-bottom',
+ 'margin-left',
+ 'height',
+ 'width',
+ 'clip',
+ 'marker-offset',
+ 'top',
+ 'right',
+ 'left',
+ 'bottom',
+ 'z-index'
+];
+
+/*
+ * Property to Type table
+ * (missing value-types of specified properties)
+ */
+var missing_properties = {
+ 'margin-bottom': ['percentage'],
+ 'margin-left': ['percentage'],
+ 'margin-right': ['percentage'],
+ 'margin-top': ['percentage'],
+ 'padding-bottom': ['percentage'],
+ 'padding-left': ['percentage'],
+ 'padding-right': ['percentage'],
+ 'padding-top': ['percentage'],
+ 'vertical-align': ['vertical']
+};
+
+/*
+ * Property to Type table
+ * (properties that haven't been specified but implemented)
+ */
+var unspecified_properties = {
+ // http://oli.jp/2010/css-animatable-properties/
+ 'border-top-left-radius': ['border-radius'],
+ 'border-top-right-radius': ['border-radius'],
+ 'border-bottom-left-radius': ['border-radius'],
+ 'border-bottom-right-radius': ['border-radius'],
+ 'background-image': ['image'],
+ 'background-size': ['background-size'],
+ // https://drafts.csswg.org/css3-background/#the-box-shadow
+ // Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from ‘0 0 transparent’ or ‘0 0 transparent inset’, as appropriate.)
+ 'box-shadow': ['box-shadow'],
+ 'font-size-adjust': ['number'],
+ 'font-stretch': ['font-stretch'],
+ 'marker-offset': ['length'],
+ 'text-decoration-color': ['color'],
+ 'column-count': ['integer'],
+ 'column-gap': ['length'],
+ 'column-rule-color': ['color'],
+ 'column-rule-width': ['length'],
+ 'column-width': ['length'],
+ 'transform': ['transform'],
+ 'transform-origin': ['horizontal'],
+ 'zoom': ['number'],
+ 'outline-radius-topleft': ['length', 'percentage'],
+ 'outline-radius-topright': ['length', 'percentage'],
+ 'outline-radius-bottomright': ['length', 'percentage'],
+ 'outline-radius-bottomleft': ['length', 'percentage'],
+ 'display': ['display'],
+ 'position': ['position']
+};
+
+/*
+ * additional styles required to actually render
+ * (different browsers expect different environment)
+ */
+var additional_styles = {
+ // all browsers
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'top': {'position': 'absolute'},
+ 'right': {'position': 'absolute'},
+ 'bottom': {'position': 'absolute'},
+ 'left': {'position': 'absolute'},
+ 'z-index': {'position': 'absolute'},
+ 'outline-offset': {'outline-style': 'solid'},
+ 'outline-width': {'outline-style': 'solid'},
+ 'word-spacing': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'column-rule-width': {'column-rule-style': 'solid'},
+ 'position': {'width': '50px', 'height': '50px', top: '10px', left: '50px'}
+};
+
+/*
+ * additional styles required *on the parent* to actually render
+ * (different browsers expect different environment)
+ */
+var parent_styles = {
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'height': {'width': '100px', 'height': '100px'},
+ 'min-height': {'width': '100px', 'height': '100px'},
+ 'max-height': {'width': '100px', 'height': '100px'},
+ 'width': {'width': '100px', 'height': '100px'},
+ 'min-width': {'width': '100px', 'height': '100px'},
+ 'max-width': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
+ // inheritance tests
+ 'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
+};
+
+
+function assemble(props) {
+ var tests = [];
+
+ // assemble tests
+ for (var property in props) {
+ props[property].forEach(function(type) {
+ var _values = values[type](property);
+ Object.keys(_values).forEach(function(unit) {
+ var data = {
+ name: property + ' ' + type + '(' + unit + ')',
+ property: property,
+ valueType : type,
+ unit : unit,
+ parentStyle: extend({}, parent_styles[property] || {}),
+ from: extend({}, additional_styles[property] || {}),
+ to: {}
+ };
+
+ data.from[property] = _values[unit][0];
+ data.to[property] = _values[unit][1];
+ data.flags = _values[unit][2] || {};
+
+ tests.push(data);
+ });
+ });
+ }
+
+ return tests;
+}
+
+root.getPropertyTests = function() {
+ return assemble(properties);
+};
+
+root.getMissingPropertyTests = function() {
+ return assemble(missing_properties);
+};
+
+root.getUnspecifiedPropertyTests = function() {
+ return assemble(unspecified_properties);
+};
+
+root.getFontSizeRelativePropertyTests = function() {
+ var accepted = {};
+
+ for (var key in properties) {
+ if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
+ continue;
+ }
+
+ if (properties[key].indexOf('length') > -1) {
+ accepted[key] = ['length-em'];
+ }
+ }
+
+ return assemble(accepted);
+};
+
+root.getAutoPropertyTests = function() {
+ var accepted = {};
+
+ for (var i = 0, key; key = properties_auto[i]; i++) {
+ accepted[key] = ['auto'];
+ }
+
+ return assemble(accepted);
+};
+
+root.filterPropertyTests = function(tests, names) {
+ var allowed = {};
+ var accepted = [];
+
+ if (typeof names === "string") {
+ names = [names];
+ }
+
+ if (!(names instanceof RegExp)) {
+ names.forEach(function(name) {
+ allowed[name] = true;
+ });
+ }
+
+ tests.forEach(function(test) {
+ if (names instanceof RegExp) {
+ if (!test.name.match(names)) {
+ return;
+ }
+ } else if (!allowed[test.name]) {
+ return;
+ }
+
+ accepted.push(test);
+ });
+
+ return accepted;
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/red20x20.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/red20x20.png
new file mode 100644
index 00000000000..5d44ef210e1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/red20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-body.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-body.html
new file mode 100644
index 00000000000..78038fd28ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-body.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+ <script src="util.js" type="text/javascript"></script>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region">
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-container.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-container.html
new file mode 100644
index 00000000000..219fce6503c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/region-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region">
+ </div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50%.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50px.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-100px.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-50px.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/runParallelAsyncHarness.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/runParallelAsyncHarness.js
new file mode 100644
index 00000000000..460f467930e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/runParallelAsyncHarness.js
@@ -0,0 +1,145 @@
+(function(root){
+'use strict';
+// testharness doesn't know about async test queues,
+// so this wrapper takes care of that
+
+/* USAGE:
+ runParallelAsyncHarness({
+ // list of data to test, must be array of objects.
+ // each object must contain a "name" property to describe the test
+ // besides name, the object can contain whatever data you need
+ tests: [
+ {name: "name of test 1", custom: "data"},
+ {name: "name of test 2", custom: "data"},
+ // ...
+ ],
+
+ // number of tests (tests, not test-cases!) to run concurrently
+ testsPerSlice: 100,
+
+ // time in milliseconds a test-run takes
+ duration: 1000,
+
+ // test-cases to run for for the test - there must be at least one
+ // each case creates its separate async_test() instance
+ cases: {
+ // test case named "test1"
+ test1: {
+ // run as a async_test.step() this callback contains your primary assertions
+ start: function(testCaseKey, data, options){},
+ // run as a async_test.step() this callback contains assertions to be run
+ // when the test ended, immediately before teardown
+ done: function(testCaseKey, data, options){}
+ },
+ // ...
+ }
+
+ // all callbacks are optional:
+
+ // invoked for individual test before it starts so you can setup the environment
+ // like DOM, CSS, adding event listeners and such
+ setup: function(data, options){},
+
+ // invoked after a test ended, so you can clean up the environment
+ // like DOM, CSS, removing event listeners and such
+ teardown: function(data, options){},
+
+ // invoked before a batch of tests ("slice") are run concurrently
+ // tests is an array of test data objects
+ sliceStart: function(options, tests)
+
+ // invoked after a batch of tests ("slice") were run concurrently
+ // tests is an array of test data objects
+ sliceDone: function(options, tests)
+
+ // invoked once all tests are done
+ done: function(options){}
+ })
+*/
+root.runParallelAsyncHarness = function(options) {
+ if (!options.cases) {
+ throw new Error("Options don't contain test cases!");
+ }
+
+ var noop = function(){};
+
+ // add a 100ms buffer to the test timeout, just in case
+ var duration = Math.ceil(options.duration + 100);
+
+ // names of individual tests
+ var cases = Object.keys(options.cases);
+
+ // run tests in a batch of slices
+ // primarily not to overload weak devices (tablets, phones, …)
+ // with too many tests running simultaneously
+ var iteration = -1;
+ var testPerSlice = options.testsPerSlice || 100;
+ var slices = Math.ceil(options.tests.length / testPerSlice);
+
+ // initialize all async test cases
+ // Note: satisfying testharness.js needs to know all async tests before load-event
+ options.tests.forEach(function(data, index) {
+ data.cases = {};
+ cases.forEach(function(name) {
+ data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
+ });
+ });
+
+ function runLoop() {
+ iteration++;
+ if (iteration >= slices) {
+ // no more slice, we're done
+ (options.done || noop)(options);
+ return;
+ }
+
+ // grab a slice of testss and initialize them
+ var offset = iteration * testPerSlice;
+ var tests = options.tests.slice(offset, offset + testPerSlice);
+ tests.forEach(function(data) {
+ (options.setup || noop)(data, options);
+
+ });
+
+ // kick off the current slice of tests
+ (options.sliceStart || noop)(options, tests);
+
+ // perform individual "start" test-case
+ tests.forEach(function(data) {
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].start || noop)(data.cases[name], data, options);
+ });
+ });
+ });
+
+ // conclude test (possibly abort)
+ setTimeout(function() {
+ tests.forEach(function(data) {
+ // perform individual "done" test-case
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].done || noop)(data.cases[name], data, options);
+ });
+ });
+ // clean up after individual test
+ (options.teardown || noop)(data, options);
+ // tell harness we're done with individual test-cases
+ cases.forEach(function(name) {
+ data.cases[name].done();
+ });
+ });
+
+ // finish the test for current slice of tests
+ (options.sliceDone || noop)(options, tests);
+
+ // next test please, give the browser 50ms to do catch its breath
+ setTimeout(runLoop, 50);
+ }, duration);
+ }
+
+ // allow DOMContentLoaded before actually doing something
+ setTimeout(runLoop, 100);
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-purple.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-teal.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-white.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-blue.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-gray.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-gray.png
new file mode 100644
index 00000000000..92c73561f3a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-gray.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-green.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-lime.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-navy.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-navy.png
new file mode 100644
index 00000000000..28dae8a3e12
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-orange.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-pink.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-pink.png
new file mode 100644
index 00000000000..95b84499a3d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-pink.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-purple.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-purple.png
new file mode 100644
index 00000000000..73bea775175
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-red.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-teal.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-white.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-yellow.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-bl.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-br.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-inner-half-size.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-outer.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tl.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tr.png b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two-regions-in-container.html b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two-regions-in-container.html
new file mode 100644
index 00000000000..2fc65261da0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two-regions-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region1, #region2 {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region1"></div>
+ <div id="region2"></div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two.gif b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two.gif
new file mode 100644
index 00000000000..01435c80209
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/two.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/util.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/util.js
new file mode 100644
index 00000000000..a7ce4283e45
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/util.js
@@ -0,0 +1,29 @@
+function resizeViewportTo(viewportSelector, width, height) {
+ var iframe = document.querySelector(viewportSelector);
+ // Commonly used trick to trigger a layout
+ iframe.contentWindow.document.body.offsetTop;
+
+ iframe.width = width;
+ iframe.height = height;
+
+ iframe.contentWindow.document.body.offsetTop;
+}
+
+function injectStylesInIFrame(styleSelector, frameSelector) {
+ var style = document.querySelector(styleSelector),
+ frame = document.querySelector(frameSelector);
+
+ frame.contentWindow.addNewStyles(style.textContent);
+}
+
+
+if (window.parent != window) {
+ // we're in an iframe, so expose the bits that allow setting styles inside
+ window.addNewStyles = function (cssText) {
+ var styleTag = document.createElement("style"),
+ textNode = document.createTextNode(cssText);
+
+ styleTag.appendChild(textNode);
+ document.head.appendChild(styleTag);
+ }
+} \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/support/vendorPrefix.js b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/vendorPrefix.js
new file mode 100644
index 00000000000..6cf3c5a3783
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/support/vendorPrefix.js
@@ -0,0 +1,86 @@
+//
+// Vendor-Prefix Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+var prefixCache = {};
+
+// convert "foo-bar" to "fooBar"
+function camelCase(str) {
+ return str.replace(/\-(\w)/g, function(match, letter){
+ return letter.toUpperCase();
+ });
+}
+
+// vendor-prefix a css property
+root.addVendorPrefix = function (name) {
+ var prefix = getVendorPrefix(name);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + name;
+};
+
+// vendor-prefix a css property value
+root.addValueVendorPrefix = function (property, value) {
+ var prefix = getValueVendorPrefix(property, value);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + value;
+};
+
+// identify vendor-prefix for css property
+root.getVendorPrefix = function(name) {
+ if (prefixCache[name] !== undefined) {
+ return prefixCache[name];
+ }
+
+ var elem = document.createElement("div");
+ name = camelCase(name);
+
+ if (name in elem.style) {
+ return prefixCache[name] = "";
+ }
+
+ var prefixes = ["Webkit", "Moz", "O", "ms"];
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-"];
+ var _name = name.substring(0, 1).toUpperCase() + name.substring(1);
+
+ for (var i = 0, length = prefixes.length; i < length; i++) {
+ if (prefixes[i] + _name in elem.style) {
+ return prefixCache[name] = styles[i];
+ }
+ }
+
+ return prefixCache[name] = name in elem.style ? "" : false;
+};
+
+// identify vendor-prefix for css property value
+root.getValueVendorPrefix = function(property, value) {
+ var elem = document.createElement("div");
+ // note: webkit needs the element to be attached to the dom
+ document.body.appendChild(elem);
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-", ""];
+ var _property = getVendorPrefix(property) + property;
+ for (var i=0, length = styles.length; i < length; i++) {
+ var _value = styles[i] + value;
+ elem.setAttribute('style', _property + ": " + _value);
+ var _computed = computedStyle(elem, _property);
+ if (_computed && _computed !== 'none') {
+ document.body.removeChild(elem);
+ return styles[i];
+ }
+ }
+ document.body.removeChild(elem);
+ return false;
+};
+
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm b/tests/wpt/css-tests/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm
new file mode 100644
index 00000000000..42a1ec8dc4d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Reference File</title>
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon">
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ #frameTest { width: 600px; height: 200px; border: 1px solid #000; }
+
+ </style>
+
+ <script type="text/javascript">
+ var height = 200;
+
+ function resizeReference() {
+
+ var frameTest = document.getElementById('frameTest');
+
+ // let's resize the iframe vertically only, showing that the vh sizes is not updated.
+ if (height <= 300) {
+
+ //frameTest.style.width = height++ + "px";
+ frameTest.style.height = height++ + "px";
+
+ setTimeout(resizeReference, 10);
+
+ } else {
+
+ // uncomment the next line to see how a width resize triggers a layout recalculation
+ //frameTest.style.width = (parseInt(window.getComputedStyle(document.getElementById('frameTest'))['width'], 10) + 1) + "px";
+
+ }
+
+ }
+
+ setTimeout(resizeReference, 10);
+ </script>
+
+</head>
+<body>
+
+<iframe src="vh_not_refreshing_on_chrome_iframe-ref.html" id="frameTest" frameborder="0"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reftest-toc.htm b/tests/wpt/css-tests/css-values-3_dev/html/reftest-toc.htm
new file mode 100644
index 00000000000..219b65b1ad6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reftest-toc.htm
@@ -0,0 +1,486 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column">
+ <col id="ref-column">
+ <col id="flags-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="calc-background-image-gradient-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-image gradients">
+ <a href="calc-background-image-gradient-1.htm">calc-background-image-gradient-1</a></td>
+ <td><a href="reference/calc-background-image-gradient-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-linear-gradient-1" class="">
+ <tr>
+ <td rowspan="1" title="Support calc() on gradient stop positions">
+ <a href="calc-background-linear-gradient-1.htm">calc-background-linear-gradient-1</a></td>
+ <td><a href="reference/calc-background-linear-gradient-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-position-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-position">
+ <a href="calc-background-position-1.htm">calc-background-position-1</a></td>
+ <td><a href="reference/calc-background-position-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-size-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-size">
+ <a href="calc-background-size-1.htm">calc-background-size-1</a></td>
+ <td><a href="reference/calc-background-size-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-border-radius-1" class="">
+ <tr>
+ <td rowspan="1" title="test for border-radius: calc()">
+ <a href="calc-border-radius-1.htm">calc-border-radius-1</a></td>
+ <td><a href="reference/calc-border-radius-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for height:calc() on blocks">
+ <a href="calc-height-block-1.htm">calc-height-block-1</a></td>
+ <td><a href="reference/calc-height-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-height-table-1" class="">
+ <tr>
+ <td rowspan="1" title="Test that height:calc() with no percentages has an effect on inner table elements">
+ <a href="calc-height-table-1.htm">calc-height-table-1</a></td>
+ <td><a href="reference/calc-height-table-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-margin-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test of margin-*: calc()">
+ <a href="calc-margin-block-1.htm">calc-margin-block-1</a></td>
+ <td><a href="reference/calc-margin-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for max-height:calc() on blocks">
+ <a href="calc-max-height-block-1.htm">calc-max-height-block-1</a></td>
+ <td><a href="reference/calc-max-height-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="max-width: calc() on blocks">
+ <a href="calc-max-width-block-1.htm">calc-max-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of max-width: calc() on blocks">
+ <a href="calc-max-width-block-intrinsic-1.htm">calc-max-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-max-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for min-height:calc() on blocks">
+ <a href="calc-min-height-block-1.htm">calc-min-height-block-1</a></td>
+ <td><a href="reference/calc-height-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="min-width: calc() on blocks">
+ <a href="calc-min-width-block-1.htm">calc-min-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of min-width: calc() on blocks">
+ <a href="calc-min-width-block-intrinsic-1.htm">calc-min-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-min-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-bottom-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for bottom:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-bottom-1.htm">calc-offsets-absolute-bottom-1</a></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-left-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for left:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-left-1.htm">calc-offsets-absolute-left-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-right-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for right:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-right-1.htm">calc-offsets-absolute-right-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-top-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for top:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-top-1.htm">calc-offsets-absolute-top-1</a></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-bottom-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for bottom:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-bottom-1.htm">calc-offsets-relative-bottom-1</a></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-left-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for left:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-left-1.htm">calc-offsets-relative-left-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-right-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for right:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-right-1.htm">calc-offsets-relative-right-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-top-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for top:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-top-1.htm">calc-offsets-relative-top-1</a></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-padding-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test of padding-*: calc()">
+ <a href="calc-padding-block-1.htm">calc-padding-block-1</a></td>
+ <td><a href="reference/calc-padding-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-text-indent-1" class="">
+ <tr>
+ <td rowspan="1" title="text-indent: calc() on blocks">
+ <a href="calc-text-indent-1.htm">calc-text-indent-1</a></td>
+ <td><a href="reference/calc-text-indent-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-text-indent-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of text-indent: calc() on blocks">
+ <a href="calc-text-indent-intrinsic-1.htm">calc-text-indent-intrinsic-1</a></td>
+ <td><a href="reference/calc-text-indent-intrinsic-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-transform-origin-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on transform-origin">
+ <a href="calc-transform-origin-1.htm">calc-transform-origin-1</a></td>
+ <td><a href="reference/calc-transform-origin-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-vertical-align-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for vertical-align:calc()">
+ <a href="calc-vertical-align-1.htm">calc-vertical-align-1</a></td>
+ <td><a href="reference/calc-vertical-align-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on blocks">
+ <a href="calc-width-block-1.htm">calc-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of width: calc() on blocks">
+ <a href="calc-width-block-intrinsic-1.htm">calc-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-width-block-intrinsic-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-table-auto-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on table-layout: auto tables">
+ <a href="calc-width-table-auto-1.htm">calc-width-table-auto-1</a></td>
+ <td><a href="reference/calc-width-table-auto-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-table-fixed-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on table-layout: auto tables">
+ <a href="calc-width-table-fixed-1.htm">calc-width-table-fixed-1</a></td>
+ <td><a href="reference/calc-width-table-fixed-1-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="ch-unit-001" class="">
+ <tr>
+ <td rowspan="1" title="support for the ch unit">
+ <a href="ch-unit-001.htm">ch-unit-001</a></td>
+ <td><a href="reference/ch-unit-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="min-width-001" class="">
+ <tr>
+ <td rowspan="1" title="min-width length value approximation">
+ <a href="min-width-001.htm">min-width-001</a></td>
+ <td><a href="ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-001" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-001.htm">multicol-count-non-integer-001</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-002" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-002.htm">multicol-count-non-integer-002</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-003" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-003.htm">multicol-count-non-integer-003</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-inherit-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="'column-count' and inherit">
+ <a href="multicol-inherit-002.htm">multicol-inherit-002</a></td>
+ <td><a href="reference/multicol-inherit-002-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-rule-color-inherit-001" class="ahem">
+ <tr>
+ <td rowspan="1" title="column-rule-color: inherit">
+ <a href="multicol-rule-color-inherit-001.htm">multicol-rule-color-inherit-001</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-rule-color-inherit-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="column-rule-color: inherit (complex)">
+ <a href="multicol-rule-color-inherit-002.htm">multicol-rule-color-inherit-002</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-003" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing region that is sized using viewport units">
+ <a href="regions-resizing-003.htm">regions-resizing-003</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-007" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing region with percentage size inside a container that has size set in viewport units">
+ <a href="regions-resizing-007.htm">regions-resizing-007</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-009" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing autosized region when content flowed in it is sized with viewport units">
+ <a href="regions-resizing-009.htm">regions-resizing-009</a></td>
+ <td><a href="reference/regions-resizing-001-ref.htm">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-calc-support" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are supported inside calc expressions.">
+ <a href="vh-calc-support.htm">vh-calc-support</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-calc-support-pct" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are supported inside calc expressions.">
+ <a href="vh-calc-support-pct.htm">vh-calc-support-pct</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-em-inherit" class="">
+ <tr>
+ <td rowspan="1" title="0vh and 0vw are correctly treated as 0px">
+ <a href="vh-em-inherit.htm">vh-em-inherit</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-inherit" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are inherited properly">
+ <a href="vh-inherit.htm">vh-inherit</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-pct" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-pct.htm">vh-interpolate-pct</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-px" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-px.htm">vh-interpolate-px</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-vh" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-vh.htm">vh-interpolate-vh</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in sizing properties">
+ <a href="vh-support.htm">vh-support</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-atviewport" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in @viewport rules">
+ <a href="vh-support-atviewport.htm">vh-support-atviewport</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-margin" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in margin properties">
+ <a href="vh-support-margin.htm">vh-support-margin</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-transform-origin" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in transform properties">
+ <a href="vh-support-transform-origin.htm">vh-support-transform-origin</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-transform-translate" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in transform properties">
+ <a href="vh-support-transform-translate.htm">vh-support-transform-translate</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-zero-support" class="">
+ <tr>
+ <td rowspan="1" title="0vh and 0vw are correctly treated as 0px">
+ <a href="vh-zero-support.htm">vh-zero-support</a></td>
+ <td><a href="reference/all-green.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh_not_refreshing_on_chrome" class="">
+ <tr>
+ <td rowspan="1" title="vh-based dimension doesn't change when the element's other dimension doesn't change.">
+ <a href="vh_not_refreshing_on_chrome.htm">vh_not_refreshing_on_chrome</a></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh_not_refreshing_on_chrome_iframe" class="">
+ <tr>
+ <td rowspan="1" title="vh-based dimension doesn't change when the element other dimension doesn't change.">
+ <a href="vh_not_refreshing_on_chrome_iframe.htm">vh_not_refreshing_on_chrome_iframe</a></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/reftest.list b/tests/wpt/css-tests/css-values-3_dev/html/reftest.list
new file mode 100644
index 00000000000..8714d2b521f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/reftest.list
@@ -0,0 +1,58 @@
+
+calc-background-image-gradient-1.htm == reference/calc-background-image-gradient-1-ref.htm
+calc-background-linear-gradient-1.htm == reference/calc-background-linear-gradient-1-ref.htm
+calc-background-position-1.htm == reference/calc-background-position-1-ref.htm
+calc-background-size-1.htm == reference/calc-background-size-1-ref.htm
+calc-border-radius-1.htm == reference/calc-border-radius-1-ref.htm
+calc-height-block-1.htm == reference/calc-height-block-1-ref.htm
+calc-height-table-1.htm == reference/calc-height-table-1-ref.htm
+calc-margin-block-1.htm == reference/calc-margin-block-1-ref.htm
+calc-max-height-block-1.htm == reference/calc-max-height-block-1-ref.htm
+calc-max-width-block-1.htm == reference/calc-width-block-1-ref.htm
+calc-max-width-block-intrinsic-1.htm == reference/calc-max-width-block-intrinsic-1-ref.htm
+calc-min-height-block-1.htm == reference/calc-height-block-1-ref.htm
+calc-min-width-block-1.htm == reference/calc-width-block-1-ref.htm
+calc-min-width-block-intrinsic-1.htm == reference/calc-min-width-block-intrinsic-1-ref.htm
+calc-offsets-absolute-bottom-1.htm == reference/calc-offsets-absolute-top-1-ref.htm
+calc-offsets-absolute-left-1.htm == reference/calc-offsets-relative-left-1-ref.htm
+calc-offsets-absolute-right-1.htm == reference/calc-offsets-relative-left-1-ref.htm
+calc-offsets-absolute-top-1.htm == reference/calc-offsets-absolute-top-1-ref.htm
+calc-offsets-relative-bottom-1.htm == reference/calc-offsets-relative-top-1-ref.htm
+calc-offsets-relative-left-1.htm == reference/calc-offsets-relative-left-1-ref.htm
+calc-offsets-relative-right-1.htm == reference/calc-offsets-relative-left-1-ref.htm
+calc-offsets-relative-top-1.htm == reference/calc-offsets-relative-top-1-ref.htm
+calc-padding-block-1.htm == reference/calc-padding-block-1-ref.htm
+calc-text-indent-1.htm == reference/calc-text-indent-1-ref.htm
+calc-text-indent-intrinsic-1.htm == reference/calc-text-indent-intrinsic-1-ref.htm
+calc-transform-origin-1.htm == reference/calc-transform-origin-1-ref.htm
+calc-vertical-align-1.htm == reference/calc-vertical-align-1-ref.htm
+calc-width-block-1.htm == reference/calc-width-block-1-ref.htm
+calc-width-block-intrinsic-1.htm == reference/calc-width-block-intrinsic-1-ref.htm
+calc-width-table-auto-1.htm == reference/calc-width-table-auto-1-ref.htm
+calc-width-table-fixed-1.htm == reference/calc-width-table-fixed-1-ref.htm
+ch-unit-001.htm == reference/ch-unit-001-ref.htm
+min-width-001.htm == ref.htm
+multicol-count-non-integer-001.htm == reference/multicol-columns-invalid-001-ref.htm
+multicol-count-non-integer-002.htm == reference/multicol-columns-invalid-001-ref.htm
+multicol-count-non-integer-003.htm == reference/multicol-columns-invalid-001-ref.htm
+multicol-inherit-002.htm == reference/multicol-inherit-002-ref.htm
+multicol-rule-color-inherit-001.htm == reference/multicol-rule-color-inherit-001-ref.htm
+multicol-rule-color-inherit-002.htm == reference/multicol-rule-color-inherit-001-ref.htm
+regions-resizing-003.htm == reference/regions-resizing-001-ref.htm
+regions-resizing-007.htm == reference/regions-resizing-001-ref.htm
+regions-resizing-009.htm == reference/regions-resizing-001-ref.htm
+vh-calc-support.htm == reference/all-green.htm
+vh-calc-support-pct.htm == reference/all-green.htm
+vh-em-inherit.htm == reference/all-green.htm
+vh-inherit.htm == reference/all-green.htm
+vh-interpolate-pct.htm == reference/all-green.htm
+vh-interpolate-px.htm == reference/all-green.htm
+vh-interpolate-vh.htm == reference/all-green.htm
+vh-support.htm == reference/all-green.htm
+vh-support-atviewport.htm == reference/all-green.htm
+vh-support-margin.htm == reference/all-green.htm
+vh-support-transform-origin.htm == reference/all-green.htm
+vh-support-transform-translate.htm == reference/all-green.htm
+vh-zero-support.htm == reference/all-green.htm
+vh_not_refreshing_on_chrome.htm == reference/vh_not_refreshing_on_chrome-ref.htm
+vh_not_refreshing_on_chrome_iframe.htm == reference/vh_not_refreshing_on_chrome-ref.htm
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-003.htm b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-003.htm
new file mode 100644
index 00000000000..68408a9631f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-003.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: resizing region that is sized using viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <meta content="dom ahem http" name="flags">
+ <meta content="Test checks that resizing the viewport of a page containing a region
+ sized using viewport units correctly relayouts the region's contents." name="assert">
+ <link href="reference/regions-resizing-001-ref.htm" rel="match">
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ #region {
+ width: 80vw;
+ height: 100vh;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 100, 100);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="400" height="400" frameborder="0" src="support/region-in-body.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-007.htm b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-007.htm
new file mode 100644
index 00000000000..ac25a372829
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-007.htm
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: resizing region with percentage size inside a container that has size set in viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <meta content="dom ahem http" name="flags">
+ <meta content="Test checks that resizing the viewport of a page containing a region
+ that has a percentage size relative to a parent sized using viewport units correctly
+ relayouts the region's contents." name="assert">
+ <link href="reference/regions-resizing-001-ref.htm" rel="match">
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ html, body {
+ height: 100%;
+ }
+ #region-parent {
+ width: 50vw;
+ height: 80vh;
+ }
+ #region {
+ width: 80%;
+ height: 70%;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 200, 200);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="437" height="143" frameborder="0" src="support/region-in-container.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-009.htm b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-009.htm
new file mode 100644
index 00000000000..19dd5829134
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/regions-resizing-009.htm
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Regions: resizing autosized region when content flowed in it is sized with viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan">
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help">
+ <link href="http://www.w3.org/TR/css3-regions/#regions-visual-formatting-details" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <meta content="dom ahem http" name="flags">
+ <meta content="Test checks that resizing the viewport of a page containing an
+ autosized region when the content flowed in it is sized with viewport units correctly
+ relayouts the region's contents." name="assert">
+ <link href="reference/regions-resizing-001-ref.htm" rel="match">
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ #content {
+ width: 40vw;
+ height: 40vh;
+ }
+ #region {
+ width: auto;
+ height: auto;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 200, 200);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="437" height="143" frameborder="0" src="support/region-in-body.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-002.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-002.htm
new file mode 100644
index 00000000000..48b11189f55
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-002.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Circle Valid Positions</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:betravis@adobe.com" rel="author" title="Bear Travis">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="A circle's position argument may be any of the valid combinations:
+ [ percentage|length left|center|right ]
+ or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ]
+ or [ left|center|right ]
+ or [ left|center|right top|center|bottom ]
+ or [ top|center|bottom ]. " name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildPositionTests('circle', true, 'inline', 'px'));
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildPositionTests('circle', true, 'computed', 'px'));
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-004.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-004.htm
new file mode 100644
index 00000000000..11505819210
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-circle-004.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Circle - Position Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="A circle's position arguments may in any valid <length> unit allowed by a <position> value." name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-002.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-002.htm
new file mode 100644
index 00000000000..8a9118abb6e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-002.htm
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Ellipse Valid Positions</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:betravis@adobe.com" rel="author" title="Bear Travis">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="An ellipse's position argument may be any of the valid combinations:
+ [ percentage|length left|center|right ]
+ or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ]
+ or [ left|center|right ]
+ or [ left|center|right top|center|bottom ]
+ or [ top|center|bottom ]. " name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildPositionTests('ellipse', true, 'inline', 'px'));
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildPositionTests('ellipse', true, 'computed', 'px'));
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-004.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-004.htm
new file mode 100644
index 00000000000..3e9285192ee
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-ellipse-004.htm
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Ellipse - Position Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="An ellipse's position arguments may in any valid <length> unit allowed by a <position> value." name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-inset-003.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-inset-003.htm
new file mode 100644
index 00000000000..e77930da7b2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-inset-003.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Inset Valid Round Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="An inset's radial component's values can be in any length unit" name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ ParsingUtils.validUnits.forEach(function(unit) {
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.generateInsetRoundCases(unit, 'inline'));
+ });
+ ParsingUtils.validUnits.forEach(function(unit) {
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.generateInsetRoundCases(unit, 'computed'));
+ });
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-polygon-004.htm b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-polygon-004.htm
new file mode 100644
index 00000000000..777d593d4f0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/shape-outside-polygon-004.htm
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html><head>
+ <title>Shape Outside Polygon - Argument Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe">
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck">
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns"> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon" rel="help">
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help">
+ <meta content="A polygon's veritices may in percentage or any valid <length> units." name="assert">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ var arg_length_units_tests = [
+ ['%', 'px', 'px'],
+ ['px', '%', 'px'],
+ ['px', 'px', '%'],
+ ['%', '%', '%'],
+ ['em', 'em', 'ex'],
+ ['vw', 'vh', '%'],
+ ['cm', 'mm', 'pc'],
+ ['vmin', 'vmin', 'vmax'],
+ ['rem', 'ch', 'rem'],
+ ['in', 'pt', '%']
+ ];
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPolygonTests(arg_length_units_tests, 'inline') );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPolygonTests(arg_length_units_tests, 'computed') );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-green.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-lime.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-maroon.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-navy.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-red.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-white.png b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/2-80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/support/2-80px-block-ref.html
new file mode 100644
index 00000000000..f616001554c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/2-80px-block-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ .content {
+ margin: 10px;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-gg-rr.png b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-green.png b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-red.png b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-float-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-float-ref.html
new file mode 100644
index 00000000000..6adeeb6fa99
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-float-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ float: right;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-ref.html
new file mode 100644
index 00000000000..2c910e93411
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/80px-block-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/README b/tests/wpt/css-tests/css-values-3_dev/html/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/a-green.css b/tests/wpt/css-tests/css-values-3_dev/html/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/b-green.css b/tests/wpt/css-tests/css-values-3_dev/html/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/black20x20.png b/tests/wpt/css-tests/css-values-3_dev/html/support/black20x20.png
new file mode 100644
index 00000000000..ebf7027ee78
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/black20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/c-red.css b/tests/wpt/css-tests/css-values-3_dev/html/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/cat.png b/tests/wpt/css-tests/css-values-3_dev/html/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/generalParallelTest.js b/tests/wpt/css-tests/css-values-3_dev/html/support/generalParallelTest.js
new file mode 100644
index 00000000000..1a4bf343df0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/generalParallelTest.js
@@ -0,0 +1,231 @@
+(function(root) {
+'use strict';
+//
+var index = 0;
+var suite = root.generalParallelTest = {
+ // prepare individual test
+ setup: function(data, options) {
+ suite._setupDom(data, options);
+ suite._setupEvents(data, options);
+ },
+ // clone fixture and prepare data containers
+ _setupDom: function(data, options) {
+ // clone fixture into off-viewport test-canvas
+ data.fixture = document.getElementById('fixture').cloneNode(true);
+ data.fixture.id = 'test-' + (index++);
+ (document.getElementById('offscreen') || document.body).appendChild(data.fixture);
+
+ // data container for #fixture > .container > .transition
+ data.transition = {
+ node: data.fixture.querySelector('.transition'),
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property);
+ }
+ };
+
+ // data container for #fixture > .container
+ data.container = {
+ node: data.transition.node.parentNode,
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.container.node, property);
+ }
+ };
+
+ // data container for #fixture > .container > .transition[:before | :after]
+ if (data.pseudo) {
+ data.pseudo = {
+ name: data.pseudo,
+ values: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property, ':' + data.pseudo.name);
+ }
+ };
+ }
+ },
+ // bind TransitionEnd event listeners
+ _setupEvents: function(data, options) {
+ ['transition', 'container'].forEach(function(elem) {
+ var handler = function(event) {
+ event.stopPropagation();
+ var name = event.propertyName;
+ var time = Math.round(event.elapsedTime * 1000) / 1000;
+ var pseudo = event.pseudoElement ? (':' + event.pseudoElement) : '';
+ data[elem].events.push(name + pseudo + ":" + time + "s");
+ };
+ data[elem].node.addEventListener('transitionend', handler, false);
+ data[elem]._events = {'transitionend': handler};
+ });
+ },
+ // cleanup after individual test
+ teardown: function(data, options) {
+ // data.fixture.remove();
+ if (data.fixture.parentNode) {
+ data.fixture.parentNode.removeChild(data.fixture);
+ }
+ },
+ // invoked prior to running a slice of tests
+ sliceStart: function(options, tests) {
+ // inject styles into document
+ setStyle(options.styles);
+ // kick off value collection loop
+ generalParallelTest.startValueCollection(options);
+ },
+ // invoked after running a slice of tests
+ sliceDone: function(options, tests) {
+ // stop value collection loop
+ generalParallelTest.stopValueCollection(options);
+ // reset styles cache
+ options.styles = {};
+ },
+ // called once all tests are done
+ done: function(options) {
+ // reset document styles
+ setStyle();
+ reflow();
+ },
+ // add styles of individual test to slice cache
+ addStyles: function(data, options, styles) {
+ if (!options.styles) {
+ options.styles = {};
+ }
+
+ Object.keys(styles).forEach(function(key) {
+ var selector = '#' + data.fixture.id
+ // fixture must become #fixture.fixture rather than a child selector
+ + (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ + key;
+
+ options.styles[selector] = styles[key];
+ });
+ },
+ // set style and compute values for container and transition
+ getStyle: function(data) {
+ reflow();
+ // grab current styles: "initial state"
+ suite._getStyleFor(data, 'from');
+ // apply target state
+ suite._addClass(data, 'to', true);
+ // grab current styles: "target state"
+ suite._getStyleFor(data, 'to');
+ // remove target state
+ suite._removeClass(data, 'to', true);
+
+ // clean up the mess created for value collection
+ data.container._values = [];
+ data.transition._values = [];
+ if (data.pseudo) {
+ data.pseudo._values = [];
+ }
+ },
+ // grab current styles and store in respective element's data container
+ _getStyleFor: function(data, key) {
+ data.container[key] = data.container.computedStyle(data.property);
+ data.transition[key] = data.transition.computedStyle(data.property);
+ if (data.pseudo) {
+ data.pseudo[key] = data.pseudo.computedStyle(data.property);
+ }
+ },
+ // add class to test's elements and possibly reflow
+ _addClass: function(data, className, forceReflow) {
+ data.container.node.classList.add(className);
+ data.transition.node.classList.add(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // remove class from test's elements and possibly reflow
+ _removeClass: function(data, className, forceReflow) {
+ data.container.node.classList.remove(className);
+ data.transition.node.classList.remove(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // add transition and to classes to container and transition
+ startTransition: function(data) {
+ // add transition-defining class
+ suite._addClass(data, 'how', true);
+ // add target state (without reflowing)
+ suite._addClass(data, 'to', false);
+ },
+ // requestAnimationFrame runLoop to collect computed values
+ startValueCollection: function(options) {
+ var raf = window.requestAnimationFrame || function(callback){
+ setTimeout(callback, 20);
+ };
+
+ // flag denoting if the runLoop should continue (true) or exit (false)
+ options._collectValues = true;
+
+ function runLoop() {
+ if (!options._collectValues) {
+ // test's are done, stop annoying the CPU
+ return;
+ }
+
+ // collect current style for test's elements
+ options.tests.forEach(function(data) {
+ if (!data.property) {
+ return;
+ }
+
+ ['transition', 'container', 'pseudo'].forEach(function(elem) {
+ var pseudo = null;
+ if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
+ return;
+ }
+
+ var current = data[elem].computedStyle(data.property);
+ var values = data[elem].values;
+ var length = values.length;
+ if (!length || values[length - 1] !== current) {
+ values.push(current);
+ }
+ });
+ });
+
+ // rinse and repeat
+ raf(runLoop);
+ }
+
+ runLoop();
+ },
+ // stop requestAnimationFrame runLoop collecting computed values
+ stopValueCollection: function(options) {
+ options._collectValues = false;
+ },
+
+ // generate test.step function asserting collected events match expected
+ assertExpectedEventsFunc: function(data, elem, expected) {
+ return function() {
+ var _result = data[elem].events.sort().join(" ");
+ var _expected = typeof expected === 'string' ? expected : expected.sort().join(" ");
+ assert_equals(_result, _expected, "Expected TransitionEnd events triggered on ." + elem);
+ };
+ },
+ // generate test.step function asserting collected values are neither initial nor target
+ assertIntermediateValuesFunc: function(data, elem) {
+ return function() {
+ // the first value (index: 0) is always going to be the initial value
+ // the last value is always going to be the target value
+ var values = data[elem].values;
+ if (data.flags.discrete) {
+ // a discrete value will just switch from one state to another without having passed intermediate states.
+ assert_equals(values[0], data[elem].from, "must be initial value while transitioning on ." + elem);
+ assert_equals(values[1], data[elem].to, "must be target value after transitioning on ." + elem);
+ assert_equals(values.length, 2, "discrete property only has 2 values ." + elem);
+ } else {
+ assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
+ assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
+ }
+
+ // TODO: first value must be initial, last value must be target
+ };
+ }
+};
+
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/helper.js b/tests/wpt/css-tests/css-values-3_dev/html/support/helper.js
new file mode 100644
index 00000000000..242cd3ca635
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/helper.js
@@ -0,0 +1,96 @@
+//
+// Simple Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+// serialize styles object and dump to dom
+// appends <style id="dynamic-style"> to <head>
+// setStyle("#some-selector", {"some-style" : "value"})
+// setStyle({"#some-selector": {"some-style" : "value"}})
+root.setStyle = function(selector, styles) {
+ var target = document.getElementById('dynamic-style');
+ if (!target) {
+ target = document.createElement('style');
+ target.id = 'dynamic-style';
+ target.type = "text/css";
+ document.getElementsByTagName('head')[0].appendChild(target);
+ }
+
+ var data = [];
+ // single selector/styles
+ if (typeof selector === 'string' && styles !== undefined) {
+ data = [selector, '{', serializeStyles(styles), '}'];
+ target.textContent = data.join("\n");
+ return;
+ }
+ // map of selector/styles
+ for (var key in selector) {
+ if (Object.prototype.hasOwnProperty.call(selector, key)) {
+ var _data = [key, '{', serializeStyles(selector[key]), '}'];
+ data.push(_data.join('\n'));
+ }
+ }
+
+ target.textContent = data.join("\n");
+};
+
+function serializeStyles(styles) {
+ var data = [];
+ for (var property in styles) {
+ if (Object.prototype.hasOwnProperty.call(styles, property)) {
+ var prefixedProperty = addVendorPrefix(property);
+ data.push(prefixedProperty + ":" + styles[property] + ";");
+ }
+ }
+
+ return data.join('\n');
+}
+
+
+// shorthand for computed style
+root.computedStyle = function(element, property, pseudo) {
+ var prefixedProperty = addVendorPrefix(property);
+ return window
+ .getComputedStyle(element, pseudo || null)
+ .getPropertyValue(prefixedProperty);
+};
+
+// flush rendering buffer
+root.reflow = function() {
+ document.body.offsetWidth;
+};
+
+// merge objects
+root.extend = function(target /*, ..rest */) {
+ Array.prototype.slice.call(arguments, 1).forEach(function(obj) {
+ Object.keys(obj).forEach(function(key) {
+ target[key] = obj[key];
+ });
+ });
+
+ return target;
+};
+
+// dom fixture helper ("resetting dom test elements")
+var _domFixture;
+var _domFixtureSelector;
+root.domFixture = function(selector) {
+ var fixture = document.querySelector(selector || _domFixtureSelector);
+ if (!fixture) {
+ throw new Error('fixture ' + (selector || _domFixtureSelector) + ' not found!');
+ }
+ if (!_domFixture && selector) {
+ // save a copy
+ _domFixture = fixture.cloneNode(true);
+ _domFixtureSelector = selector;
+ } else if (_domFixture) {
+ // restore the copy
+ var tmp = _domFixture.cloneNode(true);
+ fixture.parentNode.replaceChild(tmp, fixture);
+ } else {
+ throw new Error('domFixture must be initialized first!');
+ }
+};
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/import-green.css b/tests/wpt/css-tests/css-values-3_dev/html/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/import-red.css b/tests/wpt/css-tests/css-values-3_dev/html/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/min-width-tables-001-iframe.html b/tests/wpt/css-tests/css-values-3_dev/html/support/min-width-tables-001-iframe.html
new file mode 100644
index 00000000000..edc548a6aab
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/min-width-tables-001-iframe.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>iframe containing the meat of the test</title>
+ <style>
+body {
+ margin: 0;
+ overflow: hidden;
+}
+/* green div that should cover the red divs */
+#green {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: green;
+ width: 100%;
+ height: 600px;
+}
+.spacer {
+ height: 98px;
+ width: 20px;
+}
+.item {
+ background-color: red;
+ display: block;/* property under test */
+ /* border to aid understanding of boundaries between items */
+ border-style: solid;
+ border-width: 1px;
+ border-color: red;/* Note: if you're trying to debug this, use a different color here */
+}
+/* 100px = 10*(1 + 8 + 1) */
+@media (min-width: 100px) {
+ #green {
+ width: 100px;
+ height: 100px;/* = 1 + 98 + 1 */
+ }
+ .item {
+ display: table-cell;/* property and value under test */
+ }
+}
+ </style>
+</head>
+<body>
+ <div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ </div>
+ <div id="green"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/one.gif b/tests/wpt/css-tests/css-values-3_dev/html/support/one.gif
new file mode 100644
index 00000000000..74cf7839c9f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/one.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/parsing-utils.js b/tests/wpt/css-tests/css-values-3_dev/html/support/parsing-utils.js
new file mode 100644
index 00000000000..beea4958ce8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/parsing-utils.js
@@ -0,0 +1,866 @@
+var ParsingUtils = (function() {
+function testInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ var actual = div.style.getPropertyValue('shape-outside');
+ assert_equals(actual, expected);
+}
+
+function testComputedStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ document.body.appendChild(div);
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-outside');
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // Some of the tests in this suite have either/or expected results
+ // so this check allows for testing that at least one of them passes.
+ // Description of the 2 expecteds is below near calcTestValues.
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, typeof expected !== 'undefined' ? expected : value);
+ }
+}
+
+function testShapeMarginInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', "border-box inset(10px)");
+ div.style.setProperty('shape-margin', value);
+ var actual = div.style.getPropertyValue('shape-margin');
+ assert_equals(actual, expected);
+}
+
+function testShapeMarginComputedStyle(value, expected) {
+
+ var outerDiv = document.createElement('div');
+ outerDiv.style.setProperty('width', '100px');
+
+ var innerDiv = document.createElement('div');
+ innerDiv.style.setProperty('shape-outside', "border-box inset(10px)");
+ innerDiv.style.setProperty('shape-margin', value);
+
+ outerDiv.appendChild(innerDiv);
+ document.body.appendChild(outerDiv);
+
+ var style = getComputedStyle(innerDiv);
+ var actual = style.getPropertyValue('shape-margin');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(outerDiv);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0px' : expected);
+ }
+}
+
+function testShapeThresholdInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ var actual = div.style.getPropertyValue('shape-image-threshold');
+ assert_equals(actual, expected);
+}
+
+function testShapeThresholdComputedStyle(value, expected) {
+
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ document.body.appendChild(div);
+
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-image-threshold');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0' : expected);
+ }
+}
+
+// Builds an array of test cases to send to testharness.js where one test case is: [name, actual, expected]
+// These test cases will verify results from testInlineStyle() or testComputedStyle()
+function buildTestCases(testCases, testType) {
+ var results = [];
+
+ // If test_type isn't specified, test inline style
+ var type = typeof testType == 'undefined' ? 'invalid': testType;
+
+ testCases.forEach(function(test) {
+ oneTestCase = [];
+
+ // name - annotated by type (inline vs. computed)
+ if ( test.hasOwnProperty('name') ) {
+ oneTestCase.push(test['name'] +' - '+ type);
+ } else {
+ // If test_name isn't specified, use the actual
+ oneTestCase.push(test['actual'] +' - '+ type);
+ }
+
+ // actual
+ oneTestCase.push(test['actual'])
+
+ // expected
+ if( type.indexOf('invalid') != -1 ){
+ oneTestCase.push(null)
+ } else if( type == 'inline' ) {
+ oneTestCase.push(test['expected_inline']);
+ } else if( type == 'computed' ){
+ oneTestCase.push( convertToPx(test['expected_computed']) );
+ }
+ results.push(oneTestCase);
+ });
+ return results;
+}
+
+
+function buildPositionTests(shape, valid, type, units) {
+ var results = new Array();
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( units ) === '[object Array]') {
+ units.forEach(function(unit) {
+ positionTests = buildPositionTests(shape, valid, type, unit);
+ results = results.concat(positionTests);
+ });
+ } else {
+ if (valid) {
+ validPositions.forEach(function(test) {
+ var testCase = [], testName, actual, expected;
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1)) {
+ // actual
+ actual = shape + '(at ' + setUnit(test[0], false, units) +')';
+
+ // expected
+ // if(convert && shape == 'circle')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else if(convert && shape == 'ellipse')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else
+ expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+
+ // name
+ if (type == 'lengthUnit + inline')
+ testName = 'test unit (inline): ' + units +' - '+ actual;
+ else if (type == 'lengthUnit + computed')
+ testName = 'test unit (computed): ' + units +' - '+ actual;
+ else
+ testName = (actual + ' serializes as ' + expected +' - '+ type);
+
+ testCase.push(testName)
+ testCase.push(actual);
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ } else {
+ invalidPositions.forEach(function(test) {
+ var testValue = shape + '(at ' + setUnit(test, false, units) +')';
+ testCase = new Array();
+ testCase.push(testValue + ' is invalid');
+ testCase.push(testValue);
+ testCase.push(null);
+ results.push(testCase);
+ });
+ }
+ }
+ return unique(results);
+}
+
+function buildRadiiTests(shape, type, units) {
+ var results = new Array();
+ var testUnits = typeof units == 'undefined' ? 'px': units;
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( testUnits ) === '[object Array]') {
+ testUnits.forEach(function(unit) {
+ radiiTests = buildRadiiTests(shape, type, unit);
+ results = results.concat(radiiTests);
+ });
+ } else {
+ var validRadii = shape == 'circle' ? validCircleRadii : validEllipseRadii;
+ validRadii.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1) ) {
+ actual = shape + '(' + setUnit(test[0], false, testUnits) +')';
+ // name
+ if (type.indexOf('lengthUnit') != -1) {
+ name = 'test unit: ' + units +' - '+ actual;
+ if(type.indexOf('computed') != -1)
+ name = name + ' - computed';
+ else
+ name = name + ' - inline';
+ }
+ else
+ name = actual +' - '+ type;
+
+ testCase.push(name);
+
+ // actual
+ testCase.push(actual);
+
+ // expected
+ if(type.indexOf('computed') != -1 && test.length == 3) {
+ expected = shape + '(' + setUnit(test[2], convert, testUnits) +')';
+ } else {
+ expected = shape + '(' + setUnit(test[1], convert, testUnits) +')';
+ }
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ }
+ return unique(results);
+}
+
+function buildInsetTests(unit1, unit2, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ if(Object.prototype.toString.call( unit1 ) === '[object Array]') {
+ unit1.forEach(function(unit) {
+ insetTests = buildInsetTests(unit, unit2, type);
+ results = results.concat(insetTests);
+ });
+ } else {
+ validInsets.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ name = setUnit(test[0], false, unit1, unit2) +' - '+ type;
+ actual = 'inset(' + setUnit(test[1], convert, unit1, unit2) +')';
+ expected = actual;
+
+ testCase.push(name);
+ testCase.push(actual);
+ testCase.push(expected);
+
+ results.push(testCase);
+ });
+ }
+ return unique(results);
+}
+
+function buildPolygonTests(unitSet, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ unitSet.forEach(function(set) {
+ validPolygons.forEach(function(test) {
+ var testCase = [];
+ // name
+ testCase.push(setUnit(test[0], false, set[0], set[1], set[2]) +' - '+ type);
+ // actual
+ testCase.push('polygon(' + setUnit(test[1], false, set[0], set[1], set[2]) +')');
+ // expected
+ testCase.push('polygon(' + setUnit(test[1], convert, set[0], set[1], set[2]) +')');
+ results.push(testCase);
+ });
+ });
+ return unique(results);
+}
+
+function buildCalcTests(testCases, type) {
+ var results = new Array();
+ testCases.forEach(function(test){
+ var testCase = [];
+ if(type == 'computed') {
+ testCase.push(test[0] + ' - computed style');
+ testCase.push(test[0]);
+ testCase.push(test[2]);
+ }
+ else {
+ testCase.push(test[0] + ' - inline style');
+ testCase.push(test[0]);
+ testCase.push(test[1]);
+ }
+ testCase.push(type);
+ results.push(testCase)
+ });
+ return unique(results);
+}
+
+function unique(tests) {
+ var list = tests.concat();
+ for(var i = 0; i< list.length; ++i) {
+ for(var j = i+1; j < list.length; ++j) {
+ if(list[i][0] === list[j][0])
+ list.splice(j--, 1);
+ }
+ }
+ return list;
+}
+
+function setUnit(str, convert, unit1, unit2, unit3) {
+ var retStr = str;
+ if(typeof unit1 !== 'undefined') {
+ retStr = retStr.replace(new RegExp('u1', 'g'), unit1);
+ }
+ if(typeof unit2 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u2", 'g'), unit2);
+ }
+ if(typeof unit3 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u3", 'g'), unit3);
+ }
+ retStr = convert ? convertToPx(retStr) : retStr;
+ return retStr;
+}
+
+function convertToPx(origValue) {
+
+ var valuesToConvert = origValue.match(/[0-9]+(\.[0-9]+)?([a-z]{2,4}|%)/g);
+ if(!valuesToConvert)
+ return origValue;
+
+ var retStr = origValue;
+ for(var i = 0; i < valuesToConvert.length; i++) {
+ var unit = valuesToConvert[i].match(/[a-z]{2,4}|%/).toString();
+ var numberStr = valuesToConvert[i].match(/[0-9]+(\.[0-9]+)?/)[0];
+
+ var number = parseFloat(numberStr);
+ var convertedUnit = 'px';
+ if( typeof number !== 'NaN' )
+ {
+ if (unit == 'in') {
+ number = (96 * number);
+ } else if (unit == 'cm') {
+ number = (37.795275591 * number);
+ } else if (unit == 'mm') {
+ number = (3.779527559 * number);
+ } else if (unit == 'pt') {
+ number = (1.333333333333 * number);
+ } else if (unit == 'pc') {
+ number = (16 * number);
+ } else if (unit == 'em') {
+ number = (16 * number);
+ } else if (unit == 'ex') {
+ number = (7.1796875 * number);
+ } else if (unit == 'ch') {
+ number = (8 * number);
+ } else if (unit == 'rem') {
+ number = (16 * number);
+ } else if (unit == 'vw') {
+ number = ((.01 * window.innerWidth) * number);
+ } else if (unit == 'vh') {
+ number = ((.01 * window.innerHeight) * number);
+ } else if (unit == 'vmin') {
+ number = Math.min( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ } else if (unit == 'vmax') {
+ number = Math.max( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ }
+ else {
+ convertedUnit = unit;
+ }
+ number = Math.round(number * 1000) / 1000;
+ var find = valuesToConvert[i];
+ var replace = number.toString() + convertedUnit;
+ retStr = retStr.replace(valuesToConvert[i], number.toString() + convertedUnit);
+ }
+ }
+ return retStr.replace(',,', ',');
+}
+
+function roundResultStr(str) {
+ if(Object.prototype.toString.call( str ) !== '[object String]')
+ return str;
+
+ var numbersToRound = str.match(/[0-9]+\.[0-9]+/g);
+ if(!numbersToRound)
+ return str;
+
+ var retStr = str;
+ for(var i = 0; i < numbersToRound.length; i++) {
+ num = parseFloat(numbersToRound[i]);
+ if( !isNaN(num) ) {
+ roundedNum = Math.round(num*1000)/1000;
+ retStr = retStr.replace(numbersToRound[i].toString(), roundedNum.toString());
+ }
+ }
+
+ return retStr;
+}
+
+function generateInsetRoundCases(units, testType) {
+ var convert = testType.indexOf('computed') != -1 ? true : false;
+ var testUnit = units;
+ var sizes = [
+ '10' + units,
+ '20' + units,
+ '30' + units,
+ '40' + units
+ ];
+
+ function insetRound(value) {
+ return 'inset(10' +testUnit+ ' round ' + value + ')';
+ }
+
+ function serializedInsetRound(lhsValues, rhsValues, convert) {
+ var retStr = '';
+ if(!rhsValues)
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +')';
+ else
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +' / '+ rhsValues +')';
+
+ if(convert)
+ return convertToPx(retStr);
+
+ return retStr;
+ }
+
+ var results = [], left, lhs, right, rhs;
+ for (left = 1; left <= 4; left++) {
+ lhs = sizes.slice(0, left).join(' ');
+ results.push([insetRound(lhs) +' - '+ testType, insetRound(lhs), serializedInsetRound(lhs, null, convert)]);
+ for (right = 1; right <= 4; right++) {
+ rhs = sizes.slice(0, right).join(' ');
+ if(lhs == rhs)
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, null, convert)]);
+ else
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, rhs, convert)]);
+ }
+ }
+ return results;
+}
+
+var validUnits = [
+ "cm","mm","in","pt","pc", // Absolute length units (omitting px b/c we default to that in all tests)
+ "em","ex","ch","rem", // Font relative length units
+ "vw","vh","vmin","vmax" // Viewport percentage units
+ ]
+
+/// [actual, expected]
+var validPositions = [
+
+/// [ percent ], [ length ], [ percent | percent ], [ percent | length ], [ length | percent ], [ length | length ]
+ ["50%", "50% 50%"],
+ ["50u1", "50u1 50%"],
+ ["50% 50%", "50% 50%"],
+ ["50% 50u1", "50% 50u1"],
+ ["50u1 50%", "50u1 50%"],
+ ["50u1 50u1", "50u1 50u1"],
+
+///// [ keyword ], [ keyword keyword ] x 5 keywords
+ ["left", "0% 50%"],
+ ["top", "50% 0%"],
+ ["right", "100% 50%"],
+ ["bottom", "50% 100%"],
+ ["center", "50% 50%"],
+
+ ["left top", "0% 0%"],
+ ["left bottom", "0% 100%"],
+ ["left center", "0% 50%"],
+
+ ["top left", "0% 0%"],
+ ["top right", "100% 0%"],
+ ["top center", "50% 0%"],
+
+ ["right top", "100% 0%"],
+ ["right bottom", "100% 100%"],
+ ["right center", "100% 50%"],
+
+ ["bottom left", "0% 100%"],
+ ["bottom right", "100% 100%"],
+ ["bottom center", "50% 100%"],
+
+ ["center top", "50% 0%"],
+ ["center left", "0% 50%"],
+ ["center right", "100% 50%"],
+ ["center bottom", "50% 100%"],
+ ["center center", "50% 50%"],
+
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ ["left 50%", "0% 50%"],
+ ["left 50u1", "0% 50u1"],
+
+ ["50% top", "50% 0%"],
+ ["50u1 top", "50u1 0%"],
+
+ ["right 80%", "100% 80%"],
+ ["right 80u1", "100% 80u1"],
+
+ ["70% bottom", "70% 100%"],
+ ["70u1 bottom", "70u1 100%"],
+
+ ["center 60%", "50% 60%"],
+ ["center 60u1", "50% 60u1"],
+ ["60% center", "60% 50%"],
+ ["60u1 center", "60u1 50%"],
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ ["center top 50%", "50% 50%"],
+ ["center top 50u1", "50% 50u1"],
+ ["center left 50%", "50% 50%"],
+ ["center left 50u1", "50u1 50%"],
+ ["center right 70%", "30% 50%"],
+ ["center right 70u1", "right 70u1 top 50%"],
+ ["center bottom 70%", "50% 30%"],
+ ["center bottom 70u1", "left 50% bottom 70u1"],
+
+ ["left top 50%", "0% 50%"],
+ ["left top 50u1", "0% 50u1"],
+ ["left bottom 70%", "0% 30%"],
+ ["left bottom 70u1", "left 0% bottom 70u1"],
+
+ ["top left 50%", "50% 0%"],
+ ["top left 50u1", "50u1 0%"],
+ ["top right 70%", "30% 0%"],
+ ["top right 70u1", "right 70u1 top 0%"],
+
+ ["bottom left 50%", "50% 100%"],
+ ["bottom left 50u1", "50u1 100%"],
+ ["bottom right 70%", "30% 100%"],
+ ["bottom right 70u1", "right 70u1 top 100%"],
+
+ ["right bottom 70%", "100% 30%"],
+ ["right bottom 70u1", "left 100% bottom 70u1"],
+ ["right top 50%", "100% 50%"],
+ ["right top 50u1", "100% 50u1"],
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ ["left 50% center", "50% 50%"],
+ ["left 50u1 center", "50u1 50%"],
+ ["left 50% top", "50% 0%"],
+ ["left 50u1 top", "50u1 0%"],
+ ["left 50% bottom", "50% 100%"],
+ ["left 50u1 bottom", "50u1 100%"],
+
+ ["top 50% center", "50% 50%"],
+ ["top 50u1 center", "50% 50u1"],
+ ["top 50% left", "0% 50%"],
+ ["top 50u1 left", "0% 50u1"],
+ ["top 50% right", "100% 50%"],
+ ["top 50u1 right", "100% 50u1"],
+
+ ["bottom 70% center", "50% 30%"],
+ ["bottom 70u1 center", "left 50% bottom 70u1"],
+ ["bottom 70% left", "0% 30%"],
+ ["bottom 70u1 left", "left 0% bottom 70u1"],
+ ["bottom 70% right", "100% 30%"],
+ ["bottom 70u1 right", "left 100% bottom 70u1"],
+
+ ["right 80% center", "20% 50%"],
+ ["right 80u1 center", "right 80u1 top 50%"],
+ ["right 80% bottom", "20% 100%"],
+ ["right 80u1 bottom", "right 80u1 top 100%"],
+ ["right 80% top", "20% 0%"],
+ ["right 80u1 top", "right 80u1 top 0%"],
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ ["left 50% top 50%", "50% 50%"],
+ ["left 50% top 50u1", "50% 50u1"],
+ ["left 50% bottom 70%", "50% 30%"],
+ ["left 50% bottom 70u1", "left 50% bottom 70u1"],
+ ["left 50u1 top 50%", "50u1 50%"],
+ ["left 50u1 top 50u1", "50u1 50u1"],
+ ["left 50u1 bottom 70%", "50u1 30%"],
+ ["left 50u1 bottom 70u1", "left 50u1 bottom 70u1"],
+
+ ["top 50% left 50%", "50% 50%"],
+ ["top 50% left 50u1", "50u1 50%"],
+ ["top 50% right 80%", "20% 50%"],
+ ["top 50% right 80u1", "right 80u1 top 50%"],
+ ["top 50u1 left 50%", "50% 50u1"],
+ ["top 50u1 left 50u1", "50u1 50u1"],
+ ["top 50u1 right 80%", "20% 50u1"],
+ ["top 50u1 right 80u1", "right 80u1 top 50u1"],
+
+ ["bottom 70% left 50%", "50% 30%"],
+ ["bottom 70% left 50u1", "50u1 30%"],
+ ["bottom 70% right 80%", "20% 30%"],
+ ["bottom 70% right 80u1", "right 80u1 top 30%"],
+ ["bottom 70u1 left 50%", "left 50% bottom 70u1"],
+ ["bottom 70u1 left 50u1", "left 50u1 bottom 70u1"],
+ ["bottom 70u1 right 80%", "left 20% bottom 70u1"],
+ ["bottom 70u1 right 80u1", "right 80u1 bottom 70u1"],
+
+ ["right 80% top 50%", "20% 50%"],
+ ["right 80% top 50u1", "20% 50u1"],
+ ["right 80% bottom 70%", "20% 30%"],
+ ["right 80% bottom 70u1", "left 20% bottom 70u1"],
+ ["right 80u1 top 50%", "right 80u1 top 50%"],
+ ["right 80u1 top 50u1", "right 80u1 top 50u1"],
+ ["right 80u1 bottom 70%", "right 80u1 top 30%"],
+ ["right 80u1 bottom 70u1", "right 80u1 bottom 70u1"],
+];
+
+var invalidPositions = [
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ "50% left",
+ "50px left",
+ "top 50%",
+ "80% right",
+ "80px right",
+ "bottom 70%",
+ "bottom 70px",
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ "center center 60%",
+ "center center 60px",
+
+ "left center 60%",
+ "left center 60px",
+ "left right 80%",
+ "left right 80px",
+ "left left 50%",
+ "left left 50px",
+
+ "top center 60%",
+ "top center 60px",
+ "top bottom 80%",
+ "top bottom 80px",
+ "top top 50%",
+ "top top 50px",
+
+ "bottom center 60%",
+ "bottom center 60px",
+ "bottom top 50%",
+ "bottom top 50px",
+ "bottom bottom 50%",
+ "bottom bottom 50px",
+
+ "right center 60%",
+ "right center 60px",
+ "right left 50%",
+ "right left 50px",
+ "right right 70%",
+ "right right 70px",
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ "center 60% top",
+ "center 60px top",
+ "center 60% bottom",
+ "center 60px bottom",
+ "center 60% left",
+ "center 60px left",
+ "center 60% right",
+ "center 60px right",
+ "center 60% center",
+ "center 60px center",
+
+ "left 50% right",
+ "left 50px right",
+ "left 50% left",
+ "left 50px left",
+
+ "top 50% bottom",
+ "top 50px bottom",
+ "top 50% top",
+ "top 50px top",
+
+ "bottom 70% top",
+ "bottom 70px top",
+ "bottom 70% bottom",
+ "bottom 70px bottom",
+
+ "right 80% left",
+ "right 80px left",
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ "center 60% top 50%",
+ "center 60% top 50px",
+ "center 60% bottom 70%",
+ "center 60% bottom 70px",
+ "center 60% left 50%",
+ "center 60% left 50px",
+ "center 60% right 70%",
+ "center 60% right 70px",
+ "center 60% center 65%",
+ "center 60% center 65px",
+ "center 60px top 50%",
+ "center 60px top 50px",
+ "center 60px bottom 70%",
+ "center 60px bottom 70px",
+ "center 60px left 50%",
+ "center 60px left 50px",
+ "center 60px right 70%",
+ "center 60px right 70px",
+ "center 60px center 65%",
+ "center 60px center 65px",
+
+ "left 50% center 60%",
+ "left 50% center 60px",
+ "left 50% right 80%",
+ "left 50% right 80px",
+ "left 50% left 50%",
+ "left 50% left 50px",
+ "left 50px center 60%",
+ "left 50px center 60px",
+ "left 50px right 80%",
+ "left 50px right 80px",
+ "left 50px left 50%",
+ "left 50px left 50px",
+
+ "top 50% center 60%",
+ "top 50% center 60px",
+ "top 50% bottom 50%",
+ "top 50% bottom 50px",
+ "top 50% top 50%",
+ "top 50% top 50px",
+ "top 50px center 60%",
+ "top 50px center 60px",
+ "top 50px bottom 70%",
+ "top 50px bottom 70px",
+ "top 50px top 50%",
+ "top 50px top 50px",
+
+ "bottom 70% center 60%",
+ "bottom 70% center 60px",
+ "bottom 70% top 50%",
+ "bottom 70% top 50px",
+ "bottom 70% bottom 50%",
+ "bottom 70% bottom 50px",
+ "bottom 70px center 60%",
+ "bottom 70px center 60px",
+ "bottom 70px top 50%",
+ "bottom 70px top 50px",
+ "bottom 70px bottom 50%",
+ "bottom 70px bottom 50px",
+
+ "right 80% center 60%",
+ "right 80% center 60px",
+ "right 80% left 50%",
+ "right 80% left 50px",
+ "right 80% right 85%",
+ "right 80% right 85px",
+ "right 80px center 60%",
+ "right 80px center 60px",
+ "right 80px left 50%",
+ "right 80px left 50px",
+ "right 80px right 85%",
+ "right 80px right 85px"
+];
+
+// valid radii values for circle + ellipse
+// [value, expected_inline, [expected_computed?]]
+var validCircleRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%']
+]
+var validEllipseRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%', 'farthest-side at 50% 50%'],
+ ['50u1 100u1', '50u1 100u1 at 50% 50%'],
+ ['100u1 100px', '100u1 100px at 50% 50%'],
+ ['25% 50%', '25% 50% at 50% 50%'],
+ ['50u1 25%', '50u1 25% at 50% 50%'],
+ ['25% 50u1', '25% 50u1 at 50% 50%'],
+ ['25% closest-side', '25% at 50% 50%'],
+ ['25u1 closest-side', '25u1 at 50% 50%'],
+ ['closest-side 75%', 'closest-side 75% at 50% 50%'],
+ ['closest-side 75u1', 'closest-side 75u1 at 50% 50%'],
+ ['25% farthest-side', '25% farthest-side at 50% 50%'],
+ ['25u1 farthest-side', '25u1 farthest-side at 50% 50%'],
+ ['farthest-side 75%', 'farthest-side 75% at 50% 50%'],
+ ['farthest-side 75u1', 'farthest-side 75u1 at 50% 50%'],
+ ['closest-side closest-side', 'at 50% 50%'],
+ ['farthest-side farthest-side', 'farthest-side farthest-side at 50% 50%'],
+ ['closest-side farthest-side', 'closest-side farthest-side at 50% 50%'],
+ ['farthest-side closest-side', 'farthest-side at 50% 50%']
+]
+
+var validInsets = [
+ ["One arg - u1", "10u1"],
+ ["One arg - u2", "10u2"],
+ ["Two args - u1 u1", "10u1 20u1"],
+ ["Two args - u1 u2", "10u1 20u2"],
+ ["Two args - u2 u1", "10u2 20u1"],
+ ["Two args - u2 u2", "10u2 20u2"],
+ ["Three args - u1 u1 u1", "10u1 20u1 30u1"],
+ ["Three args - u1 u1 u2", "10u1 20u1 30u2"],
+ ["Three args - u1 u2 u1", "10u1 20u2 30u1"],
+ ["Three args - u1 u2 u2 ", "10u1 20u2 30u2"],
+ ["Three args - u2 u1 u1", "10u2 20u1 30u1"],
+ ["Three args - u2 u1 u2 ", "10u2 20u1 30u2"],
+ ["Three args - u2 u2 u1 ", "10u2 20u2 30u1"],
+ ["Three args - u2 u2 u2 ","10u2 20u2 30u2"],
+ ["Four args - u1 u1 u1 u1", "10u1 20u1 30u1 40u1"],
+ ["Four args - u1 u1 u1 u2", "10u1 20u1 30u1 40u2"],
+ ["Four args - u1 u1 u2 u1", "10u1 20u1 30u2 40u1"],
+ ["Four args - u1 u1 u2 u2", "10u1 20u1 30u2 40u2"],
+ ["Four args - u1 u2 u1 u1", "10u1 20u2 30u1 40u1"],
+ ["Four args - u1 u2 u1 u2", "10u1 20u2 30u1 40u2"],
+ ["Four args - u1 u2 u2 u1", "10u1 20u2 30u2 40u1"],
+ ["Four args - u1 u2 u2 u2", "10u1 20u2 30u2 40u2"],
+ ["Four args - u2 u1 u1 u1", "10u2 20u1 30u1 40u1"],
+ ["Four args - u2 u1 u1 u2", "10u2 20u1 30u1 40u2"],
+ ["Four args - u2 u1 u2 u1", "10u2 20u1 30u2 40u1"],
+ ["Four args - u2 u1 u2 u2", "10u2 20u1 30u2 40u2"],
+ ["Four args - u2 u2 u1 u1", "10u2 20u2 30u1 40u1"],
+ ["Four args - u2 u2 u1 u2", "10u2 20u2 30u1 40u2"],
+ ["Four args - u2 u2 u2 u1", "10u2 20u2 30u2 40u1"],
+ ["Four args - u2 u2 u2 u2", "10u2 20u2 30u2 40u2"]
+]
+
+var validPolygons = [
+ ["One vertex - u1 u1", "10u1 20u1"],
+ ["One vertex - u1 u2", "10u1 20u2"],
+ ["Two vertices - u1 u1, u1 u1", "10u1 20u1, 30u1 40u1"],
+ ["Two vertices - u1 u1, u2 u2", "10u1 20u1, 30u2 40u2"],
+ ["Two vertices - u2 u2, u1 u1", "10u2 20u2, 30u1 40u1"],
+ ["Two vertices - u1 u2, u2 u1", "10u1 20u2, 30u2 40u1"],
+ ["Three vertices - u1 u1, u1 u1, u1 u1", "10u1 20u1, 30u1 40u1, 50u1 60u1"],
+ ["Three vertices - u2 u2, u2 u2, u2 u2", "10u2 20u2, 30u2 40u2, 50u2 60u2"],
+ ["Three vertices - u3 u3, u3 u3, u3 u3", "10u3 20u3, 30u3 40u3, 50u3 60u3"],
+ ["Three vertices - u1 u1, u2 u2, u3 u3", "10u1 20u1, 30u2 40u2, 50u3 60u3"],
+ ["Three vertices - u3 u3, u1, u1, u2 u2", "10u3 20u3, 30u1 40u1, 50u2 60u2"],
+]
+
+// [test value, expected property value, expected computed style]
+var calcTestValues = [
+ ["calc(10in)", "calc(10in)", "960px"],
+ ["calc(10in + 20px)", "calc(980px)", "980px"],
+ ["calc(30%)", "calc(30%)", "30%"],
+ ["calc(100%/4)", "calc(25%)", "25%"],
+ ["calc(25%*3)", "calc(75%)", "75%"],
+ // These following two test cases represent an either/or situation in the spec
+ // computed value is always supposed to be, at most, a tuple of a length and a percentage.
+ // the computed value of a ‘calc()’ expression can be represented as either a number or a tuple
+ // of a dimension and a percentage.
+ // http://www.w3.org/TR/css3-values/#calc-notation
+ ["calc(25%*3 - 10in)", "calc(75% - 10in)", ["calc(75% - 960px)", "calc(-960px + 75%)"]],
+ ["calc((12.5%*6 + 10in) / 4)", "calc((75% + 10in) / 4)", ["calc((75% + 960px) / 4)", "calc(240px + 18.75%)"]]
+]
+
+return {
+ testInlineStyle: testInlineStyle,
+ testComputedStyle: testComputedStyle,
+ testShapeMarginInlineStyle: testShapeMarginInlineStyle,
+ testShapeMarginComputedStyle: testShapeMarginComputedStyle,
+ testShapeThresholdInlineStyle: testShapeThresholdInlineStyle,
+ testShapeThresholdComputedStyle: testShapeThresholdComputedStyle,
+ buildTestCases: buildTestCases,
+ buildRadiiTests: buildRadiiTests,
+ buildPositionTests: buildPositionTests,
+ buildInsetTests: buildInsetTests,
+ buildPolygonTests: buildPolygonTests,
+ generateInsetRoundCases: generateInsetRoundCases,
+ buildCalcTests: buildCalcTests,
+ validUnits: validUnits,
+ calcTestValues: calcTestValues,
+ roundResultStr: roundResultStr
+}
+})();
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-gg-gr.png b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..091de70bb72
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..6fcfeb4883e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..db8ed5cf7bd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-tr.png b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/properties.js b/tests/wpt/css-tests/css-values-3_dev/html/support/properties.js
new file mode 100644
index 00000000000..ddecfb6e336
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/properties.js
@@ -0,0 +1,449 @@
+(function(root){
+
+/*
+ * General Value Types definition
+ * they return an object of arrays of type { <name>: [<start-value>, <end-value>], ... }
+ */
+var values = {
+ 'length' : function() {
+ // http://www.w3.org/TR/css3-values/#lengths
+ return {
+ // CSS Values and Module Level 3
+ // ch: ['1ch', '10ch'],
+ // rem: ['1rem', '10rem'],
+ // vw: ['1vw', '10vw'],
+ // vh: ['1vh', '10vh'],
+ // vmin: ['1vmin', '10vmin'],
+ // vmax: ['1vmax', '10vmax'],
+ // CSS Values and Module Level 2
+ pt: ['1pt', '10pt'],
+ pc: ['1pc', '10pc'],
+ px: ['1px', '10px'],
+ // CSS Values and Module Level 1
+ em: ['1em', '10em'],
+ ex: ['1ex', '10ex'],
+ mm: ['1mm', '10mm'],
+ cm: ['1cm', '10cm'],
+ 'in': ['1in', '10in']
+ };
+ },
+ 'length-em': function() {
+ return {
+ em: ['1.1em', '1.5em']
+ };
+ },
+ 'percentage': function() {
+ // http://www.w3.org/TR/css3-values/#percentages
+ return {
+ '%': ['33%', '80%']
+ };
+ },
+ 'color': function() {
+ // http://www.w3.org/TR/css3-values/#colors
+ // http://www.w3.org/TR/css3-color/
+ return {
+ rgba: ['rgba(100,100,100,1)', 'rgba(10,10,10,0.4)']
+ };
+ },
+ 'rectangle': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#value-def-shape
+ return {
+ rectangle: ['rect(10px,10px,10px,10px)', 'rect(15px,15px,5px,5px)']
+ };
+ },
+ 'font-weight': function() {
+ // http://www.w3.org/TR/css3-fonts/#font-weight-prop
+ return {
+ keyword: ["normal", "bold"],
+ numeric: ["100", "900"]
+ };
+ },
+ 'number': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ return {
+ integer: ["1", "10"],
+ decimal: ["1.1", "9.55"]
+ };
+ },
+ 'number[0,1]': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ // applies to [0,1]-ranged properties like opacity
+ return {
+ "zero-to-one": ["0.2", "0.9"]
+ };
+ },
+ 'integer': function() {
+ // http://www.w3.org/TR/css3-values/#integer
+ return {
+ integer: ["1", "10"]
+ };
+ },
+ 'shadow': function() {
+ // http://www.w3.org/TR/css-text-decor-3/#text-shadow-property
+ return {
+ shadow: ['rgba(0,0,0,0.1) 5px 6px 7px', 'rgba(10,10,10,0.9) 5px 6px 7px']
+ };
+ },
+ 'visibility': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#visibility
+ return {
+ keyword: ['visible', 'hidden', {discrete: true}]
+ };
+ },
+ 'auto': function(property) {
+ var types = properties[property] || unspecified_properties[property];
+ var val = values[types[0]](property);
+ var key = Object.keys(val).shift();
+ return {
+ to: [val[key][1], 'auto'],
+ from: ['auto', val[key][1]]
+ };
+ },
+ // types reqired for non-specified properties
+ 'border-radius': function() {
+ return {
+ px: ['1px', '10px'],
+ "px-px": ['1px 3px', '10px 13px']
+ };
+ },
+ 'image' : function() {
+ var prefix = getValueVendorPrefix('background-image', 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)');
+ return {
+ // Chrome implements this
+ url: ['url(support/one.gif)', 'url(support/two.gif)'],
+ data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
+ // A hunch, as from the spec:
+ // http://www.w3.org/TR/css3-transitions/#animatable-types
+ // gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
+ gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
+ };
+ },
+ 'background-size': function() {
+ return {
+ keyword: ['cover', 'contain']
+ };
+ },
+ 'box-shadow': function() {
+ // http://www.w3.org/TR/css3-background/#ltshadowgt
+ return {
+ shadow: ['60px -16px teal', '60px -16px red']
+ };
+ },
+ 'vertical': function() {
+ return {
+ keyword: ['top', 'bottom']
+ };
+ },
+ 'horizontal': function() {
+ return {
+ keyword: ['left', 'right']
+ };
+ },
+ 'font-stretch': function() {
+ return {
+ keyword: ['condensed', 'expanded']
+ };
+ },
+ 'transform': function() {
+ return {
+ rotate: ['rotate(10deg)', 'rotate(20deg)']
+ };
+ },
+ 'position': function() {
+ return {
+ 'static to absolute': ['static', 'absolute', {discrete: true}],
+ 'relative to absolute': ['relative', 'absolute', {discrete: true}],
+ 'absolute to fixed': ['absolute', 'fixed', {discrete: true}]
+ };
+ },
+ 'display': function() {
+ return {
+ 'static to absolute': ['none', 'block', {discrete: true}],
+ 'block to inline-block': ['block', 'inline-block', {discrete: true}]
+ };
+ }
+};
+
+/*
+ * Property to Type table
+ * (as stated in specification)
+ */
+var properties = {
+ 'background-color': ['color'],
+ 'background-position': ['length', 'percentage'],
+
+ 'border-top-width': ['length'],
+ 'border-right-width': ['length'],
+ 'border-bottom-width': ['length'],
+ 'border-left-width': ['length'],
+
+ 'border-top-color': ['color'],
+ 'border-right-color': ['color'],
+ 'border-bottom-color': ['color'],
+ 'border-left-color': ['color'],
+
+ 'padding-bottom': ['length'],
+ 'padding-left': ['length'],
+ 'padding-right': ['length'],
+ 'padding-top': ['length'],
+
+ 'margin-bottom': ['length'],
+ 'margin-left': ['length'],
+ 'margin-right': ['length'],
+ 'margin-top': ['length'],
+
+ 'height': ['length', 'percentage'],
+ 'width': ['length', 'percentage'],
+ 'min-height': ['length', 'percentage'],
+ 'min-width': ['length', 'percentage'],
+ 'max-height': ['length', 'percentage'],
+ 'max-width': ['length', 'percentage'],
+
+ 'top': ['length', 'percentage'],
+ 'right': ['length', 'percentage'],
+ 'bottom': ['length', 'percentage'],
+ 'left': ['length', 'percentage'],
+
+ 'color': ['color'],
+ 'font-size': ['length', 'percentage'],
+ 'font-weight': ['font-weight'],
+ 'line-height': ['number', 'length', 'percentage'],
+ 'letter-spacing': ['length'],
+ // Note: percentage is Level3 and not implemented anywhere yet
+ // https://drafts.csswg.org/css3-text/#word-spacing
+ 'word-spacing': ['length', 'percentage'],
+ 'text-indent': ['length', 'percentage'],
+ 'text-shadow': ['shadow'],
+
+ 'outline-color': ['color'],
+ // outline-offset <integer> used to be an error in the spec
+ 'outline-offset': ['length'],
+ 'outline-width': ['length'],
+
+ 'clip': ['rectangle'],
+ // Note: doesn't seem implemented anywhere
+ 'crop': ['rectangle'],
+
+ 'vertical-align': ['length', 'percentage'],
+ 'opacity': ['number[0,1]'],
+ 'visibility': ['visibility'],
+ 'z-index': ['integer']
+};
+
+/*
+ * Property to auto-value mapping
+ * (lazily taken from http://www.siliconbaytraining.com/pages/csspv.html)
+ */
+var properties_auto = [
+ 'margin-top',
+ 'margin-right',
+ 'margin-bottom',
+ 'margin-left',
+ 'height',
+ 'width',
+ 'clip',
+ 'marker-offset',
+ 'top',
+ 'right',
+ 'left',
+ 'bottom',
+ 'z-index'
+];
+
+/*
+ * Property to Type table
+ * (missing value-types of specified properties)
+ */
+var missing_properties = {
+ 'margin-bottom': ['percentage'],
+ 'margin-left': ['percentage'],
+ 'margin-right': ['percentage'],
+ 'margin-top': ['percentage'],
+ 'padding-bottom': ['percentage'],
+ 'padding-left': ['percentage'],
+ 'padding-right': ['percentage'],
+ 'padding-top': ['percentage'],
+ 'vertical-align': ['vertical']
+};
+
+/*
+ * Property to Type table
+ * (properties that haven't been specified but implemented)
+ */
+var unspecified_properties = {
+ // http://oli.jp/2010/css-animatable-properties/
+ 'border-top-left-radius': ['border-radius'],
+ 'border-top-right-radius': ['border-radius'],
+ 'border-bottom-left-radius': ['border-radius'],
+ 'border-bottom-right-radius': ['border-radius'],
+ 'background-image': ['image'],
+ 'background-size': ['background-size'],
+ // https://drafts.csswg.org/css3-background/#the-box-shadow
+ // Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from ‘0 0 transparent’ or ‘0 0 transparent inset’, as appropriate.)
+ 'box-shadow': ['box-shadow'],
+ 'font-size-adjust': ['number'],
+ 'font-stretch': ['font-stretch'],
+ 'marker-offset': ['length'],
+ 'text-decoration-color': ['color'],
+ 'column-count': ['integer'],
+ 'column-gap': ['length'],
+ 'column-rule-color': ['color'],
+ 'column-rule-width': ['length'],
+ 'column-width': ['length'],
+ 'transform': ['transform'],
+ 'transform-origin': ['horizontal'],
+ 'zoom': ['number'],
+ 'outline-radius-topleft': ['length', 'percentage'],
+ 'outline-radius-topright': ['length', 'percentage'],
+ 'outline-radius-bottomright': ['length', 'percentage'],
+ 'outline-radius-bottomleft': ['length', 'percentage'],
+ 'display': ['display'],
+ 'position': ['position']
+};
+
+/*
+ * additional styles required to actually render
+ * (different browsers expect different environment)
+ */
+var additional_styles = {
+ // all browsers
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'top': {'position': 'absolute'},
+ 'right': {'position': 'absolute'},
+ 'bottom': {'position': 'absolute'},
+ 'left': {'position': 'absolute'},
+ 'z-index': {'position': 'absolute'},
+ 'outline-offset': {'outline-style': 'solid'},
+ 'outline-width': {'outline-style': 'solid'},
+ 'word-spacing': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'column-rule-width': {'column-rule-style': 'solid'},
+ 'position': {'width': '50px', 'height': '50px', top: '10px', left: '50px'}
+};
+
+/*
+ * additional styles required *on the parent* to actually render
+ * (different browsers expect different environment)
+ */
+var parent_styles = {
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'height': {'width': '100px', 'height': '100px'},
+ 'min-height': {'width': '100px', 'height': '100px'},
+ 'max-height': {'width': '100px', 'height': '100px'},
+ 'width': {'width': '100px', 'height': '100px'},
+ 'min-width': {'width': '100px', 'height': '100px'},
+ 'max-width': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
+ // inheritance tests
+ 'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
+};
+
+
+function assemble(props) {
+ var tests = [];
+
+ // assemble tests
+ for (var property in props) {
+ props[property].forEach(function(type) {
+ var _values = values[type](property);
+ Object.keys(_values).forEach(function(unit) {
+ var data = {
+ name: property + ' ' + type + '(' + unit + ')',
+ property: property,
+ valueType : type,
+ unit : unit,
+ parentStyle: extend({}, parent_styles[property] || {}),
+ from: extend({}, additional_styles[property] || {}),
+ to: {}
+ };
+
+ data.from[property] = _values[unit][0];
+ data.to[property] = _values[unit][1];
+ data.flags = _values[unit][2] || {};
+
+ tests.push(data);
+ });
+ });
+ }
+
+ return tests;
+}
+
+root.getPropertyTests = function() {
+ return assemble(properties);
+};
+
+root.getMissingPropertyTests = function() {
+ return assemble(missing_properties);
+};
+
+root.getUnspecifiedPropertyTests = function() {
+ return assemble(unspecified_properties);
+};
+
+root.getFontSizeRelativePropertyTests = function() {
+ var accepted = {};
+
+ for (var key in properties) {
+ if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
+ continue;
+ }
+
+ if (properties[key].indexOf('length') > -1) {
+ accepted[key] = ['length-em'];
+ }
+ }
+
+ return assemble(accepted);
+};
+
+root.getAutoPropertyTests = function() {
+ var accepted = {};
+
+ for (var i = 0, key; key = properties_auto[i]; i++) {
+ accepted[key] = ['auto'];
+ }
+
+ return assemble(accepted);
+};
+
+root.filterPropertyTests = function(tests, names) {
+ var allowed = {};
+ var accepted = [];
+
+ if (typeof names === "string") {
+ names = [names];
+ }
+
+ if (!(names instanceof RegExp)) {
+ names.forEach(function(name) {
+ allowed[name] = true;
+ });
+ }
+
+ tests.forEach(function(test) {
+ if (names instanceof RegExp) {
+ if (!test.name.match(names)) {
+ return;
+ }
+ } else if (!allowed[test.name]) {
+ return;
+ }
+
+ accepted.push(test);
+ });
+
+ return accepted;
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/red20x20.png b/tests/wpt/css-tests/css-values-3_dev/html/support/red20x20.png
new file mode 100644
index 00000000000..5d44ef210e1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/red20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-body.html b/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-body.html
new file mode 100644
index 00000000000..78038fd28ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-body.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+ <script src="util.js" type="text/javascript"></script>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region">
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-container.html b/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-container.html
new file mode 100644
index 00000000000..219fce6503c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/region-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region">
+ </div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50%.png b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50px.png b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-100px.png b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-50px.png b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/runParallelAsyncHarness.js b/tests/wpt/css-tests/css-values-3_dev/html/support/runParallelAsyncHarness.js
new file mode 100644
index 00000000000..460f467930e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/runParallelAsyncHarness.js
@@ -0,0 +1,145 @@
+(function(root){
+'use strict';
+// testharness doesn't know about async test queues,
+// so this wrapper takes care of that
+
+/* USAGE:
+ runParallelAsyncHarness({
+ // list of data to test, must be array of objects.
+ // each object must contain a "name" property to describe the test
+ // besides name, the object can contain whatever data you need
+ tests: [
+ {name: "name of test 1", custom: "data"},
+ {name: "name of test 2", custom: "data"},
+ // ...
+ ],
+
+ // number of tests (tests, not test-cases!) to run concurrently
+ testsPerSlice: 100,
+
+ // time in milliseconds a test-run takes
+ duration: 1000,
+
+ // test-cases to run for for the test - there must be at least one
+ // each case creates its separate async_test() instance
+ cases: {
+ // test case named "test1"
+ test1: {
+ // run as a async_test.step() this callback contains your primary assertions
+ start: function(testCaseKey, data, options){},
+ // run as a async_test.step() this callback contains assertions to be run
+ // when the test ended, immediately before teardown
+ done: function(testCaseKey, data, options){}
+ },
+ // ...
+ }
+
+ // all callbacks are optional:
+
+ // invoked for individual test before it starts so you can setup the environment
+ // like DOM, CSS, adding event listeners and such
+ setup: function(data, options){},
+
+ // invoked after a test ended, so you can clean up the environment
+ // like DOM, CSS, removing event listeners and such
+ teardown: function(data, options){},
+
+ // invoked before a batch of tests ("slice") are run concurrently
+ // tests is an array of test data objects
+ sliceStart: function(options, tests)
+
+ // invoked after a batch of tests ("slice") were run concurrently
+ // tests is an array of test data objects
+ sliceDone: function(options, tests)
+
+ // invoked once all tests are done
+ done: function(options){}
+ })
+*/
+root.runParallelAsyncHarness = function(options) {
+ if (!options.cases) {
+ throw new Error("Options don't contain test cases!");
+ }
+
+ var noop = function(){};
+
+ // add a 100ms buffer to the test timeout, just in case
+ var duration = Math.ceil(options.duration + 100);
+
+ // names of individual tests
+ var cases = Object.keys(options.cases);
+
+ // run tests in a batch of slices
+ // primarily not to overload weak devices (tablets, phones, …)
+ // with too many tests running simultaneously
+ var iteration = -1;
+ var testPerSlice = options.testsPerSlice || 100;
+ var slices = Math.ceil(options.tests.length / testPerSlice);
+
+ // initialize all async test cases
+ // Note: satisfying testharness.js needs to know all async tests before load-event
+ options.tests.forEach(function(data, index) {
+ data.cases = {};
+ cases.forEach(function(name) {
+ data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
+ });
+ });
+
+ function runLoop() {
+ iteration++;
+ if (iteration >= slices) {
+ // no more slice, we're done
+ (options.done || noop)(options);
+ return;
+ }
+
+ // grab a slice of testss and initialize them
+ var offset = iteration * testPerSlice;
+ var tests = options.tests.slice(offset, offset + testPerSlice);
+ tests.forEach(function(data) {
+ (options.setup || noop)(data, options);
+
+ });
+
+ // kick off the current slice of tests
+ (options.sliceStart || noop)(options, tests);
+
+ // perform individual "start" test-case
+ tests.forEach(function(data) {
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].start || noop)(data.cases[name], data, options);
+ });
+ });
+ });
+
+ // conclude test (possibly abort)
+ setTimeout(function() {
+ tests.forEach(function(data) {
+ // perform individual "done" test-case
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].done || noop)(data.cases[name], data, options);
+ });
+ });
+ // clean up after individual test
+ (options.teardown || noop)(data, options);
+ // tell harness we're done with individual test-cases
+ cases.forEach(function(name) {
+ data.cases[name].done();
+ });
+ });
+
+ // finish the test for current slice of tests
+ (options.sliceDone || noop)(options, tests);
+
+ // next test please, give the browser 50ms to do catch its breath
+ setTimeout(runLoop, 50);
+ }, duration);
+ }
+
+ // allow DOMContentLoaded before actually doing something
+ setTimeout(runLoop, 100);
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/square-purple.png b/tests/wpt/css-tests/css-values-3_dev/html/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/square-teal.png b/tests/wpt/css-tests/css-values-3_dev/html/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/square-white.png b/tests/wpt/css-tests/css-values-3_dev/html/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-blue.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-gray.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-gray.png
new file mode 100644
index 00000000000..92c73561f3a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-gray.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-green.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-lime.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-navy.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-navy.png
new file mode 100644
index 00000000000..28dae8a3e12
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-orange.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-pink.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-pink.png
new file mode 100644
index 00000000000..95b84499a3d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-pink.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-purple.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-purple.png
new file mode 100644
index 00000000000..73bea775175
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-red.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-teal.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-white.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-yellow.png b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-bl.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-br.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-inner-half-size.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-outer.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-tl.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/test-tr.png b/tests/wpt/css-tests/css-values-3_dev/html/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/two-regions-in-container.html b/tests/wpt/css-tests/css-values-3_dev/html/support/two-regions-in-container.html
new file mode 100644
index 00000000000..2fc65261da0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/two-regions-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region1, #region2 {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region1"></div>
+ <div id="region2"></div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/two.gif b/tests/wpt/css-tests/css-values-3_dev/html/support/two.gif
new file mode 100644
index 00000000000..01435c80209
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/two.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/util.js b/tests/wpt/css-tests/css-values-3_dev/html/support/util.js
new file mode 100644
index 00000000000..a7ce4283e45
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/util.js
@@ -0,0 +1,29 @@
+function resizeViewportTo(viewportSelector, width, height) {
+ var iframe = document.querySelector(viewportSelector);
+ // Commonly used trick to trigger a layout
+ iframe.contentWindow.document.body.offsetTop;
+
+ iframe.width = width;
+ iframe.height = height;
+
+ iframe.contentWindow.document.body.offsetTop;
+}
+
+function injectStylesInIFrame(styleSelector, frameSelector) {
+ var style = document.querySelector(styleSelector),
+ frame = document.querySelector(frameSelector);
+
+ frame.contentWindow.addNewStyles(style.textContent);
+}
+
+
+if (window.parent != window) {
+ // we're in an iframe, so expose the bits that allow setting styles inside
+ window.addNewStyles = function (cssText) {
+ var styleTag = document.createElement("style"),
+ textNode = document.createTextNode(cssText);
+
+ styleTag.appendChild(textNode);
+ document.head.appendChild(styleTag);
+ }
+} \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/support/vendorPrefix.js b/tests/wpt/css-tests/css-values-3_dev/html/support/vendorPrefix.js
new file mode 100644
index 00000000000..6cf3c5a3783
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/support/vendorPrefix.js
@@ -0,0 +1,86 @@
+//
+// Vendor-Prefix Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+var prefixCache = {};
+
+// convert "foo-bar" to "fooBar"
+function camelCase(str) {
+ return str.replace(/\-(\w)/g, function(match, letter){
+ return letter.toUpperCase();
+ });
+}
+
+// vendor-prefix a css property
+root.addVendorPrefix = function (name) {
+ var prefix = getVendorPrefix(name);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + name;
+};
+
+// vendor-prefix a css property value
+root.addValueVendorPrefix = function (property, value) {
+ var prefix = getValueVendorPrefix(property, value);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + value;
+};
+
+// identify vendor-prefix for css property
+root.getVendorPrefix = function(name) {
+ if (prefixCache[name] !== undefined) {
+ return prefixCache[name];
+ }
+
+ var elem = document.createElement("div");
+ name = camelCase(name);
+
+ if (name in elem.style) {
+ return prefixCache[name] = "";
+ }
+
+ var prefixes = ["Webkit", "Moz", "O", "ms"];
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-"];
+ var _name = name.substring(0, 1).toUpperCase() + name.substring(1);
+
+ for (var i = 0, length = prefixes.length; i < length; i++) {
+ if (prefixes[i] + _name in elem.style) {
+ return prefixCache[name] = styles[i];
+ }
+ }
+
+ return prefixCache[name] = name in elem.style ? "" : false;
+};
+
+// identify vendor-prefix for css property value
+root.getValueVendorPrefix = function(property, value) {
+ var elem = document.createElement("div");
+ // note: webkit needs the element to be attached to the dom
+ document.body.appendChild(elem);
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-", ""];
+ var _property = getVendorPrefix(property) + property;
+ for (var i=0, length = styles.length; i < length; i++) {
+ var _value = styles[i] + value;
+ elem.setAttribute('style', _property + ": " + _value);
+ var _computed = computedStyle(elem, _property);
+ if (_computed && _computed !== 'none') {
+ document.body.removeChild(elem);
+ return styles[i];
+ }
+ }
+ document.body.removeChild(elem);
+ return false;
+};
+
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/toc.htm b/tests/wpt/css-tests/css-values-3_dev/html/toc.htm
new file mode 100644
index 00000000000..b39ba9aaaf5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/toc.htm
@@ -0,0 +1,69 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Values and Units Module Level 3 CR Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.htm">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.htm">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.htm">Chapter 2 -
+ Value Definition Syntax</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.htm">Chapter 3 -
+ Textual Data Types</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.htm">Chapter 4 -
+ Numeric Data Types</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.htm">Chapter 5 -
+ Distance Units: the <length> type</a></th>
+ <td>(30 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.htm">Chapter 6 -
+ Other Quantities</a></th>
+ <td>(2 Tests)</td></tr>
+ </tbody>
+ <tbody id="s7">
+ <tr><th><a href="chapter-7.htm">Chapter 7 -
+ Data Types Defined Elsewhere</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s8">
+ <tr><th><a href="chapter-8.htm">Chapter 8 -
+ Functional Notations</a></th>
+ <td>(32 Tests)</td></tr>
+ </tbody>
+ <tbody id="s9">
+ <tr><th><a href="chapter-9.htm">Chapter 9 -
+ Appendix A: IANA Considerations</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/transition-delay-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/transition-delay-001.htm
new file mode 100644
index 00000000000..97f97f76c0f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/transition-delay-001.htm
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Transitions Test: Parsing transition-delay</title>
+ <meta content="Test checks that transition-delay values are parsed properly" name="assert">
+ <link href="http://www.w3.org/TR/css3-transitions/#transition-delay-property" rel="help" title="2.4. The 'transition-delay' Property">
+ <link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the ‘<time>’ type and ‘s’, ‘ms’ units">
+ <link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
+ <meta content="dom" name="flags">
+
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+
+ <script src="./support/vendorPrefix.js" type="text/javascript"></script>
+ <script src="./support/helper.js" type="text/javascript"></script>
+
+ <script id="metadata_cache">/*
+ {
+ "parse '10.2s'": {},
+ "parse '1s'": {},
+ "parse '0.1s'": {},
+ "parse '0.01s'": {},
+ "parse '0.001s'": {},
+ "parse '0.009s'": {},
+ "parse '0s'": {},
+ "parse '.0s'": {},
+ "parse '0.0s'": {},
+ "parse '.3s'": {},
+ "parse '-5s'": {},
+ "parse '10200ms'": {},
+ "parse '1000ms'": {},
+ "parse '100ms'": {},
+ "parse '10ms'": {},
+ "parse '9ms'": {},
+ "parse '1ms'": {},
+ "parse '0ms'": {},
+ "parse '-500ms'": {},
+ "parse '1s, 0.1s, 10ms'": {},
+ "parse 'foobar'": { "flags": "invalid" }
+ }
+ */</script>
+ </head>
+ <body>
+ <!-- required by testharnessreport.js -->
+ <div id="log"></div>
+ <!-- elements used for testing -->
+ <div id="container">
+ <div id="transition"></div>
+ </div>
+
+ <script>
+ var transition = document.getElementById('transition');
+ // <time> [, <time>]*
+ var values = {
+ // seconds
+ '10.2s': '10.2s',
+ '1s': '1s',
+ '0.1s': '0.1s',
+ '0.01s': '0.01s',
+ '0.001s': '0.001s',
+ '0.009s': '0.009s',
+ '0s': '0s',
+ '0s': '0s',
+ '.0s': '0s',
+ '0.0s': '0s',
+ '.3s': '0.3s',
+ '-5s' : '-5s',
+ // milliseconds
+ '10200ms': '10.2s',
+ '1000ms': '1s',
+ '100ms': '0.1s',
+ '10ms': '0.01s',
+ '9ms': '0.009s',
+ '1ms': '0.001s',
+ '0ms': '0s',
+ '-500ms' : '-0.5s',
+ // combination
+ '1s, 0.1s, 10ms': '1s, 0.1s, 0.01s',
+ // invalid
+ 'foobar': '0s'
+ };
+
+ // these tests are supposed to fail and
+ // possibly make the engine issue a parser warning
+ var invalidTests = {
+ 'foobar': true
+ };
+
+ for (var key in values) {
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
+ test(function() {
+ setStyle('#transition', {
+ 'transition-delay': key
+ });
+ var result = computedStyle(transition, 'transition-delay');
+ assert_equals(result, values[key], "Expected computed value");
+ }, "parse '" + key + "'",
+ {
+ // mark tests that fail as such
+ flags: invalidTests[key] ? "invalid" : ""
+ });
+ }
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/transition-duration-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/transition-duration-001.htm
new file mode 100644
index 00000000000..0769fc2aad3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/transition-duration-001.htm
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Transitions Test: Parsing transition-duration</title>
+ <meta content="Test checks that transition-duration values are parsed properly" name="assert">
+ <link href="http://www.w3.org/TR/css3-transitions/#transition-duration-property" rel="help" title="2.2. The 'transition-duration' Property">
+ <link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the ‘<time>’ type and ‘s’, ‘ms’ units">
+ <link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
+ <meta content="dom" name="flags">
+
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+
+ <script src="./support/vendorPrefix.js" type="text/javascript"></script>
+ <script src="./support/helper.js" type="text/javascript"></script>
+
+ <script id="metadata_cache">/*
+ {
+ "parse '10.2s'": {},
+ "parse '1s'": {},
+ "parse '0.1s'": {},
+ "parse '0.01s'": {},
+ "parse '0.001s'": {},
+ "parse '0.009s'": {},
+ "parse '0s'": {},
+ "parse '.0s'": {},
+ "parse '0.0s'": {},
+ "parse '.3s'": {},
+ "parse '-5s'": { "flags": "invalid" },
+ "parse '10200ms'": {},
+ "parse '1000ms'": {},
+ "parse '100ms'": {},
+ "parse '10ms'": {},
+ "parse '9ms'": {},
+ "parse '1ms'": {},
+ "parse '0ms'": {},
+ "parse '-500ms'": { "flags": "invalid" },
+ "parse '1s, 0.1s, 10ms'": {},
+ "parse 'foobar'": { "flags": "invalid" }
+ }
+ */</script>
+ </head>
+ <body>
+ <!-- required by testharnessreport.js -->
+ <div id="log"></div>
+ <!-- elements used for testing -->
+ <div id="container">
+ <div id="transition"></div>
+ </div>
+
+ <script>
+ var transition = document.getElementById('transition');
+ // <time> [, <time>]*
+ var values = {
+ // seconds
+ '10.2s': '10.2s',
+ '1s': '1s',
+ '0.1s': '0.1s',
+ '0.01s': '0.01s',
+ '0.001s': '0.001s',
+ '0.009s': '0.009s',
+ '0s': '0s',
+ '.0s': '0s',
+ '0.0s': '0s',
+ '.3s': '0.3s',
+ '-5s' : '0s',
+ // milliseconds
+ '10200ms': '10.2s',
+ '1000ms': '1s',
+ '100ms': '0.1s',
+ '10ms': '0.01s',
+ '9ms': '0.009s',
+ '1ms': '0.001s',
+ '0ms': '0s',
+ '-500ms' : '0s',
+ // combination
+ '1s, 0.1s, 10ms': '1s, 0.1s, 0.01s',
+ // invalid
+ 'foobar': '0s'
+ };
+
+ // these tests are supposed to fail and
+ // possibly make the engine issue a parser warning
+ var invalidTests = {
+ '-5s': true,
+ '-500ms': true,
+ 'foobar': true
+ };
+
+ for (var key in values) {
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
+ test(function() {
+ setStyle('#transition', {
+ 'transition-duration': key
+ });
+ var result = computedStyle(transition, 'transition-duration');
+ assert_equals(result, values[key], "Expected computed value");
+ }, "parse '" + key + "'",
+ {
+ // mark tests that fail as such
+ flags: invalidTests[key] ? "invalid" : ""
+ });
+ }
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support-pct.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support-pct.htm
new file mode 100644
index 00000000000..9674ccee7d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support-pct.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are supported inside calc expressions.
+ </title>
+ <meta content="
+ Check that viewport units add correctly to percentages in calc() expressions
+ " name="assert">
+
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#calc" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #target { position: absolute; background: green; width: calc(100vw + 50%); height: calc(100vh + 50%); top: -50%; left: -50%; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support.htm
new file mode 100644
index 00000000000..8f81ff0be5e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-calc-support.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are supported inside calc expressions.
+ </title>
+ <meta content="
+ Check that viewport units add correctly to pixels in calc() expressions
+ " name="assert">
+
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-values/#calc" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #target { position: absolute; background: green; width: calc(100vw + 50px); height: calc(100vh + 50px); top: -50px; left: -50px; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-em-inherit.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-em-inherit.htm
new file mode 100644
index 00000000000..d8fba8f3818
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-em-inherit.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ 0vh and 0vw are correctly treated as 0px
+ </title>
+ <meta content="
+ 0vh and 0vw are correctly treated as 0px
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; font-size: 100vw; }
+ #target { background: green; width: 1rem; height: 1em; font-size: 100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-inherit.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-inherit.htm
new file mode 100644
index 00000000000..f3013e2045d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-inherit.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are inherited properly
+ </title>
+ <meta content="
+ Viewport units are inherited properly
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #outer { position: relative; background: green; width: 50vw; height: 100vh; }
+ #inner { position: absolute; background: green; left: 100%; width: inherit; height: inherit; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"><div id="inner"></div></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-pct.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-pct.htm
new file mode 100644
index 00000000000..ffa688992f5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-pct.htm
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 0%; height: 0%; }
+ to { width: 200vw; height: 200vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-px.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-px.htm
new file mode 100644
index 00000000000..c59a9f1a143
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-px.htm
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 0px; height: 0px; }
+ to { width: 200vw; height: 200vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-vh.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-vh.htm
new file mode 100644
index 00000000000..f1c00034826
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-interpolate-vh.htm
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 75vh and 125vh is 100vh (respectively for vw)
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 75vw; height: 75vh; }
+ to { width: 125vw; height: 125vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-support-atviewport.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-atviewport.htm
new file mode 100644
index 00000000000..6b02c566294
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-atviewport.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in @viewport rules
+ </title>
+ <meta content="
+ Viewports units are supported in @viewport rules
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="https://drafts.csswg.org/css-device-adapt-1/" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ @viewport { width: 1vw; }
+
+ html { background: red; }
+ #target { background: green; width: 100vw; height: 100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-support-margin.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-margin.htm
new file mode 100644
index 00000000000..01fd05f9e68
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-margin.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in margin properties
+ </title>
+ <meta content="
+ Viewports units are supported in margin properties
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: green; }
+ #target { background: red; width: 100%; height: 100%; margin-left: -100vw; margin-top: -100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-origin.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-origin.htm
new file mode 100644
index 00000000000..d8854e23cbf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-origin.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in transform properties
+ </title>
+ <meta content="
+ Viewports units are supported in transform properties
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-2d-transforms/#css-values" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ html { background: green; }
+ iframe { width: 400px; height: 400px; margin: 0px; padding: 0px; border: 0px none transparent; }
+
+ </style>
+
+</head>
+<body>
+
+ <iframe src="iframe/vh-support-transform-origin.html"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-translate.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-translate.htm
new file mode 100644
index 00000000000..dc6389363af
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-support-transform-translate.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in transform properties
+ </title>
+ <meta content="
+ Viewports units are supported in transform properties (translate)
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="http://www.w3.org/TR/css3-2d-transforms/#css-values" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ html { background: green; }
+ iframe { width: 400px; height: 400px; margin: 0px; padding: 0px; border: 0px none transparent; }
+
+ </style>
+
+</head>
+<body>
+
+ <iframe src="iframe/vh-support-transform-translate.html"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-support.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-support.htm
new file mode 100644
index 00000000000..e22a73775c6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-support.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in sizing properties
+ </title>
+ <meta content="
+ Viewports units are supported in sizing properties
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ #target { background: green; width: 100vw; height: 100vh; }
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh-zero-support.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh-zero-support.htm
new file mode 100644
index 00000000000..6fe99d92e8e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh-zero-support.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ 0vh and 0vw are correctly treated as 0px
+ </title>
+ <meta content="
+ 0vh and 0vw are correctly treated as 0px
+ " name="assert">
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY">
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <link href="reference/all-green.htm" rel="match">
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: green; }
+ #target { background: red; width: 0vw; height: 0vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm
new file mode 100644
index 00000000000..74062a7e744
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- Submitted from TestTWF Paris --><html><head>
+ <title>CSS Values and Units Test: vh-based dimension doesn't change when the element's other dimension doesn't change.</title>
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <link href="reference/vh_not_refreshing_on_chrome-ref.htm" rel="match">
+ <meta content="vh-based dimension doesn't change when the element's other dimension doesn't change." name="assert">
+ <!-- This test exhibits a bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8 -->
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ #frameTest { width: 600px; height: 200px; border: 1px solid #000; }
+
+ </style>
+
+ <script type="text/javascript">
+ var height = 200;
+
+ function resizeReference() {
+
+ var frameTest = document.getElementById('frameTest');
+
+ // let's resize the iframe vertically only, showing that the vh sizes is not updated.
+ if (height <= 300) {
+
+ //frameTest.style.width = height++ + "px";
+ frameTest.style.height = height++ + "px";
+
+ setTimeout(resizeReference, 10);
+
+ } else {
+
+ // uncomment the next line to see how a width resize triggers a layout recalculation
+ //frameTest.style.width = (parseInt(window.getComputedStyle(document.getElementById('frameTest'))['width'], 10) + 1) + "px";
+
+ }
+
+ }
+
+ setTimeout(resizeReference, 10);
+ </script>
+
+</head>
+<body>
+
+<iframe src="vh_not_refreshing_on_chrome_iframe.html" id="frameTest" frameborder="0"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm b/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm
new file mode 100644
index 00000000000..5582282af2f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Values and Units Test: vh-based dimension doesn't change when the element other dimension doesn't change.</title>
+ <meta content="vh-based dimension doesn't change when the element other dimension doesn't change. Bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8" name="assert">
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" title="5.1.2. Viewport-percentage lengths: the 'vw', 'vh', 'vmin', 'vmax' units">
+ <link href="reference/vh_not_refreshing_on_chrome-ref.htm" rel="match">
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ /* the first test box has its vertical dimension is set to some vh units */
+ #testBoxWithVhOnly { background: #F00; width: 60px; height: 20vh; float: left; }
+
+ /* the second test box, with fixed height */
+ #testBoxNotGrownHorizontallyByJS { background: #F0F; width: 20vh; height: 60px; float: left; }
+
+ /* third box, changed by using CSS transition */
+ #testBoxWithTransition { background: #FF0; width: 20vh; height: 40px; float: left;
+ transition-property: width, height;
+ transition-duration: 1.5s;
+ transition-delay: 0;
+ }
+
+ /* the reference box, growing in both directions (height by js, width by vh unit */
+ #referenceBoxGrownHorizontallyByJS { background: #0F0; width: 20vh; height: 40px; float: left; }
+
+ p { clear: both; margin: 10px 0; }
+
+ </style>
+
+</head>
+<body>
+
+<p>
+ All boxes should end up the same size. The green box is the reference one.
+</p>
+
+<div id="testBoxWithVhOnly"></div>
+<div id="testBoxNotGrownHorizontallyByJS"></div>
+<div id="testBoxWithTransition"></div>
+<div id="referenceBoxGrownHorizontallyByJS"></div>
+
+<script type="text/javascript">
+
+ // In case this file was opened by mistake, redirects to proper test
+ if (window.top.location.href === document.location.href) {
+
+ window.top.location.href = "vh_not_refreshing_on_chrome.html";
+
+ }
+
+ function setDimension(id, dimension, value) {
+
+ var element = document.getElementById(id);
+
+ element.style[dimension] = value + "px";
+
+ }
+
+ function animate() {
+
+ var viewportHeight = document.documentElement.clientHeight;
+
+ var sizeH = 20;
+
+ var referenceDimension = Math.round(sizeH * viewportHeight / 100);
+
+ setDimension('referenceBoxGrownHorizontallyByJS', 'height', referenceDimension);
+
+ setTimeout(animate, 20);
+ }
+
+ setTimeout(animate, 20);
+
+ var transitionedTestBoxStyle = document.getElementById('testBoxWithTransition').style;
+ transitionedTestBoxStyle.height = "60px";
+</script>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm b/tests/wpt/css-tests/css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm
new file mode 100644
index 00000000000..f4d5a38c7be
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html><!-- Submitted from TestTWF Paris --><head>
+ <title>CSS Values and Units Test: Viewport units in scaled viewport</title>
+ <meta content="viewport relative units scale with viewport." name="assert">
+ <link href="mailto:eae@chromium.org" rel="author" title="Emil A Eklund">
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style>
+ iframe { border: 0; }
+ </style>
+ </head>
+ <body>
+ <div id="log"></div>
+ <iframe src="javascript:void(0)" id="testFrame"></iframe>
+ <script>
+ test(function() {
+ var frameElement = document.getElementById('testFrame');
+ var frameDocument = frameElement.contentDocument;
+
+ var testElement = frameDocument.createElement('div');
+ testElement.style.width = '50vw';
+ testElement.style.height = '50vh';
+ testElement.style.position = 'absolute';
+ testElement.style.left = '0';
+ testElement.style.top = '0';
+ testElement.style.backgroundColor = 'black';
+ frameDocument.body.appendChild(testElement);
+
+ var frameWidth = frameElement.getBoundingClientRect().width;
+ var frameHeight = frameElement.getBoundingClientRect().height;
+ for (var i = 1; i <= 200; i++) {
+ var scale = i / 100;
+ frameDocument.body.style.transform = 'scale(' + scale + ')';
+ var rect = testElement.getBoundingClientRect();
+ var actualWidth = rect.width;
+ var actualHeight = rect.height;
+ var expectedWidth = frameWidth * scale / 2;
+ var expectedHeight = frameHeight * scale / 2;
+
+ assert_approx_equals(actualWidth, expectedWidth, 0.1, '50vw at ' + scale + ' scale');
+ assert_approx_equals(actualHeight, expectedHeight, 0.1, '50vh at ' + scale + ' scale');
+ }
+ }, 'viewport relative units in scaled viewport');
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/html/viewport-units-css2-001.htm b/tests/wpt/css-tests/css-values-3_dev/html/viewport-units-css2-001.htm
new file mode 100644
index 00000000000..77d862b0685
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/html/viewport-units-css2-001.htm
@@ -0,0 +1,255 @@
+<!DOCTYPE html>
+<html><head>
+
+ <title>
+ CSS Values and Units Test:
+ Checks viewport units against CSS 2.1 properties and the CSSOM
+ </title>
+ <meta content="Testing what happens when one applies and rereads viewport unit lengths to CSS 2.1 properties that accept length values" name="assert">
+
+ <link href="mailto:schaepp@gmx.de" rel="author" title="Christian Schaefer">
+
+ <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
+ <!-- Be sure to make the main testing area first in the order -->
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help">
+
+ <!-- testharness inclusion for later submission -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+
+ <!-- testharness fallback for local testing -->
+ <script>
+ window.test || document.write('\
+ <script src="http://www.w3c-test.org/resources/testharness.js"><\/script>\
+ <script src="http://www.w3c-test.org/resources/testharnessreport.js"><\/script>\
+ ');
+ </script>
+
+ <style>
+
+ #div {
+ position: relative;
+ width: 50vw;
+ height: 10vw;
+ background: green;
+ border: 0 green solid;
+ font-size: 4vw;
+ }
+
+ #table td {
+ border: 1px solid green;
+ }
+
+ </style>
+
+</head>
+<body>
+ <div id="log"></div>
+
+ <p>
+ Checks viewport units. Also re-check with zoom in/out.
+ </p>
+
+ <div id="div">
+ Test the Web Forward!
+ </div>
+
+ <table id="table">
+ <tbody>
+ <tr>
+ <td id="td">Test</td>
+ <td>T</td>
+ <td>W</td>
+ <td>F</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <script>
+
+ /* Boilerplate code */
+
+ var camelize = function (str) {
+ return str.replace(/\-(\w)/g, function(str, letter){
+ return letter.toUpperCase();
+ });
+ };
+
+ var retrieveComputedStyle = function(element,property){
+ var result =
+ document
+ .defaultView
+ .getComputedStyle(element,null)
+ .getPropertyValue(property);
+
+ // If there are multiple values, cut down to the first
+ result = result.split(' ')[0];
+
+ if(window.console) console.log('Retrieving ' + property + ' property. Result: ' + result);
+
+ return result;
+ }
+
+ var testit = function(element,vunit,property,expectedResult){
+
+ element.style[camelize(property)] = '0px';
+ element.style[camelize(property)] = lengthAmount + vunit;
+
+ if(window.console) console.log(element.nodeName.toLowerCase() + '.style.' + camelize(property) + ' = ' + lengthAmount + vunit);
+
+ var result = retrieveComputedStyle(element,property);
+
+ // Test against WebKit's getComputedStyle bug, where it does not return absolute values
+ // As required here: http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#computed-value
+ // If it returns a pixel value, but this value is 0px then it is considered a fail, too.
+ var px_result = result.search(/^[-\d\.]+px$/) !== -1 && result !== '0px' ? 'non-zero px-based value' : result;
+
+ // If browser returns pixel value, we compare against our expected pixel value
+ if(px_result === 'non-zero px-based value'){
+ test(function(){
+ assert_equals(Math.round(parseFloat(result.replace(/[^-\d\.]+/g,''))),expectedResult);
+ },vunit + ' length applied to ' + property);
+ }
+ // If not, we compare against the value we set initially
+ else {
+ test(function(){
+ assert_equals(result,lengthAmount + vunit);
+ },vunit + ' length applied to ' + property);
+ }
+
+ // Does the browser have a bug in getComputedStyle or not?
+ test(function(){
+ assert_equals(px_result,'non-zero px-based value');
+ },vunit + ' length applied to ' + property + ': getComputedStyle returns a non-zero px-based value');
+
+ element.style[camelize(property)] = '';
+ }
+
+ var lengthAmount = 10;
+ var layoutViewportWidth = document.documentElement.clientWidth;
+ var layoutViewportHeight = document.documentElement.clientHeight;
+
+ var viewportUnits = [
+ {
+ ident: 'vw',
+ expectedResult: Math.round(layoutViewportWidth * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vh',
+ expectedResult: Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vmin',
+ expectedResult: layoutViewportWidth < layoutViewportHeight ? Math.round(layoutViewportWidth * (lengthAmount / 100)) : Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vmax',
+ expectedResult: layoutViewportWidth > layoutViewportHeight ? Math.round(layoutViewportWidth * (lengthAmount / 100)) : Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ]
+
+ // List of length accepting properties and which element they map to
+ // http://www.w3.org/TR/CSS21/propidx.html
+ var lengthAcceptingProperties = [
+ {
+ name: 'width',
+ element: 'div'
+ }
+ ,{
+ name: 'height',
+ element: 'div'
+ }
+ ,{
+ name: 'min-width',
+ element: 'div'
+ }
+ ,{
+ name: 'min-height',
+ element: 'div'
+ }
+ ,{
+ name: 'max-width',
+ element: 'div'
+ }
+ ,{
+ name: 'max-height',
+ element: 'div'
+ }
+ ,{
+ name: 'margin-top',
+ element: 'div'
+ }
+ ,{
+ name: 'padding-top',
+ element: 'div'
+ }
+ ,{
+ name: 'border-top-width',
+ element: 'div'
+ }
+ ,{
+ name: 'font-size',
+ element: 'div'
+ }
+ ,{
+ name: 'line-height',
+ element: 'div'
+ }
+ ,{
+ name: 'border-spacing',
+ element: 'table'
+ }
+ ,{
+ name: 'top',
+ element: 'div'
+ }
+ ,{
+ name: 'right',
+ element: 'div'
+ }
+ ,{
+ name: 'bottom',
+ element: 'div'
+ }
+ ,{
+ name: 'left',
+ element: 'div'
+ }
+ ,{
+ name: 'letter-spacing',
+ element: 'div'
+ }
+ ,{
+ name: 'text-indent',
+ element: 'div'
+ }
+ ,{
+ name: 'vertical-align',
+ element: 'td'
+ }
+ ,{
+ name: 'word-spacing',
+ element: 'div'
+ }
+ ];
+
+ var div = document.getElementById('div');
+ var table = document.getElementById('table');
+ var td = document.getElementById('td');
+
+ for(unitEntry in viewportUnits){
+ for(propertyEntry in lengthAcceptingProperties){
+
+ var vunit = viewportUnits[unitEntry].ident;
+ var expectedResult = viewportUnits[unitEntry].expectedResult;
+ var property = lengthAcceptingProperties[propertyEntry].name;
+ var element = window[lengthAcceptingProperties[propertyEntry].element];
+
+ testit(element,vunit,property,expectedResult);
+ }
+ }
+
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css-values-3_dev/implementation-report-TEMPLATE.data
new file mode 100644
index 00000000000..c9d0da374db
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/implementation-report-TEMPLATE.data
@@ -0,0 +1,143 @@
+# UA version OS version
+# UA string (if applicable)
+# http://test.csswg.org/suites/css-values-3_dev/DATESTAMP/
+# See http://wiki.csswg.org/test/implementation-report for instructions
+testname revision result comment
+html/absolute_length_units.htm 1e0e4f150942320da5e8bab9f573add223fe72f7 ?
+xhtml1/absolute_length_units.xht 1e0e4f150942320da5e8bab9f573add223fe72f7 ?
+html/calc-background-image-gradient-1.htm 4908626b6c3bd6da5d47ec5ee366e0c06d8cae50 ?
+xhtml1/calc-background-image-gradient-1.xht 4908626b6c3bd6da5d47ec5ee366e0c06d8cae50 ?
+html/calc-background-linear-gradient-1.htm 89f5dc390231b59bc044bde93bb4cc3133002df6 ?
+xhtml1/calc-background-linear-gradient-1.xht 89f5dc390231b59bc044bde93bb4cc3133002df6 ?
+html/calc-background-position-1.htm d5a0d6858f4cc7d245898f066606204e559e4b50 ?
+xhtml1/calc-background-position-1.xht d5a0d6858f4cc7d245898f066606204e559e4b50 ?
+html/calc-background-size-1.htm 72065683ace08d6b2a82f035a634c801d1321761 ?
+xhtml1/calc-background-size-1.xht 72065683ace08d6b2a82f035a634c801d1321761 ?
+html/calc-border-radius-1.htm 9d9eeb4f1aeff36e108f038dffcd9cbe19044b9f ?
+xhtml1/calc-border-radius-1.xht 9d9eeb4f1aeff36e108f038dffcd9cbe19044b9f ?
+html/calc-height-block-1.htm 952526a2250e62df4cd71c656df40c8e1583d802 ?
+xhtml1/calc-height-block-1.xht 952526a2250e62df4cd71c656df40c8e1583d802 ?
+html/calc-height-table-1.htm aaa87fc375b1f80271853d2c80fa30e6e7953c05 ?
+xhtml1/calc-height-table-1.xht aaa87fc375b1f80271853d2c80fa30e6e7953c05 ?
+html/calc-margin-block-1.htm 1d7889b64fd00e87e2b2961c5e42e6af8577ae5a ?
+xhtml1/calc-margin-block-1.xht 1d7889b64fd00e87e2b2961c5e42e6af8577ae5a ?
+html/calc-max-height-block-1.htm f59e64c55e4610b5e23a0cf99f646f657d0ae58f ?
+xhtml1/calc-max-height-block-1.xht f59e64c55e4610b5e23a0cf99f646f657d0ae58f ?
+html/calc-max-width-block-1.htm 0c2e3de995e9b8644479cb9b6154c268268df2bf ?
+xhtml1/calc-max-width-block-1.xht 0c2e3de995e9b8644479cb9b6154c268268df2bf ?
+html/calc-max-width-block-intrinsic-1.htm 1ac22229d3c2872e7079e6c9dadf5da282e427d7 ?
+xhtml1/calc-max-width-block-intrinsic-1.xht 1ac22229d3c2872e7079e6c9dadf5da282e427d7 ?
+html/calc-min-height-block-1.htm 0cddf80f07465e7d498399857bfea48d665aaaf9 ?
+xhtml1/calc-min-height-block-1.xht 0cddf80f07465e7d498399857bfea48d665aaaf9 ?
+html/calc-min-width-block-1.htm a08959fa9123b0ce0f6a0062fff8fc48b9d64f3d ?
+xhtml1/calc-min-width-block-1.xht a08959fa9123b0ce0f6a0062fff8fc48b9d64f3d ?
+html/calc-min-width-block-intrinsic-1.htm 087f81b5bb656bd7a99e965460e61b51b6c66cfa ?
+xhtml1/calc-min-width-block-intrinsic-1.xht 087f81b5bb656bd7a99e965460e61b51b6c66cfa ?
+html/calc-offsets-absolute-bottom-1.htm c8f2101c65c8efcb87041d69c39598e77db38bd7 ?
+xhtml1/calc-offsets-absolute-bottom-1.xht c8f2101c65c8efcb87041d69c39598e77db38bd7 ?
+html/calc-offsets-absolute-left-1.htm 76226a8db09005107647baa10a26243e78a6db40 ?
+xhtml1/calc-offsets-absolute-left-1.xht 76226a8db09005107647baa10a26243e78a6db40 ?
+html/calc-offsets-absolute-right-1.htm 1837995bd1aba09200a1a25620041e3a7333b737 ?
+xhtml1/calc-offsets-absolute-right-1.xht 1837995bd1aba09200a1a25620041e3a7333b737 ?
+html/calc-offsets-absolute-top-1.htm 11e4d218e2e4de8cb88a6890bb4151bec7fc9836 ?
+xhtml1/calc-offsets-absolute-top-1.xht 11e4d218e2e4de8cb88a6890bb4151bec7fc9836 ?
+html/calc-offsets-relative-bottom-1.htm d36f93e3013eb49e98cb89805d1ec16daee6d298 ?
+xhtml1/calc-offsets-relative-bottom-1.xht d36f93e3013eb49e98cb89805d1ec16daee6d298 ?
+html/calc-offsets-relative-left-1.htm 0b6c6289836923bc87523367eda6d58c79048a8c ?
+xhtml1/calc-offsets-relative-left-1.xht 0b6c6289836923bc87523367eda6d58c79048a8c ?
+html/calc-offsets-relative-right-1.htm e7e22c4c64b97f993430cfae81fa9a40b007df5b ?
+xhtml1/calc-offsets-relative-right-1.xht e7e22c4c64b97f993430cfae81fa9a40b007df5b ?
+html/calc-offsets-relative-top-1.htm 138f42115aa281eabba1eb4ea3b327d917c05e83 ?
+xhtml1/calc-offsets-relative-top-1.xht 138f42115aa281eabba1eb4ea3b327d917c05e83 ?
+html/calc-padding-block-1.htm 0a6fcb06af632bc921b8fdcf6e84dc9632747d0d ?
+xhtml1/calc-padding-block-1.xht 0a6fcb06af632bc921b8fdcf6e84dc9632747d0d ?
+html/calc-text-indent-1.htm 4791e504f1036b2c117a842014409132ffc0f8e0 ?
+xhtml1/calc-text-indent-1.xht 4791e504f1036b2c117a842014409132ffc0f8e0 ?
+html/calc-text-indent-intrinsic-1.htm 212d0b36c668eb0ce4b8fbffb7ddc91faac7ef10 ?
+xhtml1/calc-text-indent-intrinsic-1.xht 212d0b36c668eb0ce4b8fbffb7ddc91faac7ef10 ?
+html/calc-transform-origin-1.htm 37759c591badf6155fa5f3721d6feeabe9e4b606 ?
+xhtml1/calc-transform-origin-1.xht 37759c591badf6155fa5f3721d6feeabe9e4b606 ?
+html/calc-unit-analysis.htm 6a5b9ea86f959202db5065d15b347b024a552480 ?
+xhtml1/calc-unit-analysis.xht 6a5b9ea86f959202db5065d15b347b024a552480 ?
+html/calc-vertical-align-1.htm 7b2b5dac7448097556b6233f426eea822c27c4fd ?
+xhtml1/calc-vertical-align-1.xht 7b2b5dac7448097556b6233f426eea822c27c4fd ?
+html/calc-width-block-1.htm a204cfddfb32046b292b2c79abd546adb526570f ?
+xhtml1/calc-width-block-1.xht a204cfddfb32046b292b2c79abd546adb526570f ?
+html/calc-width-block-intrinsic-1.htm f85e6251038f10b07736dc3d3ff547da3401b43d ?
+xhtml1/calc-width-block-intrinsic-1.xht f85e6251038f10b07736dc3d3ff547da3401b43d ?
+html/calc-width-table-auto-1.htm b75533977bfccbdb094aefcc277e95f28710f507 ?
+xhtml1/calc-width-table-auto-1.xht b75533977bfccbdb094aefcc277e95f28710f507 ?
+html/calc-width-table-fixed-1.htm b16a53e8a8072b68c6bd91790cc982cccbcf2bc6 ?
+xhtml1/calc-width-table-fixed-1.xht b16a53e8a8072b68c6bd91790cc982cccbcf2bc6 ?
+html/ch-unit-001.htm 4c390e4f1e8b24beaa0520c61466cd43e87a62c8 ?
+xhtml1/ch-unit-001.xht 4c390e4f1e8b24beaa0520c61466cd43e87a62c8 ?
+html/min-width-001.htm edff68d05ca48525e5456d924b43578c8dfdbf57 ?
+xhtml1/min-width-001.xht edff68d05ca48525e5456d924b43578c8dfdbf57 ?
+html/multicol-count-non-integer-001.htm 6ebfd7a8bb7081898fed146d154ff0c1119f05e1 ?
+xhtml1/multicol-count-non-integer-001.xht 6ebfd7a8bb7081898fed146d154ff0c1119f05e1 ?
+html/multicol-count-non-integer-002.htm ed064290bd392497aad5107e30a9e336532a4d31 ?
+xhtml1/multicol-count-non-integer-002.xht ed064290bd392497aad5107e30a9e336532a4d31 ?
+html/multicol-count-non-integer-003.htm d6173aac65acc056fcc61b00944e06e7f30f70e9 ?
+xhtml1/multicol-count-non-integer-003.xht d6173aac65acc056fcc61b00944e06e7f30f70e9 ?
+html/multicol-inherit-002.htm 2d1165aded078402115fc317a47ae6856bed77a6 ?
+xhtml1/multicol-inherit-002.xht 2d1165aded078402115fc317a47ae6856bed77a6 ?
+html/multicol-rule-color-inherit-001.htm ccebd3df8a5aa4b32dad211082f45f677c8a61c5 ?
+xhtml1/multicol-rule-color-inherit-001.xht ccebd3df8a5aa4b32dad211082f45f677c8a61c5 ?
+html/multicol-rule-color-inherit-002.htm 5df59c878149324b852064274b30ee0782181442 ?
+xhtml1/multicol-rule-color-inherit-002.xht 5df59c878149324b852064274b30ee0782181442 ?
+html/regions-resizing-003.htm e27649199c4544ad34ad206d2ea195c184cebeb2 ?
+xhtml1/regions-resizing-003.xht e27649199c4544ad34ad206d2ea195c184cebeb2 ?
+html/regions-resizing-007.htm 4eabcff5cdeb95b084b8f6fe2fa1bf4bbbc0f889 ?
+xhtml1/regions-resizing-007.xht 4eabcff5cdeb95b084b8f6fe2fa1bf4bbbc0f889 ?
+html/regions-resizing-009.htm 4a1d7ae83ef004c6c097fecd07b21c7c7c368f8e ?
+xhtml1/regions-resizing-009.xht 4a1d7ae83ef004c6c097fecd07b21c7c7c368f8e ?
+html/shape-outside-circle-002.htm 8a1c43c953fe3b82edd77025bbf55b77475c59f0 ?
+xhtml1/shape-outside-circle-002.xht 8a1c43c953fe3b82edd77025bbf55b77475c59f0 ?
+html/shape-outside-circle-004.htm 44092ed692b65149dd5593c1aecce3f4d3352600 ?
+xhtml1/shape-outside-circle-004.xht 44092ed692b65149dd5593c1aecce3f4d3352600 ?
+html/shape-outside-ellipse-002.htm e069870229afea5bc6dbf4b6768c847230aafc09 ?
+xhtml1/shape-outside-ellipse-002.xht e069870229afea5bc6dbf4b6768c847230aafc09 ?
+html/shape-outside-ellipse-004.htm cf7a179b06597950e51c08580c0bcc5d7476e1c1 ?
+xhtml1/shape-outside-ellipse-004.xht cf7a179b06597950e51c08580c0bcc5d7476e1c1 ?
+html/shape-outside-inset-003.htm a28821639a481807aba32477b3ad98a7bec40b41 ?
+xhtml1/shape-outside-inset-003.xht a28821639a481807aba32477b3ad98a7bec40b41 ?
+html/shape-outside-polygon-004.htm e4bb8c0597a4b08fe5d5e94f83f94e7adf0dfb90 ?
+xhtml1/shape-outside-polygon-004.xht e4bb8c0597a4b08fe5d5e94f83f94e7adf0dfb90 ?
+html/transition-delay-001.htm 936ec60d74c61f54ba71930eafbd8db9c5e84e82 ?
+xhtml1/transition-delay-001.xht 936ec60d74c61f54ba71930eafbd8db9c5e84e82 ?
+html/transition-duration-001.htm 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 ?
+xhtml1/transition-duration-001.xht 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 ?
+html/vh-calc-support-pct.htm 094f5381d9f411a374844075893597b78fb15b46 ?
+xhtml1/vh-calc-support-pct.xht 094f5381d9f411a374844075893597b78fb15b46 ?
+html/vh-calc-support.htm 92ae3e98da13a95fdcd08517692d0ee79a39810b ?
+xhtml1/vh-calc-support.xht 92ae3e98da13a95fdcd08517692d0ee79a39810b ?
+html/vh-em-inherit.htm bd54e3e097d1f4b5799a696bfffeebf5561c072f ?
+xhtml1/vh-em-inherit.xht bd54e3e097d1f4b5799a696bfffeebf5561c072f ?
+html/vh-inherit.htm e006cf0e4f727a753c115bb062ed9aa3854375b0 ?
+xhtml1/vh-inherit.xht e006cf0e4f727a753c115bb062ed9aa3854375b0 ?
+html/vh-interpolate-pct.htm e263245c653c76da4ebf1afd5463deb31d27e365 ?
+xhtml1/vh-interpolate-pct.xht e263245c653c76da4ebf1afd5463deb31d27e365 ?
+html/vh-interpolate-px.htm fa83d5d77411f3c93cf7e465552f47494bfe9d7a ?
+xhtml1/vh-interpolate-px.xht fa83d5d77411f3c93cf7e465552f47494bfe9d7a ?
+html/vh-interpolate-vh.htm 0e224532385323bb9061d9b18c1def8c330ad6ae ?
+xhtml1/vh-interpolate-vh.xht 0e224532385323bb9061d9b18c1def8c330ad6ae ?
+html/vh-support-atviewport.htm 7cc8bb8f1cde2aecece15e72882e45b67bfc4bdd ?
+xhtml1/vh-support-atviewport.xht 7cc8bb8f1cde2aecece15e72882e45b67bfc4bdd ?
+html/vh-support-margin.htm f951f1c99e3a6be4134265b4da05aabbd71eb103 ?
+xhtml1/vh-support-margin.xht f951f1c99e3a6be4134265b4da05aabbd71eb103 ?
+html/vh-support-transform-origin.htm 8dee0773fb5519b06d225ea643bb562db431f97c ?
+xhtml1/vh-support-transform-origin.xht 8dee0773fb5519b06d225ea643bb562db431f97c ?
+html/vh-support-transform-translate.htm 8ce0374dbb32ab1c6b2a3590856748be6b92fb91 ?
+xhtml1/vh-support-transform-translate.xht 8ce0374dbb32ab1c6b2a3590856748be6b92fb91 ?
+html/vh-support.htm 13609543ab6880c4f4fa00168fe8c6d48abf0270 ?
+xhtml1/vh-support.xht 13609543ab6880c4f4fa00168fe8c6d48abf0270 ?
+html/vh-zero-support.htm 8cb13e6d29fba8a619119a85d745dd3e87156c22 ?
+xhtml1/vh-zero-support.xht 8cb13e6d29fba8a619119a85d745dd3e87156c22 ?
+html/vh_not_refreshing_on_chrome.htm a27560454ad4d3e11996f4a3a9ed7d66f4b639b8 ?
+xhtml1/vh_not_refreshing_on_chrome.xht a27560454ad4d3e11996f4a3a9ed7d66f4b639b8 ?
+html/vh_not_refreshing_on_chrome_iframe.htm 8d080a2350a0e8e006e0141407e6a2c804027986 ?
+xhtml1/vh_not_refreshing_on_chrome_iframe.xht 8d080a2350a0e8e006e0141407e6a2c804027986 ?
+html/viewport-relative-lengths-scaled-viewport.htm 34183e6c538e9e431ef5cd0cb5d6834a911f3b8f ?
+xhtml1/viewport-relative-lengths-scaled-viewport.xht 34183e6c538e9e431ef5cd0cb5d6834a911f3b8f ?
+html/viewport-units-css2-001.htm 0765a1e0ba205be0f26ff35a8683c6e91f2c43a7 ?
+xhtml1/viewport-units-css2-001.xht 0765a1e0ba205be0f26ff35a8683c6e91f2c43a7 ?
diff --git a/tests/wpt/css-tests/css-values-3_dev/index.htm b/tests/wpt/css-tests/css-values-3_dev/index.htm
new file mode 100644
index 00000000000..e845ed34d9e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/index.htm
@@ -0,0 +1,147 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en">
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Values and Units Module Level 3 CR Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-values-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-values-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css3-values/">CSS Values 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Values 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Adobe</li>
+ <li>Bear Travis</li>
+ <li>Chris Rebert</li>
+ <li>Christian Schaefer</li>
+ <li>Emil A Eklund</li>
+ <li>Florian Rivoal</li>
+ <li>Fran&Atilde;&sect;ois REMY</li>
+ <li>Fran&ccedil;ois REMY</li>
+ <li>G&eacute;rard Talbot</li>
+ <li>L. David Baron</li>
+ <li>Marc Bourlon</li>
+ <li>Mihai Balan</li>
+ <li>Mozilla Corporation</li>
+ <li>Opera Software ASA</li>
+ <li>Rebecca Hauck</li>
+ <li>Rodney Rehm</li>
+ <li>Yu-Sian (Thomasy) Liu</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-values-3_dev/index.xht b/tests/wpt/css-tests/css-values-3_dev/index.xht
new file mode 100644
index 00000000000..e410c2c4d4b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/index.xht
@@ -0,0 +1,147 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSS Values and Units Module Level 3 CR Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/css-values-3_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/css-values-3_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/css3-values/">CSS Values 3 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSS Values 3. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Adobe</li>
+ <li>Bear Travis</li>
+ <li>Chris Rebert</li>
+ <li>Christian Schaefer</li>
+ <li>Emil A Eklund</li>
+ <li>Florian Rivoal</li>
+ <li>Fran&Atilde;&sect;ois REMY</li>
+ <li>Fran&ccedil;ois REMY</li>
+ <li>G&eacute;rard Talbot</li>
+ <li>L. David Baron</li>
+ <li>Marc Bourlon</li>
+ <li>Mihai Balan</li>
+ <li>Mozilla Corporation</li>
+ <li>Opera Software ASA</li>
+ <li>Rebecca Hauck</li>
+ <li>Rodney Rehm</li>
+ <li>Yu-Sian (Thomasy) Liu</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/css-values-3_dev/indices.css b/tests/wpt/css-tests/css-values-3_dev/indices.css
new file mode 100644
index 00000000000..7bc70eeef94
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/indices.css
@@ -0,0 +1,96 @@
+/* CSS for CSS Conformance Test Indices */
+/* Written by fantasai */
+
+/* Test Tables */
+
+ table {
+ border-collapse: collapse;
+ }
+
+ thead {
+ border-bottom: 0.2em solid;
+ }
+
+ tbody {
+ border: thin solid;
+ border-style: solid none;
+ }
+
+ tbody.ch {
+ border-top: 0.2em solid;
+ }
+ tbody.ch th {
+ font-weight: bold;
+ }
+
+ tbody th {
+ border-bottom: silver dotted thin;
+ background: #EEE;
+ color: black;
+ font-weight: normal;
+ font-style: italic;
+ }
+ tbody th :link {
+ color: gray;
+ background: transparent;
+ }
+ tbody th :visited {
+ color: #333;
+ background: transparent;
+ }
+
+ th, td {
+ padding: 0.2em;
+ text-align: left;
+ vertical-align: baseline;
+ }
+
+ td {
+ font-size: 0.9em;
+ }
+
+ /* flags */
+ td abbr {
+ border: solid thin gray;
+ padding: 0 0.1em;
+ cursor: help;
+ }
+ td abbr:hover {
+ background: #ffa;
+ color: black;
+ }
+
+
+ tr:hover {
+ background: #F9F9F9;
+ color: navy;
+ }
+
+ th a,
+ td a {
+ text-decoration: none;
+ }
+ th a:hover,
+ td a:hover,
+ th a:focus,
+ td a:focus {
+ text-decoration: underline;
+ }
+
+ td a {
+ display: block;
+ padding-left: 2em;
+ text-indent: -1em;
+ }
+ .refs {
+ font-weight: bold;
+ font-size: larger;
+ }
+ .assert, .assert > li {
+ list-style-type: none;
+ font-style: italic;
+ color: gray;
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ }
diff --git a/tests/wpt/css-tests/css-values-3_dev/testinfo.data b/tests/wpt/css-tests/css-values-3_dev/testinfo.data
new file mode 100644
index 00000000000..2c3c552e689
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/testinfo.data
@@ -0,0 +1,70 @@
+id references title flags links revision credits assertion
+absolute_length_units elements should be the real world size given in mm, cm, inches... http://www.w3.org/TR/css3-values/#viewport-relative-lengths 1e0e4f150942320da5e8bab9f573add223fe72f7 `Marc Bourlon`<mailto:marc@bourlon.com> elements are not displayed with the real world size units they should be, when specified in millimeters, centimeters, inches, ...
+calc-background-image-gradient-1 reference/calc-background-image-gradient-1-ref Test for calc() on background-image gradients http://www.w3.org/TR/css3-values/#calc-notation 4908626b6c3bd6da5d47ec5ee366e0c06d8cae50 `L. David Baron`<http://dbaron.org/>
+calc-background-linear-gradient-1 reference/calc-background-linear-gradient-1-ref Support calc() on gradient stop positions http://www.w3.org/TR/css3-values/#calc-notation 89f5dc390231b59bc044bde93bb4cc3133002df6 `Yu-Sian (Thomasy) Liu`<https://bugzilla.mozilla.org/show_bug.cgi?id=594935>
+calc-background-position-1 reference/calc-background-position-1-ref Test for calc() on background-position http://www.w3.org/TR/css3-values/#calc-notation d5a0d6858f4cc7d245898f066606204e559e4b50 `L. David Baron`<https://bugzilla.mozilla.org/show_bug.cgi?id=594934>
+calc-background-size-1 reference/calc-background-size-1-ref Test for calc() on background-size http://www.w3.org/TR/css3-values/#calc-notation 72065683ace08d6b2a82f035a634c801d1321761 `L. David Baron`<https://bugzilla.mozilla.org/show_bug.cgi?id=594934>
+calc-border-radius-1 reference/calc-border-radius-1-ref test for border-radius: calc() http://www.w3.org/TR/css3-values/#calc-notation 9d9eeb4f1aeff36e108f038dffcd9cbe19044b9f `L. David Baron`<http://dbaron.org/>
+calc-height-block-1 reference/calc-height-block-1-ref Test for height:calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 952526a2250e62df4cd71c656df40c8e1583d802 `L. David Baron`<http://dbaron.org/>
+calc-height-table-1 reference/calc-height-table-1-ref Test that height:calc() with no percentages has an effect on inner table elements http://www.w3.org/TR/css3-values/#calc-notation aaa87fc375b1f80271853d2c80fa30e6e7953c05 `L. David Baron`<http://dbaron.org/>
+calc-margin-block-1 reference/calc-margin-block-1-ref Test of margin-*: calc() http://www.w3.org/TR/css3-values/#calc-notation 1d7889b64fd00e87e2b2961c5e42e6af8577ae5a `L. David Baron`<http://dbaron.org/>
+calc-max-height-block-1 reference/calc-max-height-block-1-ref Test for max-height:calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation f59e64c55e4610b5e23a0cf99f646f657d0ae58f `L. David Baron`<http://dbaron.org/>
+calc-max-width-block-1 reference/calc-width-block-1-ref max-width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 0c2e3de995e9b8644479cb9b6154c268268df2bf `L. David Baron`<http://dbaron.org/>
+calc-max-width-block-intrinsic-1 reference/calc-max-width-block-intrinsic-1-ref intrinsic width of max-width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 1ac22229d3c2872e7079e6c9dadf5da282e427d7 `L. David Baron`<http://dbaron.org/>
+calc-min-height-block-1 reference/calc-height-block-1-ref Test for min-height:calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 0cddf80f07465e7d498399857bfea48d665aaaf9 `L. David Baron`<http://dbaron.org/>
+calc-min-width-block-1 reference/calc-width-block-1-ref min-width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation a08959fa9123b0ce0f6a0062fff8fc48b9d64f3d `L. David Baron`<http://dbaron.org/>
+calc-min-width-block-intrinsic-1 reference/calc-min-width-block-intrinsic-1-ref intrinsic width of min-width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 087f81b5bb656bd7a99e965460e61b51b6c66cfa `L. David Baron`<http://dbaron.org/>
+calc-offsets-absolute-bottom-1 reference/calc-offsets-absolute-top-1-ref Test for bottom:calc() on absolutely positioned elements http://www.w3.org/TR/css3-values/#calc-notation c8f2101c65c8efcb87041d69c39598e77db38bd7 `L. David Baron`<http://dbaron.org/>
+calc-offsets-absolute-left-1 reference/calc-offsets-relative-left-1-ref Test for left:calc() on absolutely positioned elements http://www.w3.org/TR/css3-values/#calc-notation 76226a8db09005107647baa10a26243e78a6db40 `L. David Baron`<http://dbaron.org/>
+calc-offsets-absolute-right-1 reference/calc-offsets-relative-left-1-ref Test for right:calc() on absolutely positioned elements http://www.w3.org/TR/css3-values/#calc-notation 1837995bd1aba09200a1a25620041e3a7333b737 `L. David Baron`<http://dbaron.org/>
+calc-offsets-absolute-top-1 reference/calc-offsets-absolute-top-1-ref Test for top:calc() on absolutely positioned elements http://www.w3.org/TR/css3-values/#calc-notation 11e4d218e2e4de8cb88a6890bb4151bec7fc9836 `L. David Baron`<http://dbaron.org/>
+calc-offsets-relative-bottom-1 reference/calc-offsets-relative-top-1-ref Test for bottom:calc() on relatively positioned elements http://www.w3.org/TR/css3-values/#calc-notation d36f93e3013eb49e98cb89805d1ec16daee6d298 `L. David Baron`<http://dbaron.org/>
+calc-offsets-relative-left-1 reference/calc-offsets-relative-left-1-ref Test for left:calc() on relatively positioned elements http://www.w3.org/TR/css3-values/#calc-notation 0b6c6289836923bc87523367eda6d58c79048a8c `L. David Baron`<http://dbaron.org/>
+calc-offsets-relative-right-1 reference/calc-offsets-relative-left-1-ref Test for right:calc() on relatively positioned elements http://www.w3.org/TR/css3-values/#calc-notation e7e22c4c64b97f993430cfae81fa9a40b007df5b `L. David Baron`<http://dbaron.org/>
+calc-offsets-relative-top-1 reference/calc-offsets-relative-top-1-ref Test for top:calc() on relatively positioned elements http://www.w3.org/TR/css3-values/#calc-notation 138f42115aa281eabba1eb4ea3b327d917c05e83 `L. David Baron`<http://dbaron.org/>
+calc-padding-block-1 reference/calc-padding-block-1-ref Test of padding-*: calc() http://www.w3.org/TR/css3-values/#calc-notation 0a6fcb06af632bc921b8fdcf6e84dc9632747d0d `L. David Baron`<http://dbaron.org/>
+calc-text-indent-1 reference/calc-text-indent-1-ref text-indent: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 4791e504f1036b2c117a842014409132ffc0f8e0 `L. David Baron`<http://dbaron.org/>
+calc-text-indent-intrinsic-1 reference/calc-text-indent-intrinsic-1-ref intrinsic width of text-indent: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation 212d0b36c668eb0ce4b8fbffb7ddc91faac7ef10 `L. David Baron`<http://dbaron.org/>
+calc-transform-origin-1 reference/calc-transform-origin-1-ref Test for calc() on transform-origin http://www.w3.org/TR/css3-values/#calc-notation 37759c591badf6155fa5f3721d6feeabe9e4b606 `L. David Baron`<https://bugzilla.mozilla.org/show_bug.cgi?id=594934>
+calc-unit-analysis CSS Variables Allowed Syntax script http://www.w3.org/TR/css3-values/#lengths,http://www.w3.org/TR/css3-values/#calc-type-checking 6a5b9ea86f959202db5065d15b347b024a552480 `L. David Baron`<http://dbaron.org/>,`Mozilla Corporation`<http://mozilla.com/>
+calc-vertical-align-1 reference/calc-vertical-align-1-ref Test for vertical-align:calc() http://www.w3.org/TR/css3-values/#calc-notation 7b2b5dac7448097556b6233f426eea822c27c4fd `L. David Baron`<http://dbaron.org/>
+calc-width-block-1 reference/calc-width-block-1-ref width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation a204cfddfb32046b292b2c79abd546adb526570f `L. David Baron`<http://dbaron.org/>
+calc-width-block-intrinsic-1 reference/calc-width-block-intrinsic-1-ref intrinsic width of width: calc() on blocks http://www.w3.org/TR/css3-values/#calc-notation f85e6251038f10b07736dc3d3ff547da3401b43d `L. David Baron`<http://dbaron.org/>
+calc-width-table-auto-1 reference/calc-width-table-auto-1-ref width: calc() on table-layout: auto tables http://www.w3.org/TR/css3-values/#calc-notation b75533977bfccbdb094aefcc277e95f28710f507 `L. David Baron`<http://dbaron.org/>
+calc-width-table-fixed-1 reference/calc-width-table-fixed-1-ref width: calc() on table-layout: auto tables http://www.w3.org/TR/css3-values/#calc-notation b16a53e8a8072b68c6bd91790cc982cccbcf2bc6 `L. David Baron`<http://dbaron.org/>
+ch-unit-001 reference/ch-unit-001-ref support for the ch unit https://drafts.csswg.org/css-values-3/#font-relative-lengths 4c390e4f1e8b24beaa0520c61466cd43e87a62c8 `Florian Rivoal`<http://florian.rivoal.net/> The ch unit is equal to the used advance measure of the 0 (ZERO, U+0030) glyph found in the font used to render it.
+min-width-001 ref min-width length value approximation http://www.w3.org/TR/css3-mediaqueries/#width,http://www.w3.org/TR/mediaqueries-4/#width,http://www.w3.org/TR/css3-values/#length-value edff68d05ca48525e5456d924b43578c8dfdbf57 `Chris Rebert`<http://chrisrebert.com> min-width length values that are too large to be supported must be clamped, rounded to infinity, or approximated, but not overflowed to a small or negative value.
+multicol-count-non-integer-001 reference/multicol-columns-invalid-001-ref non-integer 'column-count' value ahem,invalid http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns,http://www.w3.org/TR/css3-values/#integers 6ebfd7a8bb7081898fed146d154ff0c1119f05e1 `G&eacute;rard Talbot`<http://www.gtalbot.org/BrowserBugsSection/css21testsuite/> This test checks that a specified real 'column-count' value is invalid and ignored.
+multicol-count-non-integer-002 reference/multicol-columns-invalid-001-ref non-integer 'column-count' value ahem,invalid http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns,http://www.w3.org/TR/css3-values/#integers ed064290bd392497aad5107e30a9e336532a4d31 `G&eacute;rard Talbot`<http://www.gtalbot.org/BrowserBugsSection/css21testsuite/> This test checks that a specified real 'column-count' value is invalid and ignored.
+multicol-count-non-integer-003 reference/multicol-columns-invalid-001-ref non-integer 'column-count' value ahem,invalid http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns,http://www.w3.org/TR/css3-values/#integers d6173aac65acc056fcc61b00944e06e7f30f70e9 `G&eacute;rard Talbot`<http://www.gtalbot.org/BrowserBugsSection/css21testsuite/> This test checks that a specified real 'column-count' value is invalid and ignored.
+multicol-inherit-002 reference/multicol-inherit-002-ref 'column-count' and inherit ahem http://www.w3.org/TR/css3-multicol/#cc,http://www.w3.org/TR/css3-values/#common-keywords 2d1165aded078402115fc317a47ae6856bed77a6 `Opera Software ASA`<http://www.opera.com/> This test checks that 'column-count' can be inherited by setting it with the CSS-wide keyword 'inherit'.
+multicol-rule-color-inherit-001 reference/multicol-rule-color-inherit-001-ref column-rule-color: inherit ahem http://www.w3.org/TR/css3-multicol/#crc,http://www.w3.org/TR/css3-values/#common-keywords ccebd3df8a5aa4b32dad211082f45f677c8a61c5 `Opera Software ASA`<http://www.opera.com/> This test checks that, by default, column-rule-color is the current color applying to the element unless reserved keyword 'inherit' is used in which case column-rule-color will be inherited from the parent's column-rule-color value.
+multicol-rule-color-inherit-002 reference/multicol-rule-color-inherit-001-ref column-rule-color: inherit (complex) ahem http://www.w3.org/TR/css3-multicol/#crc,http://www.w3.org/TR/css3-values/#common-keywords 5df59c878149324b852064274b30ee0782181442 `G&eacute;rard Talbot`<http://www.gtalbot.org/BrowserBugsSection/css21testsuite/> This test checks that, by default, column-rule-color is the current color applying to the element.
+regions-resizing-003 reference/regions-resizing-001-ref CSS Regions: resizing region that is sized using viewport units ahem,dom,http http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css3-values/#viewport-relative-lengths e27649199c4544ad34ad206d2ea195c184cebeb2 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that resizing the viewport of a page containing a region sized using viewport units correctly relayouts the region's contents.
+regions-resizing-007 reference/regions-resizing-001-ref CSS Regions: resizing region with percentage size inside a container that has size set in viewport units ahem,dom,http http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css3-values/#viewport-relative-lengths 4eabcff5cdeb95b084b8f6fe2fa1bf4bbbc0f889 `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that resizing the viewport of a page containing a region that has a percentage size relative to a parent sized using viewport units correctly relayouts the region's contents.
+regions-resizing-009 reference/regions-resizing-001-ref CSS Regions: resizing autosized region when content flowed in it is sized with viewport units ahem,dom,http http://www.w3.org/TR/css3-regions/#the-flow-into-property,http://www.w3.org/TR/css3-regions/#flow-from,http://www.w3.org/TR/css3-regions/#regions-visual-formatting-details,http://www.w3.org/TR/css3-values/#viewport-relative-lengths 4a1d7ae83ef004c6c097fecd07b21c7c7c368f8e `Mihai Balan`<mailto:mibalan@adobe.com> Test checks that resizing the viewport of a page containing an autosized region when the content flowed in it is sized with viewport units correctly relayouts the region's contents.
+shape-outside-circle-002 Shape Outside Circle Valid Positions dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-circle,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths 8a1c43c953fe3b82edd77025bbf55b77475c59f0 `Adobe`<http://html.adobe.com/>,`Bear Travis`<mailto:betravis@adobe.com>,`Rebecca Hauck`<mailto:rhauck@adobe.com> A circle's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].
+shape-outside-circle-004 Shape Outside Circle - Position Length Units dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-circle,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths 44092ed692b65149dd5593c1aecce3f4d3352600 `Adobe`<http://html.adobe.com/>,`Rebecca Hauck`<mailto:rhauck@adobe.com> A circle's position arguments may in any valid <length> unit allowed by a <position> value.
+shape-outside-ellipse-002 Shape Outside Ellipse Valid Positions dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths e069870229afea5bc6dbf4b6768c847230aafc09 `Adobe`<http://html.adobe.com/>,`Bear Travis`<mailto:betravis@adobe.com>,`Rebecca Hauck`<mailto:rhauck@adobe.com> An ellipse's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].
+shape-outside-ellipse-004 Shape Outside Ellipse - Position Length Units dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths cf7a179b06597950e51c08580c0bcc5d7476e1c1 `Adobe`<http://html.adobe.com/>,`Rebecca Hauck`<mailto:rhauck@adobe.com> An ellipse's position arguments may in any valid <length> unit allowed by a <position> value.
+shape-outside-inset-003 Shape Outside Inset Valid Round Length Units dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-inset,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths a28821639a481807aba32477b3ad98a7bec40b41 `Adobe`<http://html.adobe.com/>,`Rebecca Hauck`<mailto:rhauck@adobe.com> An inset's radial component's values can be in any length unit
+shape-outside-polygon-004 Shape Outside Polygon - Argument Length Units dom,script http://www.w3.org/TR/css-shapes-1/#funcdef-polygon,http://www.w3.org/TR/css-shapes-1/#shape-outside-property,http://www.w3.org/TR/css3-values/#lengths e4bb8c0597a4b08fe5d5e94f83f94e7adf0dfb90 `Adobe`<http://html.adobe.com/>,`Rebecca Hauck`<mailto:rhauck@adobe.com> A polygon's veritices may in percentage or any valid <length> units.
+transition-delay-001 Parsing transition-delay dom,script http://www.w3.org/TR/css3-transitions/#transition-delay-property,http://www.w3.org/TR/css3-values/#time 936ec60d74c61f54ba71930eafbd8db9c5e84e82 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-delay values are parsed properly
+transition-duration-001 Parsing transition-duration dom,script http://www.w3.org/TR/css3-transitions/#transition-duration-property,http://www.w3.org/TR/css3-values/#time 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-duration values are parsed properly
+vh-calc-support reference/all-green Viewport units are supported inside calc expressions. http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-values/#calc 92ae3e98da13a95fdcd08517692d0ee79a39810b `Fran&ccedil;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Check that viewport units add correctly to pixels in calc() expressions
+vh-calc-support-pct reference/all-green Viewport units are supported inside calc expressions. http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-values/#calc 094f5381d9f411a374844075893597b78fb15b46 `Fran&ccedil;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Check that viewport units add correctly to percentages in calc() expressions
+vh-em-inherit reference/all-green 0vh and 0vw are correctly treated as 0px http://www.w3.org/TR/css3-values/#viewport-relative-lengths bd54e3e097d1f4b5799a696bfffeebf5561c072f `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> 0vh and 0vw are correctly treated as 0px
+vh-inherit reference/all-green Viewport units are inherited properly http://www.w3.org/TR/css3-values/#viewport-relative-lengths e006cf0e4f727a753c115bb062ed9aa3854375b0 `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewport units are inherited properly
+vh-interpolate-pct reference/all-green Viewport units are interpolated correctly http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-animations/#animations e263245c653c76da4ebf1afd5463deb31d27e365 `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+vh-interpolate-px reference/all-green Viewport units are interpolated correctly http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-animations/#animations fa83d5d77411f3c93cf7e465552f47494bfe9d7a `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+vh-interpolate-vh reference/all-green Viewport units are interpolated correctly http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-animations/#animations 0e224532385323bb9061d9b18c1def8c330ad6ae `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> The interpolated size mid-way between 75vh and 125vh is 100vh (respectively for vw)
+vh-support reference/all-green Viewports units are supported in sizing properties http://www.w3.org/TR/css3-values/#viewport-relative-lengths 13609543ab6880c4f4fa00168fe8c6d48abf0270 `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewports units are supported in sizing properties
+vh-support-atviewport reference/all-green Viewports units are supported in @viewport rules http://www.w3.org/TR/css3-values/#viewport-relative-lengths,https://drafts.csswg.org/css-device-adapt-1/ 7cc8bb8f1cde2aecece15e72882e45b67bfc4bdd `Fran&ccedil;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewports units are supported in @viewport rules
+vh-support-margin reference/all-green Viewports units are supported in margin properties http://www.w3.org/TR/css3-values/#viewport-relative-lengths f951f1c99e3a6be4134265b4da05aabbd71eb103 `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewports units are supported in margin properties
+vh-support-transform-origin reference/all-green Viewports units are supported in transform properties http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-2d-transforms/#css-values 8dee0773fb5519b06d225ea643bb562db431f97c `Fran&ccedil;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewports units are supported in transform properties
+vh-support-transform-translate reference/all-green Viewports units are supported in transform properties http://www.w3.org/TR/css3-values/#viewport-relative-lengths,http://www.w3.org/TR/css3-2d-transforms/#css-values 8ce0374dbb32ab1c6b2a3590856748be6b92fb91 `Fran&ccedil;ois REMY`<mailto:fremycompany.developer@yahoo.fr> Viewports units are supported in transform properties (translate)
+vh-zero-support reference/all-green 0vh and 0vw are correctly treated as 0px http://www.w3.org/TR/css3-values/#viewport-relative-lengths 8cb13e6d29fba8a619119a85d745dd3e87156c22 `Fran&Atilde;&sect;ois REMY`<mailto:fremycompany.developer@yahoo.fr> 0vh and 0vw are correctly treated as 0px
+vh_not_refreshing_on_chrome reference/vh_not_refreshing_on_chrome-ref vh-based dimension doesn't change when the element's other dimension doesn't change. http://www.w3.org/TR/css3-values/#viewport-relative-lengths a27560454ad4d3e11996f4a3a9ed7d66f4b639b8 `Marc Bourlon`<mailto:marc@bourlon.com> vh-based dimension doesn't change when the element's other dimension doesn't change.
+vh_not_refreshing_on_chrome_iframe reference/vh_not_refreshing_on_chrome-ref vh-based dimension doesn't change when the element other dimension doesn't change. http://www.w3.org/TR/css3-values/#viewport-relative-lengths 8d080a2350a0e8e006e0141407e6a2c804027986 `Marc Bourlon`<mailto:marc@bourlon.com> vh-based dimension doesn't change when the element other dimension doesn't change. Bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8
+viewport-relative-lengths-scaled-viewport Viewport units in scaled viewport script http://www.w3.org/TR/css3-values/#viewport-relative-lengths 34183e6c538e9e431ef5cd0cb5d6834a911f3b8f `Emil A Eklund`<mailto:eae@chromium.org> viewport relative units scale with viewport.
+viewport-units-css2-001 Checks viewport units against CSS 2.1 properties and the CSSOM script http://www.w3.org/TR/css3-values/#viewport-relative-lengths 0765a1e0ba205be0f26ff35a8683c6e91f2c43a7 `Christian Schaefer`<mailto:schaepp@gmx.de> Testing what happens when one applies and rereads viewport unit lengths to CSS 2.1 properties that accept length values
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/absolute_length_units.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/absolute_length_units.xht
new file mode 100644
index 00000000000..57e9b1b2a8c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/absolute_length_units.xht
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Values and Units Test: elements should be the real world size given in mm, cm, inches...</title>
+ <meta content="elements are not displayed with the real world size units they should be, when specified in millimeters, centimeters, inches, ..." name="assert" />
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" title="5.1.2. Viewport-percentage lengths: the 'vw', 'vh', 'vmin', 'vmax' units" />
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ .s1mm { background: #F00; width: 1mm; height: 1mm; }
+ .s10mm { background: #66F; width: 10mm; height: 10mm; }
+ .s1cm { background: #E90; width: 1cm; height: 1cm; }
+ .s254cm { background: #D0D; width: 2.54cm; height: 2.54cm; }
+ .s1in { background: #00F; width: 1in; height: 1in; }
+
+ .inline { float: left; }
+
+ .newline { clear: left; }
+
+ p { clear: both; margin: 10px 0; }
+
+ </style>
+
+</head>
+<body>
+
+<p>
+ This should be 1mm (width) by 1mm (height) size
+</p>
+
+<div class="s1mm"></div>
+
+<p>
+ This is 10 1mm x 1mm divs, so it should be 10mm (width) by 1mm (height) size
+</p>
+
+<div class="s1mm newline inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+<div class="s1mm inline"></div>
+
+<p>
+ This should be 10mm (width) by 10mm (height) size.
+</p>
+
+<div class="s10mm newline "></div>
+
+<p>
+ This should be 1cm (width) by 1cm (height) size. So, same width as the line above.
+</p>
+
+<div class="s1cm newline "></div>
+
+<p>
+ This should be 2.54cm (width) by 2.54cm (height) size.
+</p>
+
+<div class="s254cm newline "></div>
+
+<p>
+ This should be 1in (width) by 1in (height) size. So, same size as above.
+</p>
+
+<div class="s1in"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht
new file mode 100644
index 00000000000..afd51669911
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for calc() on background-image gradients</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-background-image-gradient-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+}
+
+#one { background-image: radial-gradient(circle farthest-side at calc(50px + 50%) calc(100% - 30px), red, green); }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht
new file mode 100644
index 00000000000..419e5adc96d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Support calc() on gradient stop positions</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594935" rel="author" title="Yu-Sian (Thomasy) Liu" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-background-linear-gradient-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+div {
+ width:100px;
+ height:100px;
+ background:red;
+ margin:5px 0 0 5px;
+ float:left;
+}
+div#one {
+ background: linear-gradient(lime 0px, lime calc(100% - 10px), blue calc(100% - 10px), blue 100%);
+}
+div#two {
+ background: linear-gradient(blue calc(100% - 100px) ,green calc(10% + 20px) ,red 40px ,white calc(100% - 40px) , lime 80px);
+}
+div#three {
+ background: linear-gradient(blue calc(0px) ,purple calc(20%) ,red calc(10px + 10px + 20px) ,blue calc(30% + 30px) , lime calc(180% - 100px));
+}
+div#four {
+ background: linear-gradient(blue calc(0% + 0px) ,green calc(10% + 20px) ,red 40px ,blue calc(200% / 2 - 40px) , yellow 80px);
+}
+div#five {
+ background: linear-gradient(red calc(100% - 100px) ,green calc(10% + 20px));
+}
+
+</style>
+</head>
+<body>
+<div id="one">1</div>
+<div id="two">2</div>
+<div id="three">3</div>
+<div id="four">4</div>
+<div id="five">5</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-position-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-position-1.xht
new file mode 100644
index 00000000000..dffe2b28f75
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-position-1.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for calc() on background-position</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-background-position-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-position: calc(50px + 50%) calc(100% - 30px) }
+#two { background-position: calc(-12.5% + 3px) calc(-10px - 50%) }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-size-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-size-1.xht
new file mode 100644
index 00000000000..92d1fe7e476
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-background-size-1.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for calc() on background-size</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-background-size-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-size: calc(50px + 50%) calc(100% - 30px) }
+#two { background-size: calc(50px + 50%) calc(10px - 50%) }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-border-radius-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-border-radius-1.xht
new file mode 100644
index 00000000000..fb89bc2d89c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-border-radius-1.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: test for border-radius: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-border-radius-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ /* We use powers of two here to avoid floating-point issues.
+ See bug 590181. */
+
+ height: 256px;
+ width: 512px;
+ background: blue;
+ border-radius: calc((1/32 * 100%) + 5px)
+ calc((1/64 * 100%) - 2px)
+ calc(10px + (1/256 * 100%))
+ calc((1/16 * 100%) - 3px) /
+ calc((1/32 * 100%) - (1px + (1/128 * 100%)))
+ calc(1/16 * 100%)
+ calc(10px)
+ 3px;
+}
+
+</style>
+</head>
+<body>
+<p></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-block-1.xht
new file mode 100644
index 00000000000..c32aa04bdd8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-block-1.xht
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-height-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 1px; }
+body &gt; div &gt; div { background: blue }
+
+/* for auto-height tests */
+body &gt; div &gt; div &gt; div &gt; div { height: 10px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="height: calc(50px)"></div></div>
+<div><div style="height: calc(50%)"></div></div>
+<div><div style="height: calc(25px + 50%)"></div></div>
+<div><div style="height: calc(150% / 2 - 30px)"></div></div>
+<div><div style="height: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="height: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="height: calc(50px)"><div></div></div></div></div>
+<div><div><div style="height: calc(50%)"><div></div></div></div></div>
+<div><div><div style="height: calc(25px + 50%)"><div></div></div></div></div>
+<div><div><div style="height: calc(150% / 2 - 30px)"><div></div></div></div></div>
+<div><div><div style="height: calc(40px + 10% - 20% / 2)"><div></div></div></div></div>
+<div><div><div style="height: calc(40px - 10%)"><div></div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-table-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-table-1.xht
new file mode 100644
index 00000000000..bd8cd4126f0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-height-table-1.xht
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test that height:calc() with no percentages has an effect on inner table elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-height-table-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+tbody, tr, td {
+ height: calc(500px);
+ min-height: calc(700px);
+ max-height: calc(2px);
+}
+</style>
+</head>
+<body>
+<table border="">
+ <tbody>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ </tbody>
+</table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-margin-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-margin-block-1.xht
new file mode 100644
index 00000000000..8121e41e301
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-margin-block-1.xht
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test of margin-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-margin-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+div { border: medium solid green; width: 500px }
+p { background: yellow }
+
+</style>
+</head>
+<body>
+
+<div><p style="margin: calc(10px + 1%) 0 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 calc(10px + 1%) 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 calc(10px + 1%) 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 0 calc(10px + 1%)">paragraph with margin</p></div>
+<div><p style="margin: calc(30px - 1%)">paragraph with margin</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-height-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-height-block-1.xht
new file mode 100644
index 00000000000..a274c9664fa
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-height-block-1.xht
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for max-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-max-height-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 1px; }
+body &gt; div &gt; div { background: blue }
+
+/* to give the max-height something to restrict */
+span { display: block; height: 300px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="max-height: calc(50px)"><span></span></div></div>
+<div><div style="max-height: calc(50%)"><span></span></div></div>
+<div><div style="max-height: calc(25px + 50%)"><span></span></div></div>
+<div><div style="max-height: calc(150% / 2 - 30px)"><span></span></div></div>
+<div><div style="max-height: calc(40px + 10% - 20% / 2)"><span></span></div></div>
+<div><div style="max-height: calc(40px - 10%)"><span></span></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="max-height: calc(50px)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(50%)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(25px + 50%)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(150% / 2 - 30px)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(40px + 10% - 20% / 2)"><span></span></div></div></div>
+<div><div><div style="max-height: calc(40px - 10%)"><span></span></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-1.xht
new file mode 100644
index 00000000000..be3d0d4c020
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-1.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px; width: 1000px; }
+
+</style>
+</head>
+<body>
+
+<p style="max-width: calc(50% - 3px)">50% - 3px</p>
+<p style="max-width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="max-width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="max-width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="max-width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="max-width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="max-width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht
new file mode 100644
index 00000000000..aa78f36f3b1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: intrinsic width of max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-max-width-block-intrinsic-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { font-size: 10px }
+body &gt; div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body &gt; div &gt; div { width: 400px }
+body &gt; div &gt; div &gt; div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="max-width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="max-width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="max-width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="max-width: calc(50%)"><div></div></div></div>
+<div><div style="max-width: calc(50px)"><div></div></div></div>
+<div><div style="max-width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-height-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-height-block-1.xht
new file mode 100644
index 00000000000..889d5086c84
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-height-block-1.xht
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for min-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-height-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 1px; }
+body &gt; div &gt; div { background: blue }
+
+/* for auto-height tests */
+body &gt; div &gt; div &gt; div &gt; div { height: 10px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="min-height: calc(50px)"></div></div>
+<div><div style="min-height: calc(50%)"></div></div>
+<div><div style="min-height: calc(25px + 50%)"></div></div>
+<div><div style="min-height: calc(150% / 2 - 30px)"></div></div>
+<div><div style="min-height: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="min-height: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-height container -->
+<div><div><div style="min-height: calc(50px)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(50%)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(25px + 50%)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(150% / 2 - 30px)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(40px + 10% - 20% / 2)"><div></div></div></div></div>
+<div><div><div style="min-height: calc(40px - 10%)"><div></div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-1.xht
new file mode 100644
index 00000000000..5def56adab8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-1.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px; width: 0 }
+
+</style>
+</head>
+<body>
+
+<p style="min-width: calc(50% - 3px)">50% - 3px</p>
+<p style="min-width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="min-width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="min-width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="min-width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="min-width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="min-width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht
new file mode 100644
index 00000000000..d06982a5c06
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: intrinsic width of min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-min-width-block-intrinsic-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { font-size: 10px }
+body &gt; div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body &gt; div &gt; div { width: 1px }
+body &gt; div &gt; div &gt; div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="min-width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="min-width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="min-width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="min-width: calc(50%)"><div></div></div></div>
+<div><div style="min-width: calc(50px)"><div></div></div></div>
+<div><div style="min-width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht
new file mode 100644
index 00000000000..1db15817bee
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for bottom:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-absolute-top-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; margin-top: -90px; height: 100px; margin-bottom: 90px; width: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 10px; width: 3px }
+div.space { height: 100px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="bottom: calc(-50px)"></div></div>
+<div><div style="bottom: calc(-50%)"></div></div>
+<div><div style="bottom: calc(-25px - 50%)"></div></div>
+<div><div style="bottom: calc(-150% / 2 + 30px)"></div></div>
+<div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div>
+<div><div style="bottom: calc(-40px + 10%)"></div></div>
+
+<!-- tests with an auto-bottom container -->
+<div><div><div style="bottom: calc(-50px)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-50%)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-25px - 50%)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-150% / 2 + 30px)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div><div class="space"></div></div></div>
+<div><div><div style="bottom: calc(-40px + 10%)"></div><div class="space"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht
new file mode 100644
index 00000000000..c431be2c3d3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for left:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-left-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 100px; width: 200px }
+body &gt; div { height: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 3px; width: 100px }
+</style>
+</head>
+<body>
+
+<div><div style="left: calc(50px)"></div></div>
+<div><div style="left: calc(-25%)"></div></div>
+<div><div style="left: calc(25px + 25%)"></div></div>
+<div><div style="left: calc(-75% / 2 + 30px)"></div></div>
+<div><div style="left: calc(40px + 5% - 10% / 2)"></div></div>
+<div><div style="left: calc(5% - 40px)"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht
new file mode 100644
index 00000000000..8f38f636075
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for right:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-left-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0; width: 200px }
+body &gt; div { height: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 3px; width: 100px }
+</style>
+</head>
+<body>
+
+<div><div style="right: calc(-50px)"></div></div>
+<div><div style="right: calc(25%)"></div></div>
+<div><div style="right: calc(-25px - 25%)"></div></div>
+<div><div style="right: calc(75% / 2 - 30px)"></div></div>
+<div><div style="right: calc(-40px - 5% + 10% / 2)"></div></div>
+<div><div style="right: calc(-5% + 40px)"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht
new file mode 100644
index 00000000000..932d465adfd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for top:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-absolute-top-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 3px; position: relative }
+div[style] { background: blue; position: absolute; height: 10px; width: 3px }
+div.space { height: 100px }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: calc(50px)"></div></div>
+<div><div style="top: calc(50%)"></div></div>
+<div><div style="top: calc(25px + 50%)"></div></div>
+<div><div style="top: calc(150% / 2 - 30px)"></div></div>
+<div><div style="top: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="top: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="top: calc(50px)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(50%)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(25px + 50%)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(150% / 2 - 30px)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(40px + 10% - 20% / 2)"></div><div class="space"></div></div></div>
+<div><div><div style="top: calc(40px - 10%)"></div><div class="space"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht
new file mode 100644
index 00000000000..16dfba4c53d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for bottom:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-top-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="bottom: calc(-50px)"></div></div>
+<div><div style="bottom: calc(-50%)"></div></div>
+<div><div style="bottom: calc(-25px - 50%)"></div></div>
+<div><div style="bottom: calc(-150% / 2 + 30px)"></div></div>
+<div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div>
+<div><div style="bottom: calc(-40px + 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="bottom: calc(-50px)"></div></div></div>
+<div><div><div style="bottom: calc(-50%)"></div></div></div>
+<div><div><div style="bottom: calc(-25px - 50%)"></div></div></div>
+<div><div><div style="bottom: calc(-150% / 2 + 30px)"></div></div></div>
+<div><div><div style="bottom: calc(-40px - 10% + 20% / 2)"></div></div></div>
+<div><div><div style="bottom: calc(-40px + 10%)"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht
new file mode 100644
index 00000000000..d4715a498fb
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for left:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-left-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="left: calc(50px)"></div>
+<div style="left: calc(-50%)"></div>
+<div style="left: calc(25px + 50%)"></div>
+<div style="left: calc(-150% / 2 + 30px)"></div>
+<div style="left: calc(40px + 10% - 20% / 2)"></div>
+<div style="left: calc(10% - 40px)"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht
new file mode 100644
index 00000000000..187b0d624fd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for right:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-left-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="right: calc(-50px)"></div>
+<div style="right: calc(50%)"></div>
+<div style="right: calc(-25px - 50%)"></div>
+<div style="right: calc(150% / 2 - 30px)"></div>
+<div style="right: calc(-40px - 10% + 20% / 2)"></div>
+<div style="right: calc(-10% + 40px)"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht
new file mode 100644
index 00000000000..e5f6ef85fa5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for top:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-offsets-relative-top-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: calc(50px)"></div></div>
+<div><div style="top: calc(50%)"></div></div>
+<div><div style="top: calc(25px + 50%)"></div></div>
+<div><div style="top: calc(150% / 2 - 30px)"></div></div>
+<div><div style="top: calc(40px + 10% - 20% / 2)"></div></div>
+<div><div style="top: calc(40px - 10%)"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div><div style="top: calc(50px)"></div></div></div>
+<div><div><div style="top: calc(50%)"></div></div></div>
+<div><div><div style="top: calc(25px + 50%)"></div></div></div>
+<div><div><div style="top: calc(150% / 2 - 30px)"></div></div></div>
+<div><div><div style="top: calc(40px + 10% - 20% / 2)"></div></div></div>
+<div><div><div style="top: calc(40px - 10%)"></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-padding-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-padding-block-1.xht
new file mode 100644
index 00000000000..bef20f627ee
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-padding-block-1.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test of padding-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-padding-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+div { border: medium solid green }
+p { background: yellow; margin: 0 }
+
+</style>
+</head>
+<body>
+
+<div style="padding: calc(10px + 1%) 0 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 calc(10px + 1%) 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 calc(10px + 1%) 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 0 calc(10px + 1%)"><p>paragraph with padding</p></div>
+<div style="padding: calc(30px - 1%)"><p>paragraph with padding</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-1.xht
new file mode 100644
index 00000000000..4f7881db6d1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-1.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-text-indent-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="text-indent: calc(50% - 3px)">50% - 3px</p>
+<p style="text-indent: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="text-indent: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="text-indent: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="text-indent: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="text-indent: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="text-indent: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht
new file mode 100644
index 00000000000..800f6cbb23b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: intrinsic width of text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-text-indent-intrinsic-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { font-size: 10px }
+div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+span { display: inline-block; width: 10px }
+
+</style>
+</head>
+<body>
+
+<div style="text-indent: calc(50% - 3px)"><span></span></div>
+<div style="text-indent: calc(5em - 3px)"><span></span></div>
+<div style="text-indent: calc(5em - 0%)"><span></span></div>
+<div style="text-indent: calc(50%)"><span></span></div>
+<div style="text-indent: calc(50px)"><span></span></div>
+<div style="text-indent: calc(25% + 25%)"><span></span></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-transform-origin-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-transform-origin-1.xht
new file mode 100644
index 00000000000..933ac83d73a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-transform-origin-1.xht
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for calc() on transform-origin</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-transform-origin-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { margin: 100px }
+
+p {
+ height: 50px; width: 200px;
+ background: yellow;
+ transform: rotate(15deg);
+}
+
+#one { transform-origin: calc(50px + 50%) calc(100% - 30px); }
+#two { transform-origin: calc(-12.5% + 3px) calc(-10px - 50%); }
+
+</style>
+</head>
+<body>
+<p id="one">hello</p>
+<p id="two">hello</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht
new file mode 100644
index 00000000000..e64082cbe50
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Variables Allowed Syntax</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://mozilla.com/" rel="author" title="Mozilla Corporation" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-type-checking" rel="help" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+<style id="style"></style>
+<script id="metadata_cache">/*
+{
+ "unitless_zero_in_calc_is_a_numeric_type_not_length": { "assert": "invalid calc expression: unitless zero in calc() is a numeric type, not length" },
+ "0px_in_calc": { "assert": "invalid calc expression: 0px in calc()" },
+ "addition_of_length_and_number": { "assert": "invalid calc expression: addition of length and number" },
+ "addition_of_number_and_length": { "assert": "invalid calc expression: addition of number and length" },
+ "subtraction_of_length_and_number": { "assert": "invalid calc expression: subtraction of length and number" },
+ "subtraction_of_number_and_length": { "assert": "invalid calc expression: subtraction of number and length" },
+ "multiplication_of_length_and_number": { "assert": "invalid calc expression: multiplication of length and number" },
+ "multiplication_of_number_and_length": { "assert": "invalid calc expression: multiplication of number and length" },
+ "multiplication_of_length_and_length": { "assert": "invalid calc expression: multiplication of length and length" }
+}
+*/</script>
+</head>
+<body onload="run()">
+<div id="log"></div>
+<div id="test"></div>
+<script>
+
+function run() {
+ var test_elt = document.getElementById("test");
+ var test_cs = window.getComputedStyle(test_elt, "");
+
+ function description_to_name(description) {
+ return description.replace(/\W+/g, "_").replace(/^_/, "").replace(/_$/, "");
+ }
+
+ function assert_invalid_value(property, value, description) {
+ test(function() {
+ test_elt.style.setProperty(property, "inherit");
+ test_elt.style.setProperty(property, value);
+ assert_equals(test_elt.style.getPropertyValue(property),
+ "inherit");
+ test_elt.style.setProperty(property, value);
+ test_elt.style.removeProperty(property);
+ },
+ description_to_name(description),
+ { assert: "invalid calc expression: " + description });
+ }
+
+ function assert_valid_value(property, value, computes_to, description) {
+ test(function() {
+ test_elt.style.setProperty(property, "inherit");
+ test_elt.style.setProperty(property, value);
+ assert_not_equals(test_elt.style.getPropertyValue(property),
+ "inherit");
+ assert_equals(test_cs.getPropertyValue(property),
+ computes_to);
+ test_elt.style.removeProperty(property);
+ },
+ description_to_name(description),
+ { assert: "valid calc expression: " + description });
+ }
+
+ assert_invalid_value("margin-left", "calc(0)",
+ "unitless zero in calc() is a numeric type, not length");
+ assert_valid_value("margin-left", "calc(0px)", "0px",
+ "0px in calc()");
+ assert_invalid_value("margin-left", "calc(1px + 2)",
+ "addition of length and number");
+ assert_invalid_value("margin-left", "calc(2 + 1px)",
+ "addition of number and length");
+ assert_invalid_value("margin-left", "calc(1px - 2)",
+ "subtraction of length and number");
+ assert_invalid_value("margin-left", "calc(2 - 1px)",
+ "subtraction of number and length");
+ assert_valid_value("margin-left", "calc(2px * 2)", "4px",
+ "multiplication of length and number");
+ assert_valid_value("margin-left", "calc(2 * 2px)", "4px",
+ "multiplication of number and length");
+ assert_invalid_value("margin-left", "calc(2px * 1px)",
+ "multiplication of length and length");
+
+}
+
+run();
+
+</script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-vertical-align-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-vertical-align-1.xht
new file mode 100644
index 00000000000..2a1a2925ef4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-vertical-align-1.xht
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: Test for vertical-align:calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-vertical-align-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+
+</head><body><div style="line-height: 100px; margin-top: 100px">
+ <span>x</span>
+ <span style="vertical-align: calc(50px)">x</span>
+ <span style="vertical-align: calc(50%)">x</span>
+ <span style="vertical-align: calc(25px + 50%)">x</span>
+ <span style="vertical-align: calc(150% / 2 - 30px)">x</span>
+ <span style="vertical-align: calc(40px + 10% - 20% / 2)">x</span>
+ <span style="vertical-align: calc(40px - 10%)">x</span>
+</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-1.xht
new file mode 100644
index 00000000000..0f5d4d217a6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-1.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-block-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="width: calc(50% - 3px)">50% - 3px</p>
+<p style="width: calc(25% - 3px + 25%)">25% - 3px + 25%</p>
+<p style="width: calc(25% - 3px + 12.5% * 2)">25% - 3px + 12.5% * 2</p>
+<p style="width: calc(25% - 3px + 12.5%*2)">25% - 3px + 12.5%*2</p>
+<p style="width: calc(25% - 3px + 2*12.5%)">25% - 3px + 2*12.5%</p>
+<p style="width: calc(25% - 3px + 2 * 12.5%)">25% - 3px + 2 * 12.5%</p>
+<p style="width: calc(30% + 20%)">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht
new file mode 100644
index 00000000000..1edcd7cad3c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: intrinsic width of width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-block-intrinsic-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { font-size: 10px }
+body &gt; div { float: left; clear: left;
+ margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+body &gt; div &gt; div &gt; div { width: 200px }
+
+</style>
+</head>
+<body>
+
+<div><div style="width: calc(50% - 3px)"><div></div></div></div>
+<div><div style="width: calc(5em - 3px)"><div></div></div></div>
+<div><div style="width: calc(5em - 0%)"><div></div></div></div>
+<div><div style="width: calc(50%)"><div></div></div></div>
+<div><div style="width: calc(50px)"><div></div></div></div>
+<div><div style="width: calc(25% + 25%)"><div></div></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht
new file mode 100644
index 00000000000..775779cf031
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-table-auto-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+</head><body><table border="">
+ <tbody><tr>
+ <td style="width: calc(500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(50%)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(2 * 10% + 0.5 * 500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht
new file mode 100644
index 00000000000..2de64e478ed
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <link href="http://www.w3.org/TR/css3-values/#calc-notation" rel="help" />
+ <link href="reference/calc-width-table-fixed-1-ref.xht" rel="match" />
+ <meta content="" name="flags" />
+<style type="text/css">
+table { table-layout: fixed; width: 500px; border-spacing: 0 }
+</style>
+</head>
+<body>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(50%)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td style="width: calc(2 * 10% + 0.5 * 500px)">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/ch-unit-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/ch-unit-001.xht
new file mode 100644
index 00000000000..b4044d2b39a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/ch-unit-001.xht
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8" />
+<title>CSS Values and Units Test: support for the ch unit</title>
+<link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal" />
+<link href="https://drafts.csswg.org/css-values-3/#font-relative-lengths" rel="help" />
+<meta content="" name="flags" />
+<link href="reference/ch-unit-001-ref.xht" rel="match" />
+<meta content="The ch unit is equal to the used advance measure of the 0 (ZERO, U+0030) glyph found in the font used to render it." name="assert" />
+<style>
+span {
+ background: green;
+ color: green;
+ top: 0; bottom: 0;
+ position: absolute;
+}
+div {
+ background: red;
+ color: red;
+ position: relative;
+ height: 10ch;
+ width: 5ch;
+ float: left;
+}
+
+div + div {
+ width: auto;
+}
+
+div + div span {
+ width: 5ch;
+}
+</style>
+</head><body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div><span>00000</span></div>
+ <div><span></span>00000</div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-1.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-1.xht
new file mode 100644
index 00000000000..f63a499be97
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-1.xht
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Introduction - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Introduction (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#intro">1 Introduction</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#placement">1.1 Module Interactions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-2.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-2.xht
new file mode 100644
index 00000000000..499700c0993
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-2.xht
@@ -0,0 +1,117 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Value Definition Syntax - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Value Definition Syntax (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#value-defs">2 Value Definition Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-types">2.1 Component value types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#comb-comma">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1.#example-1c610a4c">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-combinators">2.2 Component value combinators</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-all">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-any">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.2.#comb-one">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-multipliers">2.3 Component value multipliers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-comma">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-num">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-num-range">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-one-plus">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-opt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-req">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.3.#mult-zero-plus">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#combinator-multiplier-patterns">2.4 Combinator and Multiplier Patterns</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.5">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#component-whitespace">2.5 Component values and white space</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.6">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#value-examples">2.6 Property value examples</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6.#example-ceb46dd6">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.6.#propvalues">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-3.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-3.xht
new file mode 100644
index 00000000000..dd1785450ad
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-3.xht
@@ -0,0 +1,156 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Textual Data Types - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Textual Data Types (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#textual-values">3 Textual Data Types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#identifier">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#keywords">3.1 Pre-defined Keywords</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.#example-fefeae88">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#common-keywords">3.1.1 CSS-wide keywords: initial, inherit and unset</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="multicol-inherit-002-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-inherit-002.xht">multicol-inherit-002</a></td>
+ <td><a href="reference/multicol-inherit-002-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>'column-count' and inherit
+ <ul class="assert">
+ <li>This test checks that 'column-count' can be inherited by setting it with the CSS-wide keyword 'inherit'.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-rule-color-inherit-001-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-rule-color-inherit-001.xht">multicol-rule-color-inherit-001</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>column-rule-color: inherit
+ <ul class="assert">
+ <li>This test checks that, by default, column-rule-color is the current color applying to the element unless reserved keyword 'inherit' is used in which case column-rule-color will be inherited from the parent's column-rule-color value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-rule-color-inherit-002-3.1.1" class="ahem">
+ <td>
+ <a href="multicol-rule-color-inherit-002.xht">multicol-rule-color-inherit-002</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ <td>column-rule-color: inherit (complex)
+ <ul class="assert">
+ <li>This test checks that, by default, column-rule-color is the current color applying to the element.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s3.1.1.#css_wide-keywords">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#custom-idents">3.2 Author-defined Identifiers: the <custom-ident> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#example-4adf48cf">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#identifier-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#strings">3.3 Quoted Strings: the <string> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#example-a6100cec">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#example-aecae029">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#string">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.3.#string-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#urls">3.4 Resource Locators: the <url> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#example-f4b87e68">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#url">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.#url-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#relative-urls">3.4.1 Relative URLs</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.1.#example-b20bc0e0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#url-modifiers">3.4.2 URL Modifiers</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.4.2.#typedef-url-modifier">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-4.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-4.xht
new file mode 100644
index 00000000000..e89cfa4d64f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-4.xht
@@ -0,0 +1,117 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Numeric Data Types - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Numeric Data Types (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#numeric-types">4 Numeric Data Types</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#integers">4.1 Integers: the <integer> type</a></th></tr>
+ <!-- 3 tests -->
+ <tr id="multicol-count-non-integer-001-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-001.xht">multicol-count-non-integer-001</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-count-non-integer-002-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-002.xht">multicol-count-non-integer-002</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="multicol-count-non-integer-003-4.1" class="ahem invalid">
+ <td>
+ <a href="multicol-count-non-integer-003.xht">multicol-count-non-integer-003</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ <td>non-integer 'column-count' value
+ <ul class="assert">
+ <li>This test checks that a specified real 'column-count' value is invalid and ignored.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s4.1.#integer">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#integer-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#numbers">4.2 Real Numbers: the <number> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#number">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.2.#number-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#percentages">4.3 Percentages: the <percentage> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#percentage">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.3.#percentage-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#dimensions">4.4 Numbers with Units: dimensions</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.4.#dimension">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-5.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-5.xht
new file mode 100644
index 00000000000..5f676187ee0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-5.xht
@@ -0,0 +1,468 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Distance Units: the <length> type - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Distance Units: the <length> type (30 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#lengths">5 Distance Units: the <length> type</a></th></tr>
+ <!-- 7 tests -->
+ <tr id="calc-unit-analysis-5" class="primary script">
+ <td><strong>
+ <a href="calc-unit-analysis.xht">calc-unit-analysis</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSS Variables Allowed Syntax
+ </td>
+ </tr>
+ <tr id="shape-outside-circle-002-5" class="dom script">
+ <td>
+ <a href="shape-outside-circle-002.xht">shape-outside-circle-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Circle Valid Positions
+ <ul class="assert">
+ <li>A circle's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-circle-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-circle-004.xht">shape-outside-circle-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Circle - Position Length Units
+ <ul class="assert">
+ <li>A circle's position arguments may in any valid &lt;length&gt; unit allowed by a &lt;position&gt; value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-ellipse-002-5" class="dom script">
+ <td>
+ <a href="shape-outside-ellipse-002.xht">shape-outside-ellipse-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Ellipse Valid Positions
+ <ul class="assert">
+ <li>An ellipse's position argument may be any of the valid combinations: [ percentage|length left|center|right ] or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ] or [ left|center|right ] or [ left|center|right top|center|bottom ] or [ top|center|bottom ].</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-ellipse-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-ellipse-004.xht">shape-outside-ellipse-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Ellipse - Position Length Units
+ <ul class="assert">
+ <li>An ellipse's position arguments may in any valid &lt;length&gt; unit allowed by a &lt;position&gt; value.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-inset-003-5" class="dom script">
+ <td>
+ <a href="shape-outside-inset-003.xht">shape-outside-inset-003</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Inset Valid Round Length Units
+ <ul class="assert">
+ <li>An inset's radial component's values can be in any length unit</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="shape-outside-polygon-004-5" class="dom script">
+ <td>
+ <a href="shape-outside-polygon-004.xht">shape-outside-polygon-004</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Shape Outside Polygon - Argument Length Units
+ <ul class="assert">
+ <li>A polygon's veritices may in percentage or any valid &lt;length&gt; units.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#length-value">
+ <!-- 1 tests -->
+ <tr id="min-width-001-5.#length-value" class="">
+ <td>
+ <a href="min-width-001.xht">min-width-001</a></td>
+ <td><a href="ref.xht">=</a> </td>
+ <td></td>
+ <td>min-width length value approximation
+ <ul class="assert">
+ <li>min-width length values that are too large to be supported must be clamped, rounded to infinity, or approximated, but not overflowed to a small or negative value.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#relative-lengths">5.1 Relative lengths</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#relative-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#font-relative-lengths">5.1.1 Font-relative lengths: the em, ex, ch, rem units</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="ch-unit-001-5.1.1" class="primary">
+ <td><strong>
+ <a href="ch-unit-001.xht">ch-unit-001</a></strong></td>
+ <td><a href="reference/ch-unit-001-ref.xht">=</a> </td>
+ <td></td>
+ <td>support for the ch unit
+ <ul class="assert">
+ <li>The ch unit is equal to the used advance measure of the 0 (ZERO, U+0030) glyph found in the font used to render it.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1.1.#ch">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#em">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#ex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#example-14cae19d">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#font-relative-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.1.#rem">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths">5.1.2 Viewport-percentage lengths: the vw, vh, vmin, vmax units</a></th></tr>
+ <!-- 21 tests -->
+ <tr id="absolute_length_units-5.1.2" class="primary">
+ <td><strong>
+ <a href="absolute_length_units.xht">absolute_length_units</a></strong></td>
+ <td></td>
+ <td></td>
+ <td>elements should be the real world size given in mm, cm, inches...
+ <ul class="assert">
+ <li>elements are not displayed with the real world size units they should be, when specified in millimeters, centimeters, inches, ...</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-003-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-003.xht">regions-resizing-003</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing region that is sized using viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing a region sized using viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-007-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-007.xht">regions-resizing-007</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing region with percentage size inside a container that has size set in viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing a region that has a percentage size relative to a parent sized using viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="regions-resizing-009-5.1.2" class="ahem dom http">
+ <td>
+ <a href="regions-resizing-009.xht">regions-resizing-009</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ <td>CSS Regions: resizing autosized region when content flowed in it is sized with viewport units
+ <ul class="assert">
+ <li>Test checks that resizing the viewport of a page containing an autosized region when the content flowed in it is sized with viewport units correctly relayouts the region's contents.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-calc-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-calc-support.xht">vh-calc-support</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are supported inside calc expressions.
+ <ul class="assert">
+ <li>Check that viewport units add correctly to pixels in calc() expressions</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-calc-support-pct-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-calc-support-pct.xht">vh-calc-support-pct</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are supported inside calc expressions.
+ <ul class="assert">
+ <li>Check that viewport units add correctly to percentages in calc() expressions</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-em-inherit-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-em-inherit.xht">vh-em-inherit</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>0vh and 0vw are correctly treated as 0px
+ <ul class="assert">
+ <li>0vh and 0vw are correctly treated as 0px</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-inherit-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-inherit.xht">vh-inherit</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are inherited properly
+ <ul class="assert">
+ <li>Viewport units are inherited properly</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-pct-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-pct.xht">vh-interpolate-pct</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-px-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-px.xht">vh-interpolate-px</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-interpolate-vh-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-interpolate-vh.xht">vh-interpolate-vh</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewport units are interpolated correctly
+ <ul class="assert">
+ <li>The interpolated size mid-way between 75vh and 125vh is 100vh (respectively for vw)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support.xht">vh-support</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in sizing properties
+ <ul class="assert">
+ <li>Viewports units are supported in sizing properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-atviewport-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-atviewport.xht">vh-support-atviewport</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in @viewport rules
+ <ul class="assert">
+ <li>Viewports units are supported in @viewport rules</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-margin-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-margin.xht">vh-support-margin</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in margin properties
+ <ul class="assert">
+ <li>Viewports units are supported in margin properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-transform-origin-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-transform-origin.xht">vh-support-transform-origin</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in transform properties
+ <ul class="assert">
+ <li>Viewports units are supported in transform properties</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-support-transform-translate-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-support-transform-translate.xht">vh-support-transform-translate</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>Viewports units are supported in transform properties
+ <ul class="assert">
+ <li>Viewports units are supported in transform properties (translate)</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh-zero-support-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh-zero-support.xht">vh-zero-support</a></strong></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td></td>
+ <td>0vh and 0vw are correctly treated as 0px
+ <ul class="assert">
+ <li>0vh and 0vw are correctly treated as 0px</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh_not_refreshing_on_chrome-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh_not_refreshing_on_chrome.xht">vh_not_refreshing_on_chrome</a></strong></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.xht">=</a> </td>
+ <td></td>
+ <td>vh-based dimension doesn't change when the element's other dimension doesn't change.
+ <ul class="assert">
+ <li>vh-based dimension doesn't change when the element's other dimension doesn't change.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="vh_not_refreshing_on_chrome_iframe-5.1.2" class="primary">
+ <td><strong>
+ <a href="vh_not_refreshing_on_chrome_iframe.xht">vh_not_refreshing_on_chrome_iframe</a></strong></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.xht">=</a> </td>
+ <td></td>
+ <td>vh-based dimension doesn't change when the element other dimension doesn't change.
+ <ul class="assert">
+ <li>vh-based dimension doesn't change when the element other dimension doesn't change. Bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="viewport-relative-lengths-scaled-viewport-5.1.2" class="primary script">
+ <td><strong>
+ <a href="viewport-relative-lengths-scaled-viewport.xht">viewport-relative-lengths-scaled-viewport</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Viewport units in scaled viewport
+ <ul class="assert">
+ <li>viewport relative units scale with viewport.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="viewport-units-css2-001-5.1.2" class="primary script">
+ <td><strong>
+ <a href="viewport-units-css2-001.xht">viewport-units-css2-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Checks viewport units against CSS 2.1 properties and the CSSOM
+ <ul class="assert">
+ <li>Testing what happens when one applies and rereads viewport unit lengths to CSS 2.1 properties that accept length values</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.1.2.#example-74b4de35">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vh">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#viewport_percentage-lengths">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vmax">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vmin">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.2.#vw">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#absolute-lengths">5.2 Absolute lengths: the cm, mm, q, in, pt, pc, px units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#absolute-length">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#cm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#example-42a5d4eb">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#in">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#pc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#physical-units">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#pt">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#px">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#q">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#reference-pixel">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#visual-angle-unit">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-6.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-6.xht
new file mode 100644
index 00000000000..aadf89cb06b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-6.xht
@@ -0,0 +1,136 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Other Quantities - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Other Quantities (2 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#other-units">6 Other Quantities</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#angles">6.1 Angle Units: the <angle> type and deg, grad, rad, turn units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#angle-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#bearing-angle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#deg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#grad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#rad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#turn">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#time">6.2 Duration Units: the <time> type and s, ms units</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="transition-delay-001-6.2" class="dom script">
+ <td>
+ <a href="transition-delay-001.xht">transition-delay-001</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Parsing transition-delay
+ <ul class="assert">
+ <li>Test checks that transition-delay values are parsed properly</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="transition-duration-001-6.2" class="dom script">
+ <td>
+ <a href="transition-duration-001.xht">transition-duration-001</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Parsing transition-duration
+ <ul class="assert">
+ <li>Test checks that transition-duration values are parsed properly</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.2.#ms">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#s">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.2.#time-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#frequency">6.3 Frequency Units: the <frequency> type and Hz, kHz units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#frequency-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#hz">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.3.#khz">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#resolution">6.4 Resolution Units: the <resolution> type and dpi, dpcm, dppx units</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dpcm">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dpi">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#dppx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#example-0c0bf820">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.4.#resolution-value">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-7.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-7.xht
new file mode 100644
index 00000000000..711aebbe2ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-7.xht
@@ -0,0 +1,57 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Data Types Defined Elsewhere - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Data Types Defined Elsewhere (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s7">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#defined-elsewhere">7 Data Types Defined Elsewhere</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#colors">7.1 Colors: the <color> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#images">7.2 Images: the <image> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#position">7.3 2D Positioning: the <position> type</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-8.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-8.xht
new file mode 100644
index 00000000000..9a6aab51354
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-8.xht
@@ -0,0 +1,418 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Functional Notations - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Functional Notations (32 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s8">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#functional-notations">8 Functional Notations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#example-9de05e52">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#functional-notation">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-notation">8.1 Mathematical Expressions: calc()</a></th></tr>
+ <!-- 31 tests -->
+ <tr id="calc-background-image-gradient-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-image-gradient-1.xht">calc-background-image-gradient-1</a></strong></td>
+ <td><a href="reference/calc-background-image-gradient-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-image gradients
+ </td>
+ </tr>
+ <tr id="calc-background-linear-gradient-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-linear-gradient-1.xht">calc-background-linear-gradient-1</a></strong></td>
+ <td><a href="reference/calc-background-linear-gradient-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Support calc() on gradient stop positions
+ </td>
+ </tr>
+ <tr id="calc-background-position-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-position-1.xht">calc-background-position-1</a></strong></td>
+ <td><a href="reference/calc-background-position-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-position
+ </td>
+ </tr>
+ <tr id="calc-background-size-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-background-size-1.xht">calc-background-size-1</a></strong></td>
+ <td><a href="reference/calc-background-size-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for calc() on background-size
+ </td>
+ </tr>
+ <tr id="calc-border-radius-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-border-radius-1.xht">calc-border-radius-1</a></strong></td>
+ <td><a href="reference/calc-border-radius-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>test for border-radius: calc()
+ </td>
+ </tr>
+ <tr id="calc-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-height-block-1.xht">calc-height-block-1</a></strong></td>
+ <td><a href="reference/calc-height-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-height-table-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-height-table-1.xht">calc-height-table-1</a></strong></td>
+ <td><a href="reference/calc-height-table-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test that height:calc() with no percentages has an effect on inner table elements
+ </td>
+ </tr>
+ <tr id="calc-margin-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-margin-block-1.xht">calc-margin-block-1</a></strong></td>
+ <td><a href="reference/calc-margin-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test of margin-*: calc()
+ </td>
+ </tr>
+ <tr id="calc-max-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-height-block-1.xht">calc-max-height-block-1</a></strong></td>
+ <td><a href="reference/calc-max-height-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for max-height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-max-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-width-block-1.xht">calc-max-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>max-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-max-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-max-width-block-intrinsic-1.xht">calc-max-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-max-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>intrinsic width of max-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-height-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-height-block-1.xht">calc-min-height-block-1</a></strong></td>
+ <td><a href="reference/calc-height-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for min-height:calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-width-block-1.xht">calc-min-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>min-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-min-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-min-width-block-intrinsic-1.xht">calc-min-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-min-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>intrinsic width of min-width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-bottom-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-bottom-1.xht">calc-offsets-absolute-bottom-1</a></strong></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for bottom:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-left-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-left-1.xht">calc-offsets-absolute-left-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for left:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-right-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-right-1.xht">calc-offsets-absolute-right-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for right:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-absolute-top-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-absolute-top-1.xht">calc-offsets-absolute-top-1</a></strong></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for top:calc() on absolutely positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-bottom-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-bottom-1.xht">calc-offsets-relative-bottom-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for bottom:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-left-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-left-1.xht">calc-offsets-relative-left-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for left:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-right-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-right-1.xht">calc-offsets-relative-right-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for right:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-offsets-relative-top-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-offsets-relative-top-1.xht">calc-offsets-relative-top-1</a></strong></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for top:calc() on relatively positioned elements
+ </td>
+ </tr>
+ <tr id="calc-padding-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-padding-block-1.xht">calc-padding-block-1</a></strong></td>
+ <td><a href="reference/calc-padding-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test of padding-*: calc()
+ </td>
+ </tr>
+ <tr id="calc-text-indent-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-text-indent-1.xht">calc-text-indent-1</a></strong></td>
+ <td><a href="reference/calc-text-indent-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>text-indent: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-text-indent-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-text-indent-intrinsic-1.xht">calc-text-indent-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-text-indent-intrinsic-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>intrinsic width of text-indent: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-transform-origin-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-transform-origin-1.xht">calc-transform-origin-1</a></strong></td>
+ <td><a href="reference/calc-transform-origin-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for calc() on transform-origin
+ </td>
+ </tr>
+ <tr id="calc-vertical-align-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-vertical-align-1.xht">calc-vertical-align-1</a></strong></td>
+ <td><a href="reference/calc-vertical-align-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>Test for vertical-align:calc()
+ </td>
+ </tr>
+ <tr id="calc-width-block-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-block-1.xht">calc-width-block-1</a></strong></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-width-block-intrinsic-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-block-intrinsic-1.xht">calc-width-block-intrinsic-1</a></strong></td>
+ <td><a href="reference/calc-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>intrinsic width of width: calc() on blocks
+ </td>
+ </tr>
+ <tr id="calc-width-table-auto-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-table-auto-1.xht">calc-width-table-auto-1</a></strong></td>
+ <td><a href="reference/calc-width-table-auto-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>width: calc() on table-layout: auto tables
+ </td>
+ </tr>
+ <tr id="calc-width-table-fixed-1-8.1" class="primary">
+ <td><strong>
+ <a href="calc-width-table-fixed-1.xht">calc-width-table-fixed-1</a></strong></td>
+ <td><a href="reference/calc-width-table-fixed-1-ref.xht">=</a> </td>
+ <td></td>
+ <td>width: calc() on table-layout: auto tables
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.1.#example-0bd12a8e">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-2b4e561f">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-6e868f9c">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-776de6b9">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#example-f570e599">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.#funcdef-calc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-syntax">8.1.1 Syntax</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-product">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-sum">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-calc-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.1.#typedef-dimension">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-type-checking">8.1.2 Type Checking</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="calc-unit-analysis-8.1.2" class="script">
+ <td>
+ <a href="calc-unit-analysis.xht">calc-unit-analysis</a></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSS Variables Allowed Syntax
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.1.2.#resolved-type">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-computed-value">8.1.3 Computed Value</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.3.#example-240b0ace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.1.4">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#calc-range">8.1.4 Range Checking</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.1.4.#example-02a3b71f">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.2">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#toggle-notation">8.2 Toggling Between Values: toggle()</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-17046e65">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-349c53dd">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-851607de">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#example-9492bba0">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#funcdef-toggle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.2.#typedef-toggle-value">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8.3">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#attr-notation">8.3 Attribute References: attr()</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#example-0366e27a">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#example-4771a1ff">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#funcdef-attr">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-attr-fallback">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-attr-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.3.#typedef-type-or-unit">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-9.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-9.xht
new file mode 100644
index 00000000000..38777ae4e2f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/chapter-9.xht
@@ -0,0 +1,207 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Appendix A: IANA Considerations - CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite</h1>
+ <h2>Appendix A: IANA Considerations (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s9">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#iana">9 Appendix A: IANA Considerations</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9.1">+</a>
+ <a href="http://www.w3.org/TR/css3-values/#about-invalid">9.1 Registration for the about:invalid URL scheme</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-compositing-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-animations-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-backgrounds-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-break-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-cascade-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-color-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-color-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-counter-styles-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-fonts-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-images-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-overflow-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-syntax-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-text-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-text-decor-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-transitions-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css-ui-3">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css21">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-fonts">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3-images">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3bg">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3cascade">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3color">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3namespace">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3page">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-css3syn">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-dom-ls">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-filters-1">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-mediaq">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-mediaqueries-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-rfc6694">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-selectors-4">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#biblio-url">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#changes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conformance-classes">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#contents">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#conventions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#example-f839f6c8">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#experimental">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index-defined-elsewhere">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#index-defined-here">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#informative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#normative">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#partial">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#status">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#subtitle">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#testing">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#title">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c_process_revision">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/min-width-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/min-width-001.xht
new file mode 100644
index 00000000000..115a48398a3
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/min-width-001.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta charset="utf-8"/>
+ <title>CSS Media Queries Test: min-width length value approximation</title>
+ <link rel="author" title="Chris Rebert" href="http://chrisrebert.com"/>
+ <link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#width"/>
+ <link rel="help" href="http://www.w3.org/TR/mediaqueries-4/#width"/>
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#length-value"/>
+ <link rel="match" href="ref.xht"/>
+ <meta name="flags" content=""/>
+ <meta name="assert" content="min-width length values that are too large to be supported must be clamped, rounded to infinity, or approximated, but not overflowed to a small or negative value."/>
+ <style>
+div {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+@media (min-width: 9999999999px) {
+ div {
+ background-color: red;
+ }
+}
+ </style>
+</head>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div/>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht
new file mode 100644
index 00000000000..0f829bc715d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '&lt;integer&gt;' type" />
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.xht" />
+ <meta name="flags" content="ahem invalid" />
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored." />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 2.1; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ ]]></style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht
new file mode 100644
index 00000000000..4f89303ffc5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '&lt;integer&gt;' type" />
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.xht" />
+ <meta name="flags" content="ahem invalid" />
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored." />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 1.9; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ ]]></style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht
new file mode 100644
index 00000000000..2857395be42
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: non-integer 'column-count' value</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#integers" title="4.1. Integers: the '&lt;integer&gt;' type" />
+ <link rel="match" href="reference/multicol-columns-invalid-001-ref.xht" />
+ <meta name="flags" content="ahem invalid" />
+ <meta name="assert" content="This test checks that a specified real 'column-count' value is invalid and ignored." />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background: yellow;
+ border: gray solid 1em;
+ color: black;
+ font: 1.25em/1 Ahem;
+ orphans: 1;
+ widows: 1;
+ width: 12em;
+
+ column-count: 4;
+ column-count: 2.0; /* invalid; must be an integer */
+ column-gap: 0;
+ }
+
+ span {color: blue;}
+ ]]></style>
+ </head>
+
+ <body>
+
+ <div>
+ bl ac
+ <span>
+ bl ue
+ </span>
+ <span>
+ bl ue
+ </span>
+ bl ac
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-inherit-002.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-inherit-002.xht
new file mode 100644
index 00000000000..3c4f450d75b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-inherit-002.xht
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: 'column-count' and inherit</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-08 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#cc" title="3.2 'column-count'" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'" />
+ <link rel="match" href="reference/multicol-inherit-002-ref.xht" />
+ <meta name="flags" content="ahem" />
+ <meta name="assert" content="This test checks that 'column-count' can be inherited by setting it with the CSS-wide keyword 'inherit'." />
+ <style type="text/css"><![CDATA[
+ body > div
+ {
+ background-color: blue;
+ column-count: 3;
+ column-gap: 1em;
+ font: 1.25em/1 Ahem;
+ width: 32em;
+
+ /*
+ N == 3;
+
+ 32em
+ - 2em : 2 column gaps
+ ==========
+ 30em : available width of the 3 inner multi-column elements
+
+ So, W == 10em;
+
+ 30em
+ - 6em : 3 mult by 2em: horizontal margin of 3 inner multi-column elements
+ - 6em : 3 mult by 2em: horizontal column-gaps of all 3 inner multi-column elements
+ ==========
+ 18em : 6em for each of the 3 column boxes without their own horizontal margins
+ So, each column boxes of inner multi-column elements is 2em wide.
+ */
+ }
+
+ div
+ {
+ color: black;
+ margin: 1em;
+ orphans: 1;
+ widows: 1;
+ }
+
+ div > div
+ {
+ background-color: yellow;
+ column-count: inherit;
+ column-gap: 1em;
+ }
+
+ div > div:first-child {margin-top: 0;}
+ ]]></style>
+ </head>
+ <body>
+
+ <div>
+ <div>
+ aa aa
+ aa aa
+ aa aa
+ aa aa
+ </div>
+ <div>
+ mm mm
+ mm mm
+ mm mm
+ mm mm
+ </div>
+ <div>
+ xx xx
+ xx xx
+ xx xx
+ xx xx
+ </div>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-001.xht
new file mode 100644
index 00000000000..83eb5968098
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-001.xht
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: column-rule-color: inherit</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-09-02 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#crc" title="4.2. 'column-rule-color'" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'" />
+ <link rel="match" href="reference/multicol-rule-color-inherit-001-ref.xht" />
+ <meta name="flags" content="ahem" />
+ <meta name="assert" content="This test checks that, by default, column-rule-color is the current color applying to the element unless reserved keyword 'inherit' is used in which case column-rule-color will be inherited from the parent's column-rule-color value." />
+ <style type="text/css"><![CDATA[
+ div#parent
+ {
+ column-rule-color: green;
+ column-rule-style: none;
+ font: 1.25em/1 Ahem;
+ width: 17em;
+ }
+
+ /*
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (17em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (17em - (2 * 1em)) / 3);
+ W == max(0, (17em - 2em) / 3);
+ W == max(0, 15em / 3);
+ W == max(0, 5em);
+ W == 5em;
+
+ The height of column rule depends on number of line boxes in
+ each outer column box which depends on number of line boxes
+ in each inner column box.
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (5em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (5em - (2 * 1em)) / 3);
+ W == max(0, (5em - 2em) / 3);
+ W == max(0, 3em / 3);
+ W == max(0, 1em);
+ W == 1em;
+
+ */
+
+ div
+ {
+ color: red; /* both div#parent and div.child have and use 'color: red' */
+ orphans: 1;
+ widows: 1;
+
+ column-count: 3;
+ column-gap: 1em;
+ column-rule-width: 1em;
+ }
+
+ div.child
+ {
+ column-rule-color: inherit;
+ column-rule-style: solid;
+ font-size: 1em;
+ }
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div id="parent">
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-002.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-002.xht
new file mode 100644
index 00000000000..96a210d39d2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/multicol-rule-color-inherit-002.xht
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Multi-column Layout Test: column-rule-color: inherit (complex)</title>
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-09-03 -->
+ <link rel="help" href="http://www.w3.org/TR/css3-multicol/#crc" title="4.2. 'column-rule-color'" />
+ <link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords" title="3.1.1. CSS-wide keywords: 'initial' and 'inherit'" />
+ <link rel="match" href="reference/multicol-rule-color-inherit-001-ref.xht" />
+ <meta name="flags" content="ahem" />
+ <meta name="assert" content="This test checks that, by default, column-rule-color is the current color applying to the element." />
+ <style type="text/css"><![CDATA[
+ div#parent
+ {
+ color: green;
+ font: 1.25em/1 Ahem;
+ }
+
+ div.child
+ {
+ color: red;
+ display: inline-block;
+ font-size: 1em;
+ width: 5em;
+
+ column-count: 3;
+ column-gap: 1em;
+ column-rule-color: inherit;
+ column-rule-style: solid;
+ column-rule-width: 1em;
+ }
+
+ /*
+
+ N == 3;
+
+ W == max(0, (available-width - ((N - 1) * column-gap)) / N);
+ W == max(0, (5em - ((3 - 1) * 1em)) / 3);
+ W == max(0, (5em - (2 * 1em)) / 3);
+ W == max(0, (5em - 2em) / 3);
+ W == max(0, 3em / 3);
+ W == max(0, 1em);
+ W == 1em;
+
+ */
+
+ ]]></style>
+ </head>
+
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div id="parent">
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ <div class="child">
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ &nbsp;
+ </div>
+
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/ref.xht
new file mode 100644
index 00000000000..c0148889a62
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/ref.xht
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal" />
+ <style>
+ div {
+ background-color:green;
+ height:100px;
+ width:100px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/all-green.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/all-green.xht
new file mode 100644
index 00000000000..76df4226c11
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/all-green.xht
@@ -0,0 +1,2 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html style="background: green" xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht
new file mode 100644
index 00000000000..bdd6d0bbaf7
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for calc() on background-image gradients</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+}
+
+#one { background-image: radial-gradient(circle farthest-side at 150px 20px, red, green); }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht
new file mode 100644
index 00000000000..00821726e83
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Support calc() on gradient stop positions</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594935" rel="author" title="Yu-Sian (Thomasy) Liu" />
+ <meta content="" name="flags" />
+<style type="text/css">
+div {
+ width:100px;
+ height:100px;
+ background:red;
+ margin:5px 0 0 5px;
+ float:left;
+}
+div#one {
+ background: linear-gradient(lime 0px, lime 90px, blue 90px, blue 100%);
+}
+div#two {
+ background: linear-gradient(blue 0px ,green 30px ,red 40px ,white 60px , lime 80px);
+}
+div#three {
+ background: linear-gradient(blue 0px ,purple 20px ,red 40px ,blue 60px , lime 80px);
+}
+div#four {
+ background: linear-gradient(blue 0px ,green 30px ,red 40px ,blue 60px , yellow 80px);
+}
+div#five {
+ background: linear-gradient(red 0px ,green 30px);
+}
+</style>
+</head>
+<body>
+<div id="one">1</div>
+<div id="two">2</div>
+<div id="three">3</div>
+<div id="four">4</div>
+<div id="five">5</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht
new file mode 100644
index 00000000000..55d8613c6aa
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for calc() on background-position</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-position: 134px -12px }
+#two { background-position: -18px -19px }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht
new file mode 100644
index 00000000000..413caf4c30f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for calc() on background-size</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 50px; width: 200px;
+ border: thin solid;
+ background-image: url(../backgrounds/blue-32x32.png);
+ background-repeat: no-repeat;
+}
+
+#one { background-size: 150px 20px; }
+#two { background-image: none }
+
+</style>
+</head>
+<body>
+<p id="one"></p>
+<p id="two"></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht
new file mode 100644
index 00000000000..45ee7ccfffe
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: test for border-radius: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+p {
+ height: 256px;
+ width: 512px;
+ background: blue;
+ border-radius: 21px 6px 12px 29px / 5px 16px 10px 3px;
+}
+
+</style>
+</head>
+<body>
+<p></p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht
new file mode 100644
index 00000000000..dc9655c456d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for height:calc() or min-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; width: 1px; background: blue; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div style="height: 50px"></div>
+<div style="height: 50px"></div>
+<div style="height: 75px"></div>
+<div style="height: 45px"></div>
+<div style="height: 40px"></div>
+<div style="height: 30px"></div>
+
+<!-- tests with an auto-height container -->
+<div style="height: 50px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+<div style="height: 10px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht
new file mode 100644
index 00000000000..256f3f933a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test that height:calc() with no percentages has an effect on inner table elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+tbody, tr, td {
+ height: 500px;
+ min-height: 700px;
+ max-height: 2px;
+}
+</style>
+</head>
+<body>
+<table border="">
+ <tbody>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ <tr>
+ <td>cell</td>
+ <td>cell</td>
+ </tr>
+ </tbody>
+</table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht
new file mode 100644
index 00000000000..efc4922093d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test of margin-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+div { border: medium solid green; width: 500px }
+p { background: yellow }
+
+</style>
+</head>
+<body>
+
+<div><p style="margin: 15px 0 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 15px 0 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 15px 0">paragraph with margin</p></div>
+<div><p style="margin: 0 0 0 15px">paragraph with margin</p></div>
+<div><p style="margin: 25px 25px 25px 25px">paragraph with margin</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht
new file mode 100644
index 00000000000..f15566ccaba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for max-height:calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; width: 1px; background: blue; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div style="height: 50px"></div>
+<div style="height: 50px"></div>
+<div style="height: 75px"></div>
+<div style="height: 45px"></div>
+<div style="height: 40px"></div>
+<div style="height: 30px"></div>
+
+<!-- tests with an auto-height container -->
+<div style="height: 50px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+<div style="height: 300px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht
new file mode 100644
index 00000000000..aab6648ac0a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: intrinsic width of max-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body &gt; div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 400px"></div>
+<div style="width: 47px"></div>
+<div style="width: 400px"></div>
+<div style="width: 400px"></div>
+<div style="width: 50px"></div>
+<div style="width: 400px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht
new file mode 100644
index 00000000000..f643af4df23
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: intrinsic width of min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body &gt; div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 1px"></div>
+<div style="width: 47px"></div>
+<div style="width: 1px"></div>
+<div style="width: 1px"></div>
+<div style="width: 50px"></div>
+<div style="width: 1px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht
new file mode 100644
index 00000000000..eada32a5904
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for top:calc() on absolutely positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht
new file mode 100644
index 00000000000..f5e5fa2cfd8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for left:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 100px; width: 100px }
+div[style] { background: blue; position: relative; height: 3px; }
+</style>
+</head>
+<body>
+
+<div style="left: 50px"></div>
+<div style="left: -50px"></div>
+<div style="left: 75px"></div>
+<div style="left: -45px"></div>
+<div style="left: 40px"></div>
+<div style="left: -30px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht
new file mode 100644
index 00000000000..c7aecf7d642
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for top:calc() on relatively positioned elements</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+body { margin: 0 }
+body &gt; div { float: left; height: 100px; width: 3px; }
+div[style] { background: blue; position: relative; height: 10px; }
+</style>
+</head>
+<body>
+
+<!-- tests with a fixed-height container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 75px"></div></div>
+<div><div style="top: 45px"></div></div>
+<div><div style="top: 40px"></div></div>
+<div><div style="top: 30px"></div></div>
+
+<!-- tests with an auto-top container -->
+<div><div style="top: 50px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+<div><div style="top: 0px"></div></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht
new file mode 100644
index 00000000000..4e3bfb014fc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test of padding-*: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+div { border: medium solid green }
+p { background: yellow; margin: 0 }
+
+</style>
+</head>
+<body>
+
+<div style="padding: 15px 0 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 15px 0 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 15px 0"><p>paragraph with padding</p></div>
+<div style="padding: 0 0 0 15px"><p>paragraph with padding</p></div>
+<div style="padding: 25px 25px 25px 25px"><p>paragraph with padding</p></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht
new file mode 100644
index 00000000000..d7e13079ddd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: text-indent: calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="text-indent: 247px">50% - 3px</p>
+<p style="text-indent: 247px">25% - 3px + 25%</p>
+<p style="text-indent: 247px">25% - 3px + 12.5% * 2</p>
+<p style="text-indent: 247px">25% - 3px + 12.5%*2</p>
+<p style="text-indent: 247px">25% - 3px + 2*12.5%</p>
+<p style="text-indent: 247px">25% - 3px + 2 * 12.5%</p>
+<p style="text-indent: 250px">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht
new file mode 100644
index 00000000000..6f191480bdc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: intrinsic width of text-indent: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body &gt; div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 10px"></div>
+<div style="width: 57px"></div>
+<div style="width: 10px"></div>
+<div style="width: 10px"></div>
+<div style="width: 60px"></div>
+<div style="width: 10px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht
new file mode 100644
index 00000000000..17e23014afd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for calc() on transform-origin</title>
+ <link href="https://bugzilla.mozilla.org/show_bug.cgi?id=594934" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { margin: 100px }
+
+p {
+ height: 50px; width: 200px;
+ background: yellow;
+ transform: rotate(15deg);
+}
+
+#one { transform-origin: 150px 20px; }
+#two { transform-origin: -22px -35px; }
+
+</style>
+</head>
+<body>
+<p id="one">hello</p>
+<p id="two">hello</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht
new file mode 100644
index 00000000000..baedf2121cc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: Test for vertical-align:calc()</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+
+</head><body><div style="line-height: 100px; margin-top: 100px">
+ <span>x</span>
+ <span style="vertical-align: 50px">x</span>
+ <span style="vertical-align: 50px">x</span>
+ <span style="vertical-align: 75px">x</span>
+ <span style="vertical-align: 45px">x</span>
+ <span style="vertical-align: 40px">x</span>
+ <span style="vertical-align: 30px">x</span>
+</div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht
new file mode 100644
index 00000000000..eb0b500426c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: width: calc() and min-width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body { width: 500px }
+p { background: green; color: white; margin: 1px 0; font-size: 10px }
+
+</style>
+</head>
+<body>
+
+<p style="width: 247px">50% - 3px</p>
+<p style="width: 247px">25% - 3px + 25%</p>
+<p style="width: 247px">25% - 3px + 12.5% * 2</p>
+<p style="width: 247px">25% - 3px + 12.5%*2</p>
+<p style="width: 247px">25% - 3px + 2*12.5%</p>
+<p style="width: 247px">25% - 3px + 2 * 12.5%</p>
+<p style="width: 250px">30% + 20%</p>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht
new file mode 100644
index 00000000000..5cd8d8aa6e5
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: intrinsic width of width: calc() on blocks</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+
+body &gt; div { margin: 0 0 1px 0; background: blue; color: white; height: 5px }
+
+</style>
+</head>
+<body>
+
+<div style="width: 200px"></div>
+<div style="width: 47px"></div>
+<div style="width: 200px"></div>
+<div style="width: 200px"></div>
+<div style="width: 50px"></div>
+<div style="width: 200px"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht
new file mode 100644
index 00000000000..d4df3cf860d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+</head><body><table border="">
+ <tbody><tr>
+ <td style="width: 500px">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht
new file mode 100644
index 00000000000..f7b4e838a8f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reference: width: calc() on table-layout: auto tables</title>
+ <link href="http://dbaron.org/" rel="author" title="L. David Baron" />
+ <meta content="" name="flags" />
+<style type="text/css">
+table { table-layout: fixed; width: 500px; border-spacing: 0 }
+</style>
+</head>
+<body>
+<table border="">
+ <tbody><tr>
+ <td style="width: 500px">x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+<table border="">
+ <tbody><tr>
+ <td>x</td>
+ <td style="width: 100px">y</td>
+</tr></tbody></table>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht
new file mode 100644
index 00000000000..729dda4f2e2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8" />
+<title>CSS Values and Units Test Reference File</title>
+<link href="http://florian.rivoal.net/" rel="author" title="Florian Rivoal" />
+<meta content="" name="flags" />
+<style>
+div {
+ background: green;
+ height: 10ch;
+ width: 10ch;
+ float: left;
+}
+
+</style>
+</head><body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht
new file mode 100644
index 00000000000..1340efb2620
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-07-26 -->
+ <meta name="flags" content="image" />
+ <style type="text/css"><![CDATA[
+ table
+ {
+ background-color: yellow;
+ border-spacing: 0px;
+ border: gray solid 1em;
+ font: 1.25em/1 serif;
+ }
+
+ td {padding: 0 1em 0 0;}
+
+ img, td {vertical-align: top;}
+ ]]></style>
+ </head>
+ <body>
+ <table>
+ <tr>
+ <td><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /></td>
+ <td><img src="support/swatch-blue.png" width="40" height="40" alt="Image download support must be enabled" /></td>
+ <td><img src="support/swatch-blue.png" width="40" height="40" alt="Image download support must be enabled" /></td>
+ <td><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /></td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht
new file mode 100644
index 00000000000..b99c00d0f27
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-08 -->
+ <meta name="flags" content="image" />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background-color: blue;
+ font: 1.25em/1 serif;
+ margin: 1em;
+ padding: 0em 1em 1em;
+ width: 30em;
+ }
+
+ img {vertical-align: top;}
+
+ img.column-gap
+ {
+ margin-left: -2em;
+ margin-right: 3em;
+ vertical-align: bottom;
+ }
+
+ img#last
+ {
+ margin-left: -2em;
+ vertical-align: bottom;
+ }
+ ]]></style>
+ </head>
+ <body>
+
+ <div><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /><img class="column-gap" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /><img class="column-gap" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="60" alt="Image download support must be enabled" /><img src="support/swatch-yellow.png" width="20" height="60" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /><img id="last" src="support/swatch-yellow.png" width="40" height="20" alt="Image download support must be enabled" /></div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-rule-color-inherit-001-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-rule-color-inherit-001-ref.xht
new file mode 100644
index 00000000000..3a2cd30b451
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/multicol-rule-color-inherit-001-ref.xht
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
+ <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-09-03 -->
+ <meta name="flags" content="image" />
+ <style type="text/css"><![CDATA[
+ div {font-size: 1.25em;}
+ img {padding-left: 1em;}
+ ]]></style>
+ </head>
+ <body>
+
+ <p>Test passes if there are 6 vertical green stripes and <strong>no red</strong>.</p>
+
+ <div>
+ <img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-white.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-white.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" /><img src="support/swatch-green.png" width="20" height="120" alt="Image download support must be enabled" />
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht
new file mode 100644
index 00000000000..337a3d100fd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Reftest Reference</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="160" height="400" frameborder="0" src="../support/80px-block-ref.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-lime.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-maroon.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-navy.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/2-80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/2-80px-block-ref.html
new file mode 100644
index 00000000000..f616001554c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/2-80px-block-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ .content {
+ margin: 10px;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-gg-rr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-float-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-float-ref.html
new file mode 100644
index 00000000000..6adeeb6fa99
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-float-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ float: right;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-ref.html
new file mode 100644
index 00000000000..2c910e93411
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/80px-block-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/README b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/a-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/b-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/black20x20.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/black20x20.png
new file mode 100644
index 00000000000..ebf7027ee78
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/black20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/c-red.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/cat.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/generalParallelTest.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/generalParallelTest.js
new file mode 100644
index 00000000000..1a4bf343df0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/generalParallelTest.js
@@ -0,0 +1,231 @@
+(function(root) {
+'use strict';
+//
+var index = 0;
+var suite = root.generalParallelTest = {
+ // prepare individual test
+ setup: function(data, options) {
+ suite._setupDom(data, options);
+ suite._setupEvents(data, options);
+ },
+ // clone fixture and prepare data containers
+ _setupDom: function(data, options) {
+ // clone fixture into off-viewport test-canvas
+ data.fixture = document.getElementById('fixture').cloneNode(true);
+ data.fixture.id = 'test-' + (index++);
+ (document.getElementById('offscreen') || document.body).appendChild(data.fixture);
+
+ // data container for #fixture > .container > .transition
+ data.transition = {
+ node: data.fixture.querySelector('.transition'),
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property);
+ }
+ };
+
+ // data container for #fixture > .container
+ data.container = {
+ node: data.transition.node.parentNode,
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.container.node, property);
+ }
+ };
+
+ // data container for #fixture > .container > .transition[:before | :after]
+ if (data.pseudo) {
+ data.pseudo = {
+ name: data.pseudo,
+ values: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property, ':' + data.pseudo.name);
+ }
+ };
+ }
+ },
+ // bind TransitionEnd event listeners
+ _setupEvents: function(data, options) {
+ ['transition', 'container'].forEach(function(elem) {
+ var handler = function(event) {
+ event.stopPropagation();
+ var name = event.propertyName;
+ var time = Math.round(event.elapsedTime * 1000) / 1000;
+ var pseudo = event.pseudoElement ? (':' + event.pseudoElement) : '';
+ data[elem].events.push(name + pseudo + ":" + time + "s");
+ };
+ data[elem].node.addEventListener('transitionend', handler, false);
+ data[elem]._events = {'transitionend': handler};
+ });
+ },
+ // cleanup after individual test
+ teardown: function(data, options) {
+ // data.fixture.remove();
+ if (data.fixture.parentNode) {
+ data.fixture.parentNode.removeChild(data.fixture);
+ }
+ },
+ // invoked prior to running a slice of tests
+ sliceStart: function(options, tests) {
+ // inject styles into document
+ setStyle(options.styles);
+ // kick off value collection loop
+ generalParallelTest.startValueCollection(options);
+ },
+ // invoked after running a slice of tests
+ sliceDone: function(options, tests) {
+ // stop value collection loop
+ generalParallelTest.stopValueCollection(options);
+ // reset styles cache
+ options.styles = {};
+ },
+ // called once all tests are done
+ done: function(options) {
+ // reset document styles
+ setStyle();
+ reflow();
+ },
+ // add styles of individual test to slice cache
+ addStyles: function(data, options, styles) {
+ if (!options.styles) {
+ options.styles = {};
+ }
+
+ Object.keys(styles).forEach(function(key) {
+ var selector = '#' + data.fixture.id
+ // fixture must become #fixture.fixture rather than a child selector
+ + (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ + key;
+
+ options.styles[selector] = styles[key];
+ });
+ },
+ // set style and compute values for container and transition
+ getStyle: function(data) {
+ reflow();
+ // grab current styles: "initial state"
+ suite._getStyleFor(data, 'from');
+ // apply target state
+ suite._addClass(data, 'to', true);
+ // grab current styles: "target state"
+ suite._getStyleFor(data, 'to');
+ // remove target state
+ suite._removeClass(data, 'to', true);
+
+ // clean up the mess created for value collection
+ data.container._values = [];
+ data.transition._values = [];
+ if (data.pseudo) {
+ data.pseudo._values = [];
+ }
+ },
+ // grab current styles and store in respective element's data container
+ _getStyleFor: function(data, key) {
+ data.container[key] = data.container.computedStyle(data.property);
+ data.transition[key] = data.transition.computedStyle(data.property);
+ if (data.pseudo) {
+ data.pseudo[key] = data.pseudo.computedStyle(data.property);
+ }
+ },
+ // add class to test's elements and possibly reflow
+ _addClass: function(data, className, forceReflow) {
+ data.container.node.classList.add(className);
+ data.transition.node.classList.add(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // remove class from test's elements and possibly reflow
+ _removeClass: function(data, className, forceReflow) {
+ data.container.node.classList.remove(className);
+ data.transition.node.classList.remove(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // add transition and to classes to container and transition
+ startTransition: function(data) {
+ // add transition-defining class
+ suite._addClass(data, 'how', true);
+ // add target state (without reflowing)
+ suite._addClass(data, 'to', false);
+ },
+ // requestAnimationFrame runLoop to collect computed values
+ startValueCollection: function(options) {
+ var raf = window.requestAnimationFrame || function(callback){
+ setTimeout(callback, 20);
+ };
+
+ // flag denoting if the runLoop should continue (true) or exit (false)
+ options._collectValues = true;
+
+ function runLoop() {
+ if (!options._collectValues) {
+ // test's are done, stop annoying the CPU
+ return;
+ }
+
+ // collect current style for test's elements
+ options.tests.forEach(function(data) {
+ if (!data.property) {
+ return;
+ }
+
+ ['transition', 'container', 'pseudo'].forEach(function(elem) {
+ var pseudo = null;
+ if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
+ return;
+ }
+
+ var current = data[elem].computedStyle(data.property);
+ var values = data[elem].values;
+ var length = values.length;
+ if (!length || values[length - 1] !== current) {
+ values.push(current);
+ }
+ });
+ });
+
+ // rinse and repeat
+ raf(runLoop);
+ }
+
+ runLoop();
+ },
+ // stop requestAnimationFrame runLoop collecting computed values
+ stopValueCollection: function(options) {
+ options._collectValues = false;
+ },
+
+ // generate test.step function asserting collected events match expected
+ assertExpectedEventsFunc: function(data, elem, expected) {
+ return function() {
+ var _result = data[elem].events.sort().join(" ");
+ var _expected = typeof expected === 'string' ? expected : expected.sort().join(" ");
+ assert_equals(_result, _expected, "Expected TransitionEnd events triggered on ." + elem);
+ };
+ },
+ // generate test.step function asserting collected values are neither initial nor target
+ assertIntermediateValuesFunc: function(data, elem) {
+ return function() {
+ // the first value (index: 0) is always going to be the initial value
+ // the last value is always going to be the target value
+ var values = data[elem].values;
+ if (data.flags.discrete) {
+ // a discrete value will just switch from one state to another without having passed intermediate states.
+ assert_equals(values[0], data[elem].from, "must be initial value while transitioning on ." + elem);
+ assert_equals(values[1], data[elem].to, "must be target value after transitioning on ." + elem);
+ assert_equals(values.length, 2, "discrete property only has 2 values ." + elem);
+ } else {
+ assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
+ assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
+ }
+
+ // TODO: first value must be initial, last value must be target
+ };
+ }
+};
+
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/helper.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/helper.js
new file mode 100644
index 00000000000..242cd3ca635
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/helper.js
@@ -0,0 +1,96 @@
+//
+// Simple Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+// serialize styles object and dump to dom
+// appends <style id="dynamic-style"> to <head>
+// setStyle("#some-selector", {"some-style" : "value"})
+// setStyle({"#some-selector": {"some-style" : "value"}})
+root.setStyle = function(selector, styles) {
+ var target = document.getElementById('dynamic-style');
+ if (!target) {
+ target = document.createElement('style');
+ target.id = 'dynamic-style';
+ target.type = "text/css";
+ document.getElementsByTagName('head')[0].appendChild(target);
+ }
+
+ var data = [];
+ // single selector/styles
+ if (typeof selector === 'string' && styles !== undefined) {
+ data = [selector, '{', serializeStyles(styles), '}'];
+ target.textContent = data.join("\n");
+ return;
+ }
+ // map of selector/styles
+ for (var key in selector) {
+ if (Object.prototype.hasOwnProperty.call(selector, key)) {
+ var _data = [key, '{', serializeStyles(selector[key]), '}'];
+ data.push(_data.join('\n'));
+ }
+ }
+
+ target.textContent = data.join("\n");
+};
+
+function serializeStyles(styles) {
+ var data = [];
+ for (var property in styles) {
+ if (Object.prototype.hasOwnProperty.call(styles, property)) {
+ var prefixedProperty = addVendorPrefix(property);
+ data.push(prefixedProperty + ":" + styles[property] + ";");
+ }
+ }
+
+ return data.join('\n');
+}
+
+
+// shorthand for computed style
+root.computedStyle = function(element, property, pseudo) {
+ var prefixedProperty = addVendorPrefix(property);
+ return window
+ .getComputedStyle(element, pseudo || null)
+ .getPropertyValue(prefixedProperty);
+};
+
+// flush rendering buffer
+root.reflow = function() {
+ document.body.offsetWidth;
+};
+
+// merge objects
+root.extend = function(target /*, ..rest */) {
+ Array.prototype.slice.call(arguments, 1).forEach(function(obj) {
+ Object.keys(obj).forEach(function(key) {
+ target[key] = obj[key];
+ });
+ });
+
+ return target;
+};
+
+// dom fixture helper ("resetting dom test elements")
+var _domFixture;
+var _domFixtureSelector;
+root.domFixture = function(selector) {
+ var fixture = document.querySelector(selector || _domFixtureSelector);
+ if (!fixture) {
+ throw new Error('fixture ' + (selector || _domFixtureSelector) + ' not found!');
+ }
+ if (!_domFixture && selector) {
+ // save a copy
+ _domFixture = fixture.cloneNode(true);
+ _domFixtureSelector = selector;
+ } else if (_domFixture) {
+ // restore the copy
+ var tmp = _domFixture.cloneNode(true);
+ fixture.parentNode.replaceChild(tmp, fixture);
+ } else {
+ throw new Error('domFixture must be initialized first!');
+ }
+};
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-red.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/min-width-tables-001-iframe.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/min-width-tables-001-iframe.html
new file mode 100644
index 00000000000..edc548a6aab
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/min-width-tables-001-iframe.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>iframe containing the meat of the test</title>
+ <style>
+body {
+ margin: 0;
+ overflow: hidden;
+}
+/* green div that should cover the red divs */
+#green {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: green;
+ width: 100%;
+ height: 600px;
+}
+.spacer {
+ height: 98px;
+ width: 20px;
+}
+.item {
+ background-color: red;
+ display: block;/* property under test */
+ /* border to aid understanding of boundaries between items */
+ border-style: solid;
+ border-width: 1px;
+ border-color: red;/* Note: if you're trying to debug this, use a different color here */
+}
+/* 100px = 10*(1 + 8 + 1) */
+@media (min-width: 100px) {
+ #green {
+ width: 100px;
+ height: 100px;/* = 1 + 98 + 1 */
+ }
+ .item {
+ display: table-cell;/* property and value under test */
+ }
+}
+ </style>
+</head>
+<body>
+ <div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ </div>
+ <div id="green"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/one.gif b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/one.gif
new file mode 100644
index 00000000000..74cf7839c9f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/one.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/parsing-utils.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/parsing-utils.js
new file mode 100644
index 00000000000..beea4958ce8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/parsing-utils.js
@@ -0,0 +1,866 @@
+var ParsingUtils = (function() {
+function testInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ var actual = div.style.getPropertyValue('shape-outside');
+ assert_equals(actual, expected);
+}
+
+function testComputedStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ document.body.appendChild(div);
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-outside');
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // Some of the tests in this suite have either/or expected results
+ // so this check allows for testing that at least one of them passes.
+ // Description of the 2 expecteds is below near calcTestValues.
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, typeof expected !== 'undefined' ? expected : value);
+ }
+}
+
+function testShapeMarginInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', "border-box inset(10px)");
+ div.style.setProperty('shape-margin', value);
+ var actual = div.style.getPropertyValue('shape-margin');
+ assert_equals(actual, expected);
+}
+
+function testShapeMarginComputedStyle(value, expected) {
+
+ var outerDiv = document.createElement('div');
+ outerDiv.style.setProperty('width', '100px');
+
+ var innerDiv = document.createElement('div');
+ innerDiv.style.setProperty('shape-outside', "border-box inset(10px)");
+ innerDiv.style.setProperty('shape-margin', value);
+
+ outerDiv.appendChild(innerDiv);
+ document.body.appendChild(outerDiv);
+
+ var style = getComputedStyle(innerDiv);
+ var actual = style.getPropertyValue('shape-margin');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(outerDiv);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0px' : expected);
+ }
+}
+
+function testShapeThresholdInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ var actual = div.style.getPropertyValue('shape-image-threshold');
+ assert_equals(actual, expected);
+}
+
+function testShapeThresholdComputedStyle(value, expected) {
+
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ document.body.appendChild(div);
+
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-image-threshold');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0' : expected);
+ }
+}
+
+// Builds an array of test cases to send to testharness.js where one test case is: [name, actual, expected]
+// These test cases will verify results from testInlineStyle() or testComputedStyle()
+function buildTestCases(testCases, testType) {
+ var results = [];
+
+ // If test_type isn't specified, test inline style
+ var type = typeof testType == 'undefined' ? 'invalid': testType;
+
+ testCases.forEach(function(test) {
+ oneTestCase = [];
+
+ // name - annotated by type (inline vs. computed)
+ if ( test.hasOwnProperty('name') ) {
+ oneTestCase.push(test['name'] +' - '+ type);
+ } else {
+ // If test_name isn't specified, use the actual
+ oneTestCase.push(test['actual'] +' - '+ type);
+ }
+
+ // actual
+ oneTestCase.push(test['actual'])
+
+ // expected
+ if( type.indexOf('invalid') != -1 ){
+ oneTestCase.push(null)
+ } else if( type == 'inline' ) {
+ oneTestCase.push(test['expected_inline']);
+ } else if( type == 'computed' ){
+ oneTestCase.push( convertToPx(test['expected_computed']) );
+ }
+ results.push(oneTestCase);
+ });
+ return results;
+}
+
+
+function buildPositionTests(shape, valid, type, units) {
+ var results = new Array();
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( units ) === '[object Array]') {
+ units.forEach(function(unit) {
+ positionTests = buildPositionTests(shape, valid, type, unit);
+ results = results.concat(positionTests);
+ });
+ } else {
+ if (valid) {
+ validPositions.forEach(function(test) {
+ var testCase = [], testName, actual, expected;
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1)) {
+ // actual
+ actual = shape + '(at ' + setUnit(test[0], false, units) +')';
+
+ // expected
+ // if(convert && shape == 'circle')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else if(convert && shape == 'ellipse')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else
+ expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+
+ // name
+ if (type == 'lengthUnit + inline')
+ testName = 'test unit (inline): ' + units +' - '+ actual;
+ else if (type == 'lengthUnit + computed')
+ testName = 'test unit (computed): ' + units +' - '+ actual;
+ else
+ testName = (actual + ' serializes as ' + expected +' - '+ type);
+
+ testCase.push(testName)
+ testCase.push(actual);
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ } else {
+ invalidPositions.forEach(function(test) {
+ var testValue = shape + '(at ' + setUnit(test, false, units) +')';
+ testCase = new Array();
+ testCase.push(testValue + ' is invalid');
+ testCase.push(testValue);
+ testCase.push(null);
+ results.push(testCase);
+ });
+ }
+ }
+ return unique(results);
+}
+
+function buildRadiiTests(shape, type, units) {
+ var results = new Array();
+ var testUnits = typeof units == 'undefined' ? 'px': units;
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( testUnits ) === '[object Array]') {
+ testUnits.forEach(function(unit) {
+ radiiTests = buildRadiiTests(shape, type, unit);
+ results = results.concat(radiiTests);
+ });
+ } else {
+ var validRadii = shape == 'circle' ? validCircleRadii : validEllipseRadii;
+ validRadii.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1) ) {
+ actual = shape + '(' + setUnit(test[0], false, testUnits) +')';
+ // name
+ if (type.indexOf('lengthUnit') != -1) {
+ name = 'test unit: ' + units +' - '+ actual;
+ if(type.indexOf('computed') != -1)
+ name = name + ' - computed';
+ else
+ name = name + ' - inline';
+ }
+ else
+ name = actual +' - '+ type;
+
+ testCase.push(name);
+
+ // actual
+ testCase.push(actual);
+
+ // expected
+ if(type.indexOf('computed') != -1 && test.length == 3) {
+ expected = shape + '(' + setUnit(test[2], convert, testUnits) +')';
+ } else {
+ expected = shape + '(' + setUnit(test[1], convert, testUnits) +')';
+ }
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ }
+ return unique(results);
+}
+
+function buildInsetTests(unit1, unit2, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ if(Object.prototype.toString.call( unit1 ) === '[object Array]') {
+ unit1.forEach(function(unit) {
+ insetTests = buildInsetTests(unit, unit2, type);
+ results = results.concat(insetTests);
+ });
+ } else {
+ validInsets.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ name = setUnit(test[0], false, unit1, unit2) +' - '+ type;
+ actual = 'inset(' + setUnit(test[1], convert, unit1, unit2) +')';
+ expected = actual;
+
+ testCase.push(name);
+ testCase.push(actual);
+ testCase.push(expected);
+
+ results.push(testCase);
+ });
+ }
+ return unique(results);
+}
+
+function buildPolygonTests(unitSet, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ unitSet.forEach(function(set) {
+ validPolygons.forEach(function(test) {
+ var testCase = [];
+ // name
+ testCase.push(setUnit(test[0], false, set[0], set[1], set[2]) +' - '+ type);
+ // actual
+ testCase.push('polygon(' + setUnit(test[1], false, set[0], set[1], set[2]) +')');
+ // expected
+ testCase.push('polygon(' + setUnit(test[1], convert, set[0], set[1], set[2]) +')');
+ results.push(testCase);
+ });
+ });
+ return unique(results);
+}
+
+function buildCalcTests(testCases, type) {
+ var results = new Array();
+ testCases.forEach(function(test){
+ var testCase = [];
+ if(type == 'computed') {
+ testCase.push(test[0] + ' - computed style');
+ testCase.push(test[0]);
+ testCase.push(test[2]);
+ }
+ else {
+ testCase.push(test[0] + ' - inline style');
+ testCase.push(test[0]);
+ testCase.push(test[1]);
+ }
+ testCase.push(type);
+ results.push(testCase)
+ });
+ return unique(results);
+}
+
+function unique(tests) {
+ var list = tests.concat();
+ for(var i = 0; i< list.length; ++i) {
+ for(var j = i+1; j < list.length; ++j) {
+ if(list[i][0] === list[j][0])
+ list.splice(j--, 1);
+ }
+ }
+ return list;
+}
+
+function setUnit(str, convert, unit1, unit2, unit3) {
+ var retStr = str;
+ if(typeof unit1 !== 'undefined') {
+ retStr = retStr.replace(new RegExp('u1', 'g'), unit1);
+ }
+ if(typeof unit2 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u2", 'g'), unit2);
+ }
+ if(typeof unit3 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u3", 'g'), unit3);
+ }
+ retStr = convert ? convertToPx(retStr) : retStr;
+ return retStr;
+}
+
+function convertToPx(origValue) {
+
+ var valuesToConvert = origValue.match(/[0-9]+(\.[0-9]+)?([a-z]{2,4}|%)/g);
+ if(!valuesToConvert)
+ return origValue;
+
+ var retStr = origValue;
+ for(var i = 0; i < valuesToConvert.length; i++) {
+ var unit = valuesToConvert[i].match(/[a-z]{2,4}|%/).toString();
+ var numberStr = valuesToConvert[i].match(/[0-9]+(\.[0-9]+)?/)[0];
+
+ var number = parseFloat(numberStr);
+ var convertedUnit = 'px';
+ if( typeof number !== 'NaN' )
+ {
+ if (unit == 'in') {
+ number = (96 * number);
+ } else if (unit == 'cm') {
+ number = (37.795275591 * number);
+ } else if (unit == 'mm') {
+ number = (3.779527559 * number);
+ } else if (unit == 'pt') {
+ number = (1.333333333333 * number);
+ } else if (unit == 'pc') {
+ number = (16 * number);
+ } else if (unit == 'em') {
+ number = (16 * number);
+ } else if (unit == 'ex') {
+ number = (7.1796875 * number);
+ } else if (unit == 'ch') {
+ number = (8 * number);
+ } else if (unit == 'rem') {
+ number = (16 * number);
+ } else if (unit == 'vw') {
+ number = ((.01 * window.innerWidth) * number);
+ } else if (unit == 'vh') {
+ number = ((.01 * window.innerHeight) * number);
+ } else if (unit == 'vmin') {
+ number = Math.min( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ } else if (unit == 'vmax') {
+ number = Math.max( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ }
+ else {
+ convertedUnit = unit;
+ }
+ number = Math.round(number * 1000) / 1000;
+ var find = valuesToConvert[i];
+ var replace = number.toString() + convertedUnit;
+ retStr = retStr.replace(valuesToConvert[i], number.toString() + convertedUnit);
+ }
+ }
+ return retStr.replace(',,', ',');
+}
+
+function roundResultStr(str) {
+ if(Object.prototype.toString.call( str ) !== '[object String]')
+ return str;
+
+ var numbersToRound = str.match(/[0-9]+\.[0-9]+/g);
+ if(!numbersToRound)
+ return str;
+
+ var retStr = str;
+ for(var i = 0; i < numbersToRound.length; i++) {
+ num = parseFloat(numbersToRound[i]);
+ if( !isNaN(num) ) {
+ roundedNum = Math.round(num*1000)/1000;
+ retStr = retStr.replace(numbersToRound[i].toString(), roundedNum.toString());
+ }
+ }
+
+ return retStr;
+}
+
+function generateInsetRoundCases(units, testType) {
+ var convert = testType.indexOf('computed') != -1 ? true : false;
+ var testUnit = units;
+ var sizes = [
+ '10' + units,
+ '20' + units,
+ '30' + units,
+ '40' + units
+ ];
+
+ function insetRound(value) {
+ return 'inset(10' +testUnit+ ' round ' + value + ')';
+ }
+
+ function serializedInsetRound(lhsValues, rhsValues, convert) {
+ var retStr = '';
+ if(!rhsValues)
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +')';
+ else
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +' / '+ rhsValues +')';
+
+ if(convert)
+ return convertToPx(retStr);
+
+ return retStr;
+ }
+
+ var results = [], left, lhs, right, rhs;
+ for (left = 1; left <= 4; left++) {
+ lhs = sizes.slice(0, left).join(' ');
+ results.push([insetRound(lhs) +' - '+ testType, insetRound(lhs), serializedInsetRound(lhs, null, convert)]);
+ for (right = 1; right <= 4; right++) {
+ rhs = sizes.slice(0, right).join(' ');
+ if(lhs == rhs)
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, null, convert)]);
+ else
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, rhs, convert)]);
+ }
+ }
+ return results;
+}
+
+var validUnits = [
+ "cm","mm","in","pt","pc", // Absolute length units (omitting px b/c we default to that in all tests)
+ "em","ex","ch","rem", // Font relative length units
+ "vw","vh","vmin","vmax" // Viewport percentage units
+ ]
+
+/// [actual, expected]
+var validPositions = [
+
+/// [ percent ], [ length ], [ percent | percent ], [ percent | length ], [ length | percent ], [ length | length ]
+ ["50%", "50% 50%"],
+ ["50u1", "50u1 50%"],
+ ["50% 50%", "50% 50%"],
+ ["50% 50u1", "50% 50u1"],
+ ["50u1 50%", "50u1 50%"],
+ ["50u1 50u1", "50u1 50u1"],
+
+///// [ keyword ], [ keyword keyword ] x 5 keywords
+ ["left", "0% 50%"],
+ ["top", "50% 0%"],
+ ["right", "100% 50%"],
+ ["bottom", "50% 100%"],
+ ["center", "50% 50%"],
+
+ ["left top", "0% 0%"],
+ ["left bottom", "0% 100%"],
+ ["left center", "0% 50%"],
+
+ ["top left", "0% 0%"],
+ ["top right", "100% 0%"],
+ ["top center", "50% 0%"],
+
+ ["right top", "100% 0%"],
+ ["right bottom", "100% 100%"],
+ ["right center", "100% 50%"],
+
+ ["bottom left", "0% 100%"],
+ ["bottom right", "100% 100%"],
+ ["bottom center", "50% 100%"],
+
+ ["center top", "50% 0%"],
+ ["center left", "0% 50%"],
+ ["center right", "100% 50%"],
+ ["center bottom", "50% 100%"],
+ ["center center", "50% 50%"],
+
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ ["left 50%", "0% 50%"],
+ ["left 50u1", "0% 50u1"],
+
+ ["50% top", "50% 0%"],
+ ["50u1 top", "50u1 0%"],
+
+ ["right 80%", "100% 80%"],
+ ["right 80u1", "100% 80u1"],
+
+ ["70% bottom", "70% 100%"],
+ ["70u1 bottom", "70u1 100%"],
+
+ ["center 60%", "50% 60%"],
+ ["center 60u1", "50% 60u1"],
+ ["60% center", "60% 50%"],
+ ["60u1 center", "60u1 50%"],
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ ["center top 50%", "50% 50%"],
+ ["center top 50u1", "50% 50u1"],
+ ["center left 50%", "50% 50%"],
+ ["center left 50u1", "50u1 50%"],
+ ["center right 70%", "30% 50%"],
+ ["center right 70u1", "right 70u1 top 50%"],
+ ["center bottom 70%", "50% 30%"],
+ ["center bottom 70u1", "left 50% bottom 70u1"],
+
+ ["left top 50%", "0% 50%"],
+ ["left top 50u1", "0% 50u1"],
+ ["left bottom 70%", "0% 30%"],
+ ["left bottom 70u1", "left 0% bottom 70u1"],
+
+ ["top left 50%", "50% 0%"],
+ ["top left 50u1", "50u1 0%"],
+ ["top right 70%", "30% 0%"],
+ ["top right 70u1", "right 70u1 top 0%"],
+
+ ["bottom left 50%", "50% 100%"],
+ ["bottom left 50u1", "50u1 100%"],
+ ["bottom right 70%", "30% 100%"],
+ ["bottom right 70u1", "right 70u1 top 100%"],
+
+ ["right bottom 70%", "100% 30%"],
+ ["right bottom 70u1", "left 100% bottom 70u1"],
+ ["right top 50%", "100% 50%"],
+ ["right top 50u1", "100% 50u1"],
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ ["left 50% center", "50% 50%"],
+ ["left 50u1 center", "50u1 50%"],
+ ["left 50% top", "50% 0%"],
+ ["left 50u1 top", "50u1 0%"],
+ ["left 50% bottom", "50% 100%"],
+ ["left 50u1 bottom", "50u1 100%"],
+
+ ["top 50% center", "50% 50%"],
+ ["top 50u1 center", "50% 50u1"],
+ ["top 50% left", "0% 50%"],
+ ["top 50u1 left", "0% 50u1"],
+ ["top 50% right", "100% 50%"],
+ ["top 50u1 right", "100% 50u1"],
+
+ ["bottom 70% center", "50% 30%"],
+ ["bottom 70u1 center", "left 50% bottom 70u1"],
+ ["bottom 70% left", "0% 30%"],
+ ["bottom 70u1 left", "left 0% bottom 70u1"],
+ ["bottom 70% right", "100% 30%"],
+ ["bottom 70u1 right", "left 100% bottom 70u1"],
+
+ ["right 80% center", "20% 50%"],
+ ["right 80u1 center", "right 80u1 top 50%"],
+ ["right 80% bottom", "20% 100%"],
+ ["right 80u1 bottom", "right 80u1 top 100%"],
+ ["right 80% top", "20% 0%"],
+ ["right 80u1 top", "right 80u1 top 0%"],
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ ["left 50% top 50%", "50% 50%"],
+ ["left 50% top 50u1", "50% 50u1"],
+ ["left 50% bottom 70%", "50% 30%"],
+ ["left 50% bottom 70u1", "left 50% bottom 70u1"],
+ ["left 50u1 top 50%", "50u1 50%"],
+ ["left 50u1 top 50u1", "50u1 50u1"],
+ ["left 50u1 bottom 70%", "50u1 30%"],
+ ["left 50u1 bottom 70u1", "left 50u1 bottom 70u1"],
+
+ ["top 50% left 50%", "50% 50%"],
+ ["top 50% left 50u1", "50u1 50%"],
+ ["top 50% right 80%", "20% 50%"],
+ ["top 50% right 80u1", "right 80u1 top 50%"],
+ ["top 50u1 left 50%", "50% 50u1"],
+ ["top 50u1 left 50u1", "50u1 50u1"],
+ ["top 50u1 right 80%", "20% 50u1"],
+ ["top 50u1 right 80u1", "right 80u1 top 50u1"],
+
+ ["bottom 70% left 50%", "50% 30%"],
+ ["bottom 70% left 50u1", "50u1 30%"],
+ ["bottom 70% right 80%", "20% 30%"],
+ ["bottom 70% right 80u1", "right 80u1 top 30%"],
+ ["bottom 70u1 left 50%", "left 50% bottom 70u1"],
+ ["bottom 70u1 left 50u1", "left 50u1 bottom 70u1"],
+ ["bottom 70u1 right 80%", "left 20% bottom 70u1"],
+ ["bottom 70u1 right 80u1", "right 80u1 bottom 70u1"],
+
+ ["right 80% top 50%", "20% 50%"],
+ ["right 80% top 50u1", "20% 50u1"],
+ ["right 80% bottom 70%", "20% 30%"],
+ ["right 80% bottom 70u1", "left 20% bottom 70u1"],
+ ["right 80u1 top 50%", "right 80u1 top 50%"],
+ ["right 80u1 top 50u1", "right 80u1 top 50u1"],
+ ["right 80u1 bottom 70%", "right 80u1 top 30%"],
+ ["right 80u1 bottom 70u1", "right 80u1 bottom 70u1"],
+];
+
+var invalidPositions = [
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ "50% left",
+ "50px left",
+ "top 50%",
+ "80% right",
+ "80px right",
+ "bottom 70%",
+ "bottom 70px",
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ "center center 60%",
+ "center center 60px",
+
+ "left center 60%",
+ "left center 60px",
+ "left right 80%",
+ "left right 80px",
+ "left left 50%",
+ "left left 50px",
+
+ "top center 60%",
+ "top center 60px",
+ "top bottom 80%",
+ "top bottom 80px",
+ "top top 50%",
+ "top top 50px",
+
+ "bottom center 60%",
+ "bottom center 60px",
+ "bottom top 50%",
+ "bottom top 50px",
+ "bottom bottom 50%",
+ "bottom bottom 50px",
+
+ "right center 60%",
+ "right center 60px",
+ "right left 50%",
+ "right left 50px",
+ "right right 70%",
+ "right right 70px",
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ "center 60% top",
+ "center 60px top",
+ "center 60% bottom",
+ "center 60px bottom",
+ "center 60% left",
+ "center 60px left",
+ "center 60% right",
+ "center 60px right",
+ "center 60% center",
+ "center 60px center",
+
+ "left 50% right",
+ "left 50px right",
+ "left 50% left",
+ "left 50px left",
+
+ "top 50% bottom",
+ "top 50px bottom",
+ "top 50% top",
+ "top 50px top",
+
+ "bottom 70% top",
+ "bottom 70px top",
+ "bottom 70% bottom",
+ "bottom 70px bottom",
+
+ "right 80% left",
+ "right 80px left",
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ "center 60% top 50%",
+ "center 60% top 50px",
+ "center 60% bottom 70%",
+ "center 60% bottom 70px",
+ "center 60% left 50%",
+ "center 60% left 50px",
+ "center 60% right 70%",
+ "center 60% right 70px",
+ "center 60% center 65%",
+ "center 60% center 65px",
+ "center 60px top 50%",
+ "center 60px top 50px",
+ "center 60px bottom 70%",
+ "center 60px bottom 70px",
+ "center 60px left 50%",
+ "center 60px left 50px",
+ "center 60px right 70%",
+ "center 60px right 70px",
+ "center 60px center 65%",
+ "center 60px center 65px",
+
+ "left 50% center 60%",
+ "left 50% center 60px",
+ "left 50% right 80%",
+ "left 50% right 80px",
+ "left 50% left 50%",
+ "left 50% left 50px",
+ "left 50px center 60%",
+ "left 50px center 60px",
+ "left 50px right 80%",
+ "left 50px right 80px",
+ "left 50px left 50%",
+ "left 50px left 50px",
+
+ "top 50% center 60%",
+ "top 50% center 60px",
+ "top 50% bottom 50%",
+ "top 50% bottom 50px",
+ "top 50% top 50%",
+ "top 50% top 50px",
+ "top 50px center 60%",
+ "top 50px center 60px",
+ "top 50px bottom 70%",
+ "top 50px bottom 70px",
+ "top 50px top 50%",
+ "top 50px top 50px",
+
+ "bottom 70% center 60%",
+ "bottom 70% center 60px",
+ "bottom 70% top 50%",
+ "bottom 70% top 50px",
+ "bottom 70% bottom 50%",
+ "bottom 70% bottom 50px",
+ "bottom 70px center 60%",
+ "bottom 70px center 60px",
+ "bottom 70px top 50%",
+ "bottom 70px top 50px",
+ "bottom 70px bottom 50%",
+ "bottom 70px bottom 50px",
+
+ "right 80% center 60%",
+ "right 80% center 60px",
+ "right 80% left 50%",
+ "right 80% left 50px",
+ "right 80% right 85%",
+ "right 80% right 85px",
+ "right 80px center 60%",
+ "right 80px center 60px",
+ "right 80px left 50%",
+ "right 80px left 50px",
+ "right 80px right 85%",
+ "right 80px right 85px"
+];
+
+// valid radii values for circle + ellipse
+// [value, expected_inline, [expected_computed?]]
+var validCircleRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%']
+]
+var validEllipseRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%', 'farthest-side at 50% 50%'],
+ ['50u1 100u1', '50u1 100u1 at 50% 50%'],
+ ['100u1 100px', '100u1 100px at 50% 50%'],
+ ['25% 50%', '25% 50% at 50% 50%'],
+ ['50u1 25%', '50u1 25% at 50% 50%'],
+ ['25% 50u1', '25% 50u1 at 50% 50%'],
+ ['25% closest-side', '25% at 50% 50%'],
+ ['25u1 closest-side', '25u1 at 50% 50%'],
+ ['closest-side 75%', 'closest-side 75% at 50% 50%'],
+ ['closest-side 75u1', 'closest-side 75u1 at 50% 50%'],
+ ['25% farthest-side', '25% farthest-side at 50% 50%'],
+ ['25u1 farthest-side', '25u1 farthest-side at 50% 50%'],
+ ['farthest-side 75%', 'farthest-side 75% at 50% 50%'],
+ ['farthest-side 75u1', 'farthest-side 75u1 at 50% 50%'],
+ ['closest-side closest-side', 'at 50% 50%'],
+ ['farthest-side farthest-side', 'farthest-side farthest-side at 50% 50%'],
+ ['closest-side farthest-side', 'closest-side farthest-side at 50% 50%'],
+ ['farthest-side closest-side', 'farthest-side at 50% 50%']
+]
+
+var validInsets = [
+ ["One arg - u1", "10u1"],
+ ["One arg - u2", "10u2"],
+ ["Two args - u1 u1", "10u1 20u1"],
+ ["Two args - u1 u2", "10u1 20u2"],
+ ["Two args - u2 u1", "10u2 20u1"],
+ ["Two args - u2 u2", "10u2 20u2"],
+ ["Three args - u1 u1 u1", "10u1 20u1 30u1"],
+ ["Three args - u1 u1 u2", "10u1 20u1 30u2"],
+ ["Three args - u1 u2 u1", "10u1 20u2 30u1"],
+ ["Three args - u1 u2 u2 ", "10u1 20u2 30u2"],
+ ["Three args - u2 u1 u1", "10u2 20u1 30u1"],
+ ["Three args - u2 u1 u2 ", "10u2 20u1 30u2"],
+ ["Three args - u2 u2 u1 ", "10u2 20u2 30u1"],
+ ["Three args - u2 u2 u2 ","10u2 20u2 30u2"],
+ ["Four args - u1 u1 u1 u1", "10u1 20u1 30u1 40u1"],
+ ["Four args - u1 u1 u1 u2", "10u1 20u1 30u1 40u2"],
+ ["Four args - u1 u1 u2 u1", "10u1 20u1 30u2 40u1"],
+ ["Four args - u1 u1 u2 u2", "10u1 20u1 30u2 40u2"],
+ ["Four args - u1 u2 u1 u1", "10u1 20u2 30u1 40u1"],
+ ["Four args - u1 u2 u1 u2", "10u1 20u2 30u1 40u2"],
+ ["Four args - u1 u2 u2 u1", "10u1 20u2 30u2 40u1"],
+ ["Four args - u1 u2 u2 u2", "10u1 20u2 30u2 40u2"],
+ ["Four args - u2 u1 u1 u1", "10u2 20u1 30u1 40u1"],
+ ["Four args - u2 u1 u1 u2", "10u2 20u1 30u1 40u2"],
+ ["Four args - u2 u1 u2 u1", "10u2 20u1 30u2 40u1"],
+ ["Four args - u2 u1 u2 u2", "10u2 20u1 30u2 40u2"],
+ ["Four args - u2 u2 u1 u1", "10u2 20u2 30u1 40u1"],
+ ["Four args - u2 u2 u1 u2", "10u2 20u2 30u1 40u2"],
+ ["Four args - u2 u2 u2 u1", "10u2 20u2 30u2 40u1"],
+ ["Four args - u2 u2 u2 u2", "10u2 20u2 30u2 40u2"]
+]
+
+var validPolygons = [
+ ["One vertex - u1 u1", "10u1 20u1"],
+ ["One vertex - u1 u2", "10u1 20u2"],
+ ["Two vertices - u1 u1, u1 u1", "10u1 20u1, 30u1 40u1"],
+ ["Two vertices - u1 u1, u2 u2", "10u1 20u1, 30u2 40u2"],
+ ["Two vertices - u2 u2, u1 u1", "10u2 20u2, 30u1 40u1"],
+ ["Two vertices - u1 u2, u2 u1", "10u1 20u2, 30u2 40u1"],
+ ["Three vertices - u1 u1, u1 u1, u1 u1", "10u1 20u1, 30u1 40u1, 50u1 60u1"],
+ ["Three vertices - u2 u2, u2 u2, u2 u2", "10u2 20u2, 30u2 40u2, 50u2 60u2"],
+ ["Three vertices - u3 u3, u3 u3, u3 u3", "10u3 20u3, 30u3 40u3, 50u3 60u3"],
+ ["Three vertices - u1 u1, u2 u2, u3 u3", "10u1 20u1, 30u2 40u2, 50u3 60u3"],
+ ["Three vertices - u3 u3, u1, u1, u2 u2", "10u3 20u3, 30u1 40u1, 50u2 60u2"],
+]
+
+// [test value, expected property value, expected computed style]
+var calcTestValues = [
+ ["calc(10in)", "calc(10in)", "960px"],
+ ["calc(10in + 20px)", "calc(980px)", "980px"],
+ ["calc(30%)", "calc(30%)", "30%"],
+ ["calc(100%/4)", "calc(25%)", "25%"],
+ ["calc(25%*3)", "calc(75%)", "75%"],
+ // These following two test cases represent an either/or situation in the spec
+ // computed value is always supposed to be, at most, a tuple of a length and a percentage.
+ // the computed value of a ‘calc()’ expression can be represented as either a number or a tuple
+ // of a dimension and a percentage.
+ // http://www.w3.org/TR/css3-values/#calc-notation
+ ["calc(25%*3 - 10in)", "calc(75% - 10in)", ["calc(75% - 960px)", "calc(-960px + 75%)"]],
+ ["calc((12.5%*6 + 10in) / 4)", "calc((75% + 10in) / 4)", ["calc((75% + 960px) / 4)", "calc(240px + 18.75%)"]]
+]
+
+return {
+ testInlineStyle: testInlineStyle,
+ testComputedStyle: testComputedStyle,
+ testShapeMarginInlineStyle: testShapeMarginInlineStyle,
+ testShapeMarginComputedStyle: testShapeMarginComputedStyle,
+ testShapeThresholdInlineStyle: testShapeThresholdInlineStyle,
+ testShapeThresholdComputedStyle: testShapeThresholdComputedStyle,
+ buildTestCases: buildTestCases,
+ buildRadiiTests: buildRadiiTests,
+ buildPositionTests: buildPositionTests,
+ buildInsetTests: buildInsetTests,
+ buildPolygonTests: buildPolygonTests,
+ generateInsetRoundCases: generateInsetRoundCases,
+ buildCalcTests: buildCalcTests,
+ validUnits: validUnits,
+ calcTestValues: calcTestValues,
+ roundResultStr: roundResultStr
+}
+})();
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-gg-gr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..091de70bb72
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..6fcfeb4883e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..db8ed5cf7bd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-tr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/properties.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/properties.js
new file mode 100644
index 00000000000..ddecfb6e336
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/properties.js
@@ -0,0 +1,449 @@
+(function(root){
+
+/*
+ * General Value Types definition
+ * they return an object of arrays of type { <name>: [<start-value>, <end-value>], ... }
+ */
+var values = {
+ 'length' : function() {
+ // http://www.w3.org/TR/css3-values/#lengths
+ return {
+ // CSS Values and Module Level 3
+ // ch: ['1ch', '10ch'],
+ // rem: ['1rem', '10rem'],
+ // vw: ['1vw', '10vw'],
+ // vh: ['1vh', '10vh'],
+ // vmin: ['1vmin', '10vmin'],
+ // vmax: ['1vmax', '10vmax'],
+ // CSS Values and Module Level 2
+ pt: ['1pt', '10pt'],
+ pc: ['1pc', '10pc'],
+ px: ['1px', '10px'],
+ // CSS Values and Module Level 1
+ em: ['1em', '10em'],
+ ex: ['1ex', '10ex'],
+ mm: ['1mm', '10mm'],
+ cm: ['1cm', '10cm'],
+ 'in': ['1in', '10in']
+ };
+ },
+ 'length-em': function() {
+ return {
+ em: ['1.1em', '1.5em']
+ };
+ },
+ 'percentage': function() {
+ // http://www.w3.org/TR/css3-values/#percentages
+ return {
+ '%': ['33%', '80%']
+ };
+ },
+ 'color': function() {
+ // http://www.w3.org/TR/css3-values/#colors
+ // http://www.w3.org/TR/css3-color/
+ return {
+ rgba: ['rgba(100,100,100,1)', 'rgba(10,10,10,0.4)']
+ };
+ },
+ 'rectangle': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#value-def-shape
+ return {
+ rectangle: ['rect(10px,10px,10px,10px)', 'rect(15px,15px,5px,5px)']
+ };
+ },
+ 'font-weight': function() {
+ // http://www.w3.org/TR/css3-fonts/#font-weight-prop
+ return {
+ keyword: ["normal", "bold"],
+ numeric: ["100", "900"]
+ };
+ },
+ 'number': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ return {
+ integer: ["1", "10"],
+ decimal: ["1.1", "9.55"]
+ };
+ },
+ 'number[0,1]': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ // applies to [0,1]-ranged properties like opacity
+ return {
+ "zero-to-one": ["0.2", "0.9"]
+ };
+ },
+ 'integer': function() {
+ // http://www.w3.org/TR/css3-values/#integer
+ return {
+ integer: ["1", "10"]
+ };
+ },
+ 'shadow': function() {
+ // http://www.w3.org/TR/css-text-decor-3/#text-shadow-property
+ return {
+ shadow: ['rgba(0,0,0,0.1) 5px 6px 7px', 'rgba(10,10,10,0.9) 5px 6px 7px']
+ };
+ },
+ 'visibility': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#visibility
+ return {
+ keyword: ['visible', 'hidden', {discrete: true}]
+ };
+ },
+ 'auto': function(property) {
+ var types = properties[property] || unspecified_properties[property];
+ var val = values[types[0]](property);
+ var key = Object.keys(val).shift();
+ return {
+ to: [val[key][1], 'auto'],
+ from: ['auto', val[key][1]]
+ };
+ },
+ // types reqired for non-specified properties
+ 'border-radius': function() {
+ return {
+ px: ['1px', '10px'],
+ "px-px": ['1px 3px', '10px 13px']
+ };
+ },
+ 'image' : function() {
+ var prefix = getValueVendorPrefix('background-image', 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)');
+ return {
+ // Chrome implements this
+ url: ['url(support/one.gif)', 'url(support/two.gif)'],
+ data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
+ // A hunch, as from the spec:
+ // http://www.w3.org/TR/css3-transitions/#animatable-types
+ // gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
+ gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
+ };
+ },
+ 'background-size': function() {
+ return {
+ keyword: ['cover', 'contain']
+ };
+ },
+ 'box-shadow': function() {
+ // http://www.w3.org/TR/css3-background/#ltshadowgt
+ return {
+ shadow: ['60px -16px teal', '60px -16px red']
+ };
+ },
+ 'vertical': function() {
+ return {
+ keyword: ['top', 'bottom']
+ };
+ },
+ 'horizontal': function() {
+ return {
+ keyword: ['left', 'right']
+ };
+ },
+ 'font-stretch': function() {
+ return {
+ keyword: ['condensed', 'expanded']
+ };
+ },
+ 'transform': function() {
+ return {
+ rotate: ['rotate(10deg)', 'rotate(20deg)']
+ };
+ },
+ 'position': function() {
+ return {
+ 'static to absolute': ['static', 'absolute', {discrete: true}],
+ 'relative to absolute': ['relative', 'absolute', {discrete: true}],
+ 'absolute to fixed': ['absolute', 'fixed', {discrete: true}]
+ };
+ },
+ 'display': function() {
+ return {
+ 'static to absolute': ['none', 'block', {discrete: true}],
+ 'block to inline-block': ['block', 'inline-block', {discrete: true}]
+ };
+ }
+};
+
+/*
+ * Property to Type table
+ * (as stated in specification)
+ */
+var properties = {
+ 'background-color': ['color'],
+ 'background-position': ['length', 'percentage'],
+
+ 'border-top-width': ['length'],
+ 'border-right-width': ['length'],
+ 'border-bottom-width': ['length'],
+ 'border-left-width': ['length'],
+
+ 'border-top-color': ['color'],
+ 'border-right-color': ['color'],
+ 'border-bottom-color': ['color'],
+ 'border-left-color': ['color'],
+
+ 'padding-bottom': ['length'],
+ 'padding-left': ['length'],
+ 'padding-right': ['length'],
+ 'padding-top': ['length'],
+
+ 'margin-bottom': ['length'],
+ 'margin-left': ['length'],
+ 'margin-right': ['length'],
+ 'margin-top': ['length'],
+
+ 'height': ['length', 'percentage'],
+ 'width': ['length', 'percentage'],
+ 'min-height': ['length', 'percentage'],
+ 'min-width': ['length', 'percentage'],
+ 'max-height': ['length', 'percentage'],
+ 'max-width': ['length', 'percentage'],
+
+ 'top': ['length', 'percentage'],
+ 'right': ['length', 'percentage'],
+ 'bottom': ['length', 'percentage'],
+ 'left': ['length', 'percentage'],
+
+ 'color': ['color'],
+ 'font-size': ['length', 'percentage'],
+ 'font-weight': ['font-weight'],
+ 'line-height': ['number', 'length', 'percentage'],
+ 'letter-spacing': ['length'],
+ // Note: percentage is Level3 and not implemented anywhere yet
+ // https://drafts.csswg.org/css3-text/#word-spacing
+ 'word-spacing': ['length', 'percentage'],
+ 'text-indent': ['length', 'percentage'],
+ 'text-shadow': ['shadow'],
+
+ 'outline-color': ['color'],
+ // outline-offset <integer> used to be an error in the spec
+ 'outline-offset': ['length'],
+ 'outline-width': ['length'],
+
+ 'clip': ['rectangle'],
+ // Note: doesn't seem implemented anywhere
+ 'crop': ['rectangle'],
+
+ 'vertical-align': ['length', 'percentage'],
+ 'opacity': ['number[0,1]'],
+ 'visibility': ['visibility'],
+ 'z-index': ['integer']
+};
+
+/*
+ * Property to auto-value mapping
+ * (lazily taken from http://www.siliconbaytraining.com/pages/csspv.html)
+ */
+var properties_auto = [
+ 'margin-top',
+ 'margin-right',
+ 'margin-bottom',
+ 'margin-left',
+ 'height',
+ 'width',
+ 'clip',
+ 'marker-offset',
+ 'top',
+ 'right',
+ 'left',
+ 'bottom',
+ 'z-index'
+];
+
+/*
+ * Property to Type table
+ * (missing value-types of specified properties)
+ */
+var missing_properties = {
+ 'margin-bottom': ['percentage'],
+ 'margin-left': ['percentage'],
+ 'margin-right': ['percentage'],
+ 'margin-top': ['percentage'],
+ 'padding-bottom': ['percentage'],
+ 'padding-left': ['percentage'],
+ 'padding-right': ['percentage'],
+ 'padding-top': ['percentage'],
+ 'vertical-align': ['vertical']
+};
+
+/*
+ * Property to Type table
+ * (properties that haven't been specified but implemented)
+ */
+var unspecified_properties = {
+ // http://oli.jp/2010/css-animatable-properties/
+ 'border-top-left-radius': ['border-radius'],
+ 'border-top-right-radius': ['border-radius'],
+ 'border-bottom-left-radius': ['border-radius'],
+ 'border-bottom-right-radius': ['border-radius'],
+ 'background-image': ['image'],
+ 'background-size': ['background-size'],
+ // https://drafts.csswg.org/css3-background/#the-box-shadow
+ // Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from ‘0 0 transparent’ or ‘0 0 transparent inset’, as appropriate.)
+ 'box-shadow': ['box-shadow'],
+ 'font-size-adjust': ['number'],
+ 'font-stretch': ['font-stretch'],
+ 'marker-offset': ['length'],
+ 'text-decoration-color': ['color'],
+ 'column-count': ['integer'],
+ 'column-gap': ['length'],
+ 'column-rule-color': ['color'],
+ 'column-rule-width': ['length'],
+ 'column-width': ['length'],
+ 'transform': ['transform'],
+ 'transform-origin': ['horizontal'],
+ 'zoom': ['number'],
+ 'outline-radius-topleft': ['length', 'percentage'],
+ 'outline-radius-topright': ['length', 'percentage'],
+ 'outline-radius-bottomright': ['length', 'percentage'],
+ 'outline-radius-bottomleft': ['length', 'percentage'],
+ 'display': ['display'],
+ 'position': ['position']
+};
+
+/*
+ * additional styles required to actually render
+ * (different browsers expect different environment)
+ */
+var additional_styles = {
+ // all browsers
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'top': {'position': 'absolute'},
+ 'right': {'position': 'absolute'},
+ 'bottom': {'position': 'absolute'},
+ 'left': {'position': 'absolute'},
+ 'z-index': {'position': 'absolute'},
+ 'outline-offset': {'outline-style': 'solid'},
+ 'outline-width': {'outline-style': 'solid'},
+ 'word-spacing': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'column-rule-width': {'column-rule-style': 'solid'},
+ 'position': {'width': '50px', 'height': '50px', top: '10px', left: '50px'}
+};
+
+/*
+ * additional styles required *on the parent* to actually render
+ * (different browsers expect different environment)
+ */
+var parent_styles = {
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'height': {'width': '100px', 'height': '100px'},
+ 'min-height': {'width': '100px', 'height': '100px'},
+ 'max-height': {'width': '100px', 'height': '100px'},
+ 'width': {'width': '100px', 'height': '100px'},
+ 'min-width': {'width': '100px', 'height': '100px'},
+ 'max-width': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
+ // inheritance tests
+ 'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
+};
+
+
+function assemble(props) {
+ var tests = [];
+
+ // assemble tests
+ for (var property in props) {
+ props[property].forEach(function(type) {
+ var _values = values[type](property);
+ Object.keys(_values).forEach(function(unit) {
+ var data = {
+ name: property + ' ' + type + '(' + unit + ')',
+ property: property,
+ valueType : type,
+ unit : unit,
+ parentStyle: extend({}, parent_styles[property] || {}),
+ from: extend({}, additional_styles[property] || {}),
+ to: {}
+ };
+
+ data.from[property] = _values[unit][0];
+ data.to[property] = _values[unit][1];
+ data.flags = _values[unit][2] || {};
+
+ tests.push(data);
+ });
+ });
+ }
+
+ return tests;
+}
+
+root.getPropertyTests = function() {
+ return assemble(properties);
+};
+
+root.getMissingPropertyTests = function() {
+ return assemble(missing_properties);
+};
+
+root.getUnspecifiedPropertyTests = function() {
+ return assemble(unspecified_properties);
+};
+
+root.getFontSizeRelativePropertyTests = function() {
+ var accepted = {};
+
+ for (var key in properties) {
+ if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
+ continue;
+ }
+
+ if (properties[key].indexOf('length') > -1) {
+ accepted[key] = ['length-em'];
+ }
+ }
+
+ return assemble(accepted);
+};
+
+root.getAutoPropertyTests = function() {
+ var accepted = {};
+
+ for (var i = 0, key; key = properties_auto[i]; i++) {
+ accepted[key] = ['auto'];
+ }
+
+ return assemble(accepted);
+};
+
+root.filterPropertyTests = function(tests, names) {
+ var allowed = {};
+ var accepted = [];
+
+ if (typeof names === "string") {
+ names = [names];
+ }
+
+ if (!(names instanceof RegExp)) {
+ names.forEach(function(name) {
+ allowed[name] = true;
+ });
+ }
+
+ tests.forEach(function(test) {
+ if (names instanceof RegExp) {
+ if (!test.name.match(names)) {
+ return;
+ }
+ } else if (!allowed[test.name]) {
+ return;
+ }
+
+ accepted.push(test);
+ });
+
+ return accepted;
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/red20x20.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/red20x20.png
new file mode 100644
index 00000000000..5d44ef210e1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/red20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-body.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-body.html
new file mode 100644
index 00000000000..78038fd28ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-body.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+ <script src="util.js" type="text/javascript"></script>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region">
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-container.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-container.html
new file mode 100644
index 00000000000..219fce6503c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/region-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region">
+ </div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50%.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-100px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-50px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/runParallelAsyncHarness.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/runParallelAsyncHarness.js
new file mode 100644
index 00000000000..460f467930e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/runParallelAsyncHarness.js
@@ -0,0 +1,145 @@
+(function(root){
+'use strict';
+// testharness doesn't know about async test queues,
+// so this wrapper takes care of that
+
+/* USAGE:
+ runParallelAsyncHarness({
+ // list of data to test, must be array of objects.
+ // each object must contain a "name" property to describe the test
+ // besides name, the object can contain whatever data you need
+ tests: [
+ {name: "name of test 1", custom: "data"},
+ {name: "name of test 2", custom: "data"},
+ // ...
+ ],
+
+ // number of tests (tests, not test-cases!) to run concurrently
+ testsPerSlice: 100,
+
+ // time in milliseconds a test-run takes
+ duration: 1000,
+
+ // test-cases to run for for the test - there must be at least one
+ // each case creates its separate async_test() instance
+ cases: {
+ // test case named "test1"
+ test1: {
+ // run as a async_test.step() this callback contains your primary assertions
+ start: function(testCaseKey, data, options){},
+ // run as a async_test.step() this callback contains assertions to be run
+ // when the test ended, immediately before teardown
+ done: function(testCaseKey, data, options){}
+ },
+ // ...
+ }
+
+ // all callbacks are optional:
+
+ // invoked for individual test before it starts so you can setup the environment
+ // like DOM, CSS, adding event listeners and such
+ setup: function(data, options){},
+
+ // invoked after a test ended, so you can clean up the environment
+ // like DOM, CSS, removing event listeners and such
+ teardown: function(data, options){},
+
+ // invoked before a batch of tests ("slice") are run concurrently
+ // tests is an array of test data objects
+ sliceStart: function(options, tests)
+
+ // invoked after a batch of tests ("slice") were run concurrently
+ // tests is an array of test data objects
+ sliceDone: function(options, tests)
+
+ // invoked once all tests are done
+ done: function(options){}
+ })
+*/
+root.runParallelAsyncHarness = function(options) {
+ if (!options.cases) {
+ throw new Error("Options don't contain test cases!");
+ }
+
+ var noop = function(){};
+
+ // add a 100ms buffer to the test timeout, just in case
+ var duration = Math.ceil(options.duration + 100);
+
+ // names of individual tests
+ var cases = Object.keys(options.cases);
+
+ // run tests in a batch of slices
+ // primarily not to overload weak devices (tablets, phones, …)
+ // with too many tests running simultaneously
+ var iteration = -1;
+ var testPerSlice = options.testsPerSlice || 100;
+ var slices = Math.ceil(options.tests.length / testPerSlice);
+
+ // initialize all async test cases
+ // Note: satisfying testharness.js needs to know all async tests before load-event
+ options.tests.forEach(function(data, index) {
+ data.cases = {};
+ cases.forEach(function(name) {
+ data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
+ });
+ });
+
+ function runLoop() {
+ iteration++;
+ if (iteration >= slices) {
+ // no more slice, we're done
+ (options.done || noop)(options);
+ return;
+ }
+
+ // grab a slice of testss and initialize them
+ var offset = iteration * testPerSlice;
+ var tests = options.tests.slice(offset, offset + testPerSlice);
+ tests.forEach(function(data) {
+ (options.setup || noop)(data, options);
+
+ });
+
+ // kick off the current slice of tests
+ (options.sliceStart || noop)(options, tests);
+
+ // perform individual "start" test-case
+ tests.forEach(function(data) {
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].start || noop)(data.cases[name], data, options);
+ });
+ });
+ });
+
+ // conclude test (possibly abort)
+ setTimeout(function() {
+ tests.forEach(function(data) {
+ // perform individual "done" test-case
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].done || noop)(data.cases[name], data, options);
+ });
+ });
+ // clean up after individual test
+ (options.teardown || noop)(data, options);
+ // tell harness we're done with individual test-cases
+ cases.forEach(function(name) {
+ data.cases[name].done();
+ });
+ });
+
+ // finish the test for current slice of tests
+ (options.sliceDone || noop)(options, tests);
+
+ // next test please, give the browser 50ms to do catch its breath
+ setTimeout(runLoop, 50);
+ }, duration);
+ }
+
+ // allow DOMContentLoaded before actually doing something
+ setTimeout(runLoop, 100);
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-purple.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-teal.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-blue.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-gray.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-gray.png
new file mode 100644
index 00000000000..92c73561f3a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-gray.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-lime.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-navy.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-navy.png
new file mode 100644
index 00000000000..28dae8a3e12
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-orange.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-pink.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-pink.png
new file mode 100644
index 00000000000..95b84499a3d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-pink.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-purple.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-purple.png
new file mode 100644
index 00000000000..73bea775175
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-teal.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-yellow.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-bl.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-br.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-inner-half-size.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-outer.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tl.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two-regions-in-container.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two-regions-in-container.html
new file mode 100644
index 00000000000..2fc65261da0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two-regions-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region1, #region2 {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region1"></div>
+ <div id="region2"></div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two.gif b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two.gif
new file mode 100644
index 00000000000..01435c80209
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/two.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/util.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/util.js
new file mode 100644
index 00000000000..a7ce4283e45
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/util.js
@@ -0,0 +1,29 @@
+function resizeViewportTo(viewportSelector, width, height) {
+ var iframe = document.querySelector(viewportSelector);
+ // Commonly used trick to trigger a layout
+ iframe.contentWindow.document.body.offsetTop;
+
+ iframe.width = width;
+ iframe.height = height;
+
+ iframe.contentWindow.document.body.offsetTop;
+}
+
+function injectStylesInIFrame(styleSelector, frameSelector) {
+ var style = document.querySelector(styleSelector),
+ frame = document.querySelector(frameSelector);
+
+ frame.contentWindow.addNewStyles(style.textContent);
+}
+
+
+if (window.parent != window) {
+ // we're in an iframe, so expose the bits that allow setting styles inside
+ window.addNewStyles = function (cssText) {
+ var styleTag = document.createElement("style"),
+ textNode = document.createTextNode(cssText);
+
+ styleTag.appendChild(textNode);
+ document.head.appendChild(styleTag);
+ }
+} \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/vendorPrefix.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/vendorPrefix.js
new file mode 100644
index 00000000000..6cf3c5a3783
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/support/vendorPrefix.js
@@ -0,0 +1,86 @@
+//
+// Vendor-Prefix Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+var prefixCache = {};
+
+// convert "foo-bar" to "fooBar"
+function camelCase(str) {
+ return str.replace(/\-(\w)/g, function(match, letter){
+ return letter.toUpperCase();
+ });
+}
+
+// vendor-prefix a css property
+root.addVendorPrefix = function (name) {
+ var prefix = getVendorPrefix(name);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + name;
+};
+
+// vendor-prefix a css property value
+root.addValueVendorPrefix = function (property, value) {
+ var prefix = getValueVendorPrefix(property, value);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + value;
+};
+
+// identify vendor-prefix for css property
+root.getVendorPrefix = function(name) {
+ if (prefixCache[name] !== undefined) {
+ return prefixCache[name];
+ }
+
+ var elem = document.createElement("div");
+ name = camelCase(name);
+
+ if (name in elem.style) {
+ return prefixCache[name] = "";
+ }
+
+ var prefixes = ["Webkit", "Moz", "O", "ms"];
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-"];
+ var _name = name.substring(0, 1).toUpperCase() + name.substring(1);
+
+ for (var i = 0, length = prefixes.length; i < length; i++) {
+ if (prefixes[i] + _name in elem.style) {
+ return prefixCache[name] = styles[i];
+ }
+ }
+
+ return prefixCache[name] = name in elem.style ? "" : false;
+};
+
+// identify vendor-prefix for css property value
+root.getValueVendorPrefix = function(property, value) {
+ var elem = document.createElement("div");
+ // note: webkit needs the element to be attached to the dom
+ document.body.appendChild(elem);
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-", ""];
+ var _property = getVendorPrefix(property) + property;
+ for (var i=0, length = styles.length; i < length; i++) {
+ var _value = styles[i] + value;
+ elem.setAttribute('style', _property + ": " + _value);
+ var _computed = computedStyle(elem, _property);
+ if (_computed && _computed !== 'none') {
+ document.body.removeChild(elem);
+ return styles[i];
+ }
+ }
+ document.body.removeChild(elem);
+ return false;
+};
+
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht
new file mode 100644
index 00000000000..ebe18dae540
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Reference File</title>
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon" />
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ #frameTest { width: 600px; height: 200px; border: 1px solid #000; }
+
+ </style>
+
+ <script type="text/javascript">
+ var height = 200;
+
+ function resizeReference() {
+
+ var frameTest = document.getElementById('frameTest');
+
+ // let's resize the iframe vertically only, showing that the vh sizes is not updated.
+ if (height &lt;= 300) {
+
+ //frameTest.style.width = height++ + "px";
+ frameTest.style.height = height++ + "px";
+
+ setTimeout(resizeReference, 10);
+
+ } else {
+
+ // uncomment the next line to see how a width resize triggers a layout recalculation
+ //frameTest.style.width = (parseInt(window.getComputedStyle(document.getElementById('frameTest'))['width'], 10) + 1) + "px";
+
+ }
+
+ }
+
+ setTimeout(resizeReference, 10);
+ </script>
+
+</head>
+<body>
+
+<iframe src="vh_not_refreshing_on_chrome_iframe-ref.html" id="frameTest" frameborder="0"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest-toc.xht
new file mode 100644
index 00000000000..81b546e585a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest-toc.xht
@@ -0,0 +1,486 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSS Values and Units Module Level 3 CR Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ <tbody id="calc-background-image-gradient-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-image gradients">
+ <a href="calc-background-image-gradient-1.xht">calc-background-image-gradient-1</a></td>
+ <td><a href="reference/calc-background-image-gradient-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-linear-gradient-1" class="">
+ <tr>
+ <td rowspan="1" title="Support calc() on gradient stop positions">
+ <a href="calc-background-linear-gradient-1.xht">calc-background-linear-gradient-1</a></td>
+ <td><a href="reference/calc-background-linear-gradient-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-position-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-position">
+ <a href="calc-background-position-1.xht">calc-background-position-1</a></td>
+ <td><a href="reference/calc-background-position-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-background-size-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on background-size">
+ <a href="calc-background-size-1.xht">calc-background-size-1</a></td>
+ <td><a href="reference/calc-background-size-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-border-radius-1" class="">
+ <tr>
+ <td rowspan="1" title="test for border-radius: calc()">
+ <a href="calc-border-radius-1.xht">calc-border-radius-1</a></td>
+ <td><a href="reference/calc-border-radius-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for height:calc() on blocks">
+ <a href="calc-height-block-1.xht">calc-height-block-1</a></td>
+ <td><a href="reference/calc-height-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-height-table-1" class="">
+ <tr>
+ <td rowspan="1" title="Test that height:calc() with no percentages has an effect on inner table elements">
+ <a href="calc-height-table-1.xht">calc-height-table-1</a></td>
+ <td><a href="reference/calc-height-table-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-margin-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test of margin-*: calc()">
+ <a href="calc-margin-block-1.xht">calc-margin-block-1</a></td>
+ <td><a href="reference/calc-margin-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for max-height:calc() on blocks">
+ <a href="calc-max-height-block-1.xht">calc-max-height-block-1</a></td>
+ <td><a href="reference/calc-max-height-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="max-width: calc() on blocks">
+ <a href="calc-max-width-block-1.xht">calc-max-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-max-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of max-width: calc() on blocks">
+ <a href="calc-max-width-block-intrinsic-1.xht">calc-max-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-max-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-height-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for min-height:calc() on blocks">
+ <a href="calc-min-height-block-1.xht">calc-min-height-block-1</a></td>
+ <td><a href="reference/calc-height-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="min-width: calc() on blocks">
+ <a href="calc-min-width-block-1.xht">calc-min-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-min-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of min-width: calc() on blocks">
+ <a href="calc-min-width-block-intrinsic-1.xht">calc-min-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-min-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-bottom-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for bottom:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-bottom-1.xht">calc-offsets-absolute-bottom-1</a></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-left-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for left:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-left-1.xht">calc-offsets-absolute-left-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-right-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for right:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-right-1.xht">calc-offsets-absolute-right-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-absolute-top-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for top:calc() on absolutely positioned elements">
+ <a href="calc-offsets-absolute-top-1.xht">calc-offsets-absolute-top-1</a></td>
+ <td><a href="reference/calc-offsets-absolute-top-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-bottom-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for bottom:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-bottom-1.xht">calc-offsets-relative-bottom-1</a></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-left-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for left:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-left-1.xht">calc-offsets-relative-left-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-right-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for right:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-right-1.xht">calc-offsets-relative-right-1</a></td>
+ <td><a href="reference/calc-offsets-relative-left-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-offsets-relative-top-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for top:calc() on relatively positioned elements">
+ <a href="calc-offsets-relative-top-1.xht">calc-offsets-relative-top-1</a></td>
+ <td><a href="reference/calc-offsets-relative-top-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-padding-block-1" class="">
+ <tr>
+ <td rowspan="1" title="Test of padding-*: calc()">
+ <a href="calc-padding-block-1.xht">calc-padding-block-1</a></td>
+ <td><a href="reference/calc-padding-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-text-indent-1" class="">
+ <tr>
+ <td rowspan="1" title="text-indent: calc() on blocks">
+ <a href="calc-text-indent-1.xht">calc-text-indent-1</a></td>
+ <td><a href="reference/calc-text-indent-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-text-indent-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of text-indent: calc() on blocks">
+ <a href="calc-text-indent-intrinsic-1.xht">calc-text-indent-intrinsic-1</a></td>
+ <td><a href="reference/calc-text-indent-intrinsic-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-transform-origin-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for calc() on transform-origin">
+ <a href="calc-transform-origin-1.xht">calc-transform-origin-1</a></td>
+ <td><a href="reference/calc-transform-origin-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-vertical-align-1" class="">
+ <tr>
+ <td rowspan="1" title="Test for vertical-align:calc()">
+ <a href="calc-vertical-align-1.xht">calc-vertical-align-1</a></td>
+ <td><a href="reference/calc-vertical-align-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-block-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on blocks">
+ <a href="calc-width-block-1.xht">calc-width-block-1</a></td>
+ <td><a href="reference/calc-width-block-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-block-intrinsic-1" class="">
+ <tr>
+ <td rowspan="1" title="intrinsic width of width: calc() on blocks">
+ <a href="calc-width-block-intrinsic-1.xht">calc-width-block-intrinsic-1</a></td>
+ <td><a href="reference/calc-width-block-intrinsic-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-table-auto-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on table-layout: auto tables">
+ <a href="calc-width-table-auto-1.xht">calc-width-table-auto-1</a></td>
+ <td><a href="reference/calc-width-table-auto-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="calc-width-table-fixed-1" class="">
+ <tr>
+ <td rowspan="1" title="width: calc() on table-layout: auto tables">
+ <a href="calc-width-table-fixed-1.xht">calc-width-table-fixed-1</a></td>
+ <td><a href="reference/calc-width-table-fixed-1-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="ch-unit-001" class="">
+ <tr>
+ <td rowspan="1" title="support for the ch unit">
+ <a href="ch-unit-001.xht">ch-unit-001</a></td>
+ <td><a href="reference/ch-unit-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="min-width-001" class="">
+ <tr>
+ <td rowspan="1" title="min-width length value approximation">
+ <a href="min-width-001.xht">min-width-001</a></td>
+ <td><a href="ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-001" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-001.xht">multicol-count-non-integer-001</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-002" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-002.xht">multicol-count-non-integer-002</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-count-non-integer-003" class="ahem invalid">
+ <tr>
+ <td rowspan="1" title="non-integer 'column-count' value">
+ <a href="multicol-count-non-integer-003.xht">multicol-count-non-integer-003</a></td>
+ <td><a href="reference/multicol-columns-invalid-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="invalid" title="Tests invalid CSS">Invalid</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-inherit-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="'column-count' and inherit">
+ <a href="multicol-inherit-002.xht">multicol-inherit-002</a></td>
+ <td><a href="reference/multicol-inherit-002-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-rule-color-inherit-001" class="ahem">
+ <tr>
+ <td rowspan="1" title="column-rule-color: inherit">
+ <a href="multicol-rule-color-inherit-001.xht">multicol-rule-color-inherit-001</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="multicol-rule-color-inherit-002" class="ahem">
+ <tr>
+ <td rowspan="1" title="column-rule-color: inherit (complex)">
+ <a href="multicol-rule-color-inherit-002.xht">multicol-rule-color-inherit-002</a></td>
+ <td><a href="reference/multicol-rule-color-inherit-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-003" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing region that is sized using viewport units">
+ <a href="regions-resizing-003.xht">regions-resizing-003</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-007" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing region with percentage size inside a container that has size set in viewport units">
+ <a href="regions-resizing-007.xht">regions-resizing-007</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="regions-resizing-009" class="ahem dom http">
+ <tr>
+ <td rowspan="1" title="CSS Regions: resizing autosized region when content flowed in it is sized with viewport units">
+ <a href="regions-resizing-009.xht">regions-resizing-009</a></td>
+ <td><a href="reference/regions-resizing-001-ref.xht">=</a> </td>
+ <td rowspan="1"><abbr class="ahem" title="Requires Ahem font">Ahem</abbr><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="http" title="Requires HTTP headers">HTTP</abbr></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-calc-support" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are supported inside calc expressions.">
+ <a href="vh-calc-support.xht">vh-calc-support</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-calc-support-pct" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are supported inside calc expressions.">
+ <a href="vh-calc-support-pct.xht">vh-calc-support-pct</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-em-inherit" class="">
+ <tr>
+ <td rowspan="1" title="0vh and 0vw are correctly treated as 0px">
+ <a href="vh-em-inherit.xht">vh-em-inherit</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-inherit" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are inherited properly">
+ <a href="vh-inherit.xht">vh-inherit</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-pct" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-pct.xht">vh-interpolate-pct</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-px" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-px.xht">vh-interpolate-px</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-interpolate-vh" class="">
+ <tr>
+ <td rowspan="1" title="Viewport units are interpolated correctly">
+ <a href="vh-interpolate-vh.xht">vh-interpolate-vh</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in sizing properties">
+ <a href="vh-support.xht">vh-support</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-atviewport" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in @viewport rules">
+ <a href="vh-support-atviewport.xht">vh-support-atviewport</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-margin" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in margin properties">
+ <a href="vh-support-margin.xht">vh-support-margin</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-transform-origin" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in transform properties">
+ <a href="vh-support-transform-origin.xht">vh-support-transform-origin</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-support-transform-translate" class="">
+ <tr>
+ <td rowspan="1" title="Viewports units are supported in transform properties">
+ <a href="vh-support-transform-translate.xht">vh-support-transform-translate</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh-zero-support" class="">
+ <tr>
+ <td rowspan="1" title="0vh and 0vw are correctly treated as 0px">
+ <a href="vh-zero-support.xht">vh-zero-support</a></td>
+ <td><a href="reference/all-green.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh_not_refreshing_on_chrome" class="">
+ <tr>
+ <td rowspan="1" title="vh-based dimension doesn't change when the element's other dimension doesn't change.">
+ <a href="vh_not_refreshing_on_chrome.xht">vh_not_refreshing_on_chrome</a></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ <tbody id="vh_not_refreshing_on_chrome_iframe" class="">
+ <tr>
+ <td rowspan="1" title="vh-based dimension doesn't change when the element other dimension doesn't change.">
+ <a href="vh_not_refreshing_on_chrome_iframe.xht">vh_not_refreshing_on_chrome_iframe</a></td>
+ <td><a href="reference/vh_not_refreshing_on_chrome-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest.list b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest.list
new file mode 100644
index 00000000000..3087d767568
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/reftest.list
@@ -0,0 +1,58 @@
+
+calc-background-image-gradient-1.xht == reference/calc-background-image-gradient-1-ref.xht
+calc-background-linear-gradient-1.xht == reference/calc-background-linear-gradient-1-ref.xht
+calc-background-position-1.xht == reference/calc-background-position-1-ref.xht
+calc-background-size-1.xht == reference/calc-background-size-1-ref.xht
+calc-border-radius-1.xht == reference/calc-border-radius-1-ref.xht
+calc-height-block-1.xht == reference/calc-height-block-1-ref.xht
+calc-height-table-1.xht == reference/calc-height-table-1-ref.xht
+calc-margin-block-1.xht == reference/calc-margin-block-1-ref.xht
+calc-max-height-block-1.xht == reference/calc-max-height-block-1-ref.xht
+calc-max-width-block-1.xht == reference/calc-width-block-1-ref.xht
+calc-max-width-block-intrinsic-1.xht == reference/calc-max-width-block-intrinsic-1-ref.xht
+calc-min-height-block-1.xht == reference/calc-height-block-1-ref.xht
+calc-min-width-block-1.xht == reference/calc-width-block-1-ref.xht
+calc-min-width-block-intrinsic-1.xht == reference/calc-min-width-block-intrinsic-1-ref.xht
+calc-offsets-absolute-bottom-1.xht == reference/calc-offsets-absolute-top-1-ref.xht
+calc-offsets-absolute-left-1.xht == reference/calc-offsets-relative-left-1-ref.xht
+calc-offsets-absolute-right-1.xht == reference/calc-offsets-relative-left-1-ref.xht
+calc-offsets-absolute-top-1.xht == reference/calc-offsets-absolute-top-1-ref.xht
+calc-offsets-relative-bottom-1.xht == reference/calc-offsets-relative-top-1-ref.xht
+calc-offsets-relative-left-1.xht == reference/calc-offsets-relative-left-1-ref.xht
+calc-offsets-relative-right-1.xht == reference/calc-offsets-relative-left-1-ref.xht
+calc-offsets-relative-top-1.xht == reference/calc-offsets-relative-top-1-ref.xht
+calc-padding-block-1.xht == reference/calc-padding-block-1-ref.xht
+calc-text-indent-1.xht == reference/calc-text-indent-1-ref.xht
+calc-text-indent-intrinsic-1.xht == reference/calc-text-indent-intrinsic-1-ref.xht
+calc-transform-origin-1.xht == reference/calc-transform-origin-1-ref.xht
+calc-vertical-align-1.xht == reference/calc-vertical-align-1-ref.xht
+calc-width-block-1.xht == reference/calc-width-block-1-ref.xht
+calc-width-block-intrinsic-1.xht == reference/calc-width-block-intrinsic-1-ref.xht
+calc-width-table-auto-1.xht == reference/calc-width-table-auto-1-ref.xht
+calc-width-table-fixed-1.xht == reference/calc-width-table-fixed-1-ref.xht
+ch-unit-001.xht == reference/ch-unit-001-ref.xht
+min-width-001.xht == ref.xht
+multicol-count-non-integer-001.xht == reference/multicol-columns-invalid-001-ref.xht
+multicol-count-non-integer-002.xht == reference/multicol-columns-invalid-001-ref.xht
+multicol-count-non-integer-003.xht == reference/multicol-columns-invalid-001-ref.xht
+multicol-inherit-002.xht == reference/multicol-inherit-002-ref.xht
+multicol-rule-color-inherit-001.xht == reference/multicol-rule-color-inherit-001-ref.xht
+multicol-rule-color-inherit-002.xht == reference/multicol-rule-color-inherit-001-ref.xht
+regions-resizing-003.xht == reference/regions-resizing-001-ref.xht
+regions-resizing-007.xht == reference/regions-resizing-001-ref.xht
+regions-resizing-009.xht == reference/regions-resizing-001-ref.xht
+vh-calc-support.xht == reference/all-green.xht
+vh-calc-support-pct.xht == reference/all-green.xht
+vh-em-inherit.xht == reference/all-green.xht
+vh-inherit.xht == reference/all-green.xht
+vh-interpolate-pct.xht == reference/all-green.xht
+vh-interpolate-px.xht == reference/all-green.xht
+vh-interpolate-vh.xht == reference/all-green.xht
+vh-support.xht == reference/all-green.xht
+vh-support-atviewport.xht == reference/all-green.xht
+vh-support-margin.xht == reference/all-green.xht
+vh-support-transform-origin.xht == reference/all-green.xht
+vh-support-transform-translate.xht == reference/all-green.xht
+vh-zero-support.xht == reference/all-green.xht
+vh_not_refreshing_on_chrome.xht == reference/vh_not_refreshing_on_chrome-ref.xht
+vh_not_refreshing_on_chrome_iframe.xht == reference/vh_not_refreshing_on_chrome-ref.xht
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-003.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-003.xht
new file mode 100644
index 00000000000..aae2512e97a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-003.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: resizing region that is sized using viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <meta content="dom ahem http" name="flags" />
+ <meta content="Test checks that resizing the viewport of a page containing a region
+ sized using viewport units correctly relayouts the region's contents." name="assert" />
+ <link href="reference/regions-resizing-001-ref.xht" rel="match" />
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ #region {
+ width: 80vw;
+ height: 100vh;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 100, 100);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="400" height="400" frameborder="0" src="support/region-in-body.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-007.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-007.xht
new file mode 100644
index 00000000000..7978fd22f08
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-007.xht
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: resizing region with percentage size inside a container that has size set in viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <meta content="dom ahem http" name="flags" />
+ <meta content="Test checks that resizing the viewport of a page containing a region
+ that has a percentage size relative to a parent sized using viewport units correctly
+ relayouts the region's contents." name="assert" />
+ <link href="reference/regions-resizing-001-ref.xht" rel="match" />
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ html, body {
+ height: 100%;
+ }
+ #region-parent {
+ width: 50vw;
+ height: 80vh;
+ }
+ #region {
+ width: 80%;
+ height: 70%;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 200, 200);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="437" height="143" frameborder="0" src="support/region-in-container.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-009.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-009.xht
new file mode 100644
index 00000000000..d7255bdd971
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/regions-resizing-009.xht
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Regions: resizing autosized region when content flowed in it is sized with viewport units</title>
+ <link href="mailto:mibalan@adobe.com" rel="author" title="Mihai Balan" />
+ <link href="http://www.w3.org/TR/css3-regions/#the-flow-into-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#flow-from" rel="help" />
+ <link href="http://www.w3.org/TR/css3-regions/#regions-visual-formatting-details" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <meta content="dom ahem http" name="flags" />
+ <meta content="Test checks that resizing the viewport of a page containing an
+ autosized region when the content flowed in it is sized with viewport units correctly
+ relayouts the region's contents." name="assert" />
+ <link href="reference/regions-resizing-001-ref.xht" rel="match" />
+ <!-- The <script type="text/css"> below is just a textual container for styles that will be
+ injected in the iframe at load time.-->
+ <script type="text/css" id="test-styles">
+ #content {
+ width: 40vw;
+ height: 40vh;
+ }
+ #region {
+ width: auto;
+ height: auto;
+ }
+ </script>
+ <script src="support/util.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.addEventListener("load", function() {
+ injectStylesInIFrame("#test-styles", "iframe");
+ resizeViewportTo("iframe", 200, 200);
+ })
+ </script>
+ </head>
+ <body>
+ <p>Test passes if you see a green square below and no red.</p>
+ <p>The test also fails if the there's a green block that is <strong>not</strong> a square (e.g. rectangle or polygon).</p>
+ <iframe width="437" height="143" frameborder="0" src="support/region-in-body.html"></iframe>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-002.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-002.xht
new file mode 100644
index 00000000000..c1586399674
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-002.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Circle Valid Positions</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:betravis@adobe.com" rel="author" title="Bear Travis" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="A circle's position argument may be any of the valid combinations:
+ [ percentage|length left|center|right ]
+ or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ]
+ or [ left|center|right ]
+ or [ left|center|right top|center|bottom ]
+ or [ top|center|bottom ]. " name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildPositionTests('circle', true, 'inline', 'px'));
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildPositionTests('circle', true, 'computed', 'px'));
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-004.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-004.xht
new file mode 100644
index 00000000000..2b06df0a4ba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-circle-004.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Circle - Position Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="A circle's position arguments may in any valid &lt;length> unit allowed by a &lt;position> value." name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht
new file mode 100644
index 00000000000..b62861f81de
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Ellipse Valid Positions</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:betravis@adobe.com" rel="author" title="Bear Travis" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="An ellipse's position argument may be any of the valid combinations:
+ [ percentage|length left|center|right ]
+ or [ percentage|length left|center|right ] [ percentage|length top|center|bottom ]
+ or [ left|center|right ]
+ or [ left|center|right top|center|bottom ]
+ or [ top|center|bottom ]. " name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildPositionTests('ellipse', true, 'inline', 'px'));
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildPositionTests('ellipse', true, 'computed', 'px'));
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht
new file mode 100644
index 00000000000..ff027d7deea
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Ellipse - Position Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="An ellipse's position arguments may in any valid &lt;length> unit allowed by a &lt;position> value." name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-inset-003.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-inset-003.xht
new file mode 100644
index 00000000000..80bed79f39e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-inset-003.xht
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Inset Valid Round Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="An inset's radial component's values can be in any length unit" name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ ParsingUtils.validUnits.forEach(function(unit) {
+ generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.generateInsetRoundCases(unit, 'inline'));
+ });
+ ParsingUtils.validUnits.forEach(function(unit) {
+ generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.generateInsetRoundCases(unit, 'computed'));
+ });
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-polygon-004.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-polygon-004.xht
new file mode 100644
index 00000000000..6f94e32b4d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/shape-outside-polygon-004.xht
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Shape Outside Polygon - Argument Length Units</title>
+ <link href="http://html.adobe.com/" rel="author" title="Adobe" />
+ <link href="mailto:rhauck@adobe.com" rel="author" title="Rebecca Hauck" />
+ <link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" /> <!-- 2014-03-04 -->
+ <link href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon" rel="help" />
+ <link href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" />
+ <meta content="A polygon's veritices may in percentage or any valid &lt;length> units." name="assert" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/parsing-utils.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script type="text/javascript">
+ var arg_length_units_tests = [
+ ['%', 'px', 'px'],
+ ['px', '%', 'px'],
+ ['px', 'px', '%'],
+ ['%', '%', '%'],
+ ['em', 'em', 'ex'],
+ ['vw', 'vh', '%'],
+ ['cm', 'mm', 'pc'],
+ ['vmin', 'vmin', 'vmax'],
+ ['rem', 'ch', 'rem'],
+ ['in', 'pt', '%']
+ ];
+ generate_tests( ParsingUtils.testInlineStyle,
+ ParsingUtils.buildPolygonTests(arg_length_units_tests, 'inline') );
+ generate_tests( ParsingUtils.testComputedStyle,
+ ParsingUtils.buildPolygonTests(arg_length_units_tests, 'computed') );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-lime.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-maroon.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-navy.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/2-80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/2-80px-block-ref.html
new file mode 100644
index 00000000000..f616001554c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/2-80px-block-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ .content {
+ margin: 10px;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+ <div class="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-gg-rr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-float-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-float-ref.html
new file mode 100644
index 00000000000..6adeeb6fa99
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-float-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ float: right;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-ref.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-ref.html
new file mode 100644
index 00000000000..2c910e93411
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/80px-block-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #content {
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ </style>
+</head>
+<body>
+ <div id="content">
+ xxxx<br>
+ xxxx<br>
+ xxxx<br>
+ xxxx
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/README b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/a-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/b-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/black20x20.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/black20x20.png
new file mode 100644
index 00000000000..ebf7027ee78
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/black20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/c-red.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/cat.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/generalParallelTest.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/generalParallelTest.js
new file mode 100644
index 00000000000..1a4bf343df0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/generalParallelTest.js
@@ -0,0 +1,231 @@
+(function(root) {
+'use strict';
+//
+var index = 0;
+var suite = root.generalParallelTest = {
+ // prepare individual test
+ setup: function(data, options) {
+ suite._setupDom(data, options);
+ suite._setupEvents(data, options);
+ },
+ // clone fixture and prepare data containers
+ _setupDom: function(data, options) {
+ // clone fixture into off-viewport test-canvas
+ data.fixture = document.getElementById('fixture').cloneNode(true);
+ data.fixture.id = 'test-' + (index++);
+ (document.getElementById('offscreen') || document.body).appendChild(data.fixture);
+
+ // data container for #fixture > .container > .transition
+ data.transition = {
+ node: data.fixture.querySelector('.transition'),
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property);
+ }
+ };
+
+ // data container for #fixture > .container
+ data.container = {
+ node: data.transition.node.parentNode,
+ values: [],
+ events: [],
+ computedStyle: function(property) {
+ return computedStyle(data.container.node, property);
+ }
+ };
+
+ // data container for #fixture > .container > .transition[:before | :after]
+ if (data.pseudo) {
+ data.pseudo = {
+ name: data.pseudo,
+ values: [],
+ computedStyle: function(property) {
+ return computedStyle(data.transition.node, property, ':' + data.pseudo.name);
+ }
+ };
+ }
+ },
+ // bind TransitionEnd event listeners
+ _setupEvents: function(data, options) {
+ ['transition', 'container'].forEach(function(elem) {
+ var handler = function(event) {
+ event.stopPropagation();
+ var name = event.propertyName;
+ var time = Math.round(event.elapsedTime * 1000) / 1000;
+ var pseudo = event.pseudoElement ? (':' + event.pseudoElement) : '';
+ data[elem].events.push(name + pseudo + ":" + time + "s");
+ };
+ data[elem].node.addEventListener('transitionend', handler, false);
+ data[elem]._events = {'transitionend': handler};
+ });
+ },
+ // cleanup after individual test
+ teardown: function(data, options) {
+ // data.fixture.remove();
+ if (data.fixture.parentNode) {
+ data.fixture.parentNode.removeChild(data.fixture);
+ }
+ },
+ // invoked prior to running a slice of tests
+ sliceStart: function(options, tests) {
+ // inject styles into document
+ setStyle(options.styles);
+ // kick off value collection loop
+ generalParallelTest.startValueCollection(options);
+ },
+ // invoked after running a slice of tests
+ sliceDone: function(options, tests) {
+ // stop value collection loop
+ generalParallelTest.stopValueCollection(options);
+ // reset styles cache
+ options.styles = {};
+ },
+ // called once all tests are done
+ done: function(options) {
+ // reset document styles
+ setStyle();
+ reflow();
+ },
+ // add styles of individual test to slice cache
+ addStyles: function(data, options, styles) {
+ if (!options.styles) {
+ options.styles = {};
+ }
+
+ Object.keys(styles).forEach(function(key) {
+ var selector = '#' + data.fixture.id
+ // fixture must become #fixture.fixture rather than a child selector
+ + (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ + key;
+
+ options.styles[selector] = styles[key];
+ });
+ },
+ // set style and compute values for container and transition
+ getStyle: function(data) {
+ reflow();
+ // grab current styles: "initial state"
+ suite._getStyleFor(data, 'from');
+ // apply target state
+ suite._addClass(data, 'to', true);
+ // grab current styles: "target state"
+ suite._getStyleFor(data, 'to');
+ // remove target state
+ suite._removeClass(data, 'to', true);
+
+ // clean up the mess created for value collection
+ data.container._values = [];
+ data.transition._values = [];
+ if (data.pseudo) {
+ data.pseudo._values = [];
+ }
+ },
+ // grab current styles and store in respective element's data container
+ _getStyleFor: function(data, key) {
+ data.container[key] = data.container.computedStyle(data.property);
+ data.transition[key] = data.transition.computedStyle(data.property);
+ if (data.pseudo) {
+ data.pseudo[key] = data.pseudo.computedStyle(data.property);
+ }
+ },
+ // add class to test's elements and possibly reflow
+ _addClass: function(data, className, forceReflow) {
+ data.container.node.classList.add(className);
+ data.transition.node.classList.add(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // remove class from test's elements and possibly reflow
+ _removeClass: function(data, className, forceReflow) {
+ data.container.node.classList.remove(className);
+ data.transition.node.classList.remove(className);
+ if (forceReflow) {
+ reflow();
+ }
+ },
+ // add transition and to classes to container and transition
+ startTransition: function(data) {
+ // add transition-defining class
+ suite._addClass(data, 'how', true);
+ // add target state (without reflowing)
+ suite._addClass(data, 'to', false);
+ },
+ // requestAnimationFrame runLoop to collect computed values
+ startValueCollection: function(options) {
+ var raf = window.requestAnimationFrame || function(callback){
+ setTimeout(callback, 20);
+ };
+
+ // flag denoting if the runLoop should continue (true) or exit (false)
+ options._collectValues = true;
+
+ function runLoop() {
+ if (!options._collectValues) {
+ // test's are done, stop annoying the CPU
+ return;
+ }
+
+ // collect current style for test's elements
+ options.tests.forEach(function(data) {
+ if (!data.property) {
+ return;
+ }
+
+ ['transition', 'container', 'pseudo'].forEach(function(elem) {
+ var pseudo = null;
+ if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
+ return;
+ }
+
+ var current = data[elem].computedStyle(data.property);
+ var values = data[elem].values;
+ var length = values.length;
+ if (!length || values[length - 1] !== current) {
+ values.push(current);
+ }
+ });
+ });
+
+ // rinse and repeat
+ raf(runLoop);
+ }
+
+ runLoop();
+ },
+ // stop requestAnimationFrame runLoop collecting computed values
+ stopValueCollection: function(options) {
+ options._collectValues = false;
+ },
+
+ // generate test.step function asserting collected events match expected
+ assertExpectedEventsFunc: function(data, elem, expected) {
+ return function() {
+ var _result = data[elem].events.sort().join(" ");
+ var _expected = typeof expected === 'string' ? expected : expected.sort().join(" ");
+ assert_equals(_result, _expected, "Expected TransitionEnd events triggered on ." + elem);
+ };
+ },
+ // generate test.step function asserting collected values are neither initial nor target
+ assertIntermediateValuesFunc: function(data, elem) {
+ return function() {
+ // the first value (index: 0) is always going to be the initial value
+ // the last value is always going to be the target value
+ var values = data[elem].values;
+ if (data.flags.discrete) {
+ // a discrete value will just switch from one state to another without having passed intermediate states.
+ assert_equals(values[0], data[elem].from, "must be initial value while transitioning on ." + elem);
+ assert_equals(values[1], data[elem].to, "must be target value after transitioning on ." + elem);
+ assert_equals(values.length, 2, "discrete property only has 2 values ." + elem);
+ } else {
+ assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
+ assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
+ }
+
+ // TODO: first value must be initial, last value must be target
+ };
+ }
+};
+
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/helper.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/helper.js
new file mode 100644
index 00000000000..242cd3ca635
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/helper.js
@@ -0,0 +1,96 @@
+//
+// Simple Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+// serialize styles object and dump to dom
+// appends <style id="dynamic-style"> to <head>
+// setStyle("#some-selector", {"some-style" : "value"})
+// setStyle({"#some-selector": {"some-style" : "value"}})
+root.setStyle = function(selector, styles) {
+ var target = document.getElementById('dynamic-style');
+ if (!target) {
+ target = document.createElement('style');
+ target.id = 'dynamic-style';
+ target.type = "text/css";
+ document.getElementsByTagName('head')[0].appendChild(target);
+ }
+
+ var data = [];
+ // single selector/styles
+ if (typeof selector === 'string' && styles !== undefined) {
+ data = [selector, '{', serializeStyles(styles), '}'];
+ target.textContent = data.join("\n");
+ return;
+ }
+ // map of selector/styles
+ for (var key in selector) {
+ if (Object.prototype.hasOwnProperty.call(selector, key)) {
+ var _data = [key, '{', serializeStyles(selector[key]), '}'];
+ data.push(_data.join('\n'));
+ }
+ }
+
+ target.textContent = data.join("\n");
+};
+
+function serializeStyles(styles) {
+ var data = [];
+ for (var property in styles) {
+ if (Object.prototype.hasOwnProperty.call(styles, property)) {
+ var prefixedProperty = addVendorPrefix(property);
+ data.push(prefixedProperty + ":" + styles[property] + ";");
+ }
+ }
+
+ return data.join('\n');
+}
+
+
+// shorthand for computed style
+root.computedStyle = function(element, property, pseudo) {
+ var prefixedProperty = addVendorPrefix(property);
+ return window
+ .getComputedStyle(element, pseudo || null)
+ .getPropertyValue(prefixedProperty);
+};
+
+// flush rendering buffer
+root.reflow = function() {
+ document.body.offsetWidth;
+};
+
+// merge objects
+root.extend = function(target /*, ..rest */) {
+ Array.prototype.slice.call(arguments, 1).forEach(function(obj) {
+ Object.keys(obj).forEach(function(key) {
+ target[key] = obj[key];
+ });
+ });
+
+ return target;
+};
+
+// dom fixture helper ("resetting dom test elements")
+var _domFixture;
+var _domFixtureSelector;
+root.domFixture = function(selector) {
+ var fixture = document.querySelector(selector || _domFixtureSelector);
+ if (!fixture) {
+ throw new Error('fixture ' + (selector || _domFixtureSelector) + ' not found!');
+ }
+ if (!_domFixture && selector) {
+ // save a copy
+ _domFixture = fixture.cloneNode(true);
+ _domFixtureSelector = selector;
+ } else if (_domFixture) {
+ // restore the copy
+ var tmp = _domFixture.cloneNode(true);
+ fixture.parentNode.replaceChild(tmp, fixture);
+ } else {
+ throw new Error('domFixture must be initialized first!');
+ }
+};
+})(window);
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-green.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-red.css b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/min-width-tables-001-iframe.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/min-width-tables-001-iframe.html
new file mode 100644
index 00000000000..edc548a6aab
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/min-width-tables-001-iframe.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>iframe containing the meat of the test</title>
+ <style>
+body {
+ margin: 0;
+ overflow: hidden;
+}
+/* green div that should cover the red divs */
+#green {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: green;
+ width: 100%;
+ height: 600px;
+}
+.spacer {
+ height: 98px;
+ width: 20px;
+}
+.item {
+ background-color: red;
+ display: block;/* property under test */
+ /* border to aid understanding of boundaries between items */
+ border-style: solid;
+ border-width: 1px;
+ border-color: red;/* Note: if you're trying to debug this, use a different color here */
+}
+/* 100px = 10*(1 + 8 + 1) */
+@media (min-width: 100px) {
+ #green {
+ width: 100px;
+ height: 100px;/* = 1 + 98 + 1 */
+ }
+ .item {
+ display: table-cell;/* property and value under test */
+ }
+}
+ </style>
+</head>
+<body>
+ <div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ <div class="item"><div class="spacer"></div></div>
+ </div>
+ <div id="green"></div>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/one.gif b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/one.gif
new file mode 100644
index 00000000000..74cf7839c9f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/one.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/parsing-utils.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/parsing-utils.js
new file mode 100644
index 00000000000..beea4958ce8
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/parsing-utils.js
@@ -0,0 +1,866 @@
+var ParsingUtils = (function() {
+function testInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ var actual = div.style.getPropertyValue('shape-outside');
+ assert_equals(actual, expected);
+}
+
+function testComputedStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', value);
+ document.body.appendChild(div);
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-outside');
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // Some of the tests in this suite have either/or expected results
+ // so this check allows for testing that at least one of them passes.
+ // Description of the 2 expecteds is below near calcTestValues.
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, typeof expected !== 'undefined' ? expected : value);
+ }
+}
+
+function testShapeMarginInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', "border-box inset(10px)");
+ div.style.setProperty('shape-margin', value);
+ var actual = div.style.getPropertyValue('shape-margin');
+ assert_equals(actual, expected);
+}
+
+function testShapeMarginComputedStyle(value, expected) {
+
+ var outerDiv = document.createElement('div');
+ outerDiv.style.setProperty('width', '100px');
+
+ var innerDiv = document.createElement('div');
+ innerDiv.style.setProperty('shape-outside', "border-box inset(10px)");
+ innerDiv.style.setProperty('shape-margin', value);
+
+ outerDiv.appendChild(innerDiv);
+ document.body.appendChild(outerDiv);
+
+ var style = getComputedStyle(innerDiv);
+ var actual = style.getPropertyValue('shape-margin');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(outerDiv);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0px' : expected);
+ }
+}
+
+function testShapeThresholdInlineStyle(value, expected) {
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ var actual = div.style.getPropertyValue('shape-image-threshold');
+ assert_equals(actual, expected);
+}
+
+function testShapeThresholdComputedStyle(value, expected) {
+
+ var div = document.createElement('div');
+ div.style.setProperty('shape-outside', 'url(someimage.png)');
+ div.style.setProperty('shape-image-threshold', value);
+ document.body.appendChild(div);
+
+ var style = getComputedStyle(div);
+ var actual = style.getPropertyValue('shape-image-threshold');
+
+ assert_not_equals(actual, null);
+ if(actual.indexOf('calc') == -1 )
+ actual = roundResultStr(actual);
+ document.body.removeChild(div);
+
+ // See comment above about multiple expected results
+ if(Object.prototype.toString.call( expected ) === '[object Array]' && expected.length == 2) {
+ assert_true(expected[0] == actual || expected[1] == actual)
+ } else {
+ assert_equals(actual, !expected ? '0' : expected);
+ }
+}
+
+// Builds an array of test cases to send to testharness.js where one test case is: [name, actual, expected]
+// These test cases will verify results from testInlineStyle() or testComputedStyle()
+function buildTestCases(testCases, testType) {
+ var results = [];
+
+ // If test_type isn't specified, test inline style
+ var type = typeof testType == 'undefined' ? 'invalid': testType;
+
+ testCases.forEach(function(test) {
+ oneTestCase = [];
+
+ // name - annotated by type (inline vs. computed)
+ if ( test.hasOwnProperty('name') ) {
+ oneTestCase.push(test['name'] +' - '+ type);
+ } else {
+ // If test_name isn't specified, use the actual
+ oneTestCase.push(test['actual'] +' - '+ type);
+ }
+
+ // actual
+ oneTestCase.push(test['actual'])
+
+ // expected
+ if( type.indexOf('invalid') != -1 ){
+ oneTestCase.push(null)
+ } else if( type == 'inline' ) {
+ oneTestCase.push(test['expected_inline']);
+ } else if( type == 'computed' ){
+ oneTestCase.push( convertToPx(test['expected_computed']) );
+ }
+ results.push(oneTestCase);
+ });
+ return results;
+}
+
+
+function buildPositionTests(shape, valid, type, units) {
+ var results = new Array();
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( units ) === '[object Array]') {
+ units.forEach(function(unit) {
+ positionTests = buildPositionTests(shape, valid, type, unit);
+ results = results.concat(positionTests);
+ });
+ } else {
+ if (valid) {
+ validPositions.forEach(function(test) {
+ var testCase = [], testName, actual, expected;
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1)) {
+ // actual
+ actual = shape + '(at ' + setUnit(test[0], false, units) +')';
+
+ // expected
+ // if(convert && shape == 'circle')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else if(convert && shape == 'ellipse')
+ // expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+ // else
+ expected = shape + '(at ' + setUnit(test[1], convert, units) +')';
+
+ // name
+ if (type == 'lengthUnit + inline')
+ testName = 'test unit (inline): ' + units +' - '+ actual;
+ else if (type == 'lengthUnit + computed')
+ testName = 'test unit (computed): ' + units +' - '+ actual;
+ else
+ testName = (actual + ' serializes as ' + expected +' - '+ type);
+
+ testCase.push(testName)
+ testCase.push(actual);
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ } else {
+ invalidPositions.forEach(function(test) {
+ var testValue = shape + '(at ' + setUnit(test, false, units) +')';
+ testCase = new Array();
+ testCase.push(testValue + ' is invalid');
+ testCase.push(testValue);
+ testCase.push(null);
+ results.push(testCase);
+ });
+ }
+ }
+ return unique(results);
+}
+
+function buildRadiiTests(shape, type, units) {
+ var results = new Array();
+ var testUnits = typeof units == 'undefined' ? 'px': units;
+ var convert = type.indexOf('computed') != -1 ? true : false;
+
+ if(Object.prototype.toString.call( testUnits ) === '[object Array]') {
+ testUnits.forEach(function(unit) {
+ radiiTests = buildRadiiTests(shape, type, unit);
+ results = results.concat(radiiTests);
+ });
+ } else {
+ var validRadii = shape == 'circle' ? validCircleRadii : validEllipseRadii;
+ validRadii.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ // skip if this isn't explicitly testing length units
+ if( !(type.indexOf('lengthUnit') != -1 && test[0].indexOf("u1") == -1) ) {
+ actual = shape + '(' + setUnit(test[0], false, testUnits) +')';
+ // name
+ if (type.indexOf('lengthUnit') != -1) {
+ name = 'test unit: ' + units +' - '+ actual;
+ if(type.indexOf('computed') != -1)
+ name = name + ' - computed';
+ else
+ name = name + ' - inline';
+ }
+ else
+ name = actual +' - '+ type;
+
+ testCase.push(name);
+
+ // actual
+ testCase.push(actual);
+
+ // expected
+ if(type.indexOf('computed') != -1 && test.length == 3) {
+ expected = shape + '(' + setUnit(test[2], convert, testUnits) +')';
+ } else {
+ expected = shape + '(' + setUnit(test[1], convert, testUnits) +')';
+ }
+ testCase.push(expected);
+ results.push(testCase);
+ }
+ });
+ }
+ return unique(results);
+}
+
+function buildInsetTests(unit1, unit2, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ if(Object.prototype.toString.call( unit1 ) === '[object Array]') {
+ unit1.forEach(function(unit) {
+ insetTests = buildInsetTests(unit, unit2, type);
+ results = results.concat(insetTests);
+ });
+ } else {
+ validInsets.forEach(function(test) {
+ var testCase = [], name, actual, expected;
+
+ name = setUnit(test[0], false, unit1, unit2) +' - '+ type;
+ actual = 'inset(' + setUnit(test[1], convert, unit1, unit2) +')';
+ expected = actual;
+
+ testCase.push(name);
+ testCase.push(actual);
+ testCase.push(expected);
+
+ results.push(testCase);
+ });
+ }
+ return unique(results);
+}
+
+function buildPolygonTests(unitSet, type) {
+ var results = new Array();
+ var convert = type == 'computed' ? true : false;
+
+ unitSet.forEach(function(set) {
+ validPolygons.forEach(function(test) {
+ var testCase = [];
+ // name
+ testCase.push(setUnit(test[0], false, set[0], set[1], set[2]) +' - '+ type);
+ // actual
+ testCase.push('polygon(' + setUnit(test[1], false, set[0], set[1], set[2]) +')');
+ // expected
+ testCase.push('polygon(' + setUnit(test[1], convert, set[0], set[1], set[2]) +')');
+ results.push(testCase);
+ });
+ });
+ return unique(results);
+}
+
+function buildCalcTests(testCases, type) {
+ var results = new Array();
+ testCases.forEach(function(test){
+ var testCase = [];
+ if(type == 'computed') {
+ testCase.push(test[0] + ' - computed style');
+ testCase.push(test[0]);
+ testCase.push(test[2]);
+ }
+ else {
+ testCase.push(test[0] + ' - inline style');
+ testCase.push(test[0]);
+ testCase.push(test[1]);
+ }
+ testCase.push(type);
+ results.push(testCase)
+ });
+ return unique(results);
+}
+
+function unique(tests) {
+ var list = tests.concat();
+ for(var i = 0; i< list.length; ++i) {
+ for(var j = i+1; j < list.length; ++j) {
+ if(list[i][0] === list[j][0])
+ list.splice(j--, 1);
+ }
+ }
+ return list;
+}
+
+function setUnit(str, convert, unit1, unit2, unit3) {
+ var retStr = str;
+ if(typeof unit1 !== 'undefined') {
+ retStr = retStr.replace(new RegExp('u1', 'g'), unit1);
+ }
+ if(typeof unit2 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u2", 'g'), unit2);
+ }
+ if(typeof unit3 !== 'undefined') {
+ retStr = retStr.replace(new RegExp("u3", 'g'), unit3);
+ }
+ retStr = convert ? convertToPx(retStr) : retStr;
+ return retStr;
+}
+
+function convertToPx(origValue) {
+
+ var valuesToConvert = origValue.match(/[0-9]+(\.[0-9]+)?([a-z]{2,4}|%)/g);
+ if(!valuesToConvert)
+ return origValue;
+
+ var retStr = origValue;
+ for(var i = 0; i < valuesToConvert.length; i++) {
+ var unit = valuesToConvert[i].match(/[a-z]{2,4}|%/).toString();
+ var numberStr = valuesToConvert[i].match(/[0-9]+(\.[0-9]+)?/)[0];
+
+ var number = parseFloat(numberStr);
+ var convertedUnit = 'px';
+ if( typeof number !== 'NaN' )
+ {
+ if (unit == 'in') {
+ number = (96 * number);
+ } else if (unit == 'cm') {
+ number = (37.795275591 * number);
+ } else if (unit == 'mm') {
+ number = (3.779527559 * number);
+ } else if (unit == 'pt') {
+ number = (1.333333333333 * number);
+ } else if (unit == 'pc') {
+ number = (16 * number);
+ } else if (unit == 'em') {
+ number = (16 * number);
+ } else if (unit == 'ex') {
+ number = (7.1796875 * number);
+ } else if (unit == 'ch') {
+ number = (8 * number);
+ } else if (unit == 'rem') {
+ number = (16 * number);
+ } else if (unit == 'vw') {
+ number = ((.01 * window.innerWidth) * number);
+ } else if (unit == 'vh') {
+ number = ((.01 * window.innerHeight) * number);
+ } else if (unit == 'vmin') {
+ number = Math.min( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ } else if (unit == 'vmax') {
+ number = Math.max( (.01 * window.innerWidth), (.01 * window.innerHeight) ) * number;
+ }
+ else {
+ convertedUnit = unit;
+ }
+ number = Math.round(number * 1000) / 1000;
+ var find = valuesToConvert[i];
+ var replace = number.toString() + convertedUnit;
+ retStr = retStr.replace(valuesToConvert[i], number.toString() + convertedUnit);
+ }
+ }
+ return retStr.replace(',,', ',');
+}
+
+function roundResultStr(str) {
+ if(Object.prototype.toString.call( str ) !== '[object String]')
+ return str;
+
+ var numbersToRound = str.match(/[0-9]+\.[0-9]+/g);
+ if(!numbersToRound)
+ return str;
+
+ var retStr = str;
+ for(var i = 0; i < numbersToRound.length; i++) {
+ num = parseFloat(numbersToRound[i]);
+ if( !isNaN(num) ) {
+ roundedNum = Math.round(num*1000)/1000;
+ retStr = retStr.replace(numbersToRound[i].toString(), roundedNum.toString());
+ }
+ }
+
+ return retStr;
+}
+
+function generateInsetRoundCases(units, testType) {
+ var convert = testType.indexOf('computed') != -1 ? true : false;
+ var testUnit = units;
+ var sizes = [
+ '10' + units,
+ '20' + units,
+ '30' + units,
+ '40' + units
+ ];
+
+ function insetRound(value) {
+ return 'inset(10' +testUnit+ ' round ' + value + ')';
+ }
+
+ function serializedInsetRound(lhsValues, rhsValues, convert) {
+ var retStr = '';
+ if(!rhsValues)
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +')';
+ else
+ retStr = 'inset(10' +testUnit+ ' round ' + lhsValues +' / '+ rhsValues +')';
+
+ if(convert)
+ return convertToPx(retStr);
+
+ return retStr;
+ }
+
+ var results = [], left, lhs, right, rhs;
+ for (left = 1; left <= 4; left++) {
+ lhs = sizes.slice(0, left).join(' ');
+ results.push([insetRound(lhs) +' - '+ testType, insetRound(lhs), serializedInsetRound(lhs, null, convert)]);
+ for (right = 1; right <= 4; right++) {
+ rhs = sizes.slice(0, right).join(' ');
+ if(lhs == rhs)
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, null, convert)]);
+ else
+ results.push([insetRound(lhs + ' / ' + rhs) +' - '+ testType, insetRound(lhs + ' / ' + rhs), serializedInsetRound(lhs, rhs, convert)]);
+ }
+ }
+ return results;
+}
+
+var validUnits = [
+ "cm","mm","in","pt","pc", // Absolute length units (omitting px b/c we default to that in all tests)
+ "em","ex","ch","rem", // Font relative length units
+ "vw","vh","vmin","vmax" // Viewport percentage units
+ ]
+
+/// [actual, expected]
+var validPositions = [
+
+/// [ percent ], [ length ], [ percent | percent ], [ percent | length ], [ length | percent ], [ length | length ]
+ ["50%", "50% 50%"],
+ ["50u1", "50u1 50%"],
+ ["50% 50%", "50% 50%"],
+ ["50% 50u1", "50% 50u1"],
+ ["50u1 50%", "50u1 50%"],
+ ["50u1 50u1", "50u1 50u1"],
+
+///// [ keyword ], [ keyword keyword ] x 5 keywords
+ ["left", "0% 50%"],
+ ["top", "50% 0%"],
+ ["right", "100% 50%"],
+ ["bottom", "50% 100%"],
+ ["center", "50% 50%"],
+
+ ["left top", "0% 0%"],
+ ["left bottom", "0% 100%"],
+ ["left center", "0% 50%"],
+
+ ["top left", "0% 0%"],
+ ["top right", "100% 0%"],
+ ["top center", "50% 0%"],
+
+ ["right top", "100% 0%"],
+ ["right bottom", "100% 100%"],
+ ["right center", "100% 50%"],
+
+ ["bottom left", "0% 100%"],
+ ["bottom right", "100% 100%"],
+ ["bottom center", "50% 100%"],
+
+ ["center top", "50% 0%"],
+ ["center left", "0% 50%"],
+ ["center right", "100% 50%"],
+ ["center bottom", "50% 100%"],
+ ["center center", "50% 50%"],
+
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ ["left 50%", "0% 50%"],
+ ["left 50u1", "0% 50u1"],
+
+ ["50% top", "50% 0%"],
+ ["50u1 top", "50u1 0%"],
+
+ ["right 80%", "100% 80%"],
+ ["right 80u1", "100% 80u1"],
+
+ ["70% bottom", "70% 100%"],
+ ["70u1 bottom", "70u1 100%"],
+
+ ["center 60%", "50% 60%"],
+ ["center 60u1", "50% 60u1"],
+ ["60% center", "60% 50%"],
+ ["60u1 center", "60u1 50%"],
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ ["center top 50%", "50% 50%"],
+ ["center top 50u1", "50% 50u1"],
+ ["center left 50%", "50% 50%"],
+ ["center left 50u1", "50u1 50%"],
+ ["center right 70%", "30% 50%"],
+ ["center right 70u1", "right 70u1 top 50%"],
+ ["center bottom 70%", "50% 30%"],
+ ["center bottom 70u1", "left 50% bottom 70u1"],
+
+ ["left top 50%", "0% 50%"],
+ ["left top 50u1", "0% 50u1"],
+ ["left bottom 70%", "0% 30%"],
+ ["left bottom 70u1", "left 0% bottom 70u1"],
+
+ ["top left 50%", "50% 0%"],
+ ["top left 50u1", "50u1 0%"],
+ ["top right 70%", "30% 0%"],
+ ["top right 70u1", "right 70u1 top 0%"],
+
+ ["bottom left 50%", "50% 100%"],
+ ["bottom left 50u1", "50u1 100%"],
+ ["bottom right 70%", "30% 100%"],
+ ["bottom right 70u1", "right 70u1 top 100%"],
+
+ ["right bottom 70%", "100% 30%"],
+ ["right bottom 70u1", "left 100% bottom 70u1"],
+ ["right top 50%", "100% 50%"],
+ ["right top 50u1", "100% 50u1"],
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ ["left 50% center", "50% 50%"],
+ ["left 50u1 center", "50u1 50%"],
+ ["left 50% top", "50% 0%"],
+ ["left 50u1 top", "50u1 0%"],
+ ["left 50% bottom", "50% 100%"],
+ ["left 50u1 bottom", "50u1 100%"],
+
+ ["top 50% center", "50% 50%"],
+ ["top 50u1 center", "50% 50u1"],
+ ["top 50% left", "0% 50%"],
+ ["top 50u1 left", "0% 50u1"],
+ ["top 50% right", "100% 50%"],
+ ["top 50u1 right", "100% 50u1"],
+
+ ["bottom 70% center", "50% 30%"],
+ ["bottom 70u1 center", "left 50% bottom 70u1"],
+ ["bottom 70% left", "0% 30%"],
+ ["bottom 70u1 left", "left 0% bottom 70u1"],
+ ["bottom 70% right", "100% 30%"],
+ ["bottom 70u1 right", "left 100% bottom 70u1"],
+
+ ["right 80% center", "20% 50%"],
+ ["right 80u1 center", "right 80u1 top 50%"],
+ ["right 80% bottom", "20% 100%"],
+ ["right 80u1 bottom", "right 80u1 top 100%"],
+ ["right 80% top", "20% 0%"],
+ ["right 80u1 top", "right 80u1 top 0%"],
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ ["left 50% top 50%", "50% 50%"],
+ ["left 50% top 50u1", "50% 50u1"],
+ ["left 50% bottom 70%", "50% 30%"],
+ ["left 50% bottom 70u1", "left 50% bottom 70u1"],
+ ["left 50u1 top 50%", "50u1 50%"],
+ ["left 50u1 top 50u1", "50u1 50u1"],
+ ["left 50u1 bottom 70%", "50u1 30%"],
+ ["left 50u1 bottom 70u1", "left 50u1 bottom 70u1"],
+
+ ["top 50% left 50%", "50% 50%"],
+ ["top 50% left 50u1", "50u1 50%"],
+ ["top 50% right 80%", "20% 50%"],
+ ["top 50% right 80u1", "right 80u1 top 50%"],
+ ["top 50u1 left 50%", "50% 50u1"],
+ ["top 50u1 left 50u1", "50u1 50u1"],
+ ["top 50u1 right 80%", "20% 50u1"],
+ ["top 50u1 right 80u1", "right 80u1 top 50u1"],
+
+ ["bottom 70% left 50%", "50% 30%"],
+ ["bottom 70% left 50u1", "50u1 30%"],
+ ["bottom 70% right 80%", "20% 30%"],
+ ["bottom 70% right 80u1", "right 80u1 top 30%"],
+ ["bottom 70u1 left 50%", "left 50% bottom 70u1"],
+ ["bottom 70u1 left 50u1", "left 50u1 bottom 70u1"],
+ ["bottom 70u1 right 80%", "left 20% bottom 70u1"],
+ ["bottom 70u1 right 80u1", "right 80u1 bottom 70u1"],
+
+ ["right 80% top 50%", "20% 50%"],
+ ["right 80% top 50u1", "20% 50u1"],
+ ["right 80% bottom 70%", "20% 30%"],
+ ["right 80% bottom 70u1", "left 20% bottom 70u1"],
+ ["right 80u1 top 50%", "right 80u1 top 50%"],
+ ["right 80u1 top 50u1", "right 80u1 top 50u1"],
+ ["right 80u1 bottom 70%", "right 80u1 top 30%"],
+ ["right 80u1 bottom 70u1", "right 80u1 bottom 70u1"],
+];
+
+var invalidPositions = [
+////// [ keyword | percent ], [ keyword | length ], [ percent | keyword ], [ length | keyword ] x 5 keywords
+ "50% left",
+ "50px left",
+ "top 50%",
+ "80% right",
+ "80px right",
+ "bottom 70%",
+ "bottom 70px",
+
+////// [ keyword | keyword percent ], [ keyword | keyword length ] x 5 keywords
+ "center center 60%",
+ "center center 60px",
+
+ "left center 60%",
+ "left center 60px",
+ "left right 80%",
+ "left right 80px",
+ "left left 50%",
+ "left left 50px",
+
+ "top center 60%",
+ "top center 60px",
+ "top bottom 80%",
+ "top bottom 80px",
+ "top top 50%",
+ "top top 50px",
+
+ "bottom center 60%",
+ "bottom center 60px",
+ "bottom top 50%",
+ "bottom top 50px",
+ "bottom bottom 50%",
+ "bottom bottom 50px",
+
+ "right center 60%",
+ "right center 60px",
+ "right left 50%",
+ "right left 50px",
+ "right right 70%",
+ "right right 70px",
+
+////// [ keyword percent | keyword], [ keyword length | keyword ] x 5 keywords
+ "center 60% top",
+ "center 60px top",
+ "center 60% bottom",
+ "center 60px bottom",
+ "center 60% left",
+ "center 60px left",
+ "center 60% right",
+ "center 60px right",
+ "center 60% center",
+ "center 60px center",
+
+ "left 50% right",
+ "left 50px right",
+ "left 50% left",
+ "left 50px left",
+
+ "top 50% bottom",
+ "top 50px bottom",
+ "top 50% top",
+ "top 50px top",
+
+ "bottom 70% top",
+ "bottom 70px top",
+ "bottom 70% bottom",
+ "bottom 70px bottom",
+
+ "right 80% left",
+ "right 80px left",
+
+////// [ keyword percent | keyword percent], [ keyword percent | keyword length],
+////// [ keyword length | keyword length], [ keyword length | keyword percent] x 5 keywords
+ "center 60% top 50%",
+ "center 60% top 50px",
+ "center 60% bottom 70%",
+ "center 60% bottom 70px",
+ "center 60% left 50%",
+ "center 60% left 50px",
+ "center 60% right 70%",
+ "center 60% right 70px",
+ "center 60% center 65%",
+ "center 60% center 65px",
+ "center 60px top 50%",
+ "center 60px top 50px",
+ "center 60px bottom 70%",
+ "center 60px bottom 70px",
+ "center 60px left 50%",
+ "center 60px left 50px",
+ "center 60px right 70%",
+ "center 60px right 70px",
+ "center 60px center 65%",
+ "center 60px center 65px",
+
+ "left 50% center 60%",
+ "left 50% center 60px",
+ "left 50% right 80%",
+ "left 50% right 80px",
+ "left 50% left 50%",
+ "left 50% left 50px",
+ "left 50px center 60%",
+ "left 50px center 60px",
+ "left 50px right 80%",
+ "left 50px right 80px",
+ "left 50px left 50%",
+ "left 50px left 50px",
+
+ "top 50% center 60%",
+ "top 50% center 60px",
+ "top 50% bottom 50%",
+ "top 50% bottom 50px",
+ "top 50% top 50%",
+ "top 50% top 50px",
+ "top 50px center 60%",
+ "top 50px center 60px",
+ "top 50px bottom 70%",
+ "top 50px bottom 70px",
+ "top 50px top 50%",
+ "top 50px top 50px",
+
+ "bottom 70% center 60%",
+ "bottom 70% center 60px",
+ "bottom 70% top 50%",
+ "bottom 70% top 50px",
+ "bottom 70% bottom 50%",
+ "bottom 70% bottom 50px",
+ "bottom 70px center 60%",
+ "bottom 70px center 60px",
+ "bottom 70px top 50%",
+ "bottom 70px top 50px",
+ "bottom 70px bottom 50%",
+ "bottom 70px bottom 50px",
+
+ "right 80% center 60%",
+ "right 80% center 60px",
+ "right 80% left 50%",
+ "right 80% left 50px",
+ "right 80% right 85%",
+ "right 80% right 85px",
+ "right 80px center 60%",
+ "right 80px center 60px",
+ "right 80px left 50%",
+ "right 80px left 50px",
+ "right 80px right 85%",
+ "right 80px right 85px"
+];
+
+// valid radii values for circle + ellipse
+// [value, expected_inline, [expected_computed?]]
+var validCircleRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%']
+]
+var validEllipseRadii = [
+ ['', 'at 50% 50%', 'at 50% 50%'],
+ ['50u1', '50u1 at 50% 50%', '50u1 at 50% 50%'],
+ ['50%', '50% at 50% 50%', '50% at 50% 50%'],
+ ['closest-side', 'at 50% 50%', 'at 50% 50%'],
+ ['farthest-side', 'farthest-side at 50% 50%', 'farthest-side at 50% 50%'],
+ ['50u1 100u1', '50u1 100u1 at 50% 50%'],
+ ['100u1 100px', '100u1 100px at 50% 50%'],
+ ['25% 50%', '25% 50% at 50% 50%'],
+ ['50u1 25%', '50u1 25% at 50% 50%'],
+ ['25% 50u1', '25% 50u1 at 50% 50%'],
+ ['25% closest-side', '25% at 50% 50%'],
+ ['25u1 closest-side', '25u1 at 50% 50%'],
+ ['closest-side 75%', 'closest-side 75% at 50% 50%'],
+ ['closest-side 75u1', 'closest-side 75u1 at 50% 50%'],
+ ['25% farthest-side', '25% farthest-side at 50% 50%'],
+ ['25u1 farthest-side', '25u1 farthest-side at 50% 50%'],
+ ['farthest-side 75%', 'farthest-side 75% at 50% 50%'],
+ ['farthest-side 75u1', 'farthest-side 75u1 at 50% 50%'],
+ ['closest-side closest-side', 'at 50% 50%'],
+ ['farthest-side farthest-side', 'farthest-side farthest-side at 50% 50%'],
+ ['closest-side farthest-side', 'closest-side farthest-side at 50% 50%'],
+ ['farthest-side closest-side', 'farthest-side at 50% 50%']
+]
+
+var validInsets = [
+ ["One arg - u1", "10u1"],
+ ["One arg - u2", "10u2"],
+ ["Two args - u1 u1", "10u1 20u1"],
+ ["Two args - u1 u2", "10u1 20u2"],
+ ["Two args - u2 u1", "10u2 20u1"],
+ ["Two args - u2 u2", "10u2 20u2"],
+ ["Three args - u1 u1 u1", "10u1 20u1 30u1"],
+ ["Three args - u1 u1 u2", "10u1 20u1 30u2"],
+ ["Three args - u1 u2 u1", "10u1 20u2 30u1"],
+ ["Three args - u1 u2 u2 ", "10u1 20u2 30u2"],
+ ["Three args - u2 u1 u1", "10u2 20u1 30u1"],
+ ["Three args - u2 u1 u2 ", "10u2 20u1 30u2"],
+ ["Three args - u2 u2 u1 ", "10u2 20u2 30u1"],
+ ["Three args - u2 u2 u2 ","10u2 20u2 30u2"],
+ ["Four args - u1 u1 u1 u1", "10u1 20u1 30u1 40u1"],
+ ["Four args - u1 u1 u1 u2", "10u1 20u1 30u1 40u2"],
+ ["Four args - u1 u1 u2 u1", "10u1 20u1 30u2 40u1"],
+ ["Four args - u1 u1 u2 u2", "10u1 20u1 30u2 40u2"],
+ ["Four args - u1 u2 u1 u1", "10u1 20u2 30u1 40u1"],
+ ["Four args - u1 u2 u1 u2", "10u1 20u2 30u1 40u2"],
+ ["Four args - u1 u2 u2 u1", "10u1 20u2 30u2 40u1"],
+ ["Four args - u1 u2 u2 u2", "10u1 20u2 30u2 40u2"],
+ ["Four args - u2 u1 u1 u1", "10u2 20u1 30u1 40u1"],
+ ["Four args - u2 u1 u1 u2", "10u2 20u1 30u1 40u2"],
+ ["Four args - u2 u1 u2 u1", "10u2 20u1 30u2 40u1"],
+ ["Four args - u2 u1 u2 u2", "10u2 20u1 30u2 40u2"],
+ ["Four args - u2 u2 u1 u1", "10u2 20u2 30u1 40u1"],
+ ["Four args - u2 u2 u1 u2", "10u2 20u2 30u1 40u2"],
+ ["Four args - u2 u2 u2 u1", "10u2 20u2 30u2 40u1"],
+ ["Four args - u2 u2 u2 u2", "10u2 20u2 30u2 40u2"]
+]
+
+var validPolygons = [
+ ["One vertex - u1 u1", "10u1 20u1"],
+ ["One vertex - u1 u2", "10u1 20u2"],
+ ["Two vertices - u1 u1, u1 u1", "10u1 20u1, 30u1 40u1"],
+ ["Two vertices - u1 u1, u2 u2", "10u1 20u1, 30u2 40u2"],
+ ["Two vertices - u2 u2, u1 u1", "10u2 20u2, 30u1 40u1"],
+ ["Two vertices - u1 u2, u2 u1", "10u1 20u2, 30u2 40u1"],
+ ["Three vertices - u1 u1, u1 u1, u1 u1", "10u1 20u1, 30u1 40u1, 50u1 60u1"],
+ ["Three vertices - u2 u2, u2 u2, u2 u2", "10u2 20u2, 30u2 40u2, 50u2 60u2"],
+ ["Three vertices - u3 u3, u3 u3, u3 u3", "10u3 20u3, 30u3 40u3, 50u3 60u3"],
+ ["Three vertices - u1 u1, u2 u2, u3 u3", "10u1 20u1, 30u2 40u2, 50u3 60u3"],
+ ["Three vertices - u3 u3, u1, u1, u2 u2", "10u3 20u3, 30u1 40u1, 50u2 60u2"],
+]
+
+// [test value, expected property value, expected computed style]
+var calcTestValues = [
+ ["calc(10in)", "calc(10in)", "960px"],
+ ["calc(10in + 20px)", "calc(980px)", "980px"],
+ ["calc(30%)", "calc(30%)", "30%"],
+ ["calc(100%/4)", "calc(25%)", "25%"],
+ ["calc(25%*3)", "calc(75%)", "75%"],
+ // These following two test cases represent an either/or situation in the spec
+ // computed value is always supposed to be, at most, a tuple of a length and a percentage.
+ // the computed value of a ‘calc()’ expression can be represented as either a number or a tuple
+ // of a dimension and a percentage.
+ // http://www.w3.org/TR/css3-values/#calc-notation
+ ["calc(25%*3 - 10in)", "calc(75% - 10in)", ["calc(75% - 960px)", "calc(-960px + 75%)"]],
+ ["calc((12.5%*6 + 10in) / 4)", "calc((75% + 10in) / 4)", ["calc((75% + 960px) / 4)", "calc(240px + 18.75%)"]]
+]
+
+return {
+ testInlineStyle: testInlineStyle,
+ testComputedStyle: testComputedStyle,
+ testShapeMarginInlineStyle: testShapeMarginInlineStyle,
+ testShapeMarginComputedStyle: testShapeMarginComputedStyle,
+ testShapeThresholdInlineStyle: testShapeThresholdInlineStyle,
+ testShapeThresholdComputedStyle: testShapeThresholdComputedStyle,
+ buildTestCases: buildTestCases,
+ buildRadiiTests: buildRadiiTests,
+ buildPositionTests: buildPositionTests,
+ buildInsetTests: buildInsetTests,
+ buildPolygonTests: buildPolygonTests,
+ generateInsetRoundCases: generateInsetRoundCases,
+ buildCalcTests: buildCalcTests,
+ validUnits: validUnits,
+ calcTestValues: calcTestValues,
+ roundResultStr: roundResultStr
+}
+})();
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-gg-gr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..091de70bb72
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..6fcfeb4883e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..db8ed5cf7bd
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-tr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/properties.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/properties.js
new file mode 100644
index 00000000000..ddecfb6e336
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/properties.js
@@ -0,0 +1,449 @@
+(function(root){
+
+/*
+ * General Value Types definition
+ * they return an object of arrays of type { <name>: [<start-value>, <end-value>], ... }
+ */
+var values = {
+ 'length' : function() {
+ // http://www.w3.org/TR/css3-values/#lengths
+ return {
+ // CSS Values and Module Level 3
+ // ch: ['1ch', '10ch'],
+ // rem: ['1rem', '10rem'],
+ // vw: ['1vw', '10vw'],
+ // vh: ['1vh', '10vh'],
+ // vmin: ['1vmin', '10vmin'],
+ // vmax: ['1vmax', '10vmax'],
+ // CSS Values and Module Level 2
+ pt: ['1pt', '10pt'],
+ pc: ['1pc', '10pc'],
+ px: ['1px', '10px'],
+ // CSS Values and Module Level 1
+ em: ['1em', '10em'],
+ ex: ['1ex', '10ex'],
+ mm: ['1mm', '10mm'],
+ cm: ['1cm', '10cm'],
+ 'in': ['1in', '10in']
+ };
+ },
+ 'length-em': function() {
+ return {
+ em: ['1.1em', '1.5em']
+ };
+ },
+ 'percentage': function() {
+ // http://www.w3.org/TR/css3-values/#percentages
+ return {
+ '%': ['33%', '80%']
+ };
+ },
+ 'color': function() {
+ // http://www.w3.org/TR/css3-values/#colors
+ // http://www.w3.org/TR/css3-color/
+ return {
+ rgba: ['rgba(100,100,100,1)', 'rgba(10,10,10,0.4)']
+ };
+ },
+ 'rectangle': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#value-def-shape
+ return {
+ rectangle: ['rect(10px,10px,10px,10px)', 'rect(15px,15px,5px,5px)']
+ };
+ },
+ 'font-weight': function() {
+ // http://www.w3.org/TR/css3-fonts/#font-weight-prop
+ return {
+ keyword: ["normal", "bold"],
+ numeric: ["100", "900"]
+ };
+ },
+ 'number': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ return {
+ integer: ["1", "10"],
+ decimal: ["1.1", "9.55"]
+ };
+ },
+ 'number[0,1]': function() {
+ // http://www.w3.org/TR/css3-values/#number
+ // applies to [0,1]-ranged properties like opacity
+ return {
+ "zero-to-one": ["0.2", "0.9"]
+ };
+ },
+ 'integer': function() {
+ // http://www.w3.org/TR/css3-values/#integer
+ return {
+ integer: ["1", "10"]
+ };
+ },
+ 'shadow': function() {
+ // http://www.w3.org/TR/css-text-decor-3/#text-shadow-property
+ return {
+ shadow: ['rgba(0,0,0,0.1) 5px 6px 7px', 'rgba(10,10,10,0.9) 5px 6px 7px']
+ };
+ },
+ 'visibility': function() {
+ // http://www.w3.org/TR/CSS2/visufx.html#visibility
+ return {
+ keyword: ['visible', 'hidden', {discrete: true}]
+ };
+ },
+ 'auto': function(property) {
+ var types = properties[property] || unspecified_properties[property];
+ var val = values[types[0]](property);
+ var key = Object.keys(val).shift();
+ return {
+ to: [val[key][1], 'auto'],
+ from: ['auto', val[key][1]]
+ };
+ },
+ // types reqired for non-specified properties
+ 'border-radius': function() {
+ return {
+ px: ['1px', '10px'],
+ "px-px": ['1px 3px', '10px 13px']
+ };
+ },
+ 'image' : function() {
+ var prefix = getValueVendorPrefix('background-image', 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)');
+ return {
+ // Chrome implements this
+ url: ['url(support/one.gif)', 'url(support/two.gif)'],
+ data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
+ // A hunch, as from the spec:
+ // http://www.w3.org/TR/css3-transitions/#animatable-types
+ // gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
+ gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
+ };
+ },
+ 'background-size': function() {
+ return {
+ keyword: ['cover', 'contain']
+ };
+ },
+ 'box-shadow': function() {
+ // http://www.w3.org/TR/css3-background/#ltshadowgt
+ return {
+ shadow: ['60px -16px teal', '60px -16px red']
+ };
+ },
+ 'vertical': function() {
+ return {
+ keyword: ['top', 'bottom']
+ };
+ },
+ 'horizontal': function() {
+ return {
+ keyword: ['left', 'right']
+ };
+ },
+ 'font-stretch': function() {
+ return {
+ keyword: ['condensed', 'expanded']
+ };
+ },
+ 'transform': function() {
+ return {
+ rotate: ['rotate(10deg)', 'rotate(20deg)']
+ };
+ },
+ 'position': function() {
+ return {
+ 'static to absolute': ['static', 'absolute', {discrete: true}],
+ 'relative to absolute': ['relative', 'absolute', {discrete: true}],
+ 'absolute to fixed': ['absolute', 'fixed', {discrete: true}]
+ };
+ },
+ 'display': function() {
+ return {
+ 'static to absolute': ['none', 'block', {discrete: true}],
+ 'block to inline-block': ['block', 'inline-block', {discrete: true}]
+ };
+ }
+};
+
+/*
+ * Property to Type table
+ * (as stated in specification)
+ */
+var properties = {
+ 'background-color': ['color'],
+ 'background-position': ['length', 'percentage'],
+
+ 'border-top-width': ['length'],
+ 'border-right-width': ['length'],
+ 'border-bottom-width': ['length'],
+ 'border-left-width': ['length'],
+
+ 'border-top-color': ['color'],
+ 'border-right-color': ['color'],
+ 'border-bottom-color': ['color'],
+ 'border-left-color': ['color'],
+
+ 'padding-bottom': ['length'],
+ 'padding-left': ['length'],
+ 'padding-right': ['length'],
+ 'padding-top': ['length'],
+
+ 'margin-bottom': ['length'],
+ 'margin-left': ['length'],
+ 'margin-right': ['length'],
+ 'margin-top': ['length'],
+
+ 'height': ['length', 'percentage'],
+ 'width': ['length', 'percentage'],
+ 'min-height': ['length', 'percentage'],
+ 'min-width': ['length', 'percentage'],
+ 'max-height': ['length', 'percentage'],
+ 'max-width': ['length', 'percentage'],
+
+ 'top': ['length', 'percentage'],
+ 'right': ['length', 'percentage'],
+ 'bottom': ['length', 'percentage'],
+ 'left': ['length', 'percentage'],
+
+ 'color': ['color'],
+ 'font-size': ['length', 'percentage'],
+ 'font-weight': ['font-weight'],
+ 'line-height': ['number', 'length', 'percentage'],
+ 'letter-spacing': ['length'],
+ // Note: percentage is Level3 and not implemented anywhere yet
+ // https://drafts.csswg.org/css3-text/#word-spacing
+ 'word-spacing': ['length', 'percentage'],
+ 'text-indent': ['length', 'percentage'],
+ 'text-shadow': ['shadow'],
+
+ 'outline-color': ['color'],
+ // outline-offset <integer> used to be an error in the spec
+ 'outline-offset': ['length'],
+ 'outline-width': ['length'],
+
+ 'clip': ['rectangle'],
+ // Note: doesn't seem implemented anywhere
+ 'crop': ['rectangle'],
+
+ 'vertical-align': ['length', 'percentage'],
+ 'opacity': ['number[0,1]'],
+ 'visibility': ['visibility'],
+ 'z-index': ['integer']
+};
+
+/*
+ * Property to auto-value mapping
+ * (lazily taken from http://www.siliconbaytraining.com/pages/csspv.html)
+ */
+var properties_auto = [
+ 'margin-top',
+ 'margin-right',
+ 'margin-bottom',
+ 'margin-left',
+ 'height',
+ 'width',
+ 'clip',
+ 'marker-offset',
+ 'top',
+ 'right',
+ 'left',
+ 'bottom',
+ 'z-index'
+];
+
+/*
+ * Property to Type table
+ * (missing value-types of specified properties)
+ */
+var missing_properties = {
+ 'margin-bottom': ['percentage'],
+ 'margin-left': ['percentage'],
+ 'margin-right': ['percentage'],
+ 'margin-top': ['percentage'],
+ 'padding-bottom': ['percentage'],
+ 'padding-left': ['percentage'],
+ 'padding-right': ['percentage'],
+ 'padding-top': ['percentage'],
+ 'vertical-align': ['vertical']
+};
+
+/*
+ * Property to Type table
+ * (properties that haven't been specified but implemented)
+ */
+var unspecified_properties = {
+ // http://oli.jp/2010/css-animatable-properties/
+ 'border-top-left-radius': ['border-radius'],
+ 'border-top-right-radius': ['border-radius'],
+ 'border-bottom-left-radius': ['border-radius'],
+ 'border-bottom-right-radius': ['border-radius'],
+ 'background-image': ['image'],
+ 'background-size': ['background-size'],
+ // https://drafts.csswg.org/css3-background/#the-box-shadow
+ // Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from ‘0 0 transparent’ or ‘0 0 transparent inset’, as appropriate.)
+ 'box-shadow': ['box-shadow'],
+ 'font-size-adjust': ['number'],
+ 'font-stretch': ['font-stretch'],
+ 'marker-offset': ['length'],
+ 'text-decoration-color': ['color'],
+ 'column-count': ['integer'],
+ 'column-gap': ['length'],
+ 'column-rule-color': ['color'],
+ 'column-rule-width': ['length'],
+ 'column-width': ['length'],
+ 'transform': ['transform'],
+ 'transform-origin': ['horizontal'],
+ 'zoom': ['number'],
+ 'outline-radius-topleft': ['length', 'percentage'],
+ 'outline-radius-topright': ['length', 'percentage'],
+ 'outline-radius-bottomright': ['length', 'percentage'],
+ 'outline-radius-bottomleft': ['length', 'percentage'],
+ 'display': ['display'],
+ 'position': ['position']
+};
+
+/*
+ * additional styles required to actually render
+ * (different browsers expect different environment)
+ */
+var additional_styles = {
+ // all browsers
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'top': {'position': 'absolute'},
+ 'right': {'position': 'absolute'},
+ 'bottom': {'position': 'absolute'},
+ 'left': {'position': 'absolute'},
+ 'z-index': {'position': 'absolute'},
+ 'outline-offset': {'outline-style': 'solid'},
+ 'outline-width': {'outline-style': 'solid'},
+ 'word-spacing': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'column-rule-width': {'column-rule-style': 'solid'},
+ 'position': {'width': '50px', 'height': '50px', top: '10px', left: '50px'}
+};
+
+/*
+ * additional styles required *on the parent* to actually render
+ * (different browsers expect different environment)
+ */
+var parent_styles = {
+ 'border-top-width': {'border-top-style' : 'solid'},
+ 'border-right-width': {'border-right-style' : 'solid'},
+ 'border-bottom-width': {'border-bottom-style' : 'solid'},
+ 'border-left-width': {'border-left-style' : 'solid'},
+ 'height': {'width': '100px', 'height': '100px'},
+ 'min-height': {'width': '100px', 'height': '100px'},
+ 'max-height': {'width': '100px', 'height': '100px'},
+ 'width': {'width': '100px', 'height': '100px'},
+ 'min-width': {'width': '100px', 'height': '100px'},
+ 'max-width': {'width': '100px', 'height': '100px'},
+ // unspecified properties
+ 'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
+ // inheritance tests
+ 'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
+ 'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
+};
+
+
+function assemble(props) {
+ var tests = [];
+
+ // assemble tests
+ for (var property in props) {
+ props[property].forEach(function(type) {
+ var _values = values[type](property);
+ Object.keys(_values).forEach(function(unit) {
+ var data = {
+ name: property + ' ' + type + '(' + unit + ')',
+ property: property,
+ valueType : type,
+ unit : unit,
+ parentStyle: extend({}, parent_styles[property] || {}),
+ from: extend({}, additional_styles[property] || {}),
+ to: {}
+ };
+
+ data.from[property] = _values[unit][0];
+ data.to[property] = _values[unit][1];
+ data.flags = _values[unit][2] || {};
+
+ tests.push(data);
+ });
+ });
+ }
+
+ return tests;
+}
+
+root.getPropertyTests = function() {
+ return assemble(properties);
+};
+
+root.getMissingPropertyTests = function() {
+ return assemble(missing_properties);
+};
+
+root.getUnspecifiedPropertyTests = function() {
+ return assemble(unspecified_properties);
+};
+
+root.getFontSizeRelativePropertyTests = function() {
+ var accepted = {};
+
+ for (var key in properties) {
+ if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
+ continue;
+ }
+
+ if (properties[key].indexOf('length') > -1) {
+ accepted[key] = ['length-em'];
+ }
+ }
+
+ return assemble(accepted);
+};
+
+root.getAutoPropertyTests = function() {
+ var accepted = {};
+
+ for (var i = 0, key; key = properties_auto[i]; i++) {
+ accepted[key] = ['auto'];
+ }
+
+ return assemble(accepted);
+};
+
+root.filterPropertyTests = function(tests, names) {
+ var allowed = {};
+ var accepted = [];
+
+ if (typeof names === "string") {
+ names = [names];
+ }
+
+ if (!(names instanceof RegExp)) {
+ names.forEach(function(name) {
+ allowed[name] = true;
+ });
+ }
+
+ tests.forEach(function(test) {
+ if (names instanceof RegExp) {
+ if (!test.name.match(names)) {
+ return;
+ }
+ } else if (!allowed[test.name]) {
+ return;
+ }
+
+ accepted.push(test);
+ });
+
+ return accepted;
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/red20x20.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/red20x20.png
new file mode 100644
index 00000000000..5d44ef210e1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/red20x20.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-body.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-body.html
new file mode 100644
index 00000000000..78038fd28ff
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-body.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+ <script src="util.js" type="text/javascript"></script>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region">
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-container.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-container.html
new file mode 100644
index 00000000000..219fce6503c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/region-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region">
+ </div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50%.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-100px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-50px.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/runParallelAsyncHarness.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/runParallelAsyncHarness.js
new file mode 100644
index 00000000000..460f467930e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/runParallelAsyncHarness.js
@@ -0,0 +1,145 @@
+(function(root){
+'use strict';
+// testharness doesn't know about async test queues,
+// so this wrapper takes care of that
+
+/* USAGE:
+ runParallelAsyncHarness({
+ // list of data to test, must be array of objects.
+ // each object must contain a "name" property to describe the test
+ // besides name, the object can contain whatever data you need
+ tests: [
+ {name: "name of test 1", custom: "data"},
+ {name: "name of test 2", custom: "data"},
+ // ...
+ ],
+
+ // number of tests (tests, not test-cases!) to run concurrently
+ testsPerSlice: 100,
+
+ // time in milliseconds a test-run takes
+ duration: 1000,
+
+ // test-cases to run for for the test - there must be at least one
+ // each case creates its separate async_test() instance
+ cases: {
+ // test case named "test1"
+ test1: {
+ // run as a async_test.step() this callback contains your primary assertions
+ start: function(testCaseKey, data, options){},
+ // run as a async_test.step() this callback contains assertions to be run
+ // when the test ended, immediately before teardown
+ done: function(testCaseKey, data, options){}
+ },
+ // ...
+ }
+
+ // all callbacks are optional:
+
+ // invoked for individual test before it starts so you can setup the environment
+ // like DOM, CSS, adding event listeners and such
+ setup: function(data, options){},
+
+ // invoked after a test ended, so you can clean up the environment
+ // like DOM, CSS, removing event listeners and such
+ teardown: function(data, options){},
+
+ // invoked before a batch of tests ("slice") are run concurrently
+ // tests is an array of test data objects
+ sliceStart: function(options, tests)
+
+ // invoked after a batch of tests ("slice") were run concurrently
+ // tests is an array of test data objects
+ sliceDone: function(options, tests)
+
+ // invoked once all tests are done
+ done: function(options){}
+ })
+*/
+root.runParallelAsyncHarness = function(options) {
+ if (!options.cases) {
+ throw new Error("Options don't contain test cases!");
+ }
+
+ var noop = function(){};
+
+ // add a 100ms buffer to the test timeout, just in case
+ var duration = Math.ceil(options.duration + 100);
+
+ // names of individual tests
+ var cases = Object.keys(options.cases);
+
+ // run tests in a batch of slices
+ // primarily not to overload weak devices (tablets, phones, …)
+ // with too many tests running simultaneously
+ var iteration = -1;
+ var testPerSlice = options.testsPerSlice || 100;
+ var slices = Math.ceil(options.tests.length / testPerSlice);
+
+ // initialize all async test cases
+ // Note: satisfying testharness.js needs to know all async tests before load-event
+ options.tests.forEach(function(data, index) {
+ data.cases = {};
+ cases.forEach(function(name) {
+ data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
+ });
+ });
+
+ function runLoop() {
+ iteration++;
+ if (iteration >= slices) {
+ // no more slice, we're done
+ (options.done || noop)(options);
+ return;
+ }
+
+ // grab a slice of testss and initialize them
+ var offset = iteration * testPerSlice;
+ var tests = options.tests.slice(offset, offset + testPerSlice);
+ tests.forEach(function(data) {
+ (options.setup || noop)(data, options);
+
+ });
+
+ // kick off the current slice of tests
+ (options.sliceStart || noop)(options, tests);
+
+ // perform individual "start" test-case
+ tests.forEach(function(data) {
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].start || noop)(data.cases[name], data, options);
+ });
+ });
+ });
+
+ // conclude test (possibly abort)
+ setTimeout(function() {
+ tests.forEach(function(data) {
+ // perform individual "done" test-case
+ cases.forEach(function(name) {
+ data.cases[name].step(function() {
+ (options.cases[name].done || noop)(data.cases[name], data, options);
+ });
+ });
+ // clean up after individual test
+ (options.teardown || noop)(data, options);
+ // tell harness we're done with individual test-cases
+ cases.forEach(function(name) {
+ data.cases[name].done();
+ });
+ });
+
+ // finish the test for current slice of tests
+ (options.sliceDone || noop)(options, tests);
+
+ // next test please, give the browser 50ms to do catch its breath
+ setTimeout(runLoop, 50);
+ }, duration);
+ }
+
+ // allow DOMContentLoaded before actually doing something
+ setTimeout(runLoop, 100);
+};
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-purple.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-teal.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-blue.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-gray.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-gray.png
new file mode 100644
index 00000000000..92c73561f3a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-gray.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-green.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-lime.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-navy.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-navy.png
new file mode 100644
index 00000000000..28dae8a3e12
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-orange.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-pink.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-pink.png
new file mode 100644
index 00000000000..95b84499a3d
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-pink.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-purple.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-purple.png
new file mode 100644
index 00000000000..73bea775175
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-red.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-teal.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-white.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-yellow.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-bl.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-br.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-inner-half-size.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-outer.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tl.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tr.png b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two-regions-in-container.html b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two-regions-in-container.html
new file mode 100644
index 00000000000..2fc65261da0
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two-regions-in-container.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en"><head>
+ <meta charset="UTF-8">
+ <title>One region in body</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ #container {
+ background: red;
+ }
+ #content {
+ flow-into: flow;
+ font-family: Ahem;
+ font-size: 20px;
+ line-height: 1em;
+ color: green;
+ }
+ #region1, #region2 {
+ flow-from: flow;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <!-- The &#8203; entity is a zerowidth space. It enables me to create nicely reflowing rectangles of Ahem text -->
+ <div id="content">
+ xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx&#x200B;xxxx
+ </div>
+ </div>
+ <div id="region-parent">
+ <div id="region1"></div>
+ <div id="region2"></div>
+ </div>
+ <script src="util.js" type="text/javascript"></script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two.gif b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two.gif
new file mode 100644
index 00000000000..01435c80209
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/two.gif
Binary files differ
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/util.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/util.js
new file mode 100644
index 00000000000..a7ce4283e45
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/util.js
@@ -0,0 +1,29 @@
+function resizeViewportTo(viewportSelector, width, height) {
+ var iframe = document.querySelector(viewportSelector);
+ // Commonly used trick to trigger a layout
+ iframe.contentWindow.document.body.offsetTop;
+
+ iframe.width = width;
+ iframe.height = height;
+
+ iframe.contentWindow.document.body.offsetTop;
+}
+
+function injectStylesInIFrame(styleSelector, frameSelector) {
+ var style = document.querySelector(styleSelector),
+ frame = document.querySelector(frameSelector);
+
+ frame.contentWindow.addNewStyles(style.textContent);
+}
+
+
+if (window.parent != window) {
+ // we're in an iframe, so expose the bits that allow setting styles inside
+ window.addNewStyles = function (cssText) {
+ var styleTag = document.createElement("style"),
+ textNode = document.createTextNode(cssText);
+
+ styleTag.appendChild(textNode);
+ document.head.appendChild(styleTag);
+ }
+} \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/vendorPrefix.js b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/vendorPrefix.js
new file mode 100644
index 00000000000..6cf3c5a3783
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/support/vendorPrefix.js
@@ -0,0 +1,86 @@
+//
+// Vendor-Prefix Helper Functions For Testing CSS
+//
+
+(function(root) {
+'use strict';
+
+var prefixCache = {};
+
+// convert "foo-bar" to "fooBar"
+function camelCase(str) {
+ return str.replace(/\-(\w)/g, function(match, letter){
+ return letter.toUpperCase();
+ });
+}
+
+// vendor-prefix a css property
+root.addVendorPrefix = function (name) {
+ var prefix = getVendorPrefix(name);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + name;
+};
+
+// vendor-prefix a css property value
+root.addValueVendorPrefix = function (property, value) {
+ var prefix = getValueVendorPrefix(property, value);
+ if (prefix === false) {
+ // property unknown to browser
+ return name;
+ }
+
+ return prefix + value;
+};
+
+// identify vendor-prefix for css property
+root.getVendorPrefix = function(name) {
+ if (prefixCache[name] !== undefined) {
+ return prefixCache[name];
+ }
+
+ var elem = document.createElement("div");
+ name = camelCase(name);
+
+ if (name in elem.style) {
+ return prefixCache[name] = "";
+ }
+
+ var prefixes = ["Webkit", "Moz", "O", "ms"];
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-"];
+ var _name = name.substring(0, 1).toUpperCase() + name.substring(1);
+
+ for (var i = 0, length = prefixes.length; i < length; i++) {
+ if (prefixes[i] + _name in elem.style) {
+ return prefixCache[name] = styles[i];
+ }
+ }
+
+ return prefixCache[name] = name in elem.style ? "" : false;
+};
+
+// identify vendor-prefix for css property value
+root.getValueVendorPrefix = function(property, value) {
+ var elem = document.createElement("div");
+ // note: webkit needs the element to be attached to the dom
+ document.body.appendChild(elem);
+ var styles = ["-webkit-", "-moz-", "-o-", "-ms-", ""];
+ var _property = getVendorPrefix(property) + property;
+ for (var i=0, length = styles.length; i < length; i++) {
+ var _value = styles[i] + value;
+ elem.setAttribute('style', _property + ": " + _value);
+ var _computed = computedStyle(elem, _property);
+ if (_computed && _computed !== 'none') {
+ document.body.removeChild(elem);
+ return styles[i];
+ }
+ }
+ document.body.removeChild(elem);
+ return false;
+};
+
+
+})(window); \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/toc.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/toc.xht
new file mode 100644
index 00000000000..63effef1727
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/toc.xht
@@ -0,0 +1,69 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Values and Units Module Level 3 CR Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSS Values and Units Module Level 3 CR Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Introduction</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Value Definition Syntax</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Textual Data Types</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Numeric Data Types</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Distance Units: the <length> type</a></th>
+ <td>(30 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Other Quantities</a></th>
+ <td>(2 Tests)</td></tr>
+ </tbody>
+ <tbody id="s7">
+ <tr><th><a href="chapter-7.xht">Chapter 7 -
+ Data Types Defined Elsewhere</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s8">
+ <tr><th><a href="chapter-8.xht">Chapter 8 -
+ Functional Notations</a></th>
+ <td>(32 Tests)</td></tr>
+ </tbody>
+ <tbody id="s9">
+ <tr><th><a href="chapter-9.xht">Chapter 9 -
+ Appendix A: IANA Considerations</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-delay-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-delay-001.xht
new file mode 100644
index 00000000000..1a00c9b32d1
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-delay-001.xht
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Transitions Test: Parsing transition-delay</title>
+ <meta content="Test checks that transition-delay values are parsed properly" name="assert" />
+ <link href="http://www.w3.org/TR/css3-transitions/#transition-delay-property" rel="help" title="2.4. The 'transition-delay' Property" />
+ <link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the ‘&lt;time>’ type and ‘s’, ‘ms’ units" />
+ <link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
+ <meta content="dom" name="flags" />
+
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+
+ <script src="./support/vendorPrefix.js" type="text/javascript"></script>
+ <script src="./support/helper.js" type="text/javascript"></script>
+
+ <script id="metadata_cache">/*
+ {
+ "parse '10.2s'": {},
+ "parse '1s'": {},
+ "parse '0.1s'": {},
+ "parse '0.01s'": {},
+ "parse '0.001s'": {},
+ "parse '0.009s'": {},
+ "parse '0s'": {},
+ "parse '.0s'": {},
+ "parse '0.0s'": {},
+ "parse '.3s'": {},
+ "parse '-5s'": {},
+ "parse '10200ms'": {},
+ "parse '1000ms'": {},
+ "parse '100ms'": {},
+ "parse '10ms'": {},
+ "parse '9ms'": {},
+ "parse '1ms'": {},
+ "parse '0ms'": {},
+ "parse '-500ms'": {},
+ "parse '1s, 0.1s, 10ms'": {},
+ "parse 'foobar'": { "flags": "invalid" }
+ }
+ */</script>
+ </head>
+ <body>
+ <!-- required by testharnessreport.js -->
+ <div id="log"></div>
+ <!-- elements used for testing -->
+ <div id="container">
+ <div id="transition"></div>
+ </div>
+
+ <script>
+ var transition = document.getElementById('transition');
+ // &lt;time&gt; [, &lt;time&gt;]*
+ var values = {
+ // seconds
+ '10.2s': '10.2s',
+ '1s': '1s',
+ '0.1s': '0.1s',
+ '0.01s': '0.01s',
+ '0.001s': '0.001s',
+ '0.009s': '0.009s',
+ '0s': '0s',
+ '0s': '0s',
+ '.0s': '0s',
+ '0.0s': '0s',
+ '.3s': '0.3s',
+ '-5s' : '-5s',
+ // milliseconds
+ '10200ms': '10.2s',
+ '1000ms': '1s',
+ '100ms': '0.1s',
+ '10ms': '0.01s',
+ '9ms': '0.009s',
+ '1ms': '0.001s',
+ '0ms': '0s',
+ '-500ms' : '-0.5s',
+ // combination
+ '1s, 0.1s, 10ms': '1s, 0.1s, 0.01s',
+ // invalid
+ 'foobar': '0s'
+ };
+
+ // these tests are supposed to fail and
+ // possibly make the engine issue a parser warning
+ var invalidTests = {
+ 'foobar': true
+ };
+
+ for (var key in values) {
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
+ test(function() {
+ setStyle('#transition', {
+ 'transition-delay': key
+ });
+ var result = computedStyle(transition, 'transition-delay');
+ assert_equals(result, values[key], "Expected computed value");
+ }, "parse '" + key + "'",
+ {
+ // mark tests that fail as such
+ flags: invalidTests[key] ? "invalid" : ""
+ });
+ }
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-duration-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-duration-001.xht
new file mode 100644
index 00000000000..275b58d7b2c
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/transition-duration-001.xht
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Transitions Test: Parsing transition-duration</title>
+ <meta content="Test checks that transition-duration values are parsed properly" name="assert" />
+ <link href="http://www.w3.org/TR/css3-transitions/#transition-duration-property" rel="help" title="2.2. The 'transition-duration' Property" />
+ <link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the ‘&lt;time>’ type and ‘s’, ‘ms’ units" />
+ <link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
+ <meta content="dom" name="flags" />
+
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+
+ <script src="./support/vendorPrefix.js" type="text/javascript"></script>
+ <script src="./support/helper.js" type="text/javascript"></script>
+
+ <script id="metadata_cache">/*
+ {
+ "parse '10.2s'": {},
+ "parse '1s'": {},
+ "parse '0.1s'": {},
+ "parse '0.01s'": {},
+ "parse '0.001s'": {},
+ "parse '0.009s'": {},
+ "parse '0s'": {},
+ "parse '.0s'": {},
+ "parse '0.0s'": {},
+ "parse '.3s'": {},
+ "parse '-5s'": { "flags": "invalid" },
+ "parse '10200ms'": {},
+ "parse '1000ms'": {},
+ "parse '100ms'": {},
+ "parse '10ms'": {},
+ "parse '9ms'": {},
+ "parse '1ms'": {},
+ "parse '0ms'": {},
+ "parse '-500ms'": { "flags": "invalid" },
+ "parse '1s, 0.1s, 10ms'": {},
+ "parse 'foobar'": { "flags": "invalid" }
+ }
+ */</script>
+ </head>
+ <body>
+ <!-- required by testharnessreport.js -->
+ <div id="log"></div>
+ <!-- elements used for testing -->
+ <div id="container">
+ <div id="transition"></div>
+ </div>
+
+ <script>
+ var transition = document.getElementById('transition');
+ // &lt;time&gt; [, &lt;time&gt;]*
+ var values = {
+ // seconds
+ '10.2s': '10.2s',
+ '1s': '1s',
+ '0.1s': '0.1s',
+ '0.01s': '0.01s',
+ '0.001s': '0.001s',
+ '0.009s': '0.009s',
+ '0s': '0s',
+ '.0s': '0s',
+ '0.0s': '0s',
+ '.3s': '0.3s',
+ '-5s' : '0s',
+ // milliseconds
+ '10200ms': '10.2s',
+ '1000ms': '1s',
+ '100ms': '0.1s',
+ '10ms': '0.01s',
+ '9ms': '0.009s',
+ '1ms': '0.001s',
+ '0ms': '0s',
+ '-500ms' : '0s',
+ // combination
+ '1s, 0.1s, 10ms': '1s, 0.1s, 0.01s',
+ // invalid
+ 'foobar': '0s'
+ };
+
+ // these tests are supposed to fail and
+ // possibly make the engine issue a parser warning
+ var invalidTests = {
+ '-5s': true,
+ '-500ms': true,
+ 'foobar': true
+ };
+
+ for (var key in values) {
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
+ test(function() {
+ setStyle('#transition', {
+ 'transition-duration': key
+ });
+ var result = computedStyle(transition, 'transition-duration');
+ assert_equals(result, values[key], "Expected computed value");
+ }, "parse '" + key + "'",
+ {
+ // mark tests that fail as such
+ flags: invalidTests[key] ? "invalid" : ""
+ });
+ }
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support-pct.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support-pct.xht
new file mode 100644
index 00000000000..35b5a772f90
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support-pct.xht
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are supported inside calc expressions.
+ </title>
+ <meta content="
+ Check that viewport units add correctly to percentages in calc() expressions
+ " name="assert" />
+
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#calc" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #target { position: absolute; background: green; width: calc(100vw + 50%); height: calc(100vh + 50%); top: -50%; left: -50%; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support.xht
new file mode 100644
index 00000000000..fcd8260fd4b
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-calc-support.xht
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are supported inside calc expressions.
+ </title>
+ <meta content="
+ Check that viewport units add correctly to pixels in calc() expressions
+ " name="assert" />
+
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-values/#calc" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #target { position: absolute; background: green; width: calc(100vw + 50px); height: calc(100vh + 50px); top: -50px; left: -50px; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-em-inherit.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-em-inherit.xht
new file mode 100644
index 00000000000..a99faef4d30
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-em-inherit.xht
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ 0vh and 0vw are correctly treated as 0px
+ </title>
+ <meta content="
+ 0vh and 0vw are correctly treated as 0px
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; font-size: 100vw; }
+ #target { background: green; width: 1rem; height: 1em; font-size: 100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-inherit.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-inherit.xht
new file mode 100644
index 00000000000..df89a9c338f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-inherit.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are inherited properly
+ </title>
+ <meta content="
+ Viewport units are inherited properly
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; }
+ #outer { position: relative; background: green; width: 50vw; height: 100vh; }
+ #inner { position: absolute; background: green; left: 100%; width: inherit; height: inherit; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"><div id="inner"></div></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-pct.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-pct.xht
new file mode 100644
index 00000000000..1e8c0b817bb
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-pct.xht
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 0%; height: 0%; }
+ to { width: 200vw; height: 200vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-px.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-px.xht
new file mode 100644
index 00000000000..ec81223cbb4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-px.xht
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 0px and 200vh is 100vh (respectively for vw)
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 0px; height: 0px; }
+ to { width: 200vw; height: 200vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-vh.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-vh.xht
new file mode 100644
index 00000000000..88aefecc347
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-interpolate-vh.xht
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewport units are interpolated correctly
+ </title>
+ <meta content="
+ The interpolated size mid-way between 75vh and 125vh is 100vh (respectively for vw)
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-animations/#animations" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ @keyframes anim {
+ from { width: 75vw; height: 75vh; }
+ to { width: 125vw; height: 125vh; }
+ }
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: red; overflow: hidden; }
+ #outer { position: relative; background: green; }
+ #outer { animation: anim 2000000s; animation-delay: -1000000s; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="outer"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-atviewport.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-atviewport.xht
new file mode 100644
index 00000000000..e089fd664d4
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-atviewport.xht
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in @viewport rules
+ </title>
+ <meta content="
+ Viewports units are supported in @viewport rules
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="https://drafts.csswg.org/css-device-adapt-1/" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ @viewport { width: 1vw; }
+
+ html { background: red; }
+ #target { background: green; width: 100vw; height: 100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-margin.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-margin.xht
new file mode 100644
index 00000000000..5a41e1bc307
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-margin.xht
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in margin properties
+ </title>
+ <meta content="
+ Viewports units are supported in margin properties
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: green; }
+ #target { background: red; width: 100%; height: 100%; margin-left: -100vw; margin-top: -100vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-origin.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-origin.xht
new file mode 100644
index 00000000000..6aea46f1810
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-origin.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in transform properties
+ </title>
+ <meta content="
+ Viewports units are supported in transform properties
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-2d-transforms/#css-values" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ html { background: green; }
+ iframe { width: 400px; height: 400px; margin: 0px; padding: 0px; border: 0px none transparent; }
+
+ </style>
+
+</head>
+<body>
+
+ <iframe src="iframe/vh-support-transform-origin.html"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-translate.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-translate.xht
new file mode 100644
index 00000000000..966eb4f4d5e
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support-transform-translate.xht
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in transform properties
+ </title>
+ <meta content="
+ Viewports units are supported in transform properties (translate)
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="Franois REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="http://www.w3.org/TR/css3-2d-transforms/#css-values" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; overflow: hidden; }
+
+ html { background: green; }
+ iframe { width: 400px; height: 400px; margin: 0px; padding: 0px; border: 0px none transparent; }
+
+ </style>
+
+</head>
+<body>
+
+ <iframe src="iframe/vh-support-transform-translate.html"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support.xht
new file mode 100644
index 00000000000..68f7b65d36f
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-support.xht
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Viewports units are supported in sizing properties
+ </title>
+ <meta content="
+ Viewports units are supported in sizing properties
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ #target { background: green; width: 100vw; height: 100vh; }
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-zero-support.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-zero-support.xht
new file mode 100644
index 00000000000..1c304dd7916
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh-zero-support.xht
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ 0vh and 0vw are correctly treated as 0px
+ </title>
+ <meta content="
+ 0vh and 0vw are correctly treated as 0px
+ " name="assert" />
+
+ <link href="mailto:fremycompany.developer@yahoo.fr" rel="author" title="François REMY" />
+
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <link href="reference/all-green.xht" rel="match" />
+
+ <style type="text/css">
+
+ html, body { margin: 0px; padding: 0px; }
+
+ html { background: green; }
+ #target { background: red; width: 0vw; height: 0vh; }
+
+ </style>
+
+</head>
+<body>
+
+ <div id="target"></div>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht
new file mode 100644
index 00000000000..61263c7baeb
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- Submitted from TestTWF Paris --><html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Values and Units Test: vh-based dimension doesn't change when the element's other dimension doesn't change.</title>
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <link href="reference/vh_not_refreshing_on_chrome-ref.xht" rel="match" />
+ <meta content="vh-based dimension doesn't change when the element's other dimension doesn't change." name="assert" />
+ <!-- This test exhibits a bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8 -->
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ #frameTest { width: 600px; height: 200px; border: 1px solid #000; }
+
+ </style>
+
+ <script type="text/javascript">
+ var height = 200;
+
+ function resizeReference() {
+
+ var frameTest = document.getElementById('frameTest');
+
+ // let's resize the iframe vertically only, showing that the vh sizes is not updated.
+ if (height &lt;= 300) {
+
+ //frameTest.style.width = height++ + "px";
+ frameTest.style.height = height++ + "px";
+
+ setTimeout(resizeReference, 10);
+
+ } else {
+
+ // uncomment the next line to see how a width resize triggers a layout recalculation
+ //frameTest.style.width = (parseInt(window.getComputedStyle(document.getElementById('frameTest'))['width'], 10) + 1) + "px";
+
+ }
+
+ }
+
+ setTimeout(resizeReference, 10);
+ </script>
+
+</head>
+<body>
+
+<iframe src="vh_not_refreshing_on_chrome_iframe.html" id="frameTest" frameborder="0"></iframe>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht
new file mode 100644
index 00000000000..c655927ce3a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- Submitted from TestTWF Paris --><head>
+
+ <title>CSS Values and Units Test: vh-based dimension doesn't change when the element other dimension doesn't change.</title>
+ <meta content="vh-based dimension doesn't change when the element other dimension doesn't change. Bug for Chrome 19.0.1084.56 / Mac OS X 10.6.8" name="assert" />
+ <link href="mailto:marc@bourlon.com" rel="author" title="Marc Bourlon" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" title="5.1.2. Viewport-percentage lengths: the 'vw', 'vh', 'vmin', 'vmax' units" />
+ <link href="reference/vh_not_refreshing_on_chrome-ref.xht" rel="match" />
+
+ <style type="text/css">
+
+ * { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
+
+ /* the first test box has its vertical dimension is set to some vh units */
+ #testBoxWithVhOnly { background: #F00; width: 60px; height: 20vh; float: left; }
+
+ /* the second test box, with fixed height */
+ #testBoxNotGrownHorizontallyByJS { background: #F0F; width: 20vh; height: 60px; float: left; }
+
+ /* third box, changed by using CSS transition */
+ #testBoxWithTransition { background: #FF0; width: 20vh; height: 40px; float: left;
+ transition-property: width, height;
+ transition-duration: 1.5s;
+ transition-delay: 0;
+ }
+
+ /* the reference box, growing in both directions (height by js, width by vh unit */
+ #referenceBoxGrownHorizontallyByJS { background: #0F0; width: 20vh; height: 40px; float: left; }
+
+ p { clear: both; margin: 10px 0; }
+
+ </style>
+
+</head>
+<body>
+
+<p>
+ All boxes should end up the same size. The green box is the reference one.
+</p>
+
+<div id="testBoxWithVhOnly"></div>
+<div id="testBoxNotGrownHorizontallyByJS"></div>
+<div id="testBoxWithTransition"></div>
+<div id="referenceBoxGrownHorizontallyByJS"></div>
+
+<script type="text/javascript">
+
+ // In case this file was opened by mistake, redirects to proper test
+ if (window.top.location.href === document.location.href) {
+
+ window.top.location.href = "vh_not_refreshing_on_chrome.html";
+
+ }
+
+ function setDimension(id, dimension, value) {
+
+ var element = document.getElementById(id);
+
+ element.style[dimension] = value + "px";
+
+ }
+
+ function animate() {
+
+ var viewportHeight = document.documentElement.clientHeight;
+
+ var sizeH = 20;
+
+ var referenceDimension = Math.round(sizeH * viewportHeight / 100);
+
+ setDimension('referenceBoxGrownHorizontallyByJS', 'height', referenceDimension);
+
+ setTimeout(animate, 20);
+ }
+
+ setTimeout(animate, 20);
+
+ var transitionedTestBoxStyle = document.getElementById('testBoxWithTransition').style;
+ transitionedTestBoxStyle.height = "60px";
+</script>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht
new file mode 100644
index 00000000000..cf260482f8a
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- Submitted from TestTWF Paris --><head>
+ <title>CSS Values and Units Test: Viewport units in scaled viewport</title>
+ <meta content="viewport relative units scale with viewport." name="assert" />
+ <link href="mailto:eae@chromium.org" rel="author" title="Emil A Eklund" />
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style>
+ iframe { border: 0; }
+ </style>
+ </head>
+ <body>
+ <div id="log"></div>
+ <iframe src="javascript:void(0)" id="testFrame"></iframe>
+ <script>
+ test(function() {
+ var frameElement = document.getElementById('testFrame');
+ var frameDocument = frameElement.contentDocument;
+
+ var testElement = frameDocument.createElement('div');
+ testElement.style.width = '50vw';
+ testElement.style.height = '50vh';
+ testElement.style.position = 'absolute';
+ testElement.style.left = '0';
+ testElement.style.top = '0';
+ testElement.style.backgroundColor = 'black';
+ frameDocument.body.appendChild(testElement);
+
+ var frameWidth = frameElement.getBoundingClientRect().width;
+ var frameHeight = frameElement.getBoundingClientRect().height;
+ for (var i = 1; i &lt;= 200; i++) {
+ var scale = i / 100;
+ frameDocument.body.style.transform = 'scale(' + scale + ')';
+ var rect = testElement.getBoundingClientRect();
+ var actualWidth = rect.width;
+ var actualHeight = rect.height;
+ var expectedWidth = frameWidth * scale / 2;
+ var expectedHeight = frameHeight * scale / 2;
+
+ assert_approx_equals(actualWidth, expectedWidth, 0.1, '50vw at ' + scale + ' scale');
+ assert_approx_equals(actualHeight, expectedHeight, 0.1, '50vh at ' + scale + ' scale');
+ }
+ }, 'viewport relative units in scaled viewport');
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-units-css2-001.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-units-css2-001.xht
new file mode 100644
index 00000000000..4feb0c35bf2
--- /dev/null
+++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/viewport-units-css2-001.xht
@@ -0,0 +1,255 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <title>
+ CSS Values and Units Test:
+ Checks viewport units against CSS 2.1 properties and the CSSOM
+ </title>
+ <meta content="Testing what happens when one applies and rereads viewport unit lengths to CSS 2.1 properties that accept length values" name="assert" />
+
+ <link href="mailto:schaepp@gmx.de" rel="author" title="Christian Schaefer" />
+
+ <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
+ <!-- Be sure to make the main testing area first in the order -->
+ <link href="http://www.w3.org/TR/css3-values/#viewport-relative-lengths" rel="help" />
+
+ <!-- testharness inclusion for later submission -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+
+ <!-- testharness fallback for local testing -->
+ <script>
+ window.test || document.write('\
+ &lt;script src="http://www.w3c-test.org/resources/testharness.js"&gt;&lt;\/script&gt;\
+ &lt;script src="http://www.w3c-test.org/resources/testharnessreport.js"&gt;&lt;\/script&gt;\
+ ');
+ </script>
+
+ <style>
+
+ #div {
+ position: relative;
+ width: 50vw;
+ height: 10vw;
+ background: green;
+ border: 0 green solid;
+ font-size: 4vw;
+ }
+
+ #table td {
+ border: 1px solid green;
+ }
+
+ </style>
+
+</head>
+<body>
+ <div id="log"></div>
+
+ <p>
+ Checks viewport units. Also re-check with zoom in/out.
+ </p>
+
+ <div id="div">
+ Test the Web Forward!
+ </div>
+
+ <table id="table">
+ <tbody>
+ <tr>
+ <td id="td">Test</td>
+ <td>T</td>
+ <td>W</td>
+ <td>F</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <script>
+
+ /* Boilerplate code */
+
+ var camelize = function (str) {
+ return str.replace(/\-(\w)/g, function(str, letter){
+ return letter.toUpperCase();
+ });
+ };
+
+ var retrieveComputedStyle = function(element,property){
+ var result =
+ document
+ .defaultView
+ .getComputedStyle(element,null)
+ .getPropertyValue(property);
+
+ // If there are multiple values, cut down to the first
+ result = result.split(' ')[0];
+
+ if(window.console) console.log('Retrieving ' + property + ' property. Result: ' + result);
+
+ return result;
+ }
+
+ var testit = function(element,vunit,property,expectedResult){
+
+ element.style[camelize(property)] = '0px';
+ element.style[camelize(property)] = lengthAmount + vunit;
+
+ if(window.console) console.log(element.nodeName.toLowerCase() + '.style.' + camelize(property) + ' = ' + lengthAmount + vunit);
+
+ var result = retrieveComputedStyle(element,property);
+
+ // Test against WebKit's getComputedStyle bug, where it does not return absolute values
+ // As required here: http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#computed-value
+ // If it returns a pixel value, but this value is 0px then it is considered a fail, too.
+ var px_result = result.search(/^[-\d\.]+px$/) !== -1 &amp;&amp; result !== '0px' ? 'non-zero px-based value' : result;
+
+ // If browser returns pixel value, we compare against our expected pixel value
+ if(px_result === 'non-zero px-based value'){
+ test(function(){
+ assert_equals(Math.round(parseFloat(result.replace(/[^-\d\.]+/g,''))),expectedResult);
+ },vunit + ' length applied to ' + property);
+ }
+ // If not, we compare against the value we set initially
+ else {
+ test(function(){
+ assert_equals(result,lengthAmount + vunit);
+ },vunit + ' length applied to ' + property);
+ }
+
+ // Does the browser have a bug in getComputedStyle or not?
+ test(function(){
+ assert_equals(px_result,'non-zero px-based value');
+ },vunit + ' length applied to ' + property + ': getComputedStyle returns a non-zero px-based value');
+
+ element.style[camelize(property)] = '';
+ }
+
+ var lengthAmount = 10;
+ var layoutViewportWidth = document.documentElement.clientWidth;
+ var layoutViewportHeight = document.documentElement.clientHeight;
+
+ var viewportUnits = [
+ {
+ ident: 'vw',
+ expectedResult: Math.round(layoutViewportWidth * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vh',
+ expectedResult: Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vmin',
+ expectedResult: layoutViewportWidth &amp;lt; layoutViewportHeight ? Math.round(layoutViewportWidth * (lengthAmount / 100)) : Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ,{
+ ident: 'vmax',
+ expectedResult: layoutViewportWidth &amp;gt; layoutViewportHeight ? Math.round(layoutViewportWidth * (lengthAmount / 100)) : Math.round(layoutViewportHeight * (lengthAmount / 100))
+ }
+ ]
+
+ // List of length accepting properties and which element they map to
+ // http://www.w3.org/TR/CSS21/propidx.html
+ var lengthAcceptingProperties = [
+ {
+ name: 'width',
+ element: 'div'
+ }
+ ,{
+ name: 'height',
+ element: 'div'
+ }
+ ,{
+ name: 'min-width',
+ element: 'div'
+ }
+ ,{
+ name: 'min-height',
+ element: 'div'
+ }
+ ,{
+ name: 'max-width',
+ element: 'div'
+ }
+ ,{
+ name: 'max-height',
+ element: 'div'
+ }
+ ,{
+ name: 'margin-top',
+ element: 'div'
+ }
+ ,{
+ name: 'padding-top',
+ element: 'div'
+ }
+ ,{
+ name: 'border-top-width',
+ element: 'div'
+ }
+ ,{
+ name: 'font-size',
+ element: 'div'
+ }
+ ,{
+ name: 'line-height',
+ element: 'div'
+ }
+ ,{
+ name: 'border-spacing',
+ element: 'table'
+ }
+ ,{
+ name: 'top',
+ element: 'div'
+ }
+ ,{
+ name: 'right',
+ element: 'div'
+ }
+ ,{
+ name: 'bottom',
+ element: 'div'
+ }
+ ,{
+ name: 'left',
+ element: 'div'
+ }
+ ,{
+ name: 'letter-spacing',
+ element: 'div'
+ }
+ ,{
+ name: 'text-indent',
+ element: 'div'
+ }
+ ,{
+ name: 'vertical-align',
+ element: 'td'
+ }
+ ,{
+ name: 'word-spacing',
+ element: 'div'
+ }
+ ];
+
+ var div = document.getElementById('div');
+ var table = document.getElementById('table');
+ var td = document.getElementById('td');
+
+ for(unitEntry in viewportUnits){
+ for(propertyEntry in lengthAcceptingProperties){
+
+ var vunit = viewportUnits[unitEntry].ident;
+ var expectedResult = viewportUnits[unitEntry].expectedResult;
+ var property = lengthAcceptingProperties[propertyEntry].name;
+ var element = window[lengthAcceptingProperties[propertyEntry].element];
+
+ testit(element,vunit,property,expectedResult);
+ }
+ }
+
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/html4/before-after-selector-001.htm b/tests/wpt/css-tests/css21_dev/html4/before-after-selector-001.htm
index 0cfb66e420b..2a2c211ead4 100644
--- a/tests/wpt/css-tests/css21_dev/html4/before-after-selector-001.htm
+++ b/tests/wpt/css-tests/css21_dev/html4/before-after-selector-001.htm
@@ -4,6 +4,7 @@
<title>CSS Test: After and before pseudo-elements</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/">
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#before-and-after">
+ <link rel="match" href="reference/before-after-selector-001-ref.htm">
<meta name="flags" content="">
<meta name="assert" content="After and before pseudo-element allows inserted text after or before a given element.">
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/html4/chapter-5.htm b/tests/wpt/css-tests/css21_dev/html4/chapter-5.htm
index 4350dac3f3a..3a54f05f7bd 100644
--- a/tests/wpt/css-tests/css21_dev/html4/chapter-5.htm
+++ b/tests/wpt/css-tests/css21_dev/html4/chapter-5.htm
@@ -1790,7 +1790,7 @@
<tr id="lang-selector-001-5.11.4" class="primary">
<td><strong>
<a href="lang-selector-001.htm">lang-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/lang-selector-001-ref.htm">=</a> </td>
<td></td>
<td>Selectors :lang pseudo-class
<ul class="assert">
@@ -7557,7 +7557,7 @@
<tr id="before-after-selector-001-5.12.3" class="primary">
<td><strong>
<a href="before-after-selector-001.htm">before-after-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/before-after-selector-001-ref.htm">=</a> </td>
<td></td>
<td>After and before pseudo-elements
<ul class="assert">
diff --git a/tests/wpt/css-tests/css21_dev/html4/lang-selector-001.htm b/tests/wpt/css-tests/css21_dev/html4/lang-selector-001.htm
index 70d0ebdadd9..a49013e0605 100644
--- a/tests/wpt/css-tests/css21_dev/html4/lang-selector-001.htm
+++ b/tests/wpt/css-tests/css21_dev/html4/lang-selector-001.htm
@@ -4,6 +4,7 @@
<title>CSS Test: Selectors :lang pseudo-class</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/">
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang">
+ <link rel="match" href="reference/lang-selector-001-ref.htm">
<meta name="flags" content="">
<meta name="assert" content="The :lang pseudo-class selector matches any element with a matching lang attribute.">
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/html4/reference/before-after-selector-001-ref.htm b/tests/wpt/css-tests/css21_dev/html4/reference/before-after-selector-001-ref.htm
new file mode 100644
index 00000000000..90d8d13db5b
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/html4/reference/before-after-selector-001-ref.htm
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>CSS Reftest Reference</title>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com">
+<style type="text/css">
+div {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if the "Filler Text" below is green.</p>
+<div>Filler Text Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/html4/reference/lang-selector-001-ref.htm b/tests/wpt/css-tests/css21_dev/html4/reference/lang-selector-001-ref.htm
new file mode 100644
index 00000000000..fa170728956
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/html4/reference/lang-selector-001-ref.htm
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>CSS Reftest Reference</title>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com">
+<style type="text/css">
+.green {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if only the first line of "Filler Text" below is green.</p>
+<p class="green">Filler Text</p>
+<p>Filler Text</p>
+<div>Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/html4/reftest-toc.htm b/tests/wpt/css-tests/css21_dev/html4/reftest-toc.htm
index ea0ec95a63d..453a9ee78b0 100644
--- a/tests/wpt/css-tests/css21_dev/html4/reftest-toc.htm
+++ b/tests/wpt/css-tests/css21_dev/html4/reftest-toc.htm
@@ -8264,6 +8264,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="before-after-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="After and before pseudo-elements">
+ <a href="before-after-selector-001.htm">before-after-selector-001</a></td>
+ <td><a href="reference/before-after-selector-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="before-after-table-parts-001" class="">
<tr>
<td rowspan="1" title="generated content">
@@ -30372,6 +30380,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="lang-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="Selectors :lang pseudo-class">
+ <a href="lang-selector-001.htm">lang-selector-001</a></td>
+ <td><a href="reference/lang-selector-001-ref.htm">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="lang-selector-002" class="invalid">
<tr>
<td rowspan="1" title="Empty :lang selector">
diff --git a/tests/wpt/css-tests/css21_dev/html4/reftest.list b/tests/wpt/css-tests/css21_dev/html4/reftest.list
index e9714b258d4..3637397eefd 100644
--- a/tests/wpt/css-tests/css21_dev/html4/reftest.list
+++ b/tests/wpt/css-tests/css21_dev/html4/reftest.list
@@ -1063,6 +1063,7 @@ before-after-dynamic-restyle-001.htm == reference/before-after-dynamic-restyle-0
before-after-floated-001.htm == reference/before-after-floated-001-ref.htm
before-after-images-001.htm == reference/before-after-images-001-ref.htm
before-after-positioned-001.htm == reference/before-after-positioned-001-ref.htm
+before-after-selector-001.htm == reference/before-after-selector-001-ref.htm
before-after-table-parts-001.htm == reference/before-after-table-parts-001-ref.htm
before-after-table-whitespace-001.htm == reference/before-after-table-whitespace-001-ref.htm
before-content-display-001.htm == reference/after-content-display-001-ref.htm
@@ -3848,6 +3849,7 @@ invalid-decl-at-rule-001.htm == reference/filler-text-below-green.htm
invalid-decl-at-rule-002.htm == reference/filler-text-below-green.htm
keywords-000.htm == reference/ref-green-background.htm
keywords-001.htm == reference/keywords-001-ref.htm
+lang-selector-001.htm == reference/lang-selector-001-ref.htm
lang-selector-002.htm == reference/no-red-filler-text-ref.htm
lang-selector-003.htm == reference/filler-text-below-green.htm
leading-001.htm == reference/leading-001-ref.htm
diff --git a/tests/wpt/css-tests/css21_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/css21_dev/implementation-report-TEMPLATE.data
index 0cfae189d1b..b407fe76f88 100644
--- a/tests/wpt/css-tests/css21_dev/implementation-report-TEMPLATE.data
+++ b/tests/wpt/css-tests/css21_dev/implementation-report-TEMPLATE.data
@@ -2763,8 +2763,8 @@ html4/before-after-images-001.htm 23fb7143075f3176a02f65f2007270c735d26c7c ?
xhtml1/before-after-images-001.xht 23fb7143075f3176a02f65f2007270c735d26c7c ?
html4/before-after-positioned-001.htm d4b2c18aa9fd31a85b81c096236a24365ce08cb6 ?
xhtml1/before-after-positioned-001.xht d4b2c18aa9fd31a85b81c096236a24365ce08cb6 ?
-html4/before-after-selector-001.htm 3846e3a87d0d3df404ba8f07bffc39e1635722ed ?
-xhtml1/before-after-selector-001.xht 3846e3a87d0d3df404ba8f07bffc39e1635722ed ?
+html4/before-after-selector-001.htm e2d0e8fbd8f430c8b9465e8b069146ea5307db80 ?
+xhtml1/before-after-selector-001.xht e2d0e8fbd8f430c8b9465e8b069146ea5307db80 ?
html4/before-after-table-parts-001.htm 482090b305a6e97d70fc9782761a7e83cff3f936 ?
xhtml1/before-after-table-parts-001.xht 482090b305a6e97d70fc9782761a7e83cff3f936 ?
html4/before-after-table-whitespace-001.htm 7733835a7bcac98b89c7bb95ca28052944415826 ?
@@ -13016,8 +13016,8 @@ html4/keywords-001.htm 13c37f2ae37cf36c4c63e048fda5b7e634131c79 ?
xhtml1/keywords-001.xht 13c37f2ae37cf36c4c63e048fda5b7e634131c79 ?
html4/lang-pseudoclass-001.htm 8c18cfa29028ff4f8dc0f6c8bbcb47aa62b41176 ?
xhtml1/lang-pseudoclass-002.xht 7ff7a233c03f8673acf91b885456e645211ffc3d ?
-html4/lang-selector-001.htm c62deff2754cdf81bc55ed4873786125c1378759 ?
-xhtml1/lang-selector-001.xht c62deff2754cdf81bc55ed4873786125c1378759 ?
+html4/lang-selector-001.htm 2cc3bcad14d2ae93e81330e70b355dc2d29fa55f ?
+xhtml1/lang-selector-001.xht 2cc3bcad14d2ae93e81330e70b355dc2d29fa55f ?
html4/lang-selector-002.htm b7b03b42293d2980dc7fe0c42c76fe4e42cf7b3f ?
xhtml1/lang-selector-002.xht b7b03b42293d2980dc7fe0c42c76fe4e42cf7b3f ?
html4/lang-selector-003.htm 6d29a53202efa69fd5ea4e147503c16d1b6510fc ?
diff --git a/tests/wpt/css-tests/css21_dev/testinfo.data b/tests/wpt/css-tests/css21_dev/testinfo.data
index bd01aad2201..a98c0a09950 100644
--- a/tests/wpt/css-tests/css21_dev/testinfo.data
+++ b/tests/wpt/css-tests/css21_dev/testinfo.data
@@ -1399,7 +1399,7 @@ before-after-dynamic-restyle-001 reference/before-after-dynamic-restyle-001-ref
before-after-floated-001 reference/before-after-floated-001-ref generated content http://www.w3.org/TR/CSS21/generate.html#before-after-content 6fb70f083086a1093ed838ae95b64b8da117f9ff `Robert O'Callahan`<mailto:robert@ocallahan.org>,`Mozilla Corporation`<http://mozilla.com/>
before-after-images-001 reference/before-after-images-001-ref generated content http://www.w3.org/TR/CSS21/generate.html#content 23fb7143075f3176a02f65f2007270c735d26c7c `Robert O'Callahan`<mailto:robert@ocallahan.org>,`Mozilla Corporation`<http://mozilla.com/>
before-after-positioned-001 reference/before-after-positioned-001-ref generated content http://www.w3.org/TR/CSS21/generate.html#before-after-content d4b2c18aa9fd31a85b81c096236a24365ce08cb6 `Robert O'Callahan`<mailto:robert@ocallahan.org>,`Mozilla Corporation`<http://mozilla.com/>
-before-after-selector-001 After and before pseudo-elements http://www.w3.org/TR/CSS21/selector.html#before-and-after 3846e3a87d0d3df404ba8f07bffc39e1635722ed `Microsoft`<http://www.microsoft.com/> After and before pseudo-element allows inserted text after or before a given element.
+before-after-selector-001 reference/before-after-selector-001-ref After and before pseudo-elements http://www.w3.org/TR/CSS21/selector.html#before-and-after e2d0e8fbd8f430c8b9465e8b069146ea5307db80 `Microsoft`<http://www.microsoft.com/> After and before pseudo-element allows inserted text after or before a given element.
before-after-table-parts-001 reference/before-after-table-parts-001-ref generated content http://www.w3.org/TR/CSS21/generate.html#before-after-content 482090b305a6e97d70fc9782761a7e83cff3f936 `Robert O'Callahan`<mailto:robert@ocallahan.org>,`Mozilla Corporation`<http://mozilla.com/>
before-after-table-whitespace-001 reference/before-after-table-whitespace-001-ref generated content http://www.w3.org/TR/CSS21/generate.html#content 7733835a7bcac98b89c7bb95ca28052944415826 `Robert O'Callahan`<mailto:robert@ocallahan.org>,`Mozilla Corporation`<http://mozilla.com/>
before-content-display-001 reference/after-content-display-001-ref :before generated content - display inline http://www.w3.org/TR/CSS21/generate.html#before-after-content,http://www.w3.org/TR/CSS21/visuren.html#display-prop 85a13608b3a68389d0dd8c734709829c98a0da39 `G&eacute;rard Talbot`<http://www.gtalbot.org/BrowserBugsSection/css21testsuite/> Generated content can have their own display value explicitly set in which case they behave as if they were real elements inserted just inside their associated element.
@@ -6543,7 +6543,7 @@ keywords-000 reference/ref-green-background Keywords v. Strings (background) ht
keywords-001 reference/keywords-001-ref Keywords v. Strings (width) http://www.w3.org/TR/CSS21/syndata.html#keywords 13c37f2ae37cf36c4c63e048fda5b7e634131c79 `L. David Baron`<http://dbaron.org/>
lang-pseudoclass-001 :lang pseudoclass HTMLonly http://www.w3.org/TR/CSS21/selector.html#lang 8c18cfa29028ff4f8dc0f6c8bbcb47aa62b41176 `Richard Ishida`<mailto:ishida@w3.org>,`Eira Monstad, Opera Software ASA`<mailto:public-testsuites@opera.com> :lang pseudoclass in HTML should not be case-sensitive, and match a substring
lang-pseudoclass-002 :lang pseudoclass nonHTML http://www.w3.org/TR/CSS21/selector.html#lang 7ff7a233c03f8673acf91b885456e645211ffc3d `Richard Ishida`<mailto:ishida@w3.org>,`Eira Monstad, Opera Software ASA`<mailto:public-testsuites@opera.com> :lang pseudoclass in XHTML should be case sensitive, and match a substring
-lang-selector-001 Selectors :lang pseudo-class http://www.w3.org/TR/CSS21/selector.html#lang c62deff2754cdf81bc55ed4873786125c1378759 `Microsoft`<http://www.microsoft.com/> The :lang pseudo-class selector matches any element with a matching lang attribute.
+lang-selector-001 reference/lang-selector-001-ref Selectors :lang pseudo-class http://www.w3.org/TR/CSS21/selector.html#lang 2cc3bcad14d2ae93e81330e70b355dc2d29fa55f `Microsoft`<http://www.microsoft.com/> The :lang pseudo-class selector matches any element with a matching lang attribute.
lang-selector-002 reference/no-red-filler-text-ref Empty :lang selector invalid http://www.w3.org/TR/CSS21/selector.html#lang b7b03b42293d2980dc7fe0c42c76fe4e42cf7b3f `Microsoft`<http://www.microsoft.com/> Language identifier cannot be empty.
lang-selector-003 reference/filler-text-below-green Invalid language name for :lang selector http://www.w3.org/TR/CSS21/selector.html#lang 6d29a53202efa69fd5ea4e147503c16d1b6510fc `Microsoft`<http://www.microsoft.com/> The language identifier in the :lang selector doesn't have to be a valid language name.
lang-selector-004 Inherited lang attribute selected http://www.w3.org/TR/CSS21/selector.html#lang bee7dce082d7e5861d28582e0ea9d2cf5733bcf2 `Microsoft`<http://www.microsoft.com/> Lang attribute is inherited and lang selector works on children.
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/before-after-selector-001.xht b/tests/wpt/css-tests/css21_dev/xhtml1/before-after-selector-001.xht
index 88fb2c2b9a0..289474f7a8b 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1/before-after-selector-001.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/before-after-selector-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: After and before pseudo-elements</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#before-and-after" />
+ <link rel="match" href="reference/before-after-selector-001-ref.xht" />
<meta name="flags" content="" />
<meta name="assert" content="After and before pseudo-element allows inserted text after or before a given element." />
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/chapter-5.xht b/tests/wpt/css-tests/css21_dev/xhtml1/chapter-5.xht
index 886f36341b5..73a3077fecc 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1/chapter-5.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/chapter-5.xht
@@ -1768,7 +1768,7 @@
<tr id="lang-selector-001-5.11.4" class="primary">
<td><strong>
<a href="lang-selector-001.xht">lang-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/lang-selector-001-ref.xht">=</a> </td>
<td></td>
<td>Selectors :lang pseudo-class
<ul class="assert">
@@ -7535,7 +7535,7 @@
<tr id="before-after-selector-001-5.12.3" class="primary">
<td><strong>
<a href="before-after-selector-001.xht">before-after-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/before-after-selector-001-ref.xht">=</a> </td>
<td></td>
<td>After and before pseudo-elements
<ul class="assert">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/lang-selector-001.xht b/tests/wpt/css-tests/css21_dev/xhtml1/lang-selector-001.xht
index f884c9f97f6..0625491b71f 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1/lang-selector-001.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/lang-selector-001.xht
@@ -4,6 +4,7 @@
<title>CSS Test: Selectors :lang pseudo-class</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang" />
+ <link rel="match" href="reference/lang-selector-001-ref.xht" />
<meta name="flags" content="" />
<meta name="assert" content="The :lang pseudo-class selector matches any element with a matching lang attribute." />
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht b/tests/wpt/css-tests/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht
new file mode 100644
index 00000000000..9ae8a6299df
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>CSS Reftest Reference</title>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com" />
+<style type="text/css">
+div {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if the "Filler Text" below is green.</p>
+<div>Filler Text Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/reference/lang-selector-001-ref.xht b/tests/wpt/css-tests/css21_dev/xhtml1/reference/lang-selector-001-ref.xht
new file mode 100644
index 00000000000..fa8615a2943
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/reference/lang-selector-001-ref.xht
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>CSS Reftest Reference</title>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com" />
+<style type="text/css">
+.green {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if only the first line of "Filler Text" below is green.</p>
+<p class="green">Filler Text</p>
+<p>Filler Text</p>
+<div>Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/css21_dev/xhtml1/reftest-toc.xht
index f5ef94eede8..d72e0c009c2 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1/reftest-toc.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/reftest-toc.xht
@@ -8480,6 +8480,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="before-after-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="After and before pseudo-elements">
+ <a href="before-after-selector-001.xht">before-after-selector-001</a></td>
+ <td><a href="reference/before-after-selector-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="before-after-table-parts-001" class="">
<tr>
<td rowspan="1" title="generated content">
@@ -30724,6 +30732,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="lang-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="Selectors :lang pseudo-class">
+ <a href="lang-selector-001.xht">lang-selector-001</a></td>
+ <td><a href="reference/lang-selector-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="lang-selector-002" class="invalid">
<tr>
<td rowspan="1" title="Empty :lang selector">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1/reftest.list b/tests/wpt/css-tests/css21_dev/xhtml1/reftest.list
index 134ba30bee7..544f0a7a9a8 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1/reftest.list
+++ b/tests/wpt/css-tests/css21_dev/xhtml1/reftest.list
@@ -1063,6 +1063,7 @@ before-after-dynamic-restyle-001.xht == reference/before-after-dynamic-restyle-0
before-after-floated-001.xht == reference/before-after-floated-001-ref.xht
before-after-images-001.xht == reference/before-after-images-001-ref.xht
before-after-positioned-001.xht == reference/before-after-positioned-001-ref.xht
+before-after-selector-001.xht == reference/before-after-selector-001-ref.xht
before-after-table-parts-001.xht == reference/before-after-table-parts-001-ref.xht
before-after-table-whitespace-001.xht == reference/before-after-table-whitespace-001-ref.xht
before-content-display-001.xht == reference/after-content-display-001-ref.xht
@@ -3848,6 +3849,7 @@ invalid-decl-at-rule-001.xht == reference/filler-text-below-green.xht
invalid-decl-at-rule-002.xht == reference/filler-text-below-green.xht
keywords-000.xht == reference/ref-green-background.xht
keywords-001.xht == reference/keywords-001-ref.xht
+lang-selector-001.xht == reference/lang-selector-001-ref.xht
lang-selector-002.xht == reference/no-red-filler-text-ref.xht
lang-selector-003.xht == reference/filler-text-below-green.xht
leading-001.xht == reference/leading-001-ref.xht
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/before-after-selector-001.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/before-after-selector-001.xht
index 6daa01fcbb4..4483cb18055 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1print/before-after-selector-001.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/before-after-selector-001.xht
@@ -13,6 +13,7 @@
</style>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#before-and-after" />
+ <link rel="match" href="reference/before-after-selector-001-ref.xht" />
<meta name="flags" content="" />
<meta name="assert" content="After and before pseudo-element allows inserted text after or before a given element." />
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/chapter-5.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/chapter-5.xht
index 886f36341b5..73a3077fecc 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1print/chapter-5.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/chapter-5.xht
@@ -1768,7 +1768,7 @@
<tr id="lang-selector-001-5.11.4" class="primary">
<td><strong>
<a href="lang-selector-001.xht">lang-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/lang-selector-001-ref.xht">=</a> </td>
<td></td>
<td>Selectors :lang pseudo-class
<ul class="assert">
@@ -7535,7 +7535,7 @@
<tr id="before-after-selector-001-5.12.3" class="primary">
<td><strong>
<a href="before-after-selector-001.xht">before-after-selector-001</a></strong></td>
- <td></td>
+ <td><a href="reference/before-after-selector-001-ref.xht">=</a> </td>
<td></td>
<td>After and before pseudo-elements
<ul class="assert">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/lang-selector-001.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/lang-selector-001.xht
index e90b2ec3347..87d9d32a1b2 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1print/lang-selector-001.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/lang-selector-001.xht
@@ -13,6 +13,7 @@
</style>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#lang" />
+ <link rel="match" href="reference/lang-selector-001-ref.xht" />
<meta name="flags" content="" />
<meta name="assert" content="The :lang pseudo-class selector matches any element with a matching lang attribute." />
<style type="text/css">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht
new file mode 100644
index 00000000000..ab871e330ef
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>CSS Reftest Reference</title>
+ <style type="text/css">
+ @page { font: italic 8pt sans-serif; color: gray;
+ margin: 7%;
+ counter-increment: page;
+ @top-left { content: "CSS 2.1 Conformance Test Suite"; }
+ @top-right { content: "Test before-after-selector-001-ref"; }
+ @bottom-right { content: counter(page); }
+ }
+</style>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com" />
+<style type="text/css">
+div {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if the "Filler Text" below is green.</p>
+<div>Filler Text Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht
new file mode 100644
index 00000000000..d66f1edea44
--- /dev/null
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>CSS Reftest Reference</title>
+ <style type="text/css">
+ @page { font: italic 8pt sans-serif; color: gray;
+ margin: 7%;
+ counter-increment: page;
+ @top-left { content: "CSS 2.1 Conformance Test Suite"; }
+ @top-right { content: "Test lang-selector-001-ref"; }
+ @bottom-right { content: counter(page); }
+ }
+</style>
+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com" />
+<style type="text/css">
+.green {
+ color: green;
+}
+</style>
+</head>
+<body>
+<p>Test passes if only the first line of "Filler Text" below is green.</p>
+<p class="green">Filler Text</p>
+<p>Filler Text</p>
+<div>Filler Text</div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/reftest-toc.xht b/tests/wpt/css-tests/css21_dev/xhtml1print/reftest-toc.xht
index f5ef94eede8..d72e0c009c2 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1print/reftest-toc.xht
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/reftest-toc.xht
@@ -8480,6 +8480,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="before-after-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="After and before pseudo-elements">
+ <a href="before-after-selector-001.xht">before-after-selector-001</a></td>
+ <td><a href="reference/before-after-selector-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="before-after-table-parts-001" class="">
<tr>
<td rowspan="1" title="generated content">
@@ -30724,6 +30732,14 @@
<td rowspan="1"></td>
</tr>
</tbody>
+ <tbody id="lang-selector-001" class="">
+ <tr>
+ <td rowspan="1" title="Selectors :lang pseudo-class">
+ <a href="lang-selector-001.xht">lang-selector-001</a></td>
+ <td><a href="reference/lang-selector-001-ref.xht">=</a> </td>
+ <td rowspan="1"></td>
+ </tr>
+ </tbody>
<tbody id="lang-selector-002" class="invalid">
<tr>
<td rowspan="1" title="Empty :lang selector">
diff --git a/tests/wpt/css-tests/css21_dev/xhtml1print/reftest.list b/tests/wpt/css-tests/css21_dev/xhtml1print/reftest.list
index 134ba30bee7..544f0a7a9a8 100644
--- a/tests/wpt/css-tests/css21_dev/xhtml1print/reftest.list
+++ b/tests/wpt/css-tests/css21_dev/xhtml1print/reftest.list
@@ -1063,6 +1063,7 @@ before-after-dynamic-restyle-001.xht == reference/before-after-dynamic-restyle-0
before-after-floated-001.xht == reference/before-after-floated-001-ref.xht
before-after-images-001.xht == reference/before-after-images-001-ref.xht
before-after-positioned-001.xht == reference/before-after-positioned-001-ref.xht
+before-after-selector-001.xht == reference/before-after-selector-001-ref.xht
before-after-table-parts-001.xht == reference/before-after-table-parts-001-ref.xht
before-after-table-whitespace-001.xht == reference/before-after-table-whitespace-001-ref.xht
before-content-display-001.xht == reference/after-content-display-001-ref.xht
@@ -3848,6 +3849,7 @@ invalid-decl-at-rule-001.xht == reference/filler-text-below-green.xht
invalid-decl-at-rule-002.xht == reference/filler-text-below-green.xht
keywords-000.xht == reference/ref-green-background.xht
keywords-001.xht == reference/keywords-001-ref.xht
+lang-selector-001.xht == reference/lang-selector-001-ref.xht
lang-selector-002.xht == reference/no-red-filler-text-ref.xht
lang-selector-003.xht == reference/filler-text-below-green.xht
leading-001.xht == reference/leading-001-ref.xht
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/CaretPosition-001.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/CaretPosition-001.htm
new file mode 100644
index 00000000000..83dcb1c6f6d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/CaretPosition-001.htm
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View Module test:CaretPosition</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug">
+ <link href="http://www.w3.org/TR/cssom-view/#the-caretposition-interface" rel="help">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ .box{
+ position: absolute;
+ top : 100px;
+ left : 400px;
+ width: 100px;
+ height: 100px;
+ background-color: #000;
+ }
+ </style>
+</head>
+<body>
+ <p>This case tests the Screen pixelDepth and colorDepth</p>
+ <p>The test passes if the value is Element "#box2"</p>
+ <div class="box" id="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box" id="box2"></div>
+ <div style="left: 405px;background:red;" class="box" id="box3"></div>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(getBox('box2'), document.elementFromPoint(400,100), "Expected value for element id is 'box2'");
+ },'getBox');
+ test(function(){
+ assert_equals(null, document.elementFromPoint(400,900), "Expected value for element id is 'box2'");
+ },'getBox');
+ function getBox(id){
+ return document.getElementById(id);
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/MediaQueryList-001.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/MediaQueryList-001.htm
new file mode 100644
index 00000000000..5c82d30f6ae
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/MediaQueryList-001.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View Module test:MediaQueryList</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug">
+ <link href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" rel="help">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ </style>
+</head>
+<body>
+ <p>This case tests the MediaQueryList
+ </p><p>The test passes if the value is 1280/800</p>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(window.matchMedia('(device-aspect-ratio: 1280/800)').matches, true, "Expected value for device-aspect-ratio is 1280/800");
+ },'matchMedia');
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm
new file mode 100644
index 00000000000..7b5b3854f3f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View Module test:Screen-pixelDepth,Screen-colorDepth</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ </style>
+</head>
+<body>
+ <p>This case tests the Screen pixelDepth and colorDepth</p>
+ <p>The test passes if the value is 24</p>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(testColorDepth(), 24, "Expected value for colorDepth is 24");
+ },'testColorDepth');
+ test(function(){
+ assert_equals(testPixelDepth(), 24, "Expected value for pixelDepth is 24");
+ },'testPixelDepth');
+ function testColorDepth(){
+ var colorDepth = window.screen.colorDepth;
+ return colorDepth;
+ }
+ function testPixelDepth(){
+ var pixelDepth = window.screen.pixelDepth;
+ return pixelDepth;
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-1.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-1.htm
new file mode 100644
index 00000000000..eb6113d50f9
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-1.htm
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Background - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Background (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#background">1 Background</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-10.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-10.htm
new file mode 100644
index 00000000000..1edf64444f6
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-10.htm
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the Range Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Range Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s10">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s10">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-range-interface">10 Extensions to the Range Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s10.#dom-range-getboundingclientrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s10.#dom-range-getclientrects">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-11.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-11.htm
new file mode 100644
index 00000000000..9a9b82a6f5e
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-11.htm
@@ -0,0 +1,69 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the MouseEvent Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the MouseEvent Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s11">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s11">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-mouseevent-interface">11 Extensions to the MouseEvent Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-clientx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-clienty">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-offsetx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-offsety">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-pagex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-pagey">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-screenx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-screeny">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-x">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-y">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-12.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-12.htm
new file mode 100644
index 00000000000..27069ec0248
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-12.htm
@@ -0,0 +1,72 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Geometry - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Geometry (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s12">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s12">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#geometry">12 Geometry</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s12.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-geometryutils-interface">12.1 The GeometryUtils Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#boxquadoptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#convertcoordinateoptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#cssboxtype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertpointfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertquadfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertrectfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-getboxquads">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#geometrynode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#geometryutils">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-13.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-13.htm
new file mode 100644
index 00000000000..eb7c7e218a5
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-13.htm
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Events - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Events (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s13">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#events">13 Events</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s13.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#resizing-viewports">13.1 Resizing viewports</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s13.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#scrolling-0">13.2 Scrolling</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-14.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-14.htm
new file mode 100644
index 00000000000..f4f2249c9f3
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-14.htm
@@ -0,0 +1,108 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSS properties - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>CSS properties (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s14">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s14">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#css-properties">14 CSS properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s14.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#smooth-scrolling:-the-'scroll-behavior'-property">14.1 Smooth Scrolling: The 'scroll-behavior' Property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior-instant">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior-smooth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#anolis-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSBOX">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSDEVICEADAPT">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSOM">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSTRANSFORMS">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSWRITINGMODES">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsDOM">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsGEOMETRY">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsHTML">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsRFC2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsSVG">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsWEBIDL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#sotd">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#toc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c-doctype">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-2.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-2.htm
new file mode 100644
index 00000000000..adc33d25a27
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-2.htm
@@ -0,0 +1,48 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Conformance - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#conformance">2 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#hardwareLimitations">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#web-idl">2.1 Web IDL</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-3.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-3.htm
new file mode 100644
index 00000000000..d17a641123c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-3.htm
@@ -0,0 +1,141 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Terminology - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Terminology (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#terminology">3 Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#beginning-edges">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#block-flow-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#border-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#canvas">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#content-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#css-layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompointinit">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompointreadonly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domquad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrectlist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrectreadonly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#ending-edges">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#initial-containing-block">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#inline-base-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#margin-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#mouseevent">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#mouseeventinit">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#overflow-directions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#padding-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#scrolling-area">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#scrolling-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#svg-layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#the-html-body-element">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#transforms">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#viewport">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#css-pixels">3.1 CSS pixels</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#zooming">3.2 Zooming</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#page-zoom">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#pinch-zoom">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-4.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-4.htm
new file mode 100644
index 00000000000..ba56924ae0f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-4.htm
@@ -0,0 +1,63 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Common Infrastructure - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Common Infrastructure (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#common-infrastructure">4 Common Infrastructure</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#scrolling">4.1 Scrolling</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-instant-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll-aborted">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll-completed">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#perform-a-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#scroll-to-the-beginning-of-the-document">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-5.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-5.htm
new file mode 100644
index 00000000000..95b83a28634
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-5.htm
@@ -0,0 +1,333 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the Window Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Window Interface (13 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface">5 Extensions to the Window Interface</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="media-query-list-interface-5" class="primary dom script">
+ <td><strong>
+ <a href="media-query-list-interface.htm">media-query-list-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-interface-5" class="primary dom script">
+ <td><strong>
+ <a href="window-interface.htm">window-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#allowed-to-resize-and-move">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-devicepixelratio">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-innerheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-innerwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-matchmedia">
+ <!-- 1 tests -->
+ <tr id="matchmedia-5.#dom-window-matchmedia" class="primary dom script">
+ <td><strong>
+ <a href="matchMedia.htm">matchmedia</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia and MediaQueryList
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#dom-window-moveby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-moveto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-outerheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-outerwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-pagexoffset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-pageyoffset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-resizeby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-resizeto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screen">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screenx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screeny">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrolly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#scrollbehavior">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#scrolloptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-features-argument-to-the-open()-method">5.1 The features argument to the open() method</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-height">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-left">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-top">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-width">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#supported-open()-feature-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">5.2 The MediaQueryList Interface</a></th></tr>
+ <!-- 4 tests -->
+ <tr id="matchmedia-5.2" class="dom script">
+ <td>
+ <a href="matchMedia.htm">matchmedia</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia and MediaQueryList
+ </td>
+ </tr>
+ <tr id="matchmediaaddlistener-5.2" class="primary dom script">
+ <td><strong>
+ <a href="matchMediaAddListener.htm">matchmediaaddlistener</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia addListener
+ </td>
+ </tr>
+ <tr id="media-query-list-interface-5.2" class="dom script">
+ <td>
+ <a href="media-query-list-interface.htm">media-query-list-interface</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="mediaquerylist-001-5.2" class="primary script">
+ <td><strong>
+ <a href="MediaQueryList-001.htm">mediaquerylist-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>MediaQueryList
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-addlistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-matches">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-media">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-removelistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#list-of-media-query-list-listeners">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mediaquerylist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mediaquerylistlistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.3">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-screen-interface">5.3 The Screen Interface</a></th></tr>
+ <!-- 8 tests -->
+ <tr id="cssom-view-window-screen-interface-5.3" class="primary dom script">
+ <td><strong>
+ <a href="cssom-view-window-screen-interface.htm">cssom-view-window-screen-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>cssom view window screen attribute
+ <ul class="assert">
+ <li>window screen interface</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="screen-pixeldepth-screen-colordepth001-5.3" class="primary script">
+ <td><strong>
+ <a href="Screen-pixelDepth-Screen-colorDepth001.htm">screen-pixeldepth-screen-colordepth001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Screen-pixelDepth,Screen-colorDepth
+ </td>
+ </tr>
+ <tr id="window-screen-height-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height.htm">window-screen-height</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height range tests
+ <ul class="assert">
+ <li>window.screen.height has sensible values</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-height-immutable-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height-immutable.htm">window-screen-height-immutable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height immutability
+ <ul class="assert">
+ <li>screen.height is immutable</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-height-mutation-throws-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height-mutation-throws.htm">window-screen-height-mutation-throws</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height mutation throws exception
+ <ul class="assert">
+ <li>screen.height mutation throws exception</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width.htm">window-screen-width</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width range tests
+ <ul class="assert">
+ <li>window.screen.width has sensible values</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-immutable-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width-immutable.htm">window-screen-width-immutable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width immutability
+ <ul class="assert">
+ <li>screen.width is immutable</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-mutation-throws-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width-mutation-throws.htm">window-screen-width-mutation-throws</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width mutation throws exception
+ <ul class="assert">
+ <li>screen.width mutation throws exception</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.3.#dom-screen-availheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-availwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-colordepth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-height">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-pixeldepth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-width">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#screen">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-6.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-6.htm
new file mode 100644
index 00000000000..b4f8db90875
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-6.htm
@@ -0,0 +1,105 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the Document Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Document Interface (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface">6 Extensions to the Document Interface</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="elementfrompoint-001-6" class="primary dom script">
+ <td><strong>
+ <a href="elementFromPoint-001.htm">elementfrompoint-001</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 5 - extensions to the Document interface
+ <ul class="assert">
+ <li>elementFromPoint returns correct element</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="elementfromposition-6" class="primary dom script">
+ <td><strong>
+ <a href="elementFromPosition.htm">elementfromposition</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View elementFromPoint
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.#dom-document-caretpositionfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#dom-document-elementfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#dom-document-elementsfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-caretposition-interface">6.1 The CaretPosition Interface</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="caretposition-001-6.1" class="primary script">
+ <td><strong>
+ <a href="CaretPosition-001.htm">caretposition-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CaretPosition
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.1.#caret-node">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-offset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-position">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-range">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caretposition">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-getclientrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-offset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-offsetnode">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-7.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-7.htm
new file mode 100644
index 00000000000..b29a387dddd
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-7.htm
@@ -0,0 +1,161 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the Element Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Element Interface (6 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s7">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-element-interface">7 Extensions to the Element Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clienttop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-getboundingclientrect">
+ <!-- 2 tests -->
+ <tr id="cssom-getboundingclientrect-001-7.#dom-element-getboundingclientrect" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getBoundingClientRect-001.htm">cssom-getboundingclientrect-001</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 6.1 - getBoundingClientRect tests
+ </td>
+ </tr>
+ <tr id="cssom-getboundingclientrect-002-7.#dom-element-getboundingclientrect" class="dom script">
+ <td>
+ <a href="cssom-getBoundingClientRect-002.htm">cssom-getboundingclientrect-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getBoundingClientRect of element outside DOM
+ <ul class="assert">
+ <li>Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-getclientrects">
+ <!-- 2 tests -->
+ <tr id="cssom-getboundingclientrect-002-7.#dom-element-getclientrects" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getBoundingClientRect-002.htm">cssom-getboundingclientrect-002</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getBoundingClientRect of element outside DOM
+ <ul class="assert">
+ <li>Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="cssom-getclientrects-7.#dom-element-getclientrects" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getClientRects.htm">cssom-getclientrects</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getClientRects of element outside DOM
+ <ul class="assert">
+ <li>Calling getClientRects on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an empty DOMRectList and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-scrollheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrollintoview">
+ <!-- 1 tests -->
+ <tr id="ttwf-scrollintoview-7.#dom-element-scrollintoview" class="primary dom script">
+ <td><strong>
+ <a href="ttwf-scrollintoview.htm">ttwf-scrollintoview</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 6 - scrollIntoView tests
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-scrollleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrolltop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrollwidth">
+ <!-- 2 tests -->
+ <tr id="scrollwidthheight-7.#dom-element-scrollwidth" class="primary dom script">
+ <td><strong>
+ <a href="scrollWidthHeight.htm">scrollwidthheight</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View scrollWidth and scrollHeight
+ </td>
+ </tr>
+ <tr id="scrollwidthheightwhennotscrollable-7.#dom-element-scrollwidth" class="primary dom script">
+ <td><strong>
+ <a href="scrollWidthHeightWhenNotScrollable.htm">scrollwidthheightwhennotscrollable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View scrollWidth/scrollHeight (for nonscrollable elements)
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#scrolloptionshorizontal">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#scrolloptionsvertical">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods">7.1 The getClientRects() and getBoundingClientRect() methods</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#element-scrolling-members">7.2 Element Scrolling Members</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2.#scroll-an-element">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2.#scroll-an-element-into-view">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-8.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-8.htm
new file mode 100644
index 00000000000..d23aa36ff3a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-8.htm
@@ -0,0 +1,70 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Extensions to the HTMLElement Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the HTMLElement Interface (1 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s8">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface">8 Extensions to the HTMLElement Interface</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="offsetparent_element_test-8" class="primary script">
+ <td><strong>
+ <a href="offsetParent_element_test.htm">offsetparent_element_test</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View &amp;#8212;&amp;#8212; offsetParent element test
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetparent">
+ <!-- 1 tests -->
+ <tr id="offsetparent_element_test-8.#dom-htmlelement-offsetparent" class="script">
+ <td>
+ <a href="offsetParent_element_test.htm">offsetparent_element_test</a></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View &amp;#8212;&amp;#8212; offsetParent element test
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsettop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetwidth">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-9.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-9.htm
new file mode 100644
index 00000000000..ac7d28dc662
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/chapter-9.htm
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>Excensions to the HTMLImageElement Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Excensions to the HTMLImageElement Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column">
+ <col id="refs-column">
+ <col id="flags-column">
+ <col id="info-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s9">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#excensions-to-the-htmlimageelement-interface">9 Excensions to the HTMLImageElement Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.#dom-htmlimageelement-x">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.#dom-htmlimageelement-y">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm
new file mode 100644
index 00000000000..f9572ab4db4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 6.1 - getBoundingClientRect tests</title>
+ <meta charset="utf-8">
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu">
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect" rel="help">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ #testItem{width:279px;height: 188px;margin:100px 0 0 178px;background-color: purple;font-size: 26px;font-weight:bold;text-align: center;line-height: 188px;}
+ </style>
+</head>
+<body>
+ <div id="testItem">test item</div>
+ <div id="log"></div>
+ <script>
+ var titem = document.getElementById('testItem').getBoundingClientRect();
+ test(
+ function(){
+ assert_equals(titem.bottom - titem.top,titem.height,"They donot match")
+ },"check getBoundingClientRect().top,getBoundingClientRect.bottom()"
+ );
+ test(
+ function(){
+ assert_equals(titem.right - titem.left,titem.width,"They donot match")
+ },"check getBoundingClientRect().left,getBoundingClientRect.right()"
+ )
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm
new file mode 100644
index 00000000000..b23d010cb4f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Test (CSSOM View): getBoundingClientRect of element outside DOM</title>
+ <link href="http://chrisrebert.com" rel="author" title="Chris Rebert">
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getclientrects" rel="help">
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error." name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script>
+ test(
+ function () {
+ var rect = document.createElement('div').getBoundingClientRect();
+ assert_equals(rect.x, 0, "DOMRect's x should be zero");
+ assert_equals(rect.y, 0, "DOMRect's y should be zero");
+ assert_equals(rect.width, 0, "DOMRect's width should be zero");
+ assert_equals(rect.height, 0, "DOMRect's height should be zero");
+ },
+ "getBoundingClientRect on a newly-created Element not yet inserted into the DOM should return an all-zeroes DOMRect"
+ );
+ </script>
+</head>
+<body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getClientRects.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getClientRects.htm
new file mode 100644
index 00000000000..7015c2a7541
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-getClientRects.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Test (CSSOM View): getClientRects of element outside DOM</title>
+ <link href="http://chrisrebert.com" rel="author" title="Chris Rebert">
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getclientrects" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="Calling getClientRects on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an empty DOMRectList and should definitely not throw an error." name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script>
+ test(
+ function () {
+ var rectList = document.createElement('div').getClientRects();
+ assert_equals(rectList.length, 0, "DOMRectList should be empty");
+ },
+ "getClientRects on a newly-created Element not yet inserted into the DOM should return an empty DOMRectList"
+ );
+ </script>
+</head>
+<body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-view-window-screen-interface.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-view-window-screen-interface.htm
new file mode 100644
index 00000000000..ba5ce915606
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/cssom-view-window-screen-interface.htm
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: cssom view window screen attribute</title>
+ <link href="mailto:jingkewhu@gmail.com" rel="author" title="jingke">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="window screen interface" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ /*test readonly*/
+ test(function(){assert_readonly(window.screen, "availWidth");}, "Screen.availWidth is readonly");
+ test(function(){assert_readonly(window.screen, "availHeight");}, "Screen.availHeight is readonly");
+ test(function(){assert_readonly(window.screen, "width");}, "Screen.width is readonly");
+ test(function(){assert_readonly(window.screen, "height");}, "Screen.height is readonly");
+ test(function(){assert_readonly(window.screen, "colorDepth");}, "Screen.colorDepth is readonly");
+ test(function(){assert_readonly(window.screen, "pixelDepth");}, "Screen.pixelDepth is readonly");
+
+
+ test(function(){assert_true(window.screen.width >= 0 && window.screen.width < 6000000);},
+ "window.screen.width >= 0 && window.screen.width < 6000000");
+ test(function(){assert_true(window.screen.height >= 0 && window.screen.height < 6000000);},
+ "window.screen.height >= 0 && window.screen.height < 6000000");
+ test(function(){assert_true(window.screen.availWidth >= 0 && window.screen.availWidth <= window.screen.width);},
+ "window.screen.availWidth >= 0 && window.screen.availWidth <= window.screen.width");
+ test(function(){assert_true(window.screen.availHeight >= 0 && window.screen.availHeight <= window.screen.height);},
+ "window.screen.availHeight >= 0 && window.screen.availHeight <= window.screen.height");
+ test(function(){assert_true(window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32);},
+ "window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32");
+ test(function(){assert_equals(window.screen.pixelDepth, window.screen.colorDepth);},
+ "window.screen.pixelDepth must return the value returned by window.screen.colorDepth");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPoint-001.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPoint-001.htm
new file mode 100644
index 00000000000..52e1749300d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPoint-001.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 5 - extensions to the Document interface</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="elementFromPoint returns correct element" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style>
+ #targetDiv {
+ position: absolute;
+ top: 10;
+ left: 10;
+ height: 100px;
+ width: 100px;
+ }
+ </style>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <div id="targetDiv">
+ </div>
+ <script>
+ var element = document.elementFromPoint(15, 15);
+
+ test ( function() {
+ assert_equals(element.id, "targetDiv", "elementFromPoint didn't return the correct element");
+ });
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPosition.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPosition.htm
new file mode 100644
index 00000000000..11173d7e82e
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/elementFromPosition.htm
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="en-US"><head>
+ <title>CSS Test: CSSOM View elementFromPoint</title>
+ <meta charset="UTF-8">
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris">
+ <link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface" rel="help">
+ <link href="http://www.w3.org/TR/cssom-view/#widl-Document-elementFromPoint-Element-float-x-float-y" rel="help">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <script id="metadata_cache">/*
+{
+ "document.elementFromPoint": {},
+ "document.elementFromPoint is a Function": {},
+ "test some point of the element: top left corner": {},
+ "test some point of the element: top line": {},
+ "test some point of the element: top right corner": {},
+ "test some point of the element: left line": {},
+ "test some point of the element: inside": {},
+ "test some point of the element: right line": {},
+ "test some point of the element: bottom left corner": {},
+ "test some point of the element: bottom line": {},
+ "test some point of the element: botom right corner": {},
+ "Point (0, 0), return root element(HTML)": {},
+ " test negative x ": {},
+ " test nagetive y ": {},
+ "test outside of viewport": {},
+ "test the top of layer": {}
+}
+ */</script>
+</head>
+<body>
+ <noscript>Test not run - JavaScript required!</noscript>
+ <div id="log"></div>
+ <script type="text/javascript">
+
+ var body = document.getElementsByTagName( 'body' )[0];
+ function createElement( id ) {
+ var elem = document.createElement( 'div' );
+ if ( id && typeof id == 'string' ) {
+ elem.id = id;
+ }
+ body.appendChild( elem );
+ return elem;
+ }
+
+ function setPosition( config ) {
+ var target = config.target;
+ target.style.position = 'absolute';
+ target.style.left = config.left + 'px';
+ target.style.top = config.top + 'px';
+ target.style.width = config.width + 'px';
+ target.style.height = config.height + 'px';
+ if ( config['z-index'] ) {
+ target.style.zIndex = config['z-index'];
+ }
+ }
+
+ var target = createElement( 'dom-1' );
+ setPosition( {
+ width: 100,
+ height: 100,
+ left: 10,
+ top: 10,
+ target: target
+ });
+
+ test( function () {
+ assert_inherits( document, 'elementFromPoint' );
+ }, 'document.elementFromPoint');
+
+ test( function () {
+ assert_true( document.elementFromPoint instanceof Function );
+ }, 'document.elementFromPoint is a Function');
+ (function(){
+ var wrap = [
+ // 左上角.
+ {x: 10, y: 10, r: 'top left corner'},
+ // 上边线
+ {x: 50, y: 10, r: 'top line'},
+ // 右上角
+ {x: 110, y: 10, r: 'top right corner'},
+ // 左边线
+ {x: 10, y: 50, r: 'left line'},
+ // 元素范围内
+ {x: 50, y: 50, r: 'inside'},
+ // 右边线
+ {x: 110, y: 10, r: 'right line'},
+ // 左下角
+ {x: 10, y: 110, r: 'bottom left corner'},
+ // 下边线
+ {x: 50, y: 110, r: 'bottom line'},
+ // 右下角
+ {x: 110, y: 110, r: 'botom right corner'}
+ ];
+ var i = 0, len = wrap.length, item;
+ for ( ; i < len; i++ ) {
+ item = wrap[ i ];
+ test( function () {
+ assert_equals( document.elementFromPoint( item.x, item.y).id == 'dom-1', true );
+ }, 'test some point of the element: ' + item.r);
+ }
+ })();
+ test( function () {
+ var elem = document.elementFromPoint( 0, 0 );
+ assert_true( elem.nodeName == 'HTML' );
+ }, 'Point (0, 0), return root element(HTML)' );
+
+ test( function () {
+ var elem = document.elementFromPoint( -1000, 0 );
+ assert_true( elem == null, 'negative x, return null' );
+ }, ' test negative x ');
+
+ test( function () {
+ var elem = document.elementFromPoint( 0, -1000 );
+ assert_true( elem == null, 'negative y, return null' );
+ }, ' test nagetive y ');
+
+ test( function () {
+ var elem = document.elementFromPoint( 100000, 0 );
+ assert_true( elem == null );
+ }, 'test outside of viewport');
+
+ test( function () {
+ var config = {
+ width: 100,
+ height: 100,
+ left: 5,
+ top: 5
+ };
+ var target2 = createElement( 'dom-2' );
+ config.target = target2;
+ setPosition( config );
+
+ var elem = document.elementFromPoint( 10, 10 );
+ var elem2 = document.elementFromPoint( 10, 10 );
+ assert_equals( elem.id, elem2.id );
+ }, 'test the top of layer');
+ </script>
+
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/matchMedia.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/matchMedia.htm
new file mode 100644
index 00000000000..ae2612e9f67
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/matchMedia.htm
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>CSS Test: CSSOM View matchMedia and MediaQueryList</title>
+ <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">
+ <link rel="help" href="http://www.w3.org/TR/cssom/#serializing-media-queries">
+ <meta name="flags" content="dom">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css">
+ iframe { border: none; }
+ </style>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <iframe width="200" height="100"></iframe>
+ <script type="text/javascript">
+ function reflow(doc) {
+ doc.body.offsetWidth;
+ }
+
+ var iframe = document.querySelector("iframe");
+ var iframe_window = window.frames[0];
+
+ reflow(iframe_window.document);
+
+ test(function(){
+ assert_inherits(window, "matchMedia");
+ }, "window.matchMedia exists");
+
+ test(function(){
+ assert_true(window.matchMedia instanceof Function, "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run.");
+ }, "window.matchMedia is a Function");
+
+ var mql, mql1, mql2, mql3;
+
+ test(function(){
+ mql = window.matchMedia("all");
+ assert_true(mql instanceof MediaQueryList, "matchMedia(\"all\") returned MediaQueryList object.");
+ }, "window.matchMedia(\"all\")");
+
+ test(function(){
+ assert_idl_attribute(mql, "media", "Check that MediaQueryList.media exists.");
+ }, "MediaQueryList.media exists");
+
+ test(function(){
+ assert_readonly(mql, "media", "Check that MediaQueryList.media is readonly.");
+ }, "MediaQueryList.media is readonly");
+
+ test(function(){
+ assert_equals(mql.media, "all");
+ }, "MediaQueryList.media for \"all\"");
+
+ test(function(){
+ assert_idl_attribute(mql, "matches", "Check that MediaQueryList.matches exists.");
+ }, "MediaQueryList.matches exists");
+
+ test(function(){
+ assert_readonly(mql, "matches", "Check that MediaQueryList.matches is readonly.");
+ }, "MediaQueryList.matches is readonly");
+
+ test(function(){
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"all\"");
+
+ test(function(){
+ assert_inherits(mql, "addListener");
+ }, "MediaQueryList.addListener exists");
+
+ test(function(){
+ assert_true(mql.addListener instanceof Function);
+ }, "MediaQueryList.addListener is a Function");
+
+ test(function(){
+ assert_inherits(mql, "removeListener");
+ }, "MediaQueryList.removeListener exists");
+
+ test(function(){
+ assert_true(mql.removeListener instanceof Function);
+ }, "MediaQueryList.removeListener is a Function");
+
+ test(function(){
+ mql = window.matchMedia("::");
+ assert_true(mql instanceof MediaQueryList, "window.matchMedia(\"::\") returned MediaQueryList object.");
+ assert_equals(mql.media, "not all", "MediaQueryList.media serialized as \"not all\" from original string with syntax error.");
+ }, "MediaQueryList.media syntax error");
+
+ test(function(){
+ assert_false(mql.matches);
+ }, "MediaQueryList.matches for \"not all\"");
+
+ test(function(){
+ mql = iframe_window.matchMedia("(max-width: 199px), all and (min-width: 200px)");
+ assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(max-width: 199px), all and (min-width: 200px)\"")
+
+ test(function(){
+ mql = iframe_window.matchMedia("(min-aspect-ratio: 1/1)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(min-aspect-ratio: 1/1)\"");
+
+ test(function(){
+ mql = iframe_window.matchMedia("(width: 200px)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(width: 200px)\"");
+
+ test(function(){
+ mql1 = iframe_window.matchMedia("(max-height: 50px)");
+ assert_false(mql1.matches);
+ }, "MediaQueryList.matches for \"(max-height: 50px)\"");
+
+ test(function(){
+ mql2 = iframe_window.matchMedia("(min-width: 150px)");
+ assert_true(mql2.matches);
+ }, "MediaQueryList.matches for \"(min-width: 150px)\"");
+
+ var resizeTest = async_test("Resize iframe from 200x100 to 200x50, then to 100x50");
+ var listenerOrderTest = async_test("Listeners are called in the order which they have been added");
+ var duplicateListenerTest = async_test("Listener added twice is only called once.");
+
+ window.onload = function(){
+
+ var rmListener = function(x){
+ resizeTest.step(function(){
+ assert_unreached("removeListener was not successful.");
+ });
+ };
+
+ var dupListener = function(x){
+ duplicateListenerTest.step(function(){
+ assert_false(mql1.dupListenerCalled, "Check that this listener has not been called before.");
+ mql1.dupListenerCalled = true;
+ });
+ };
+
+ mql1.firstListenerCalled = false;
+ mql1.dupListenerCalled = false;
+ // Add listener twice and remove it below. Should not be called.
+ mql1.addListener(rmListener);
+ mql1.addListener(rmListener);
+ // Add listener twice. Should only be called once.
+ mql1.addListener(dupListener);
+ mql1.addListener(dupListener);
+
+ mql1.addListener(function(x){
+ resizeTest.step(function(){
+ assert_equals(x, mql1, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
+ assert_true(x.matches, "(max-height: 50px) should now pass.");
+ assert_true(mql2.matches, "(min-width: 150px) should still pass.");
+ iframe.width = "100";
+ });
+
+ listenerOrderTest.step(function(){
+ assert_false(mql1.firstListenerCalled, "Check that this listener is only called once.");
+ mql1.firstListenerCalled = true;
+ });
+ });
+
+ mql1.addListener(function(x){
+ listenerOrderTest.step(function(){
+ assert_true(mql1.firstListenerCalled, "Check that the listener added last is called last.");
+ });
+ listenerOrderTest.done();
+ });
+
+ mql1.removeListener(rmListener);
+
+ mql2.addListener(function(x){
+ duplicateListenerTest.done();
+ resizeTest.step(function(){
+ assert_equals(x, mql2, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
+ assert_true(mql1.matches, "(max-height: 50px) should still pass.");
+ assert_false(x.matches, "(min-width: 150px) should now fail.");
+ });
+ resizeTest.done();
+ });
+
+ iframe.height = "50";
+ };
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/matchMediaAddListener.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/matchMediaAddListener.htm
new file mode 100644
index 00000000000..48ae719796e
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/matchMediaAddListener.htm
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSS Test: CSSOM View matchMedia addListener</title>
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu">
+ <link href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" rel="help">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js" type="text/javascript">
+ <script src="/resources/testharnessreport.js" type="text/javascript" />
+ <style type="text/css">
+ iframe { border: none; }
+ </style>
+ </head>
+ <body>
+ <div id="log"></div>
+ <iframe width="200" height="100" id="iframe1" ></iframe>
+ <script>
+ function reflow(doc) {
+ doc.body.offsetWidth;
+ }
+
+ var iframe = document.querySelector("iframe");
+ var iframe_window = window.frames[0];
+ var iframe1 = document.getElementById("iframe1");
+ reflow(iframe_window.document);
+
+ var i = 0;
+ var totalCount = 10;
+ var count = 0;
+ var divineCount = 10;
+ var width_list = [201,199];
+ var mq1 = iframe_window.matchMedia("(max-width:200px)");
+ mq1.addListener(function(mql){
+
+ count = count + 1;
+
+ });
+
+ var equalAssert = async_test("Check for the correct number of event triggers");
+
+ var changeFrameWidth = function(iWidth) {
+ iframe1.style.width = iWidth + "px";
+ i = (i === 0) ? 1 : 0;
+ totalCount = totalCount - 1;
+ if(totalCount > 0)
+ {
+ setTimeout(function(){
+ changeFrameWidth(width_list[i]);
+ }, 100);
+ }
+ else
+ {
+ setTimeout(function(){
+ equalAssert.step(function(){
+ assert_equals(divineCount, count, "this will be 10 times of event triggers by change width");
+ });
+ equalAssert.done();
+ }, 100);
+ }
+ };
+
+ changeFrameWidth(width_list[0]);
+
+
+ </script>
+ </head><body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/media-query-list-interface.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/media-query-list-interface.htm
new file mode 100644
index 00000000000..e88acc6565b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/media-query-list-interface.htm
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>CSSOM MediaQueryList Test: Properties and Functions</title>
+ <link rel="author" title="Joe Balancio" href="mailto:jlbalancio@gmail.com">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">
+ <meta name="flags" content="dom">
+ <meta name="assert" content="All properties exist and are readonly. All functions exist and are instances of Function">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <script type="text/javascript">
+ var mediaQueryList;
+ test(
+ function(){
+ assert_inherits(window, "matchMedia");
+ mediaQueryList = window.matchMedia('foo');
+ }, 'window_inherits_matchmedia', {
+ assert: ['window.matchMedia is inherited. If this fails, the rest of the test fails.']
+ }
+ );
+ /*
+ MediaQueryList Functions
+ */
+ test(
+ function(){
+ assert_inherits(mediaQueryList, "addListener");
+ assert_inherits(mediaQueryList, "removeListener");
+ }, 'mediaquerylist_inherited_functions', {
+ assert: ['MediaQueryList functions are inherited']
+ }
+ );
+
+ test(
+ function(){
+ assert_true(mediaQueryList.addListener instanceof Function);
+ assert_true(mediaQueryList.removeListener instanceof Function);
+ }, 'mediaquerylist_functions', {
+ assert: ['MediaQueryList functions are instances of Function']
+ }
+ );
+
+ /*
+ MediaQueryList Properties
+ */
+ test(
+ function() {
+ assert_own_property(mediaQueryList, 'media');
+ assert_own_property(mediaQueryList, 'matches');
+ }, 'mediaquerylist_properties', {
+ assert: ['MediaQueryList properties are owned by window']
+ }
+ );
+ test(
+ function() {
+ assert_readonly(mediaQueryList, 'media');
+ assert_readonly(mediaQueryList, 'matches');
+ }, 'mediaquerylist_properties_readonly', {
+ assert: ['MediaQueryList properties are readonly']
+ }
+ );
+
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/offsetParent_element_test.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/offsetParent_element_test.htm
new file mode 100644
index 00000000000..f3912c7f3e1
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/offsetParent_element_test.htm
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<title>CSSOM View —— offsetParent element test</title>
+<link href="mailto:1988wangxiao@gmail.com" rel="author" title="neo_and_rayi">
+<link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface" rel="help">
+<link href="http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetparent" rel="help">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script id="metadata_cache">/*
+{
+ "Valid the algorithm rule of offsetParent check step 1": { "assert": "The offsetParent attribute algorithm rule checking passed!" },
+ "Valid the algorithm rule of offsetParent check step 2": { "assert": "The offsetParent attribute algorithm rule checking passed!" }
+}
+*/</script>
+<style>
+#fixed {
+ position: fixed;
+}
+
+#none-element {
+ display:none;
+}
+
+#relative-element {
+ position: relative;
+}
+
+#absolute-element {
+ position: absolute;
+}
+</style>
+
+</head>
+<body>
+
+<div id="body-element-child"></div>
+
+<div id="relative-element">
+ <div id="relative-element-child"></div>
+</div>
+
+<div id="absolute-element">
+ <div id="absolute-element-child"></div>
+</div>
+
+<table id="table-element">
+ <caption>
+ <div id="caption-element-child"></div>
+ </caption>
+
+ <tbody>
+ <tr id="table-element-tr">
+ <td id="table-element-td">
+ <span id="table-element-child"></span>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<div id="none-element">
+ <a href="#" id="none-element-child-a"></a>
+ <p id="none-element-child-p"></p>
+ <video id="none-element-child-video"></video>
+ <audio id="none-element-child-audio"></audio>
+ <canvas id="none-element-child-canvas"></canvas>
+ <svg id="none-element-child-svg"></svg>
+</div>
+
+<div id="fixed">
+</div>
+
+<div id="log"></div>
+<script type="text/javascript">
+var getStyle = window.getComputedStyle;
+var html = document.documentElement;
+var body = document.body;
+var fixed_element = document.getElementById('fixed');
+var none_element = document.getElementById('none-element');
+
+var none_element_child_a = document.getElementById('none-element-child-a');
+var none_element_child_p = document.getElementById('none-element-child-p');
+var none_element_child_video = document.getElementById('none-element-child-video');
+var none_element_child_audio = document.getElementById('none-element-child-audio');
+var none_element_child_canvas = document.getElementById('none-element-child-canvas');
+var none_element_child_svg = document.getElementById('none-element-child-svg');
+
+var relative_element = document.getElementById('relative-element');
+var absolute_element = document.getElementById('absolute-element');
+var td_element = document.getElementsByTagName('td')[0];
+
+var body_element_child = document.getElementById('body-element-child');
+var relative_element_child = document.getElementById('relative-element-child');
+var absolute_element_child = document.getElementById('absolute-element-child');
+var table_element_child = document.getElementById('table-element-child');
+
+var caption_element_child = document.getElementById('caption-element-child');
+var table_element_tr = document.getElementById('table-element-tr');
+var table_element = document.getElementById('table-element');
+
+test(function() {
+ assert_equals(html.offsetParent,null);
+ assert_equals(body.offsetParent,null);
+ assert_equals(fixed_element.offsetParent,null);
+ assert_equals(none_element.offsetParent,null);
+ assert_equals(none_element_child_a.offsetParent,null);
+ assert_equals(none_element_child_p.offsetParent,null);
+ assert_equals(none_element_child_video.offsetParent,null);
+ assert_equals(none_element_child_audio.offsetParent,null);
+ assert_equals(none_element_child_canvas.offsetParent,null);
+ assert_equals(none_element_child_svg.offsetParent,null);
+}, "Valid the algorithm rule of offsetParent check step 1",
+{ assert: "The offsetParent attribute algorithm rule checking passed!" }
+);
+
+test(function() {
+ assert_equals(body_element_child.offsetParent,body);
+ assert_equals(window.getComputedStyle(relative_element).position,'relative');
+ assert_equals(relative_element_child.offsetParent,relative_element);
+ assert_equals(window.getComputedStyle(absolute_element).position,'absolute');
+ assert_equals(absolute_element_child.offsetParent,absolute_element);
+ assert_equals(window.getComputedStyle(td_element).position,'static');
+ assert_equals(table_element_child.offsetParent,td_element);
+ assert_equals(window.getComputedStyle(table_element_tr).position,'static');
+ assert_equals(table_element_tr.offsetParent,table_element);
+ assert_equals(window.getComputedStyle(caption_element_child).position,'static');
+ assert_equals(caption_element_child.offsetParent,table_element);
+ assert_equals(window.getComputedStyle(td_element).position,'static');
+ assert_equals(td_element.offsetParent,table_element);
+}, "Valid the algorithm rule of offsetParent check step 2",
+{ assert: "The offsetParent attribute algorithm rule checking passed!" }
+);
+
+</script>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/reftest-toc.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/reftest-toc.htm
new file mode 100644
index 00000000000..b1c122c78ee
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/reftest-toc.htm
@@ -0,0 +1,30 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column">
+ <col id="ref-column">
+ <col id="flags-column">
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/reftest.list b/tests/wpt/css-tests/cssom-view-1_dev/html/reftest.list
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/reftest.list
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeight.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeight.htm
new file mode 100644
index 00000000000..beeacdbfb22
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeight.htm
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>CSS Test: CSSOM View scrollWidth and scrollHeight</title>
+ <link rel="author" title="Robert O'Callahan" href="mailto:robert@ocallahan.org">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth">
+ <meta name="flags" content="dom">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css">
+ #elemSimple, #elemOverflow, #elemNestedOverflow {
+ border:1px solid black;
+ overflow:hidden;
+ width:200px;
+ height:40px;
+ padding-bottom:50px;
+ padding-right:40px;
+ }
+ #elemSimple > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemOverflow > div {
+ background:yellow;
+ width:250px;
+ height:150px;
+ }
+ #elemNestedOverflow > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemNestedOverflow > div > div {
+ background:blue;
+ width:250px;
+ height:150px;
+ }
+ </style>
+ <script id="metadata_cache" type="text/javascript">/*
+{
+ "elemSimple.clientHeight is the height of the padding edge": {},
+ "elemSimple.scrollHeight is its clientHeight": {},
+ "elemSimple.clientWidth is the width of the padding edge": {},
+ "elemSimple.scrollWidth is its clientWidth": {},
+ "elemOverflow.clientHeight is the height of the padding edge": {},
+ "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemOverflow.clientWidth is the width of the padding edge": {},
+ "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientHeight is the height of the padding edge": {},
+ "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientWidth is the height of the padding edge": {},
+ "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)": {}
+*/ </script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <div id="elemSimple">
+ <div></div>
+ </div>
+ <div id="elemOverflow">
+ <div></div>
+ </div>
+ <div id="elemNestedOverflow">
+ <div>
+ <div></div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ var elemSimple = document.getElementById("elemSimple");
+ var elemOverflow = document.getElementById("elemOverflow");
+ var elemNestedOverflow = document.getElementById("elemNestedOverflow");
+
+ test(function(){
+ assert_equals(elemSimple.clientHeight, 90);
+ }, "elemSimple.clientHeight is the height of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollHeight, 90);
+ }, "elemSimple.scrollHeight is its clientHeight");
+
+ test(function(){
+ assert_equals(elemSimple.clientWidth, 240);
+ }, "elemSimple.clientWidth is the width of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollWidth, 240);
+ }, "elemSimple.scrollWidth is its clientWidth");
+
+ test(function(){
+ assert_equals(elemOverflow.clientHeight, 90);
+ }, "elemOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. Opera and Webkit meet the spec, IE9 and Firefox
+ give the result here. It seems that in this case Opera and Webkit place
+ the padding-bottom below elemOverflow's child (i.e. below elemOverflow's bottom border);
+ you can scroll to it. IE9 and Firefox do not. I believe this is a Webkit/Opera bug
+ (If you remove overflow:hidden then the padding-bottom moves back to be above the bottom
+ border, as expected.)
+ The underlying issue seems to be whether bottom padding on a scrollable element is
+ always placed at the element's bottom border and not scrolled, or else deemed to
+ belong to the scrolled content and placed below the scrolled element's children.
+ Commenting out for now, because this is not really a CSSOM issue, but an issue
+ over the layout of elements with 'overflow'.
+
+ test(function(){
+ assert_equals(elemOverflow.scrollHeight, 150);
+ }, "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+ */
+
+ test(function(){
+ assert_equals(elemOverflow.clientWidth, 240);
+ }, "elemOverflow.clientWidth is the width of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollWidth, 250);
+ }, "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientHeight, 90);
+ }, "elemNestedOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollHeight, 150);
+ }, "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientWidth, 240);
+ }, "elemNestedOverflow.clientWidth is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollWidth, 250);
+ }, "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm
new file mode 100644
index 00000000000..99fb96a4c19
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>CSS Test: CSSOM View scrollWidth/scrollHeight (for nonscrollable elements)</title>
+ <link rel="author" title="Robert O'Callahan" href="mailto:robert@ocallahan.org">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth">
+ <meta name="flags" content="dom">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css">
+ #elemSimple, #elemOverflow, #elemNestedOverflow {
+ border:1px solid black;
+ width:200px;
+ height:40px;
+ padding-bottom:50px;
+ padding-right:40px;
+ }
+ #elemSimple > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemOverflow > div {
+ background:yellow;
+ width:250px;
+ height:150px;
+ }
+ #elemNestedOverflow > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemNestedOverflow > div > div {
+ background:blue;
+ width:250px;
+ height:150px;
+ }
+ </style>
+ <script id="metadata_cache" type="text/javascript">/*
+{
+ "elemSimple.clientHeight is the height of the padding edge": {},
+ "elemSimple.scrollHeight is its clientHeight": {},
+ "elemSimple.clientWidth is the width of the padding edge": {},
+ "elemSimple.scrollWidth is its clientWidth": {},
+ "elemOverflow.clientHeight is the height of the padding edge": {},
+ "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemOverflow.clientWidth is the width of the padding edge": {},
+ "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientHeight is the height of the padding edge": {},
+ "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientWidth is the height of the padding edge": {},
+ "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)": {}
+*/ </script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <div id="elemSimple">
+ <div></div>
+ </div>
+ <div id="elemOverflow">
+ <div></div>
+ </div>
+ <div id="elemNestedOverflow">
+ <div>
+ <div></div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ var elemSimple = document.getElementById("elemSimple");
+ var elemOverflow = document.getElementById("elemOverflow");
+ var elemNestedOverflow = document.getElementById("elemNestedOverflow");
+
+ test(function(){
+ assert_equals(elemSimple.clientHeight, 90);
+ }, "elemSimple.clientHeight is the height of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollHeight, 90);
+ }, "elemSimple.scrollHeight is its clientHeight");
+
+ test(function(){
+ assert_equals(elemSimple.clientWidth, 240);
+ }, "elemSimple.clientWidth is the width of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollWidth, 240);
+ }, "elemSimple.scrollWidth is its clientWidth");
+
+ test(function(){
+ assert_equals(elemOverflow.clientHeight, 90);
+ }, "elemOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the bottom padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollHeight, 150);
+ }, "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ }, "elemOverflow.clientWidth is the width of the padding edge");
+ assert_equals(elemOverflow.clientWidth, 240);
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollWidth, 250);
+ }, "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientHeight, 90);
+ }, "elemNestedOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring the
+ bottom padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollHeight, 150);
+ }, "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientWidth, 240);
+ }, "elemNestedOverflow.clientWidth is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollWidth, 250);
+ }, "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-green.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-lime.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-maroon.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-navy.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-red.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-white.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-gg-rr.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-green.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-red.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/README b/tests/wpt/css-tests/cssom-view-1_dev/html/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/a-green.css b/tests/wpt/css-tests/cssom-view-1_dev/html/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/b-green.css b/tests/wpt/css-tests/cssom-view-1_dev/html/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/c-red.css b/tests/wpt/css-tests/cssom-view-1_dev/html/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/cat.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-green.css b/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-red.css b/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-gg-gr.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..a6d65b0d4a1
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..9b88fbd8114
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..d454e3a630c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-tr.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50%.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50px.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-100px.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-50px.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-purple.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-teal.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-white.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-blue.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-green.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-lime.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-orange.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-red.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-teal.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-white.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-yellow.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-bl.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-br.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-inner-half-size.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-outer.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tl.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tr.png b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/toc.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/toc.htm
new file mode 100644
index 00000000000..efedf2faf16
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/toc.htm
@@ -0,0 +1,94 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSSOM View Module Level 1 Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.htm">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.htm">Chapter 1 -
+ Background</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.htm">Chapter 2 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.htm">Chapter 3 -
+ Terminology</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.htm">Chapter 4 -
+ Common Infrastructure</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.htm">Chapter 5 -
+ Extensions to the Window Interface</a></th>
+ <td>(13 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.htm">Chapter 6 -
+ Extensions to the Document Interface</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s7">
+ <tr><th><a href="chapter-7.htm">Chapter 7 -
+ Extensions to the Element Interface</a></th>
+ <td>(6 Tests)</td></tr>
+ </tbody>
+ <tbody id="s8">
+ <tr><th><a href="chapter-8.htm">Chapter 8 -
+ Extensions to the HTMLElement Interface</a></th>
+ <td>(1 Tests)</td></tr>
+ </tbody>
+ <tbody id="s9">
+ <tr><th><a href="chapter-9.htm">Chapter 9 -
+ Excensions to the HTMLImageElement Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s10">
+ <tr><th><a href="chapter-10.htm">Chapter 10 -
+ Extensions to the Range Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s11">
+ <tr><th><a href="chapter-11.htm">Chapter 11 -
+ Extensions to the MouseEvent Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s12">
+ <tr><th><a href="chapter-12.htm">Chapter 12 -
+ Geometry</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s13">
+ <tr><th><a href="chapter-13.htm">Chapter 13 -
+ Events</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s14">
+ <tr><th><a href="chapter-14.htm">Chapter 14 -
+ CSS properties</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/ttwf-scrollintoview.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/ttwf-scrollintoview.htm
new file mode 100644
index 00000000000..8a9880b98a9
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/ttwf-scrollintoview.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 6 - scrollIntoView tests</title>
+ <meta charset="utf-8">
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu">
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview" rel="help">
+ <meta content="dom" name="flags">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ #phitem{height: 2000px;}
+ #viewitem{width:300px;height:200px;margin:0 auto;background-color: lightgreen;}
+ </style>
+</head>
+<body>
+ <div id="myDiv">
+ <div id="phitem"></div>
+ <div id="viewitem"></div>
+ </div>
+ <div id="log"></div>
+ <script>
+ var asytest = async_test('check scrollIntoView');
+ asytest.step(function(){
+ var viewitem = document.getElementById('viewitem');
+ viewitem.scrollIntoView();
+ assert_true(window.pageYOffset + window.innerHeight > viewitem.offsetTop, "The element isn't in the viewport")
+ })
+ asytest.done()
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-interface.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-interface.htm
new file mode 100644
index 00000000000..e1872955888
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-interface.htm
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>CSSOM Window Test: Properties and Functions</title>
+ <link rel="author" title="Joe Balancio" href="mailto:jlbalancio@gmail.com">
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface">
+ <meta name="flags" content="dom">
+ <meta name="assert" content="All properties exist and are readonly. All functions exist and are instances of Function">
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <script id="metadata_cache">/*
+ {
+ "window_inherited_functions": {
+ "assert": ["window functions are inherited"]
+ },
+ "window_functions": {
+ "assert": ["window functions are instances of Function"]
+ },
+ "window_properties": {
+ "assert": ["window properties are owned by window"]
+ },
+ "window_properties_readonly": {
+ "assert": ["window properties are readonly"]
+ }
+ }
+ */</script>
+ <script type="text/javascript">
+ /*
+ Window Functions
+ */
+ test(
+ function(){
+ assert_inherits(window, "matchMedia");
+ assert_inherits(window, "scroll");
+ assert_inherits(window, "scrollTo");
+ assert_inherits(window, "scrollBy");
+ }, 'window_inherited_functions', {
+ assert: ['window functions are inherited']
+ }
+ );
+
+ test(
+ function(){
+ assert_true(window.matchMedia instanceof Function);
+ assert_true(window.scroll instanceof Function);
+ assert_true(window.scrollTo instanceof Function);
+ assert_true(window.scrollBy instanceof Function);
+ }, 'window_functions', {
+ assert: ['window functions are instances of Function']
+ }
+ );
+
+ /*
+ Window Properties
+ */
+ test(
+ function() {
+ assert_own_property(window, 'screen');
+ assert_own_property(window, 'innerWidth');
+ assert_own_property(window, 'innerHeight');
+ assert_own_property(window, 'scrollX');
+ assert_own_property(window, 'pageXOffset');
+ assert_own_property(window, 'scrollY');
+ assert_own_property(window, 'pageYOffset');
+ assert_own_property(window, 'screenX');
+ assert_own_property(window, 'screenY');
+ assert_own_property(window, 'outerWidth');
+ assert_own_property(window, 'outerHeight');
+ }, 'window_properties', {
+ assert: ['window properties are owned by window']
+ }
+ );
+ test(
+ function() {
+ assert_readonly(window, 'screen');
+ assert_readonly(window, 'innerWidth');
+ assert_readonly(window, 'innerHeight');
+ assert_readonly(window, 'scrollX');
+ assert_readonly(window, 'pageXOffset');
+ assert_readonly(window, 'scrollY');
+ assert_readonly(window, 'pageYOffset');
+ assert_readonly(window, 'screenX');
+ assert_readonly(window, 'screenY');
+ assert_readonly(window, 'outerWidth');
+ assert_readonly(window, 'outerHeight');
+ }, 'window_properties_readonly', {
+ assert: ['window properties are readonly']
+ }
+ );
+
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-immutable.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-immutable.htm
new file mode 100644
index 00000000000..868707da49a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-immutable.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.height immutability</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="screen.height is immutable" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var originalVal = window.screen.height;
+
+ // try to set window.screen.height
+ window.screen.height = 0;
+
+ // verify window.screen.height didn't change
+ test(function() {
+ assert_equals(window.screen.height, originalVal, "window.screen.height should be immutable")
+ }, "immutability test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-mutation-throws.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-mutation-throws.htm
new file mode 100644
index 00000000000..83ff327f67c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height-mutation-throws.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.height mutation throws exception</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="screen.height mutation throws exception" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ test(function() {
+ assert_throws(null, function() {
+ window.screen.height = 0
+ }), "chaning window.screen.height should throw exception"
+ }, "mutation exception test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height.htm
new file mode 100644
index 00000000000..2db7e28fcdd
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-height.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.height range tests</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="window.screen.height has sensible values" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var upperBound = 50000;
+
+ test(
+ function() {
+ assert_not_equals(window.screen.height, 0, "window.screen.height is zero")
+ }, "zero check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.height > 0, "window.screen.height shouldn't be negative")
+ }, "positive check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.height < upperBound, "window.screen.height shouldn't be so large")
+ }, "upper bound check"
+ );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-immutable.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-immutable.htm
new file mode 100644
index 00000000000..9f1580884c3
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-immutable.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.width immutability</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="screen.width is immutable" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var originalVal = window.screen.width;
+
+ // try to set window.screen.width
+ window.screen.width = 0;
+
+ // verify window.screen.width didn't change
+ test(function() {
+ assert_equals(window.screen.width, originalVal, "window.screen.width should be immutable")
+ }, "immutability test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-mutation-throws.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-mutation-throws.htm
new file mode 100644
index 00000000000..28c26e67bad
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width-mutation-throws.htm
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.width mutation throws exception</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="screen.width mutation throws exception" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ test(function() {
+ assert_throws(null, function() {
+ window.screen.width = 0
+ }), "chaning window.screen.width should throw exception"
+ }, "mutation exception test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width.htm b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width.htm
new file mode 100644
index 00000000000..5533f95f5ce
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/html/window-screen-width.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+ <title>CSSOM View - 4.2 - screen.width range tests</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen">
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help">
+ <meta content="dom" name="flags">
+ <meta content="window.screen.width has sensible values" name="assert">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var upperBound = 50000;
+
+ test(
+ function() {
+ assert_not_equals(window.screen.width, 0, "window.screen.width is zero")
+ }, "zero check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.width > 0, "window.screen.width shouldn't be negative")
+ }, "positive check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.width < upperBound, "window.screen.width shouldn't be so large")
+ }, "upper bound check"
+ );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/implementation-report-TEMPLATE.data b/tests/wpt/css-tests/cssom-view-1_dev/implementation-report-TEMPLATE.data
new file mode 100644
index 00000000000..e2735157a51
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/implementation-report-TEMPLATE.data
@@ -0,0 +1,51 @@
+# UA version OS version
+# UA string (if applicable)
+# http://test.csswg.org/suites/cssom-view-1_dev/DATESTAMP/
+# See http://wiki.csswg.org/test/implementation-report for instructions
+testname revision result comment
+html/caretposition-001.htm ec2bdc9c730d65a0319935187debd4c6811d57b1 ?
+xhtml1/caretposition-001.xht ec2bdc9c730d65a0319935187debd4c6811d57b1 ?
+html/cssom-getboundingclientrect-001.htm 20226816a4a06d869e8c8d49428a8851a8ab9988 ?
+xhtml1/cssom-getboundingclientrect-001.xht 20226816a4a06d869e8c8d49428a8851a8ab9988 ?
+html/cssom-getboundingclientrect-002.htm 29a0bd1179d5cbf42b4cb21706022d3328b6b134 ?
+xhtml1/cssom-getboundingclientrect-002.xht 29a0bd1179d5cbf42b4cb21706022d3328b6b134 ?
+html/cssom-getclientrects.htm 2b2a3a320d19265eab4e6a5a05b20f43c0565e21 ?
+xhtml1/cssom-getclientrects.xht 2b2a3a320d19265eab4e6a5a05b20f43c0565e21 ?
+html/cssom-view-window-screen-interface.htm 4aaebe055d605dc7f915dac2039087fd7b018439 ?
+xhtml1/cssom-view-window-screen-interface.xht 4aaebe055d605dc7f915dac2039087fd7b018439 ?
+html/elementfrompoint-001.htm 52a4d67631063dcb64c8d1bba460430195f3877a ?
+xhtml1/elementfrompoint-001.xht 52a4d67631063dcb64c8d1bba460430195f3877a ?
+html/elementfromposition.htm 78b980b1011fb13154d1ddf81eaf962f59bfa0d7 ?
+xhtml1/elementfromposition.xht 78b980b1011fb13154d1ddf81eaf962f59bfa0d7 ?
+html/matchmedia.htm 968cc094c6258392a6d1f8dd5eb814f43ed6692f ?
+xhtml1/matchmedia.xht 968cc094c6258392a6d1f8dd5eb814f43ed6692f ?
+html/matchmediaaddlistener.htm ff9c78237902cf841131fcc2a30344dd737e1f55 ?
+xhtml1/matchmediaaddlistener.xht ff9c78237902cf841131fcc2a30344dd737e1f55 ?
+html/media-query-list-interface.htm bf107020b2904718b522b5b57fad03c51c059a1e ?
+xhtml1/media-query-list-interface.xht bf107020b2904718b522b5b57fad03c51c059a1e ?
+html/mediaquerylist-001.htm 5e0c1c5758733b0f2887620db9ce20a6aa00a00c ?
+xhtml1/mediaquerylist-001.xht 5e0c1c5758733b0f2887620db9ce20a6aa00a00c ?
+html/offsetparent_element_test.htm 42948177cf68f659f7e9dd5147032169558760b1 ?
+xhtml1/offsetparent_element_test.xht 42948177cf68f659f7e9dd5147032169558760b1 ?
+html/screen-pixeldepth-screen-colordepth001.htm 6747335ed4736a1e6d2dcd446c9c28a0923b2396 ?
+xhtml1/screen-pixeldepth-screen-colordepth001.xht 6747335ed4736a1e6d2dcd446c9c28a0923b2396 ?
+html/scrollwidthheight.htm dc82a1c1dfddec949ed64ab7ffb8c30625b911b2 ?
+xhtml1/scrollwidthheight.xht dc82a1c1dfddec949ed64ab7ffb8c30625b911b2 ?
+html/scrollwidthheightwhennotscrollable.htm 5d33a8bab0ff6b187dd544afaefce6b7662128b5 ?
+xhtml1/scrollwidthheightwhennotscrollable.xht 5d33a8bab0ff6b187dd544afaefce6b7662128b5 ?
+html/ttwf-scrollintoview.htm 3b360b57241e529014b011aec1fd93640f08ffd5 ?
+xhtml1/ttwf-scrollintoview.xht 3b360b57241e529014b011aec1fd93640f08ffd5 ?
+html/window-interface.htm 40732ddf8d7cd2185d6a6cb9d57d9dcbd2d73c42 ?
+xhtml1/window-interface.xht 40732ddf8d7cd2185d6a6cb9d57d9dcbd2d73c42 ?
+html/window-screen-height-immutable.htm a5a7e61d3e4844b0e4f6ed83277fda329652e9b6 ?
+xhtml1/window-screen-height-immutable.xht a5a7e61d3e4844b0e4f6ed83277fda329652e9b6 ?
+html/window-screen-height-mutation-throws.htm 6846cf8927a3214496b4996c95bde1eb3e657552 ?
+xhtml1/window-screen-height-mutation-throws.xht 6846cf8927a3214496b4996c95bde1eb3e657552 ?
+html/window-screen-height.htm b591d259abd635443575d699dfa1c774968b4746 ?
+xhtml1/window-screen-height.xht b591d259abd635443575d699dfa1c774968b4746 ?
+html/window-screen-width-immutable.htm 5cb01db5fb1eb56842952d75a921f77e26650cab ?
+xhtml1/window-screen-width-immutable.xht 5cb01db5fb1eb56842952d75a921f77e26650cab ?
+html/window-screen-width-mutation-throws.htm 7960afc871c5c4cd1fb33681adbc31674af2bbba ?
+xhtml1/window-screen-width-mutation-throws.xht 7960afc871c5c4cd1fb33681adbc31674af2bbba ?
+html/window-screen-width.htm 43d6fd44dd0ce57fa93c5a2f93fefbf70028fd7a ?
+xhtml1/window-screen-width.xht 43d6fd44dd0ce57fa93c5a2f93fefbf70028fd7a ?
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/index.htm b/tests/wpt/css-tests/cssom-view-1_dev/index.htm
new file mode 100644
index 00000000000..3d0db1b11c9
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/index.htm
@@ -0,0 +1,140 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en">
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSSOM View Module Level 1 Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/cssom-view-1_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/cssom-view-1_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/cssom-view/">CSSOM View Module 1 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSSOM View Module 1. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Chris</li>
+ <li>Chris Rebert</li>
+ <li>Chris Wu</li>
+ <li>jingke</li>
+ <li>Joe Balancio</li>
+ <li>Neils Christoffersen</li>
+ <li>neo_and_rayi</li>
+ <li>Robert O'Callahan</li>
+ <li>Rune Lillesveen</li>
+ <li>unbug</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/index.xht b/tests/wpt/css-tests/cssom-view-1_dev/index.xht
new file mode 100644
index 00000000000..7aa35609ed1
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/index.xht
@@ -0,0 +1,140 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "indices.css";
+ </style>
+ </head>
+ <body>
+
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <dt>Test Coordinator:</dt>
+ <dd>None Yet</dd>
+
+ <p>This is a <strong>Development</strong>
+ version of the CSSOM View Module Level 1 Test Suite.</p>
+
+ <p>You can provide test data or review the testing results for this test suite:</p>
+ <dt><a href="http://test.csswg.org/harness/suite/cssom-view-1_dev">Enter Data</a></dt>
+ <dt><a href="http://test.csswg.org/harness/review/cssom-view-1_dev">Review Results</a></dt>
+
+
+ <p>Some tests in the test suite may contain errors.
+ Please check the latest version of the
+ <a href="http://www.w3.org/TR/cssom-view/">CSSOM View Module 1 specification</a>
+ <strong>and its errata</strong>
+ before assuming a failure is due to an implementation bug and
+ not a test suite bug.</p>
+
+
+ <p>
+ In time we hope to correct all errors and extend this test suite to
+ cover all of CSSOM View Module 1. Your help is welcome in this effort.
+ The appropriate mailing list for submitting tests and bug reports is
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/">public-css-testsuite@w3.org</a>.
+ More information on the contribution process and test guidelines is
+ available on the <a href="http://wiki.csswg.org/test">wiki
+ page</a>.</p>
+
+ <p>Tests are currently available in these formats:</p>
+
+ <dl>
+ <dt><a href="html/toc.htm">HTML 5</a></dt>
+ <dd>HTML 5 tests sent as <code>text/html</code></dd>
+ <dt><a href="xhtml1/toc.xht">XHTML 1.1</a></dt>
+ <dd>XHTML 1.1 tests sent as <code>application/xhtml+xml</code></dd>
+
+
+ <p>Unless the test instructions explicitly indicate otherwise,
+ any occurrence of red in a test indicates test failure.</p>
+
+<h2 id="implement">Implementation Reports</h2>
+ <p>An <a href="implementation-report-TEMPLATE.data">implementation report template</a>
+ is available to help with creating implementation reports. See also the
+ <a href="http://lists.w3.org/Archives/Public/public-css-testsuite/2010Aug/0020.html">explanation</a>
+ of its format.</p>
+
+<h2 id="common">Common Assumptions</h2>
+
+ <p>Most of the test suite makes the following assumptions:</p>
+ <ul>
+ <li>The X/HTML <code>div</code> element is assigned <code>display: block;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>span</code> element is assigned <code>display: inline;</code>
+ and no other property declaration.</li>
+ <li>The X/HTML <code>p</code> element is assigned <code>display: block;</code></li>
+ <li>The X/HTML <code>li</code> element is assigned <code>display: list-item;</code></li>
+ <li>The X/HTML table elements <code>table</code>, <code>tbody</code>,
+ <code>tr</code>, and <code>td</code> are assigned the <code>display</code>
+ values <code>table</code>, <code>table-row-group</code>,
+ <code>table-row</code>, and <code>table-cell</code>, respectively.</li>
+ <li>The device can display the sixteen color values associated with the color
+ keywords <code>black</code>, <code>white</code>, <code>gray</code>,
+ <code>silver</code>, <code>red</code>, <code>green</code>, <code>blue</code>,
+ <code>purple</code>, <code>yellow</code>, <code>orange</code>, <code>teal</code>,
+ <code>fuchsia</code>, <code>maroon</code>, <code>navy</code>, <code>aqua</code>,
+ and <code>lime</code> as distinct colors.</li>
+ <li>The UA is set to print background colors and, if it supports graphics,
+ background images.</li>
+ <li>The UA implements reasonable page-breaking behavior; e.g., it is assumed
+ that UAs will not break at every opportunity, but only near the end of
+ a page unless a page break is forced.</li>
+ <li>The UA implements reasonable line-breaking behavior; e.g., it is assumed
+ that spaces between alphanumeric characters provide line breaking
+ opportunities and that UAs will not break at every opportunity, but only
+ near the end of a line unless a line break is forced.</li>
+ </ul>
+
+<h2 id="uncommon">Uncommon Assumptions</h2>
+
+ <p>In addition, some of the tests make one or more of the following
+ assumptions:</p>
+
+ <ul>
+ <li>The device is a full-color device.</li>
+ <li>The device has a viewport width of at least 640px (approx).</li>
+ <li>The resolution of the device is 96 CSS pixels per inch.</li>
+ <li>The UA imposes no minimum font size.</li>
+ <li>The 'medium' font-size computes to 16px.</li>
+ <li>The initial value of 'color' is black.</li>
+ <li>The canvas background is white.</li>
+ <li>The user stylesheet is empty (except where indicated by the tests).</li>
+ <li>The device is interactive and uses scroll bars.</li>
+ </ul>
+
+ <p>The tests that need these assumptions to be true have not yet been
+ marked, but it is likely that we will add a way to identify these
+ tests in due course. Tests should avoid relying on these assumptions
+ unless necessary.</p>
+
+<h2>License</h2>
+
+ <p>This test suite is licensed under both the
+ <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-license">W3C
+ Test Suite License</a> and the <a href="http://www.w3.org/Consortium/Legal/2008/03-bsd-license">W3C
+ 3-clause BSD License</a>. See W3C Legal's <a href="http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright">explanation
+ of the licenses</a>.</p>
+
+<h2>Acknowledgements</h2>
+
+ <p>Many thanks to the following for their contributions:</p>
+ <ul>
+ <li>Chris</li>
+ <li>Chris Rebert</li>
+ <li>Chris Wu</li>
+ <li>jingke</li>
+ <li>Joe Balancio</li>
+ <li>Neils Christoffersen</li>
+ <li>neo_and_rayi</li>
+ <li>Robert O'Callahan</li>
+ <li>Rune Lillesveen</li>
+ <li>unbug</li>
+ </ul>
+
+</body>
+</html>
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/indices.css b/tests/wpt/css-tests/cssom-view-1_dev/indices.css
new file mode 100644
index 00000000000..7bc70eeef94
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/indices.css
@@ -0,0 +1,96 @@
+/* CSS for CSS Conformance Test Indices */
+/* Written by fantasai */
+
+/* Test Tables */
+
+ table {
+ border-collapse: collapse;
+ }
+
+ thead {
+ border-bottom: 0.2em solid;
+ }
+
+ tbody {
+ border: thin solid;
+ border-style: solid none;
+ }
+
+ tbody.ch {
+ border-top: 0.2em solid;
+ }
+ tbody.ch th {
+ font-weight: bold;
+ }
+
+ tbody th {
+ border-bottom: silver dotted thin;
+ background: #EEE;
+ color: black;
+ font-weight: normal;
+ font-style: italic;
+ }
+ tbody th :link {
+ color: gray;
+ background: transparent;
+ }
+ tbody th :visited {
+ color: #333;
+ background: transparent;
+ }
+
+ th, td {
+ padding: 0.2em;
+ text-align: left;
+ vertical-align: baseline;
+ }
+
+ td {
+ font-size: 0.9em;
+ }
+
+ /* flags */
+ td abbr {
+ border: solid thin gray;
+ padding: 0 0.1em;
+ cursor: help;
+ }
+ td abbr:hover {
+ background: #ffa;
+ color: black;
+ }
+
+
+ tr:hover {
+ background: #F9F9F9;
+ color: navy;
+ }
+
+ th a,
+ td a {
+ text-decoration: none;
+ }
+ th a:hover,
+ td a:hover,
+ th a:focus,
+ td a:focus {
+ text-decoration: underline;
+ }
+
+ td a {
+ display: block;
+ padding-left: 2em;
+ text-indent: -1em;
+ }
+ .refs {
+ font-weight: bold;
+ font-size: larger;
+ }
+ .assert, .assert > li {
+ list-style-type: none;
+ font-style: italic;
+ color: gray;
+ margin: 0;
+ padding: 0;
+ text-indent: 0;
+ }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/testinfo.data b/tests/wpt/css-tests/cssom-view-1_dev/testinfo.data
new file mode 100644
index 00000000000..ff32f785edd
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/testinfo.data
@@ -0,0 +1,24 @@
+id references title flags links revision credits assertion
+CaretPosition-001 CaretPosition script http://www.w3.org/TR/cssom-view/#the-caretposition-interface ec2bdc9c730d65a0319935187debd4c6811d57b1 `unbug`<mailto:tidelgl@gmail.com>
+cssom-getBoundingClientRect-001 CSSOM View - 6.1 - getBoundingClientRect tests dom,script http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect 20226816a4a06d869e8c8d49428a8851a8ab9988 `Chris Wu`<mailto:pwx.frontend@gmail.com>
+cssom-getBoundingClientRect-002 getBoundingClientRect of element outside DOM dom,script http://www.w3.org/TR/cssom-view/#dom-element-getclientrects,http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect 29a0bd1179d5cbf42b4cb21706022d3328b6b134 `Chris Rebert`<http://chrisrebert.com> Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error.
+cssom-getClientRects getClientRects of element outside DOM dom,script http://www.w3.org/TR/cssom-view/#dom-element-getclientrects 2b2a3a320d19265eab4e6a5a05b20f43c0565e21 `Chris Rebert`<http://chrisrebert.com> Calling getClientRects on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an empty DOMRectList and should definitely not throw an error.
+cssom-view-window-screen-interface cssom view window screen attribute dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface 4aaebe055d605dc7f915dac2039087fd7b018439 `jingke`<mailto:jingkewhu@gmail.com> window screen interface
+elementFromPoint-001 CSSOM View - 5 - extensions to the Document interface dom,script http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface 52a4d67631063dcb64c8d1bba460430195f3877a `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> elementFromPoint returns correct element
+elementFromPosition CSSOM View elementFromPoint dom,script http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface,http://www.w3.org/TR/cssom-view/#widl-Document-elementFromPoint-Element-float-x-float-y 78b980b1011fb13154d1ddf81eaf962f59bfa0d7 `Chris`<mailto:pwx.frontend@gmail.com>
+matchMedia CSSOM View matchMedia and MediaQueryList dom,script http://www.w3.org/TR/cssom-view/#dom-window-matchmedia,http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface,http://www.w3.org/TR/cssom/#serializing-media-queries 968cc094c6258392a6d1f8dd5eb814f43ed6692f `Rune Lillesveen`<mailto:rune@opera.com>
+matchMediaAddListener CSSOM View matchMedia addListener dom,script http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface ff9c78237902cf841131fcc2a30344dd737e1f55 `Chris Wu`<mailto:pwx.frontend@gmail.com>
+media-query-list-interface Properties and Functions dom,script http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface,http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface bf107020b2904718b522b5b57fad03c51c059a1e `Joe Balancio`<mailto:jlbalancio@gmail.com> All properties exist and are readonly. All functions exist and are instances of Function
+MediaQueryList-001 MediaQueryList script http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface 5e0c1c5758733b0f2887620db9ce20a6aa00a00c `unbug`<mailto:tidelgl@gmail.com>
+offsetParent_element_test CSSOM View &#8212;&#8212; offsetParent element test script http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface,http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetparent 42948177cf68f659f7e9dd5147032169558760b1 `neo_and_rayi`<mailto:1988wangxiao@gmail.com>
+Screen-pixelDepth-Screen-colorDepth001 Screen-pixelDepth,Screen-colorDepth script http://www.w3.org/TR/cssom-view/#the-screen-interface 6747335ed4736a1e6d2dcd446c9c28a0923b2396 `unbug`<mailto:tidelgl@gmail.com>
+scrollWidthHeight CSSOM View scrollWidth and scrollHeight dom,script http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth dc82a1c1dfddec949ed64ab7ffb8c30625b911b2 `Robert O'Callahan`<mailto:robert@ocallahan.org>
+scrollWidthHeightWhenNotScrollable CSSOM View scrollWidth/scrollHeight (for nonscrollable elements) dom,script http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth 5d33a8bab0ff6b187dd544afaefce6b7662128b5 `Robert O'Callahan`<mailto:robert@ocallahan.org>
+ttwf-scrollintoview CSSOM View - 6 - scrollIntoView tests dom,script http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview 3b360b57241e529014b011aec1fd93640f08ffd5 `Chris Wu`<mailto:pwx.frontend@gmail.com>
+window-interface Properties and Functions dom,script http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface 40732ddf8d7cd2185d6a6cb9d57d9dcbd2d73c42 `Joe Balancio`<mailto:jlbalancio@gmail.com> All properties exist and are readonly. All functions exist and are instances of Function
+window-screen-height CSSOM View - 4.2 - screen.height range tests dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface b591d259abd635443575d699dfa1c774968b4746 `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> window.screen.height has sensible values
+window-screen-height-immutable CSSOM View - 4.2 - screen.height immutability dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface a5a7e61d3e4844b0e4f6ed83277fda329652e9b6 `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> screen.height is immutable
+window-screen-height-mutation-throws CSSOM View - 4.2 - screen.height mutation throws exception dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface 6846cf8927a3214496b4996c95bde1eb3e657552 `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> screen.height mutation throws exception
+window-screen-width CSSOM View - 4.2 - screen.width range tests dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface 43d6fd44dd0ce57fa93c5a2f93fefbf70028fd7a `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> window.screen.width has sensible values
+window-screen-width-immutable CSSOM View - 4.2 - screen.width immutability dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface 5cb01db5fb1eb56842952d75a921f77e26650cab `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> screen.width is immutable
+window-screen-width-mutation-throws CSSOM View - 4.2 - screen.width mutation throws exception dom,script http://www.w3.org/TR/cssom-view/#the-screen-interface 7960afc871c5c4cd1fb33681adbc31674af2bbba `Neils Christoffersen`<mailto:neils.christoffersen@gmail.com> screen.width mutation throws exception
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/CaretPosition-001.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/CaretPosition-001.xht
new file mode 100644
index 00000000000..f530bce9350
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/CaretPosition-001.xht
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View Module test:CaretPosition</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-caretposition-interface" rel="help" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ .box{
+ position: absolute;
+ top : 100px;
+ left : 400px;
+ width: 100px;
+ height: 100px;
+ background-color: #000;
+ }
+ </style>
+</head>
+<body>
+ <p>This case tests the Screen pixelDepth and colorDepth</p>
+ <p>The test passes if the value is Element "#box2"</p>
+ <div class="box" id="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box"></div>
+ <div class="box" id="box2"></div>
+ <div style="left: 405px;background:red;" class="box" id="box3"></div>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(getBox('box2'), document.elementFromPoint(400,100), "Expected value for element id is 'box2'");
+ },'getBox');
+ test(function(){
+ assert_equals(null, document.elementFromPoint(400,900), "Expected value for element id is 'box2'");
+ },'getBox');
+ function getBox(id){
+ return document.getElementById(id);
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/MediaQueryList-001.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/MediaQueryList-001.xht
new file mode 100644
index 00000000000..0b6ce5d33f8
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/MediaQueryList-001.xht
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View Module test:MediaQueryList</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" rel="help" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ </style>
+</head>
+<body>
+ <p>This case tests the MediaQueryList
+ </p><p>The test passes if the value is 1280/800</p>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(window.matchMedia('(device-aspect-ratio: 1280/800)').matches, true, "Expected value for device-aspect-ratio is 1280/800");
+ },'matchMedia');
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht
new file mode 100644
index 00000000000..0432d27a57d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View Module test:Screen-pixelDepth,Screen-colorDepth</title>
+ <link href="mailto:tidelgl@gmail.com" rel="author" title="unbug" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ </style>
+</head>
+<body>
+ <p>This case tests the Screen pixelDepth and colorDepth</p>
+ <p>The test passes if the value is 24</p>
+ <div id="log"></div>
+ <script>
+ test(function(){
+ assert_equals(testColorDepth(), 24, "Expected value for colorDepth is 24");
+ },'testColorDepth');
+ test(function(){
+ assert_equals(testPixelDepth(), 24, "Expected value for pixelDepth is 24");
+ },'testPixelDepth');
+ function testColorDepth(){
+ var colorDepth = window.screen.colorDepth;
+ return colorDepth;
+ }
+ function testPixelDepth(){
+ var pixelDepth = window.screen.pixelDepth;
+ return pixelDepth;
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-1.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-1.xht
new file mode 100644
index 00000000000..89eb7b6156f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-1.xht
@@ -0,0 +1,39 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Background - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Background (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#background">1 Background</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-10.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-10.xht
new file mode 100644
index 00000000000..5773f9a6f51
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-10.xht
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the Range Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Range Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s10">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s10">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-range-interface">10 Extensions to the Range Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s10.#dom-range-getboundingclientrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s10.#dom-range-getclientrects">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-11.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-11.xht
new file mode 100644
index 00000000000..74c202e4b9c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-11.xht
@@ -0,0 +1,69 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the MouseEvent Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the MouseEvent Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s11">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s11">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-mouseevent-interface">11 Extensions to the MouseEvent Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-clientx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-clienty">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-offsetx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-offsety">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-pagex">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-pagey">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-screenx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-screeny">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-x">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s11.#dom-mouseevent-y">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-12.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-12.xht
new file mode 100644
index 00000000000..51dc4b8ff20
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-12.xht
@@ -0,0 +1,72 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Geometry - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Geometry (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s12">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s12">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#geometry">12 Geometry</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s12.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-geometryutils-interface">12.1 The GeometryUtils Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#boxquadoptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#convertcoordinateoptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#cssboxtype">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertpointfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertquadfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-convertrectfromnode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#dom-geometryutils-getboxquads">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#geometrynode">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s12.1.#geometryutils">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-13.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-13.xht
new file mode 100644
index 00000000000..0ae5b0b4357
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-13.xht
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Events - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Events (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s13">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#events">13 Events</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s13.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#resizing-viewports">13.1 Resizing viewports</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s13.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s13.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#scrolling-0">13.2 Scrolling</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-14.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-14.xht
new file mode 100644
index 00000000000..a2cdd05c912
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-14.xht
@@ -0,0 +1,108 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS properties - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>CSS properties (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s14">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s14">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#css-properties">14 CSS properties</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s14.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#smooth-scrolling:-the-'scroll-behavior'-property">14.1 Smooth Scrolling: The 'scroll-behavior' Property</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior-instant">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s14.1.#scroll-behavior-smooth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#abstract">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#acknowledgments">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#anolis-references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#references">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSBOX">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSDEVICEADAPT">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSOM">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSTRANSFORMS">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsCSSWRITINGMODES">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsDOM">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsGEOMETRY">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsHTML">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsRFC2119">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsSVG">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#refsWEBIDL">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#sotd">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#toc">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s.#w3c-doctype">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-2.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-2.xht
new file mode 100644
index 00000000000..1aae732997f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-2.xht
@@ -0,0 +1,48 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Conformance - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Conformance (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#conformance">2 Conformance</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.#hardwareLimitations">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s2.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s2.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#web-idl">2.1 Web IDL</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-3.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-3.xht
new file mode 100644
index 00000000000..d748003ca2d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-3.xht
@@ -0,0 +1,141 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Terminology - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Terminology (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#terminology">3 Terminology</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#beginning-edges">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#block-flow-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#border-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#canvas">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#content-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#css-layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompointinit">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#dompointreadonly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domquad">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrectlist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#domrectreadonly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#ending-edges">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#initial-containing-block">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#inline-base-direction">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#margin-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#mouseevent">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#mouseeventinit">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#overflow-directions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#padding-edge">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#scrolling-area">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#scrolling-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#svg-layout-box">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#the-html-body-element">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#transforms">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.#viewport">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#css-pixels">3.1 CSS pixels</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s3.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#zooming">3.2 Zooming</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#page-zoom">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s3.2.#pinch-zoom">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-4.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-4.xht
new file mode 100644
index 00000000000..2048bea24d6
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-4.xht
@@ -0,0 +1,63 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Common Infrastructure - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Common Infrastructure (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s4">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#common-infrastructure">4 Common Infrastructure</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s4.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#scrolling">4.1 Scrolling</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-instant-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll-aborted">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#concept-smooth-scroll-completed">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#perform-a-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s4.1.#scroll-to-the-beginning-of-the-document">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-5.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-5.xht
new file mode 100644
index 00000000000..1b83223fdbd
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-5.xht
@@ -0,0 +1,333 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the Window Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Window Interface (13 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s5">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface">5 Extensions to the Window Interface</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="media-query-list-interface-5" class="primary dom script">
+ <td><strong>
+ <a href="media-query-list-interface.xht">media-query-list-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-interface-5" class="primary dom script">
+ <td><strong>
+ <a href="window-interface.xht">window-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#allowed-to-resize-and-move">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-devicepixelratio">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-innerheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-innerwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-matchmedia">
+ <!-- 1 tests -->
+ <tr id="matchmedia-5.#dom-window-matchmedia" class="primary dom script">
+ <td><strong>
+ <a href="matchMedia.xht">matchmedia</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia and MediaQueryList
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.#dom-window-moveby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-moveto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-outerheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-outerwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-pagexoffset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-pageyoffset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-resizeby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-resizeto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screen">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screenx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-screeny">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scroll">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollby">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollto">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrollx">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#dom-window-scrolly">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#scrollbehavior">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.#scrolloptions">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-features-argument-to-the-open()-method">5.1 The features argument to the open() method</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-height">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-left">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-top">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#dom-open-features-width">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.1.#supported-open()-feature-name">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">5.2 The MediaQueryList Interface</a></th></tr>
+ <!-- 4 tests -->
+ <tr id="matchmedia-5.2" class="dom script">
+ <td>
+ <a href="matchMedia.xht">matchmedia</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia and MediaQueryList
+ </td>
+ </tr>
+ <tr id="matchmediaaddlistener-5.2" class="primary dom script">
+ <td><strong>
+ <a href="matchMediaAddListener.xht">matchmediaaddlistener</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View matchMedia addListener
+ </td>
+ </tr>
+ <tr id="media-query-list-interface-5.2" class="dom script">
+ <td>
+ <a href="media-query-list-interface.xht">media-query-list-interface</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Properties and Functions
+ <ul class="assert">
+ <li>All properties exist and are readonly. All functions exist and are instances of Function</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="mediaquerylist-001-5.2" class="primary script">
+ <td><strong>
+ <a href="MediaQueryList-001.xht">mediaquerylist-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>MediaQueryList
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-addlistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-matches">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-media">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#dom-mediaquerylist-removelistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#list-of-media-query-list-listeners">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mediaquerylist">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.2.#mediaquerylistlistener">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s5.3">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-screen-interface">5.3 The Screen Interface</a></th></tr>
+ <!-- 8 tests -->
+ <tr id="cssom-view-window-screen-interface-5.3" class="primary dom script">
+ <td><strong>
+ <a href="cssom-view-window-screen-interface.xht">cssom-view-window-screen-interface</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>cssom view window screen attribute
+ <ul class="assert">
+ <li>window screen interface</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="screen-pixeldepth-screen-colordepth001-5.3" class="primary script">
+ <td><strong>
+ <a href="Screen-pixelDepth-Screen-colorDepth001.xht">screen-pixeldepth-screen-colordepth001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>Screen-pixelDepth,Screen-colorDepth
+ </td>
+ </tr>
+ <tr id="window-screen-height-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height.xht">window-screen-height</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height range tests
+ <ul class="assert">
+ <li>window.screen.height has sensible values</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-height-immutable-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height-immutable.xht">window-screen-height-immutable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height immutability
+ <ul class="assert">
+ <li>screen.height is immutable</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-height-mutation-throws-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-height-mutation-throws.xht">window-screen-height-mutation-throws</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.height mutation throws exception
+ <ul class="assert">
+ <li>screen.height mutation throws exception</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width.xht">window-screen-width</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width range tests
+ <ul class="assert">
+ <li>window.screen.width has sensible values</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-immutable-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width-immutable.xht">window-screen-width-immutable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width immutability
+ <ul class="assert">
+ <li>screen.width is immutable</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="window-screen-width-mutation-throws-5.3" class="primary dom script">
+ <td><strong>
+ <a href="window-screen-width-mutation-throws.xht">window-screen-width-mutation-throws</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 4.2 - screen.width mutation throws exception
+ <ul class="assert">
+ <li>screen.width mutation throws exception</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s5.3.#dom-screen-availheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-availwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-colordepth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-height">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-pixeldepth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#dom-screen-width">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s5.3.#screen">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-6.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-6.xht
new file mode 100644
index 00000000000..f79262b9c11
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-6.xht
@@ -0,0 +1,105 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the Document Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Document Interface (3 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s6">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface">6 Extensions to the Document Interface</a></th></tr>
+ <!-- 2 tests -->
+ <tr id="elementfrompoint-001-6" class="primary dom script">
+ <td><strong>
+ <a href="elementFromPoint-001.xht">elementfrompoint-001</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 5 - extensions to the Document interface
+ <ul class="assert">
+ <li>elementFromPoint returns correct element</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="elementfromposition-6" class="primary dom script">
+ <td><strong>
+ <a href="elementFromPosition.xht">elementfromposition</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View elementFromPoint
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.#dom-document-caretpositionfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#dom-document-elementfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.#dom-document-elementsfrompoint">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s6.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-caretposition-interface">6.1 The CaretPosition Interface</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="caretposition-001-6.1" class="primary script">
+ <td><strong>
+ <a href="CaretPosition-001.xht">caretposition-001</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CaretPosition
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s6.1.#caret-node">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-offset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-position">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caret-range">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#caretposition">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-getclientrect">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-offset">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s6.1.#dom-caretposition-offsetnode">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-7.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-7.xht
new file mode 100644
index 00000000000..228285fb4c3
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-7.xht
@@ -0,0 +1,161 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the Element Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the Element Interface (6 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s7">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-element-interface">7 Extensions to the Element Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clienttop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-clientwidth">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-getboundingclientrect">
+ <!-- 2 tests -->
+ <tr id="cssom-getboundingclientrect-001-7.#dom-element-getboundingclientrect" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getBoundingClientRect-001.xht">cssom-getboundingclientrect-001</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 6.1 - getBoundingClientRect tests
+ </td>
+ </tr>
+ <tr id="cssom-getboundingclientrect-002-7.#dom-element-getboundingclientrect" class="dom script">
+ <td>
+ <a href="cssom-getBoundingClientRect-002.xht">cssom-getboundingclientrect-002</a></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getBoundingClientRect of element outside DOM
+ <ul class="assert">
+ <li>Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-getclientrects">
+ <!-- 2 tests -->
+ <tr id="cssom-getboundingclientrect-002-7.#dom-element-getclientrects" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getBoundingClientRect-002.xht">cssom-getboundingclientrect-002</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getBoundingClientRect of element outside DOM
+ <ul class="assert">
+ <li>Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="cssom-getclientrects-7.#dom-element-getclientrects" class="primary dom script">
+ <td><strong>
+ <a href="cssom-getClientRects.xht">cssom-getclientrects</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>getClientRects of element outside DOM
+ <ul class="assert">
+ <li>Calling getClientRects on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an empty DOMRectList and should definitely not throw an error.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-scrollheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrollintoview">
+ <!-- 1 tests -->
+ <tr id="ttwf-scrollintoview-7.#dom-element-scrollintoview" class="primary dom script">
+ <td><strong>
+ <a href="ttwf-scrollintoview.xht">ttwf-scrollintoview</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View - 6 - scrollIntoView tests
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#dom-element-scrollleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrolltop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#dom-element-scrollwidth">
+ <!-- 2 tests -->
+ <tr id="scrollwidthheight-7.#dom-element-scrollwidth" class="primary dom script">
+ <td><strong>
+ <a href="scrollWidthHeight.xht">scrollwidthheight</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View scrollWidth and scrollHeight
+ </td>
+ </tr>
+ <tr id="scrollwidthheightwhennotscrollable-7.#dom-element-scrollwidth" class="primary dom script">
+ <td><strong>
+ <a href="scrollWidthHeightWhenNotScrollable.xht">scrollwidthheightwhennotscrollable</a></strong></td>
+ <td></td>
+ <td><abbr class="dom" title="Requires Document Object Model support">DOM/JS</abbr><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View scrollWidth/scrollHeight (for nonscrollable elements)
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s7.#scrolloptionshorizontal">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.#scrolloptionsvertical">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.1">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.1">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods">7.1 The getClientRects() and getBoundingClientRect() methods</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s7.2">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#element-scrolling-members">7.2 Element Scrolling Members</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2.#scroll-an-element">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s7.2.#scroll-an-element-into-view">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-8.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-8.xht
new file mode 100644
index 00000000000..7e706cb6810
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-8.xht
@@ -0,0 +1,70 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Extensions to the HTMLElement Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Extensions to the HTMLElement Interface (1 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s8">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s8">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface">8 Extensions to the HTMLElement Interface</a></th></tr>
+ <!-- 1 tests -->
+ <tr id="offsetparent_element_test-8" class="primary script">
+ <td><strong>
+ <a href="offsetParent_element_test.xht">offsetparent_element_test</a></strong></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View &amp;#8212;&amp;#8212; offsetParent element test
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetheight">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetleft">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetparent">
+ <!-- 1 tests -->
+ <tr id="offsetparent_element_test-8.#dom-htmlelement-offsetparent" class="script">
+ <td>
+ <a href="offsetParent_element_test.xht">offsetparent_element_test</a></td>
+ <td></td>
+ <td><abbr class="script" title="Executes tests in script">Script</abbr></td>
+ <td>CSSOM View &amp;#8212;&amp;#8212; offsetParent element test
+ </td>
+ </tr>
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsettop">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s8.#dom-htmlelement-offsetwidth">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-9.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-9.xht
new file mode 100644
index 00000000000..8003b99493f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/chapter-9.xht
@@ -0,0 +1,45 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Excensions to the HTMLImageElement Interface - CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite</h1>
+ <h2>Excensions to the HTMLImageElement Interface (0 tests)</h2>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="refs-column"></col>
+ <col id="flags-column"></col>
+ <col id="info-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th><abbr title="Rendering References">Refs</abbr></th>
+ <th>Flags</th>
+ <th>Info</th>
+ </tr>
+ </thead>
+ <tbody id="s9">
+ <tr><th colspan="4" scope="rowgroup">
+ <a href="#s9">+</a>
+ <a href="http://www.w3.org/TR/cssom-view/#excensions-to-the-htmlimageelement-interface">9 Excensions to the HTMLImageElement Interface</a></th></tr>
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.#dom-htmlimageelement-x">
+ <!-- 0 tests -->
+ </tbody>
+ <tbody id="s9.#dom-htmlimageelement-y">
+ <!-- 0 tests -->
+ </tbody>
+ </table>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht
new file mode 100644
index 00000000000..20a917d58af
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 6.1 - getBoundingClientRect tests</title>
+ <meta charset="utf-8" />
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu" />
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect" rel="help" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ #testItem{width:279px;height: 188px;margin:100px 0 0 178px;background-color: purple;font-size: 26px;font-weight:bold;text-align: center;line-height: 188px;}
+ </style>
+</head>
+<body>
+ <div id="testItem">test item</div>
+ <div id="log"></div>
+ <script>
+ var titem = document.getElementById('testItem').getBoundingClientRect();
+ test(
+ function(){
+ assert_equals(titem.bottom - titem.top,titem.height,"They donot match")
+ },"check getBoundingClientRect().top,getBoundingClientRect.bottom()"
+ );
+ test(
+ function(){
+ assert_equals(titem.right - titem.left,titem.width,"They donot match")
+ },"check getBoundingClientRect().left,getBoundingClientRect.right()"
+ )
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht
new file mode 100644
index 00000000000..eb04c632c74
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test (CSSOM View): getBoundingClientRect of element outside DOM</title>
+ <link href="http://chrisrebert.com" rel="author" title="Chris Rebert" />
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getclientrects" rel="help" />
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="Calling getBoundingClientRect on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an all-zeroes DOMRect and should definitely not throw an error." name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script>
+ test(
+ function () {
+ var rect = document.createElement('div').getBoundingClientRect();
+ assert_equals(rect.x, 0, "DOMRect's x should be zero");
+ assert_equals(rect.y, 0, "DOMRect's y should be zero");
+ assert_equals(rect.width, 0, "DOMRect's width should be zero");
+ assert_equals(rect.height, 0, "DOMRect's height should be zero");
+ },
+ "getBoundingClientRect on a newly-created Element not yet inserted into the DOM should return an all-zeroes DOMRect"
+ );
+ </script>
+</head>
+<body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getClientRects.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getClientRects.xht
new file mode 100644
index 00000000000..113645d8f60
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-getClientRects.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta charset="utf-8" />
+ <title>CSS Test (CSSOM View): getClientRects of element outside DOM</title>
+ <link href="http://chrisrebert.com" rel="author" title="Chris Rebert" />
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-getclientrects" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="Calling getClientRects on an element that is outside of the DOM (and therefore does not have an associated layout box) should result in an empty DOMRectList and should definitely not throw an error." name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script>
+ test(
+ function () {
+ var rectList = document.createElement('div').getClientRects();
+ assert_equals(rectList.length, 0, "DOMRectList should be empty");
+ },
+ "getClientRects on a newly-created Element not yet inserted into the DOM should return an empty DOMRectList"
+ );
+ </script>
+</head>
+<body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht
new file mode 100644
index 00000000000..3c835f8dedd
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: cssom view window screen attribute</title>
+ <link href="mailto:jingkewhu@gmail.com" rel="author" title="jingke" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="window screen interface" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ /*test readonly*/
+ test(function(){assert_readonly(window.screen, "availWidth");}, "Screen.availWidth is readonly");
+ test(function(){assert_readonly(window.screen, "availHeight");}, "Screen.availHeight is readonly");
+ test(function(){assert_readonly(window.screen, "width");}, "Screen.width is readonly");
+ test(function(){assert_readonly(window.screen, "height");}, "Screen.height is readonly");
+ test(function(){assert_readonly(window.screen, "colorDepth");}, "Screen.colorDepth is readonly");
+ test(function(){assert_readonly(window.screen, "pixelDepth");}, "Screen.pixelDepth is readonly");
+
+
+ test(function(){assert_true(window.screen.width &gt;= 0 &amp;&amp; window.screen.width &lt; 6000000);},
+ "window.screen.width &gt;= 0 &amp;&amp; window.screen.width &lt; 6000000");
+ test(function(){assert_true(window.screen.height &gt;= 0 &amp;&amp; window.screen.height &lt; 6000000);},
+ "window.screen.height &gt;= 0 &amp;&amp; window.screen.height &lt; 6000000");
+ test(function(){assert_true(window.screen.availWidth &gt;= 0 &amp;&amp; window.screen.availWidth &lt;= window.screen.width);},
+ "window.screen.availWidth &gt;= 0 &amp;&amp; window.screen.availWidth &lt;= window.screen.width");
+ test(function(){assert_true(window.screen.availHeight &gt;= 0 &amp;&amp; window.screen.availHeight &lt;= window.screen.height);},
+ "window.screen.availHeight &gt;= 0 &amp;&amp; window.screen.availHeight &lt;= window.screen.height");
+ test(function(){assert_true(window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32);},
+ "window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32");
+ test(function(){assert_equals(window.screen.pixelDepth, window.screen.colorDepth);},
+ "window.screen.pixelDepth must return the value returned by window.screen.colorDepth");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPoint-001.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPoint-001.xht
new file mode 100644
index 00000000000..8eee98e62e2
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPoint-001.xht
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 5 - extensions to the Document interface</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="elementFromPoint returns correct element" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style>
+ #targetDiv {
+ position: absolute;
+ top: 10;
+ left: 10;
+ height: 100px;
+ width: 100px;
+ }
+ </style>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <div id="targetDiv">
+ </div>
+ <script>
+ var element = document.elementFromPoint(15, 15);
+
+ test ( function() {
+ assert_equals(element.id, "targetDiv", "elementFromPoint didn't return the correct element");
+ });
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPosition.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPosition.xht
new file mode 100644
index 00000000000..3efe7b0d38c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/elementFromPosition.xht
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: CSSOM View elementFromPoint</title>
+ <meta charset="UTF-8" />
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris" />
+ <link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface" rel="help" />
+ <link href="http://www.w3.org/TR/cssom-view/#widl-Document-elementFromPoint-Element-float-x-float-y" rel="help" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <script id="metadata_cache">/*
+{
+ "document.elementFromPoint": {},
+ "document.elementFromPoint is a Function": {},
+ "test some point of the element: top left corner": {},
+ "test some point of the element: top line": {},
+ "test some point of the element: top right corner": {},
+ "test some point of the element: left line": {},
+ "test some point of the element: inside": {},
+ "test some point of the element: right line": {},
+ "test some point of the element: bottom left corner": {},
+ "test some point of the element: bottom line": {},
+ "test some point of the element: botom right corner": {},
+ "Point (0, 0), return root element(HTML)": {},
+ " test negative x ": {},
+ " test nagetive y ": {},
+ "test outside of viewport": {},
+ "test the top of layer": {}
+}
+ */</script>
+</head>
+<body>
+ <noscript>Test not run - JavaScript required!</noscript>
+ <div id="log"></div>
+ <script type="text/javascript">
+
+ var body = document.getElementsByTagName( 'body' )[0];
+ function createElement( id ) {
+ var elem = document.createElement( 'div' );
+ if ( id &amp;&amp; typeof id == 'string' ) {
+ elem.id = id;
+ }
+ body.appendChild( elem );
+ return elem;
+ }
+
+ function setPosition( config ) {
+ var target = config.target;
+ target.style.position = 'absolute';
+ target.style.left = config.left + 'px';
+ target.style.top = config.top + 'px';
+ target.style.width = config.width + 'px';
+ target.style.height = config.height + 'px';
+ if ( config['z-index'] ) {
+ target.style.zIndex = config['z-index'];
+ }
+ }
+
+ var target = createElement( 'dom-1' );
+ setPosition( {
+ width: 100,
+ height: 100,
+ left: 10,
+ top: 10,
+ target: target
+ });
+
+ test( function () {
+ assert_inherits( document, 'elementFromPoint' );
+ }, 'document.elementFromPoint');
+
+ test( function () {
+ assert_true( document.elementFromPoint instanceof Function );
+ }, 'document.elementFromPoint is a Function');
+ (function(){
+ var wrap = [
+ // 左上角.
+ {x: 10, y: 10, r: 'top left corner'},
+ // 上边线
+ {x: 50, y: 10, r: 'top line'},
+ // 右上角
+ {x: 110, y: 10, r: 'top right corner'},
+ // 左边线
+ {x: 10, y: 50, r: 'left line'},
+ // 元素范围内
+ {x: 50, y: 50, r: 'inside'},
+ // 右边线
+ {x: 110, y: 10, r: 'right line'},
+ // 左下角
+ {x: 10, y: 110, r: 'bottom left corner'},
+ // 下边线
+ {x: 50, y: 110, r: 'bottom line'},
+ // 右下角
+ {x: 110, y: 110, r: 'botom right corner'}
+ ];
+ var i = 0, len = wrap.length, item;
+ for ( ; i &amp;lt; len; i++ ) {
+ item = wrap[ i ];
+ test( function () {
+ assert_equals( document.elementFromPoint( item.x, item.y).id == 'dom-1', true );
+ }, 'test some point of the element: ' + item.r);
+ }
+ })();
+ test( function () {
+ var elem = document.elementFromPoint( 0, 0 );
+ assert_true( elem.nodeName == 'HTML' );
+ }, 'Point (0, 0), return root element(HTML)' );
+
+ test( function () {
+ var elem = document.elementFromPoint( -1000, 0 );
+ assert_true( elem == null, 'negative x, return null' );
+ }, ' test negative x ');
+
+ test( function () {
+ var elem = document.elementFromPoint( 0, -1000 );
+ assert_true( elem == null, 'negative y, return null' );
+ }, ' test nagetive y ');
+
+ test( function () {
+ var elem = document.elementFromPoint( 100000, 0 );
+ assert_true( elem == null );
+ }, 'test outside of viewport');
+
+ test( function () {
+ var config = {
+ width: 100,
+ height: 100,
+ left: 5,
+ top: 5
+ };
+ var target2 = createElement( 'dom-2' );
+ config.target = target2;
+ setPosition( config );
+
+ var elem = document.elementFromPoint( 10, 10 );
+ var elem2 = document.elementFromPoint( 10, 10 );
+ assert_equals( elem.id, elem2.id );
+ }, 'test the top of layer');
+ </script>
+
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMedia.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMedia.xht
new file mode 100644
index 00000000000..2b75b4af764
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMedia.xht
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Test: CSSOM View matchMedia and MediaQueryList</title>
+ <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" />
+ <link rel="help" href="http://www.w3.org/TR/cssom/#serializing-media-queries" />
+ <meta name="flags" content="dom" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css"><![CDATA[
+ iframe { border: none; }
+ ]]></style>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <iframe width="200" height="100"></iframe>
+ <script type="text/javascript"><![CDATA[
+ function reflow(doc) {
+ doc.body.offsetWidth;
+ }
+
+ var iframe = document.querySelector("iframe");
+ var iframe_window = window.frames[0];
+
+ reflow(iframe_window.document);
+
+ test(function(){
+ assert_inherits(window, "matchMedia");
+ }, "window.matchMedia exists");
+
+ test(function(){
+ assert_true(window.matchMedia instanceof Function, "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run.");
+ }, "window.matchMedia is a Function");
+
+ var mql, mql1, mql2, mql3;
+
+ test(function(){
+ mql = window.matchMedia("all");
+ assert_true(mql instanceof MediaQueryList, "matchMedia(\"all\") returned MediaQueryList object.");
+ }, "window.matchMedia(\"all\")");
+
+ test(function(){
+ assert_idl_attribute(mql, "media", "Check that MediaQueryList.media exists.");
+ }, "MediaQueryList.media exists");
+
+ test(function(){
+ assert_readonly(mql, "media", "Check that MediaQueryList.media is readonly.");
+ }, "MediaQueryList.media is readonly");
+
+ test(function(){
+ assert_equals(mql.media, "all");
+ }, "MediaQueryList.media for \"all\"");
+
+ test(function(){
+ assert_idl_attribute(mql, "matches", "Check that MediaQueryList.matches exists.");
+ }, "MediaQueryList.matches exists");
+
+ test(function(){
+ assert_readonly(mql, "matches", "Check that MediaQueryList.matches is readonly.");
+ }, "MediaQueryList.matches is readonly");
+
+ test(function(){
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"all\"");
+
+ test(function(){
+ assert_inherits(mql, "addListener");
+ }, "MediaQueryList.addListener exists");
+
+ test(function(){
+ assert_true(mql.addListener instanceof Function);
+ }, "MediaQueryList.addListener is a Function");
+
+ test(function(){
+ assert_inherits(mql, "removeListener");
+ }, "MediaQueryList.removeListener exists");
+
+ test(function(){
+ assert_true(mql.removeListener instanceof Function);
+ }, "MediaQueryList.removeListener is a Function");
+
+ test(function(){
+ mql = window.matchMedia("::");
+ assert_true(mql instanceof MediaQueryList, "window.matchMedia(\"::\") returned MediaQueryList object.");
+ assert_equals(mql.media, "not all", "MediaQueryList.media serialized as \"not all\" from original string with syntax error.");
+ }, "MediaQueryList.media syntax error");
+
+ test(function(){
+ assert_false(mql.matches);
+ }, "MediaQueryList.matches for \"not all\"");
+
+ test(function(){
+ mql = iframe_window.matchMedia("(max-width: 199px), all and (min-width: 200px)");
+ assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(max-width: 199px), all and (min-width: 200px)\"")
+
+ test(function(){
+ mql = iframe_window.matchMedia("(min-aspect-ratio: 1/1)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(min-aspect-ratio: 1/1)\"");
+
+ test(function(){
+ mql = iframe_window.matchMedia("(width: 200px)");
+ assert_true(mql.matches);
+ }, "MediaQueryList.matches for \"(width: 200px)\"");
+
+ test(function(){
+ mql1 = iframe_window.matchMedia("(max-height: 50px)");
+ assert_false(mql1.matches);
+ }, "MediaQueryList.matches for \"(max-height: 50px)\"");
+
+ test(function(){
+ mql2 = iframe_window.matchMedia("(min-width: 150px)");
+ assert_true(mql2.matches);
+ }, "MediaQueryList.matches for \"(min-width: 150px)\"");
+
+ var resizeTest = async_test("Resize iframe from 200x100 to 200x50, then to 100x50");
+ var listenerOrderTest = async_test("Listeners are called in the order which they have been added");
+ var duplicateListenerTest = async_test("Listener added twice is only called once.");
+
+ window.onload = function(){
+
+ var rmListener = function(x){
+ resizeTest.step(function(){
+ assert_unreached("removeListener was not successful.");
+ });
+ };
+
+ var dupListener = function(x){
+ duplicateListenerTest.step(function(){
+ assert_false(mql1.dupListenerCalled, "Check that this listener has not been called before.");
+ mql1.dupListenerCalled = true;
+ });
+ };
+
+ mql1.firstListenerCalled = false;
+ mql1.dupListenerCalled = false;
+ // Add listener twice and remove it below. Should not be called.
+ mql1.addListener(rmListener);
+ mql1.addListener(rmListener);
+ // Add listener twice. Should only be called once.
+ mql1.addListener(dupListener);
+ mql1.addListener(dupListener);
+
+ mql1.addListener(function(x){
+ resizeTest.step(function(){
+ assert_equals(x, mql1, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
+ assert_true(x.matches, "(max-height: 50px) should now pass.");
+ assert_true(mql2.matches, "(min-width: 150px) should still pass.");
+ iframe.width = "100";
+ });
+
+ listenerOrderTest.step(function(){
+ assert_false(mql1.firstListenerCalled, "Check that this listener is only called once.");
+ mql1.firstListenerCalled = true;
+ });
+ });
+
+ mql1.addListener(function(x){
+ listenerOrderTest.step(function(){
+ assert_true(mql1.firstListenerCalled, "Check that the listener added last is called last.");
+ });
+ listenerOrderTest.done();
+ });
+
+ mql1.removeListener(rmListener);
+
+ mql2.addListener(function(x){
+ duplicateListenerTest.done();
+ resizeTest.step(function(){
+ assert_equals(x, mql2, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
+ assert_true(mql1.matches, "(max-height: 50px) should still pass.");
+ assert_false(x.matches, "(min-width: 150px) should now fail.");
+ });
+ resizeTest.done();
+ });
+
+ iframe.height = "50";
+ };]]>
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMediaAddListener.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMediaAddListener.xht
new file mode 100644
index 00000000000..b5ef6bcbea4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/matchMediaAddListener.xht
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSS Test: CSSOM View matchMedia addListener</title>
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js" type="text/javascript">
+ &lt;script src="/resources/testharnessreport.js" type="text/javascript" /&gt;
+ &lt;style type="text/css"&gt;
+ iframe { border: none; }
+ &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ &lt;div id="log"&gt;&lt;/div&gt;
+ &lt;iframe width="200" height="100" id="iframe1" &gt;&lt;/iframe&gt;
+ &lt;script&gt;
+ function reflow(doc) {
+ doc.body.offsetWidth;
+ }
+
+ var iframe = document.querySelector("iframe");
+ var iframe_window = window.frames[0];
+ var iframe1 = document.getElementById("iframe1");
+ reflow(iframe_window.document);
+
+ var i = 0;
+ var totalCount = 10;
+ var count = 0;
+ var divineCount = 10;
+ var width_list = [201,199];
+ var mq1 = iframe_window.matchMedia("(max-width:200px)");
+ mq1.addListener(function(mql){
+
+ count = count + 1;
+
+ });
+
+ var equalAssert = async_test("Check for the correct number of event triggers");
+
+ var changeFrameWidth = function(iWidth) {
+ iframe1.style.width = iWidth + "px";
+ i = (i === 0) ? 1 : 0;
+ totalCount = totalCount - 1;
+ if(totalCount &gt; 0)
+ {
+ setTimeout(function(){
+ changeFrameWidth(width_list[i]);
+ }, 100);
+ }
+ else
+ {
+ setTimeout(function(){
+ equalAssert.step(function(){
+ assert_equals(divineCount, count, "this will be 10 times of event triggers by change width");
+ });
+ equalAssert.done();
+ }, 100);
+ }
+ };
+
+ changeFrameWidth(width_list[0]);
+
+
+ </script>
+ </head><body>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/media-query-list-interface.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/media-query-list-interface.xht
new file mode 100644
index 00000000000..569618ad065
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/media-query-list-interface.xht
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSSOM MediaQueryList Test: Properties and Functions</title>
+ <link rel="author" title="Joe Balancio" href="mailto:jlbalancio@gmail.com" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" />
+ <meta name="flags" content="dom" />
+ <meta name="assert" content="All properties exist and are readonly. All functions exist and are instances of Function" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <script type="text/javascript"><![CDATA[
+ var mediaQueryList;
+ test(
+ function(){
+ assert_inherits(window, "matchMedia");
+ mediaQueryList = window.matchMedia('foo');
+ }, 'window_inherits_matchmedia', {
+ assert: ['window.matchMedia is inherited. If this fails, the rest of the test fails.']
+ }
+ );
+ /*
+ MediaQueryList Functions
+ */
+ test(
+ function(){
+ assert_inherits(mediaQueryList, "addListener");
+ assert_inherits(mediaQueryList, "removeListener");
+ }, 'mediaquerylist_inherited_functions', {
+ assert: ['MediaQueryList functions are inherited']
+ }
+ );
+
+ test(
+ function(){
+ assert_true(mediaQueryList.addListener instanceof Function);
+ assert_true(mediaQueryList.removeListener instanceof Function);
+ }, 'mediaquerylist_functions', {
+ assert: ['MediaQueryList functions are instances of Function']
+ }
+ );
+
+ /*
+ MediaQueryList Properties
+ */
+ test(
+ function() {
+ assert_own_property(mediaQueryList, 'media');
+ assert_own_property(mediaQueryList, 'matches');
+ }, 'mediaquerylist_properties', {
+ assert: ['MediaQueryList properties are owned by window']
+ }
+ );
+ test(
+ function() {
+ assert_readonly(mediaQueryList, 'media');
+ assert_readonly(mediaQueryList, 'matches');
+ }, 'mediaquerylist_properties_readonly', {
+ assert: ['MediaQueryList properties are readonly']
+ }
+ );
+ ]]>
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/offsetParent_element_test.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/offsetParent_element_test.xht
new file mode 100644
index 00000000000..18dcf6e9abf
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/offsetParent_element_test.xht
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<title>CSSOM View —— offsetParent element test</title>
+<link href="mailto:1988wangxiao@gmail.com" rel="author" title="neo_and_rayi" />
+<link href="http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface" rel="help" />
+<link href="http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetparent" rel="help" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script id="metadata_cache">/*
+{
+ "Valid the algorithm rule of offsetParent check step 1": { "assert": "The offsetParent attribute algorithm rule checking passed!" },
+ "Valid the algorithm rule of offsetParent check step 2": { "assert": "The offsetParent attribute algorithm rule checking passed!" }
+}
+*/</script>
+<style>
+#fixed {
+ position: fixed;
+}
+
+#none-element {
+ display:none;
+}
+
+#relative-element {
+ position: relative;
+}
+
+#absolute-element {
+ position: absolute;
+}
+</style>
+
+</head>
+<body>
+
+<div id="body-element-child"></div>
+
+<div id="relative-element">
+ <div id="relative-element-child"></div>
+</div>
+
+<div id="absolute-element">
+ <div id="absolute-element-child"></div>
+</div>
+
+<table id="table-element">
+ <caption>
+ <div id="caption-element-child"></div>
+ </caption>
+
+ <tbody>
+ <tr id="table-element-tr">
+ <td id="table-element-td">
+ <span id="table-element-child"></span>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<div id="none-element">
+ <a href="#" id="none-element-child-a"></a>
+ <p id="none-element-child-p"></p>
+ <video id="none-element-child-video"></video>
+ <audio id="none-element-child-audio"></audio>
+ <canvas id="none-element-child-canvas"></canvas>
+ <svg id="none-element-child-svg" xmlns="http://www.w3.org/2000/svg"></svg>
+</div>
+
+<div id="fixed">
+</div>
+
+<div id="log"></div>
+<script type="text/javascript">
+var getStyle = window.getComputedStyle;
+var html = document.documentElement;
+var body = document.body;
+var fixed_element = document.getElementById('fixed');
+var none_element = document.getElementById('none-element');
+
+var none_element_child_a = document.getElementById('none-element-child-a');
+var none_element_child_p = document.getElementById('none-element-child-p');
+var none_element_child_video = document.getElementById('none-element-child-video');
+var none_element_child_audio = document.getElementById('none-element-child-audio');
+var none_element_child_canvas = document.getElementById('none-element-child-canvas');
+var none_element_child_svg = document.getElementById('none-element-child-svg');
+
+var relative_element = document.getElementById('relative-element');
+var absolute_element = document.getElementById('absolute-element');
+var td_element = document.getElementsByTagName('td')[0];
+
+var body_element_child = document.getElementById('body-element-child');
+var relative_element_child = document.getElementById('relative-element-child');
+var absolute_element_child = document.getElementById('absolute-element-child');
+var table_element_child = document.getElementById('table-element-child');
+
+var caption_element_child = document.getElementById('caption-element-child');
+var table_element_tr = document.getElementById('table-element-tr');
+var table_element = document.getElementById('table-element');
+
+test(function() {
+ assert_equals(html.offsetParent,null);
+ assert_equals(body.offsetParent,null);
+ assert_equals(fixed_element.offsetParent,null);
+ assert_equals(none_element.offsetParent,null);
+ assert_equals(none_element_child_a.offsetParent,null);
+ assert_equals(none_element_child_p.offsetParent,null);
+ assert_equals(none_element_child_video.offsetParent,null);
+ assert_equals(none_element_child_audio.offsetParent,null);
+ assert_equals(none_element_child_canvas.offsetParent,null);
+ assert_equals(none_element_child_svg.offsetParent,null);
+}, "Valid the algorithm rule of offsetParent check step 1",
+{ assert: "The offsetParent attribute algorithm rule checking passed!" }
+);
+
+test(function() {
+ assert_equals(body_element_child.offsetParent,body);
+ assert_equals(window.getComputedStyle(relative_element).position,'relative');
+ assert_equals(relative_element_child.offsetParent,relative_element);
+ assert_equals(window.getComputedStyle(absolute_element).position,'absolute');
+ assert_equals(absolute_element_child.offsetParent,absolute_element);
+ assert_equals(window.getComputedStyle(td_element).position,'static');
+ assert_equals(table_element_child.offsetParent,td_element);
+ assert_equals(window.getComputedStyle(table_element_tr).position,'static');
+ assert_equals(table_element_tr.offsetParent,table_element);
+ assert_equals(window.getComputedStyle(caption_element_child).position,'static');
+ assert_equals(caption_element_child.offsetParent,table_element);
+ assert_equals(window.getComputedStyle(td_element).position,'static');
+ assert_equals(td_element.offsetParent,table_element);
+}, "Valid the algorithm rule of offsetParent check step 2",
+{ assert: "The offsetParent attribute algorithm rule checking passed!" }
+);
+
+</script>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest-toc.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest-toc.xht
new file mode 100644
index 00000000000..8ca75a140e8
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest-toc.xht
@@ -0,0 +1,30 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite Reftest Index</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+
+ <body>
+
+ <h1>CSSOM View Module Level 1 Test Suite Reftest Index</h1>
+ <table width="100%">
+ <col id="test-column"></col>
+ <col id="ref-column"></col>
+ <col id="flags-column"></col>
+ <thead>
+ <tr>
+ <th>Test</th>
+ <th>Reference</th>
+ <th>Flags</th>
+ </tr>
+ </thead>
+ </table>
+
+ </body>
+</html>
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest.list b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest.list
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/reftest.list
@@ -0,0 +1 @@
+
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeight.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeight.xht
new file mode 100644
index 00000000000..0098553f125
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeight.xht
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Test: CSSOM View scrollWidth and scrollHeight</title>
+ <link rel="author" title="Robert O'Callahan" href="mailto:robert@ocallahan.org" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth" />
+ <meta name="flags" content="dom" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css"><![CDATA[
+ #elemSimple, #elemOverflow, #elemNestedOverflow {
+ border:1px solid black;
+ overflow:hidden;
+ width:200px;
+ height:40px;
+ padding-bottom:50px;
+ padding-right:40px;
+ }
+ #elemSimple > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemOverflow > div {
+ background:yellow;
+ width:250px;
+ height:150px;
+ }
+ #elemNestedOverflow > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemNestedOverflow > div > div {
+ background:blue;
+ width:250px;
+ height:150px;
+ }
+ ]]></style>
+ <script id="metadata_cache" type="text/javascript"><![CDATA[/*
+{
+ "elemSimple.clientHeight is the height of the padding edge": {},
+ "elemSimple.scrollHeight is its clientHeight": {},
+ "elemSimple.clientWidth is the width of the padding edge": {},
+ "elemSimple.scrollWidth is its clientWidth": {},
+ "elemOverflow.clientHeight is the height of the padding edge": {},
+ "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemOverflow.clientWidth is the width of the padding edge": {},
+ "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientHeight is the height of the padding edge": {},
+ "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientWidth is the height of the padding edge": {},
+ "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)": {}
+*/ ]]></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <div id="elemSimple">
+ <div></div>
+ </div>
+ <div id="elemOverflow">
+ <div></div>
+ </div>
+ <div id="elemNestedOverflow">
+ <div>
+ <div></div>
+ </div>
+ </div>
+ <script type="text/javascript"><![CDATA[
+ var elemSimple = document.getElementById("elemSimple");
+ var elemOverflow = document.getElementById("elemOverflow");
+ var elemNestedOverflow = document.getElementById("elemNestedOverflow");
+
+ test(function(){
+ assert_equals(elemSimple.clientHeight, 90);
+ }, "elemSimple.clientHeight is the height of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollHeight, 90);
+ }, "elemSimple.scrollHeight is its clientHeight");
+
+ test(function(){
+ assert_equals(elemSimple.clientWidth, 240);
+ }, "elemSimple.clientWidth is the width of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollWidth, 240);
+ }, "elemSimple.scrollWidth is its clientWidth");
+
+ test(function(){
+ assert_equals(elemOverflow.clientHeight, 90);
+ }, "elemOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. Opera and Webkit meet the spec, IE9 and Firefox
+ give the result here. It seems that in this case Opera and Webkit place
+ the padding-bottom below elemOverflow's child (i.e. below elemOverflow's bottom border);
+ you can scroll to it. IE9 and Firefox do not. I believe this is a Webkit/Opera bug
+ (If you remove overflow:hidden then the padding-bottom moves back to be above the bottom
+ border, as expected.)
+ The underlying issue seems to be whether bottom padding on a scrollable element is
+ always placed at the element's bottom border and not scrolled, or else deemed to
+ belong to the scrolled content and placed below the scrolled element's children.
+ Commenting out for now, because this is not really a CSSOM issue, but an issue
+ over the layout of elements with 'overflow'.
+
+ test(function(){
+ assert_equals(elemOverflow.scrollHeight, 150);
+ }, "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+ */
+
+ test(function(){
+ assert_equals(elemOverflow.clientWidth, 240);
+ }, "elemOverflow.clientWidth is the width of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollWidth, 250);
+ }, "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientHeight, 90);
+ }, "elemNestedOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollHeight, 150);
+ }, "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientWidth, 240);
+ }, "elemNestedOverflow.clientWidth is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollWidth, 250);
+ }, "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ ]]></script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht
new file mode 100644
index 00000000000..0ff1a600107
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSS Test: CSSOM View scrollWidth/scrollHeight (for nonscrollable elements)</title>
+ <link rel="author" title="Robert O'Callahan" href="mailto:robert@ocallahan.org" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth" />
+ <meta name="flags" content="dom" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ <style type="text/css"><![CDATA[
+ #elemSimple, #elemOverflow, #elemNestedOverflow {
+ border:1px solid black;
+ width:200px;
+ height:40px;
+ padding-bottom:50px;
+ padding-right:40px;
+ }
+ #elemSimple > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemOverflow > div {
+ background:yellow;
+ width:250px;
+ height:150px;
+ }
+ #elemNestedOverflow > div {
+ background:yellow;
+ width:60px;
+ height:30px;
+ }
+ #elemNestedOverflow > div > div {
+ background:blue;
+ width:250px;
+ height:150px;
+ }
+ ]]></style>
+ <script id="metadata_cache" type="text/javascript"><![CDATA[/*
+{
+ "elemSimple.clientHeight is the height of the padding edge": {},
+ "elemSimple.scrollHeight is its clientHeight": {},
+ "elemSimple.clientWidth is the width of the padding edge": {},
+ "elemSimple.scrollWidth is its clientWidth": {},
+ "elemOverflow.clientHeight is the height of the padding edge": {},
+ "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemOverflow.clientWidth is the width of the padding edge": {},
+ "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientHeight is the height of the padding edge": {},
+ "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)": {},
+ "elemNestedOverflow.clientWidth is the height of the padding edge": {},
+ "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)": {}
+*/ ]]></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <div id="elemSimple">
+ <div></div>
+ </div>
+ <div id="elemOverflow">
+ <div></div>
+ </div>
+ <div id="elemNestedOverflow">
+ <div>
+ <div></div>
+ </div>
+ </div>
+ <script type="text/javascript"><![CDATA[
+ var elemSimple = document.getElementById("elemSimple");
+ var elemOverflow = document.getElementById("elemOverflow");
+ var elemNestedOverflow = document.getElementById("elemNestedOverflow");
+
+ test(function(){
+ assert_equals(elemSimple.clientHeight, 90);
+ }, "elemSimple.clientHeight is the height of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollHeight, 90);
+ }, "elemSimple.scrollHeight is its clientHeight");
+
+ test(function(){
+ assert_equals(elemSimple.clientWidth, 240);
+ }, "elemSimple.clientWidth is the width of the padding edge");
+
+ test(function(){
+ assert_equals(elemSimple.scrollWidth, 240);
+ }, "elemSimple.scrollWidth is its clientWidth");
+
+ test(function(){
+ assert_equals(elemOverflow.clientHeight, 90);
+ }, "elemOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the bottom padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollHeight, 150);
+ }, "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ }, "elemOverflow.clientWidth is the width of the padding edge");
+ assert_equals(elemOverflow.clientWidth, 240);
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemOverflow.scrollWidth, 250);
+ }, "elemOverflow.scrollHeight is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientHeight, 90);
+ }, "elemNestedOverflow.clientHeight is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring the
+ bottom padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollHeight, 150);
+ }, "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)");
+
+ test(function(){
+ assert_equals(elemNestedOverflow.clientWidth, 240);
+ }, "elemNestedOverflow.clientWidth is the height of the padding edge");
+
+ /* This test differs from the spec. All major browsers give the result here, ignoring
+ the right padding.
+ */
+ test(function(){
+ assert_equals(elemNestedOverflow.scrollWidth, 250);
+ }, "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding, since we overflowed)");
+
+ ]]></script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-green.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-green.png
new file mode 100644
index 00000000000..b98ca0ba0a0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-lime.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-lime.png
new file mode 100644
index 00000000000..cb397fb090e
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-maroon.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-maroon.png
new file mode 100644
index 00000000000..3f86b072195
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-maroon.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-navy.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-navy.png
new file mode 100644
index 00000000000..9b9a03955ba
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-navy.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-red.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-red.png
new file mode 100644
index 00000000000..6bd73ac1018
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-white.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-white.png
new file mode 100644
index 00000000000..dd43faec54a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/1x1-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-gg-rr.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-gg-rr.png
new file mode 100644
index 00000000000..84f5b2a4f1d
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-gg-rr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-green.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-green.png
new file mode 100644
index 00000000000..b3c8cf3eb4c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-red.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-red.png
new file mode 100644
index 00000000000..823f125b8e4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/60x60-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/README b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/README
new file mode 100644
index 00000000000..69d1737bead
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/README
@@ -0,0 +1,29 @@
+CSS Global Support Directory
+============================
+
+This directory contains common support files (such as images and external
+style sheets). These are sync'ed into the support directories of all our
+test suites. If you have test-suite-specific support files, please add
+them to the appropriate test-suite-specific support/ directory.
+
+If you add to a support/ directory, please run the tools/supportprop.py
+script from the top of the repository to cascade support files into the
+lower-level support directories.
+
+Description of the Common Support File Collection
+-------------------------------------------------
+
+The 1x1-* images are all exactly one pixel.
+
+The swatch-* images all use 15x15 cells.
+
+The square-* images all use 15x15 cells with one pixel borders.
+
+The pattern-* images use cells of various sizes:
+
+ pattern-gg-gr.png 20x20
+ pattern-grg-rgr-grg.png 20x20
+ pattern-rgr-grg-rgr.png 20x20
+ pattern-tr.png 15x15
+ pattern-grg-rrg-rgg.png 15x15
+
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/a-green.css b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/a-green.css
new file mode 100644
index 00000000000..b0dbb071d5b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/a-green.css
@@ -0,0 +1 @@
+.a { color: green; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/b-green.css b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/b-green.css
new file mode 100644
index 00000000000..a0473f5ca26
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/b-green.css
@@ -0,0 +1 @@
+.b { color: green; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/c-red.css b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/c-red.css
new file mode 100644
index 00000000000..d4ba5c64e95
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/c-red.css
@@ -0,0 +1 @@
+.c { color: red; } \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/cat.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/cat.png
new file mode 100644
index 00000000000..85dd7324815
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/cat.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-green.css b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-green.css
new file mode 100644
index 00000000000..537104e6633
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-green.css
@@ -0,0 +1 @@
+.import { color: green; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-red.css b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-red.css
new file mode 100644
index 00000000000..9945ef47114
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/import-red.css
@@ -0,0 +1 @@
+.import { color: red; }
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-gg-gr.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-gg-gr.png
new file mode 100644
index 00000000000..a6d65b0d4a1
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-gg-gr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rgr-grg.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rgr-grg.png
new file mode 100644
index 00000000000..9b88fbd8114
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rgr-grg.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rrg-rgg.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rrg-rgg.png
new file mode 100644
index 00000000000..fcf4f3fd7d9
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-grg-rrg-rgg.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-rgr-grg-rgr.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-rgr-grg-rgr.png
new file mode 100644
index 00000000000..d454e3a630c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-rgr-grg-rgr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-tr.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-tr.png
new file mode 100644
index 00000000000..8b4b25364e0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/pattern-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50%.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50%.png
new file mode 100644
index 00000000000..cf2eea6b438
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50%.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50px.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50px.png
new file mode 100644
index 00000000000..9f46583665c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-h-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-100px.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-100px.png
new file mode 100644
index 00000000000..a837eca2225
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-100px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-50px.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-50px.png
new file mode 100644
index 00000000000..84141028020
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/ruler-v-50px.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-purple.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-purple.png
new file mode 100644
index 00000000000..0f522d78728
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-purple.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-teal.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-teal.png
new file mode 100644
index 00000000000..e567f51b91b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-white.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-white.png
new file mode 100644
index 00000000000..5853cbb238c
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/square-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-blue.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-blue.png
new file mode 100644
index 00000000000..bf2759634d4
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-blue.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-green.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-green.png
new file mode 100644
index 00000000000..0aa79b0c86b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-green.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-lime.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-lime.png
new file mode 100644
index 00000000000..55fd7fdaedf
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-lime.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-orange.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-orange.png
new file mode 100644
index 00000000000..d3cd498b52b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-orange.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-red.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-red.png
new file mode 100644
index 00000000000..1caf25c992a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-red.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-teal.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-teal.png
new file mode 100644
index 00000000000..0293ce89dea
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-teal.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-white.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-white.png
new file mode 100644
index 00000000000..1a7d4323d77
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-white.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-yellow.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-yellow.png
new file mode 100644
index 00000000000..1591aa0e2e2
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/swatch-yellow.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-bl.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-bl.png
new file mode 100644
index 00000000000..904e24e996a
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-bl.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-br.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-br.png
new file mode 100644
index 00000000000..f413ff5c1a0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-br.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-inner-half-size.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-inner-half-size.png
new file mode 100644
index 00000000000..e473bf80efc
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-inner-half-size.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-outer.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-outer.png
new file mode 100644
index 00000000000..82eeace7fc0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-outer.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tl.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tl.png
new file mode 100644
index 00000000000..f6ac0ef7e8f
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tl.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tr.png b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tr.png
new file mode 100644
index 00000000000..59843ae54b6
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/support/test-tr.png
Binary files differ
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/toc.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/toc.xht
new file mode 100644
index 00000000000..14f2ece28e7
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/toc.xht
@@ -0,0 +1,94 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSSOM View Module Level 1 Test Suite</title>
+ <style type="text/css">
+ @import "http://www.w3.org/StyleSheets/TR/base.css";
+ @import "../indices.css";
+ </style>
+ </head>
+<body>
+ <h1>CSSOM View Module Level 1 Test Suite By Chapter</h1>
+
+ <p>This index contains both
+ <a href="http://wiki.csswg.org/test/selftest">self-describing tests</a>
+ and reftests.
+ A separate <a href="reftest-toc.xht">alphabetical reftest index</a>
+ is provided for tests in <a href="http://wiki.csswg.org/test/reftest">reftest
+ format</a> along with the <a href="reftest.list">reftest manifest</a>.</p>
+
+ <table>
+ <tbody id="s1">
+ <tr><th><a href="chapter-1.xht">Chapter 1 -
+ Background</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s2">
+ <tr><th><a href="chapter-2.xht">Chapter 2 -
+ Conformance</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s3">
+ <tr><th><a href="chapter-3.xht">Chapter 3 -
+ Terminology</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s4">
+ <tr><th><a href="chapter-4.xht">Chapter 4 -
+ Common Infrastructure</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s5">
+ <tr><th><a href="chapter-5.xht">Chapter 5 -
+ Extensions to the Window Interface</a></th>
+ <td>(13 Tests)</td></tr>
+ </tbody>
+ <tbody id="s6">
+ <tr><th><a href="chapter-6.xht">Chapter 6 -
+ Extensions to the Document Interface</a></th>
+ <td>(3 Tests)</td></tr>
+ </tbody>
+ <tbody id="s7">
+ <tr><th><a href="chapter-7.xht">Chapter 7 -
+ Extensions to the Element Interface</a></th>
+ <td>(6 Tests)</td></tr>
+ </tbody>
+ <tbody id="s8">
+ <tr><th><a href="chapter-8.xht">Chapter 8 -
+ Extensions to the HTMLElement Interface</a></th>
+ <td>(1 Tests)</td></tr>
+ </tbody>
+ <tbody id="s9">
+ <tr><th><a href="chapter-9.xht">Chapter 9 -
+ Excensions to the HTMLImageElement Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s10">
+ <tr><th><a href="chapter-10.xht">Chapter 10 -
+ Extensions to the Range Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s11">
+ <tr><th><a href="chapter-11.xht">Chapter 11 -
+ Extensions to the MouseEvent Interface</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s12">
+ <tr><th><a href="chapter-12.xht">Chapter 12 -
+ Geometry</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s13">
+ <tr><th><a href="chapter-13.xht">Chapter 13 -
+ Events</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ <tbody id="s14">
+ <tr><th><a href="chapter-14.xht">Chapter 14 -
+ CSS properties</a></th>
+ <td>(0 Tests)</td></tr>
+ </tbody>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht
new file mode 100644
index 00000000000..fcd0dcde920
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 6 - scrollIntoView tests</title>
+ <meta charset="utf-8" />
+ <link href="mailto:pwx.frontend@gmail.com" rel="author" title="Chris Wu" />
+ <link href="http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview" rel="help" />
+ <meta content="dom" name="flags" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style type="text/css">
+ #phitem{height: 2000px;}
+ #viewitem{width:300px;height:200px;margin:0 auto;background-color: lightgreen;}
+ </style>
+</head>
+<body>
+ <div id="myDiv">
+ <div id="phitem"></div>
+ <div id="viewitem"></div>
+ </div>
+ <div id="log"></div>
+ <script>
+ var asytest = async_test('check scrollIntoView');
+ asytest.step(function(){
+ var viewitem = document.getElementById('viewitem');
+ viewitem.scrollIntoView();
+ assert_true(window.pageYOffset + window.innerHeight &gt; viewitem.offsetTop, "The element isn't in the viewport")
+ })
+ asytest.done()
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-interface.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-interface.xht
new file mode 100644
index 00000000000..a0e16101344
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-interface.xht
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>CSSOM Window Test: Properties and Functions</title>
+ <link rel="author" title="Joe Balancio" href="mailto:jlbalancio@gmail.com" />
+ <link rel="help" href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface" />
+ <meta name="flags" content="dom" />
+ <meta name="assert" content="All properties exist and are readonly. All functions exist and are instances of Function" />
+ <script src="/resources/testharness.js" type="text/javascript"></script>
+ <script src="/resources/testharnessreport.js" type="text/javascript"></script>
+ </head>
+ <body>
+ <noscript>Test not run - javascript required.</noscript>
+ <div id="log"></div>
+ <script id="metadata_cache">/*
+ {
+ "window_inherited_functions": {
+ "assert": ["window functions are inherited"]
+ },
+ "window_functions": {
+ "assert": ["window functions are instances of Function"]
+ },
+ "window_properties": {
+ "assert": ["window properties are owned by window"]
+ },
+ "window_properties_readonly": {
+ "assert": ["window properties are readonly"]
+ }
+ }
+ */</script>
+ <script type="text/javascript"><![CDATA[
+ /*
+ Window Functions
+ */
+ test(
+ function(){
+ assert_inherits(window, "matchMedia");
+ assert_inherits(window, "scroll");
+ assert_inherits(window, "scrollTo");
+ assert_inherits(window, "scrollBy");
+ }, 'window_inherited_functions', {
+ assert: ['window functions are inherited']
+ }
+ );
+
+ test(
+ function(){
+ assert_true(window.matchMedia instanceof Function);
+ assert_true(window.scroll instanceof Function);
+ assert_true(window.scrollTo instanceof Function);
+ assert_true(window.scrollBy instanceof Function);
+ }, 'window_functions', {
+ assert: ['window functions are instances of Function']
+ }
+ );
+
+ /*
+ Window Properties
+ */
+ test(
+ function() {
+ assert_own_property(window, 'screen');
+ assert_own_property(window, 'innerWidth');
+ assert_own_property(window, 'innerHeight');
+ assert_own_property(window, 'scrollX');
+ assert_own_property(window, 'pageXOffset');
+ assert_own_property(window, 'scrollY');
+ assert_own_property(window, 'pageYOffset');
+ assert_own_property(window, 'screenX');
+ assert_own_property(window, 'screenY');
+ assert_own_property(window, 'outerWidth');
+ assert_own_property(window, 'outerHeight');
+ }, 'window_properties', {
+ assert: ['window properties are owned by window']
+ }
+ );
+ test(
+ function() {
+ assert_readonly(window, 'screen');
+ assert_readonly(window, 'innerWidth');
+ assert_readonly(window, 'innerHeight');
+ assert_readonly(window, 'scrollX');
+ assert_readonly(window, 'pageXOffset');
+ assert_readonly(window, 'scrollY');
+ assert_readonly(window, 'pageYOffset');
+ assert_readonly(window, 'screenX');
+ assert_readonly(window, 'screenY');
+ assert_readonly(window, 'outerWidth');
+ assert_readonly(window, 'outerHeight');
+ }, 'window_properties_readonly', {
+ assert: ['window properties are readonly']
+ }
+ );
+ ]]>
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht
new file mode 100644
index 00000000000..a631db520c0
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.height immutability</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="screen.height is immutable" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var originalVal = window.screen.height;
+
+ // try to set window.screen.height
+ window.screen.height = 0;
+
+ // verify window.screen.height didn't change
+ test(function() {
+ assert_equals(window.screen.height, originalVal, "window.screen.height should be immutable")
+ }, "immutability test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht
new file mode 100644
index 00000000000..4f40b1eb8a5
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.height mutation throws exception</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="screen.height mutation throws exception" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ test(function() {
+ assert_throws(null, function() {
+ window.screen.height = 0
+ }), "chaning window.screen.height should throw exception"
+ }, "mutation exception test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height.xht
new file mode 100644
index 00000000000..7515dfdf48b
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-height.xht
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.height range tests</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="window.screen.height has sensible values" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var upperBound = 50000;
+
+ test(
+ function() {
+ assert_not_equals(window.screen.height, 0, "window.screen.height is zero")
+ }, "zero check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.height &gt; 0, "window.screen.height shouldn't be negative")
+ }, "positive check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.height &lt; upperBound, "window.screen.height shouldn't be so large")
+ }, "upper bound check"
+ );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht
new file mode 100644
index 00000000000..e2381d940ea
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.width immutability</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="screen.width is immutable" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var originalVal = window.screen.width;
+
+ // try to set window.screen.width
+ window.screen.width = 0;
+
+ // verify window.screen.width didn't change
+ test(function() {
+ assert_equals(window.screen.width, originalVal, "window.screen.width should be immutable")
+ }, "immutability test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht
new file mode 100644
index 00000000000..e7fbbf065ef
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.width mutation throws exception</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="screen.width mutation throws exception" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ test(function() {
+ assert_throws(null, function() {
+ window.screen.width = 0
+ }), "chaning window.screen.width should throw exception"
+ }, "mutation exception test");
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width.xht b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width.xht
new file mode 100644
index 00000000000..77921547f47
--- /dev/null
+++ b/tests/wpt/css-tests/cssom-view-1_dev/xhtml1/window-screen-width.xht
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>CSSOM View - 4.2 - screen.width range tests</title>
+ <link href="mailto:neils.christoffersen@gmail.com" rel="author" title="Neils Christoffersen" />
+ <link href="http://www.w3.org/TR/cssom-view/#the-screen-interface" rel="help" />
+ <meta content="dom" name="flags" />
+ <meta content="window.screen.width has sensible values" name="assert" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="myDiv"></div>
+ <div id="log"></div>
+ <script>
+ var upperBound = 50000;
+
+ test(
+ function() {
+ assert_not_equals(window.screen.width, 0, "window.screen.width is zero")
+ }, "zero check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.width &gt; 0, "window.screen.width shouldn't be negative")
+ }, "positive check"
+ );
+
+ test(
+ function() {
+ assert_true(window.screen.width &lt; upperBound, "window.screen.width shouldn't be so large")
+ }, "upper bound check"
+ );
+ </script>
+
+
+</body></html> \ No newline at end of file
diff --git a/tests/wpt/css-tests/source_rev b/tests/wpt/css-tests/source_rev
index 1543909de7b..2b14b155931 100644
--- a/tests/wpt/css-tests/source_rev
+++ b/tests/wpt/css-tests/source_rev
@@ -1 +1 @@
-9918dac28080edc77c2e43f939540ab286635d96 \ No newline at end of file
+ae96f96b203c2a8f712756c1a9bb3f2b13f7f82b \ No newline at end of file
diff --git a/tests/wpt/metadata-css/MANIFEST.json b/tests/wpt/metadata-css/MANIFEST.json
index f7bd997408f..65d7e15d0ab 100644
--- a/tests/wpt/metadata-css/MANIFEST.json
+++ b/tests/wpt/metadata-css/MANIFEST.json
@@ -7362,6 +7362,348 @@
"url": "/css-backgrounds-3_dev/xhtml1print/ttwf-reftest-borderRadius.xht"
},
{
+ "path": "css-break-3_dev/html/floats-clear-breaks-002.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-clear-breaks-002.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-012.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-012.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-029.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-029.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-030.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-030.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/position-relative-001.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/position-relative-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/position-relative-001.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-008.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-008-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-008.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-009.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-008-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-009.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-013.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-013-ref.htm",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-013.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-020.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-020.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-021.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-021.htm"
+ },
+ {
+ "path": "css-break-3_dev/html/regions-transforms-022.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-022.htm"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/floats-clear-breaks-002.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-012.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-029.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-030.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/position-relative-001.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/position-relative-001.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-008.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-008.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-009.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-009.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-013.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-013.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-020.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-020.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-021.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-021.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-022.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-022.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/position-relative-001.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/position-relative-001.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-008.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-008.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-009.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-009.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-013.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-013.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-020.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-020.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-021.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-021.xht"
+ },
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-022.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-022.xht"
+ },
+ {
"path": "css-color-3_dev/html4/t31-color-currentColor-b.htm",
"references": [
[
@@ -46752,6 +47094,96 @@
"url": "/css-multicol-1_dev/xhtml1print/regions-multicol-029.xht"
},
{
+ "path": "css-pseudo-4_dev/html/first-letter-001.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-001.htm"
+ },
+ {
+ "path": "css-pseudo-4_dev/html/first-letter-002.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-002.htm"
+ },
+ {
+ "path": "css-pseudo-4_dev/html/first-letter-003.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-003.htm"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-001.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-001.xht"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-002.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-002.xht"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-003.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-003.xht"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-001.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-001.xht"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-002.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-002.xht"
+ },
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-003.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-003.xht"
+ },
+ {
"path": "css-regions-1_dev/html/animations-001.htm",
"references": [
[
@@ -108130,6 +108562,1076 @@
"url": "/css-ui-3_dev/xhtml1print/text-overflow.xht"
},
{
+ "path": "css-values-3_dev/html/calc-background-image-gradient-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-image-gradient-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-background-linear-gradient-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-linear-gradient-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-background-position-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-position-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-position-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-background-size-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-size-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-size-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-border-radius-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-border-radius-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-height-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-height-table-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-table-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-height-table-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-margin-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-margin-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-max-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-height-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-max-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-width-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-min-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-height-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-min-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-width-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-left-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-left-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-right-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-right-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-top-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-top-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-bottom-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-left-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-left-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-right-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-right-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-top-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-top-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-padding-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-padding-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-text-indent-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-text-indent-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-text-indent-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-transform-origin-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-transform-origin-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-vertical-align-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-vertical-align-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-block-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-block-intrinsic-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-width-table-auto-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-table-auto-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/calc-width-table-fixed-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-table-fixed-1.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/ch-unit-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/ch-unit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/ch-unit-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/min-width-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/min-width-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-002.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-003.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-003.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-inherit-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-inherit-002.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-rule-color-inherit-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-rule-color-inherit-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/multicol-rule-color-inherit-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-rule-color-inherit-002.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/regions-resizing-003.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-003.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/regions-resizing-007.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-007.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/regions-resizing-009.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-009.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-calc-support-pct.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-calc-support-pct.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-calc-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-calc-support.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-em-inherit.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-em-inherit.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-inherit.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-inherit.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-pct.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-pct.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-px.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-px.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-vh.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-vh.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-support-atviewport.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-atviewport.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-support-margin.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-margin.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-support-transform-origin.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-transform-origin.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-support-transform-translate.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-transform-translate.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh-zero-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-zero-support.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh_not_refreshing_on_chrome.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-position-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-position-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-size-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-size-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-border-radius-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-border-radius-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-height-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-height-table-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-height-table-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-margin-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-margin-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-height-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-width-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-height-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-width-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-padding-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-padding-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-text-indent-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-text-indent-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-transform-origin-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-transform-origin-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-vertical-align-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-vertical-align-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-block-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-table-auto-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/ch-unit-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/ch-unit-001.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/min-width-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/min-width-001.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-inherit-002.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-inherit-002.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-003.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-003.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-007.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-007.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-009.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-009.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-em-inherit.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-em-inherit.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-inherit.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-inherit.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-pct.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-pct.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-px.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-px.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-vh.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-vh.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-support-margin.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-support-margin.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-support.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-support.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh-zero-support.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-zero-support.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht"
+ },
+ {
"path": "css-variables-1_dev/html/css-vars-custom-property-case-sensitive-001.htm",
"references": [
[
@@ -144516,6 +146018,16 @@
"url": "/css21_dev/html4/before-after-positioned-001.htm"
},
{
+ "path": "css21_dev/html4/before-after-selector-001.htm",
+ "references": [
+ [
+ "/css21_dev/html4/reference/before-after-selector-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/html4/before-after-selector-001.htm"
+ },
+ {
"path": "css21_dev/html4/before-after-table-parts-001.htm",
"references": [
[
@@ -172180,6 +173692,16 @@
"url": "/css21_dev/html4/keywords-001.htm"
},
{
+ "path": "css21_dev/html4/lang-selector-001.htm",
+ "references": [
+ [
+ "/css21_dev/html4/reference/lang-selector-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/html4/lang-selector-001.htm"
+ },
+ {
"path": "css21_dev/html4/lang-selector-002.htm",
"references": [
[
@@ -203690,6 +205212,16 @@
"url": "/css21_dev/xhtml1/before-after-positioned-001.xht"
},
{
+ "path": "css21_dev/xhtml1/before-after-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1/before-after-selector-001.xht"
+ },
+ {
"path": "css21_dev/xhtml1/before-after-table-parts-001.xht",
"references": [
[
@@ -231044,6 +232576,16 @@
"url": "/css21_dev/xhtml1/keywords-001.xht"
},
{
+ "path": "css21_dev/xhtml1/lang-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1/reference/lang-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1/lang-selector-001.xht"
+ },
+ {
"path": "css21_dev/xhtml1/lang-selector-002.xht",
"references": [
[
@@ -262304,6 +263846,16 @@
"url": "/css21_dev/xhtml1print/before-after-positioned-001.xht"
},
{
+ "path": "css21_dev/xhtml1print/before-after-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1print/before-after-selector-001.xht"
+ },
+ {
"path": "css21_dev/xhtml1print/before-after-table-parts-001.xht",
"references": [
[
@@ -289658,6 +291210,16 @@
"url": "/css21_dev/xhtml1print/keywords-001.xht"
},
{
+ "path": "css21_dev/xhtml1print/lang-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1print/lang-selector-001.xht"
+ },
+ {
"path": "css21_dev/xhtml1print/lang-selector-002.xht",
"references": [
[
@@ -315383,6 +316945,94 @@
"url": "/css-transitions-1_dev/xhtml1/transitions-animatable-properties-01.xht"
},
{
+ "path": "css-values-3_dev/html/calc-unit-analysis.htm",
+ "url": "/css-values-3_dev/html/calc-unit-analysis.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-circle-002.htm",
+ "url": "/css-values-3_dev/html/shape-outside-circle-002.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-circle-004.htm",
+ "url": "/css-values-3_dev/html/shape-outside-circle-004.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-ellipse-002.htm",
+ "url": "/css-values-3_dev/html/shape-outside-ellipse-002.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-ellipse-004.htm",
+ "url": "/css-values-3_dev/html/shape-outside-ellipse-004.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-inset-003.htm",
+ "url": "/css-values-3_dev/html/shape-outside-inset-003.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/shape-outside-polygon-004.htm",
+ "url": "/css-values-3_dev/html/shape-outside-polygon-004.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/transition-delay-001.htm",
+ "url": "/css-values-3_dev/html/transition-delay-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/transition-duration-001.htm",
+ "url": "/css-values-3_dev/html/transition-duration-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm",
+ "url": "/css-values-3_dev/html/viewport-relative-lengths-scaled-viewport.htm"
+ },
+ {
+ "path": "css-values-3_dev/html/viewport-units-css2-001.htm",
+ "url": "/css-values-3_dev/html/viewport-units-css2-001.htm"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/calc-unit-analysis.xht",
+ "url": "/css-values-3_dev/xhtml1/calc-unit-analysis.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-circle-002.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-circle-002.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-circle-004.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-circle-004.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-ellipse-002.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-ellipse-004.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-inset-003.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-inset-003.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/shape-outside-polygon-004.xht",
+ "url": "/css-values-3_dev/xhtml1/shape-outside-polygon-004.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/transition-delay-001.xht",
+ "url": "/css-values-3_dev/xhtml1/transition-delay-001.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/transition-duration-001.xht",
+ "url": "/css-values-3_dev/xhtml1/transition-duration-001.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht",
+ "url": "/css-values-3_dev/xhtml1/viewport-relative-lengths-scaled-viewport.xht"
+ },
+ {
+ "path": "css-values-3_dev/xhtml1/viewport-units-css2-001.xht",
+ "url": "/css-values-3_dev/xhtml1/viewport-units-css2-001.xht"
+ },
+ {
"path": "css-variables-1_dev/html/test_variable_legal_values.htm",
"url": "/css-variables-1_dev/html/test_variable_legal_values.htm"
},
@@ -316427,6 +318077,190 @@
"url": "/cssom-1_dev/xhtml1print/ttwf-cssom-document-extension.xht"
},
{
+ "path": "cssom-view-1_dev/html/CaretPosition-001.htm",
+ "url": "/cssom-view-1_dev/html/CaretPosition-001.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/MediaQueryList-001.htm",
+ "url": "/cssom-view-1_dev/html/MediaQueryList-001.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm",
+ "url": "/cssom-view-1_dev/html/Screen-pixelDepth-Screen-colorDepth001.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm",
+ "url": "/cssom-view-1_dev/html/cssom-getBoundingClientRect-001.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm",
+ "url": "/cssom-view-1_dev/html/cssom-getBoundingClientRect-002.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/cssom-getClientRects.htm",
+ "url": "/cssom-view-1_dev/html/cssom-getClientRects.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/cssom-view-window-screen-interface.htm",
+ "url": "/cssom-view-1_dev/html/cssom-view-window-screen-interface.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/elementFromPoint-001.htm",
+ "url": "/cssom-view-1_dev/html/elementFromPoint-001.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/elementFromPosition.htm",
+ "url": "/cssom-view-1_dev/html/elementFromPosition.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/matchMedia.htm",
+ "url": "/cssom-view-1_dev/html/matchMedia.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/matchMediaAddListener.htm",
+ "url": "/cssom-view-1_dev/html/matchMediaAddListener.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/media-query-list-interface.htm",
+ "url": "/cssom-view-1_dev/html/media-query-list-interface.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/offsetParent_element_test.htm",
+ "url": "/cssom-view-1_dev/html/offsetParent_element_test.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/scrollWidthHeight.htm",
+ "url": "/cssom-view-1_dev/html/scrollWidthHeight.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm",
+ "url": "/cssom-view-1_dev/html/scrollWidthHeightWhenNotScrollable.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/ttwf-scrollintoview.htm",
+ "url": "/cssom-view-1_dev/html/ttwf-scrollintoview.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-interface.htm",
+ "url": "/cssom-view-1_dev/html/window-interface.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-height-immutable.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-height-immutable.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-height-mutation-throws.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-height-mutation-throws.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-height.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-height.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-width-immutable.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-width-immutable.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-width-mutation-throws.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-width-mutation-throws.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/html/window-screen-width.htm",
+ "url": "/cssom-view-1_dev/html/window-screen-width.htm"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/CaretPosition-001.xht",
+ "url": "/cssom-view-1_dev/xhtml1/CaretPosition-001.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/MediaQueryList-001.xht",
+ "url": "/cssom-view-1_dev/xhtml1/MediaQueryList-001.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht",
+ "url": "/cssom-view-1_dev/xhtml1/Screen-pixelDepth-Screen-colorDepth001.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht",
+ "url": "/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-001.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht",
+ "url": "/cssom-view-1_dev/xhtml1/cssom-getBoundingClientRect-002.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/cssom-getClientRects.xht",
+ "url": "/cssom-view-1_dev/xhtml1/cssom-getClientRects.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht",
+ "url": "/cssom-view-1_dev/xhtml1/cssom-view-window-screen-interface.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/elementFromPoint-001.xht",
+ "url": "/cssom-view-1_dev/xhtml1/elementFromPoint-001.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/elementFromPosition.xht",
+ "url": "/cssom-view-1_dev/xhtml1/elementFromPosition.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/matchMedia.xht",
+ "url": "/cssom-view-1_dev/xhtml1/matchMedia.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/matchMediaAddListener.xht",
+ "url": "/cssom-view-1_dev/xhtml1/matchMediaAddListener.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/media-query-list-interface.xht",
+ "url": "/cssom-view-1_dev/xhtml1/media-query-list-interface.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/offsetParent_element_test.xht",
+ "url": "/cssom-view-1_dev/xhtml1/offsetParent_element_test.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/scrollWidthHeight.xht",
+ "url": "/cssom-view-1_dev/xhtml1/scrollWidthHeight.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht",
+ "url": "/cssom-view-1_dev/xhtml1/scrollWidthHeightWhenNotScrollable.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht",
+ "url": "/cssom-view-1_dev/xhtml1/ttwf-scrollintoview.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-interface.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-interface.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-height-immutable.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-height-mutation-throws.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-height.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-height.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-width-immutable.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-width-mutation-throws.xht"
+ },
+ {
+ "path": "cssom-view-1_dev/xhtml1/window-screen-width.xht",
+ "url": "/cssom-view-1_dev/xhtml1/window-screen-width.xht"
+ },
+ {
"path": "geometry-1_dev/html/DOMMatrix-001.htm",
"url": "/geometry-1_dev/html/DOMMatrix-001.htm"
},
@@ -325313,6 +327147,414 @@
"url": "/css-backgrounds-3_dev/xhtml1print/ttwf-reftest-borderRadius.xht"
}
],
+ "css-break-3_dev/html/floats-clear-breaks-002.htm": [
+ {
+ "path": "css-break-3_dev/html/floats-clear-breaks-002.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-clear-breaks-002-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-clear-breaks-002.htm"
+ }
+ ],
+ "css-break-3_dev/html/floats-in-named-flow-012.htm": [
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-012.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-012-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-012.htm"
+ }
+ ],
+ "css-break-3_dev/html/floats-in-named-flow-029.htm": [
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-029.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-029-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-029.htm"
+ }
+ ],
+ "css-break-3_dev/html/floats-in-named-flow-030.htm": [
+ {
+ "path": "css-break-3_dev/html/floats-in-named-flow-030.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/floats-in-named-flow-030-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/floats-in-named-flow-030.htm"
+ }
+ ],
+ "css-break-3_dev/html/position-relative-001.htm": [
+ {
+ "path": "css-break-3_dev/html/position-relative-001.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/position-relative-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/position-relative-001.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-008.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-008.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-008-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-008.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-009.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-009.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-008-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-009.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-013.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-013.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-013-ref.htm",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-013-alt-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-013.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-020.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-020.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-020.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-021.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-021.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-021.htm"
+ }
+ ],
+ "css-break-3_dev/html/regions-transforms-022.htm": [
+ {
+ "path": "css-break-3_dev/html/regions-transforms-022.htm",
+ "references": [
+ [
+ "/css-break-3_dev/html/reference/regions-transforms-020-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/html/regions-transforms-022.htm"
+ }
+ ],
+ "css-break-3_dev/xhtml1/floats-clear-breaks-002.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/floats-clear-breaks-002.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-clear-breaks-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-clear-breaks-002.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/floats-in-named-flow-012.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-012.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-012-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-012.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/floats-in-named-flow-029.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-029.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-029-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-029.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/floats-in-named-flow-030.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/floats-in-named-flow-030.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/floats-in-named-flow-030-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/floats-in-named-flow-030.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/position-relative-001.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/position-relative-001.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/position-relative-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/position-relative-001.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-008.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-008.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-008.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-009.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-009.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-009.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-013.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-013.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-013-ref.xht",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-013-alt-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-013.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-020.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-020.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-020.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-021.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-021.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-021.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1/regions-transforms-022.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1/regions-transforms-022.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1/regions-transforms-022.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-clear-breaks-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-clear-breaks-002.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-012-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-012.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-029-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-029.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/floats-in-named-flow-030-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/floats-in-named-flow-030.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/position-relative-001.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/position-relative-001.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/position-relative-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/position-relative-001.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-008.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-008.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-008.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-009.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-009.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-008-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-009.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-013.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-013.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-013-ref.xht",
+ "=="
+ ],
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-013-alt-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-013.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-020.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-020.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-020.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-021.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-021.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-021.xht"
+ }
+ ],
+ "css-break-3_dev/xhtml1print/regions-transforms-022.xht": [
+ {
+ "path": "css-break-3_dev/xhtml1print/regions-transforms-022.xht",
+ "references": [
+ [
+ "/css-break-3_dev/xhtml1print/reference/regions-transforms-020-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-break-3_dev/xhtml1print/regions-transforms-022.xht"
+ }
+ ],
"css-color-3_dev/html4/t31-color-currentColor-b.htm": [
{
"path": "css-color-3_dev/html4/t31-color-currentColor-b.htm",
@@ -372581,6 +374823,114 @@
"url": "/css-multicol-1_dev/xhtml1print/regions-multicol-029.xht"
}
],
+ "css-pseudo-4_dev/html/first-letter-001.htm": [
+ {
+ "path": "css-pseudo-4_dev/html/first-letter-001.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-001.htm"
+ }
+ ],
+ "css-pseudo-4_dev/html/first-letter-002.htm": [
+ {
+ "path": "css-pseudo-4_dev/html/first-letter-002.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-002.htm"
+ }
+ ],
+ "css-pseudo-4_dev/html/first-letter-003.htm": [
+ {
+ "path": "css-pseudo-4_dev/html/first-letter-003.htm",
+ "references": [
+ [
+ "/css-pseudo-4_dev/html/reference/first-letter-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/html/first-letter-003.htm"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1/first-letter-001.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-001.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-001.xht"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1/first-letter-002.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-002.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-002.xht"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1/first-letter-003.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1/first-letter-003.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1/first-letter-003.xht"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1print/first-letter-001.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-001.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-001.xht"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1print/first-letter-002.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-002.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-002.xht"
+ }
+ ],
+ "css-pseudo-4_dev/xhtml1print/first-letter-003.xht": [
+ {
+ "path": "css-pseudo-4_dev/xhtml1print/first-letter-003.xht",
+ "references": [
+ [
+ "/css-pseudo-4_dev/xhtml1print/reference/first-letter-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-pseudo-4_dev/xhtml1print/first-letter-003.xht"
+ }
+ ],
"css-regions-1_dev/html/animations-001.htm": [
{
"path": "css-regions-1_dev/html/animations-001.htm",
@@ -446069,6 +448419,1290 @@
"url": "/css-ui-3_dev/xhtml1print/text-overflow.xht"
}
],
+ "css-values-3_dev/html/calc-background-image-gradient-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-background-image-gradient-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-image-gradient-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-image-gradient-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-background-linear-gradient-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-background-linear-gradient-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-linear-gradient-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-linear-gradient-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-background-position-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-background-position-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-position-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-position-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-background-size-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-background-size-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-background-size-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-background-size-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-border-radius-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-border-radius-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-border-radius-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-border-radius-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-height-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-height-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-height-table-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-height-table-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-table-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-height-table-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-margin-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-margin-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-margin-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-margin-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-max-height-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-max-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-max-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-height-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-max-width-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-max-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-width-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-max-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-max-width-block-intrinsic-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-min-height-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-min-height-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-height-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-height-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-min-width-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-min-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-width-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-min-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-min-width-block-intrinsic-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-bottom-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-absolute-left-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-left-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-left-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-absolute-right-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-right-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-right-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-absolute-top-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-absolute-top-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-absolute-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-absolute-top-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-relative-bottom-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-bottom-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-bottom-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-relative-left-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-left-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-left-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-relative-right-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-right-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-left-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-right-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-offsets-relative-top-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-offsets-relative-top-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-offsets-relative-top-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-offsets-relative-top-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-padding-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-padding-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-padding-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-padding-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-text-indent-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-text-indent-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-text-indent-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-text-indent-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-text-indent-intrinsic-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-text-indent-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-text-indent-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-text-indent-intrinsic-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-transform-origin-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-transform-origin-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-transform-origin-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-transform-origin-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-vertical-align-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-vertical-align-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-vertical-align-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-vertical-align-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-width-block-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-width-block-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-block-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-width-block-intrinsic-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-width-block-intrinsic-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-block-intrinsic-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-block-intrinsic-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-width-table-auto-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-width-table-auto-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-table-auto-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-table-auto-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/calc-width-table-fixed-1.htm": [
+ {
+ "path": "css-values-3_dev/html/calc-width-table-fixed-1.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/calc-width-table-fixed-1-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/calc-width-table-fixed-1.htm"
+ }
+ ],
+ "css-values-3_dev/html/ch-unit-001.htm": [
+ {
+ "path": "css-values-3_dev/html/ch-unit-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/ch-unit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/ch-unit-001.htm"
+ }
+ ],
+ "css-values-3_dev/html/min-width-001.htm": [
+ {
+ "path": "css-values-3_dev/html/min-width-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/min-width-001.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-count-non-integer-001.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-001.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-count-non-integer-002.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-002.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-count-non-integer-003.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-count-non-integer-003.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-columns-invalid-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-count-non-integer-003.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-inherit-002.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-inherit-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-inherit-002-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-inherit-002.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-rule-color-inherit-001.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-rule-color-inherit-001.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-rule-color-inherit-001.htm"
+ }
+ ],
+ "css-values-3_dev/html/multicol-rule-color-inherit-002.htm": [
+ {
+ "path": "css-values-3_dev/html/multicol-rule-color-inherit-002.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/multicol-rule-color-inherit-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/multicol-rule-color-inherit-002.htm"
+ }
+ ],
+ "css-values-3_dev/html/regions-resizing-003.htm": [
+ {
+ "path": "css-values-3_dev/html/regions-resizing-003.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-003.htm"
+ }
+ ],
+ "css-values-3_dev/html/regions-resizing-007.htm": [
+ {
+ "path": "css-values-3_dev/html/regions-resizing-007.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-007.htm"
+ }
+ ],
+ "css-values-3_dev/html/regions-resizing-009.htm": [
+ {
+ "path": "css-values-3_dev/html/regions-resizing-009.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/regions-resizing-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/regions-resizing-009.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-calc-support-pct.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-calc-support-pct.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-calc-support-pct.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-calc-support.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-calc-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-calc-support.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-em-inherit.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-em-inherit.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-em-inherit.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-inherit.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-inherit.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-inherit.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-interpolate-pct.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-pct.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-pct.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-interpolate-px.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-px.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-px.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-interpolate-vh.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-interpolate-vh.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-interpolate-vh.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-support-atviewport.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-support-atviewport.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-atviewport.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-support-margin.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-support-margin.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-margin.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-support-transform-origin.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-support-transform-origin.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-transform-origin.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-support-transform-translate.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-support-transform-translate.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support-transform-translate.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-support.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-support.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh-zero-support.htm": [
+ {
+ "path": "css-values-3_dev/html/vh-zero-support.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/all-green.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh-zero-support.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh_not_refreshing_on_chrome.htm": [
+ {
+ "path": "css-values-3_dev/html/vh_not_refreshing_on_chrome.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh_not_refreshing_on_chrome.htm"
+ }
+ ],
+ "css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm": [
+ {
+ "path": "css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm",
+ "references": [
+ [
+ "/css-values-3_dev/html/reference/vh_not_refreshing_on_chrome-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/html/vh_not_refreshing_on_chrome_iframe.htm"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-image-gradient-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-image-gradient-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-linear-gradient-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-linear-gradient-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-background-position-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-position-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-position-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-position-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-background-size-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-background-size-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-background-size-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-background-size-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-border-radius-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-border-radius-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-border-radius-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-border-radius-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-height-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-height-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-height-table-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-height-table-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-table-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-height-table-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-margin-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-margin-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-margin-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-margin-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-max-height-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-max-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-height-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-max-width-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-width-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-max-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-max-width-block-intrinsic-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-min-height-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-height-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-height-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-height-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-min-width-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-width-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-min-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-min-width-block-intrinsic-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-bottom-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-left-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-right-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-absolute-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-absolute-top-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-bottom-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-left-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-left-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-right-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-offsets-relative-top-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-offsets-relative-top-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-padding-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-padding-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-padding-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-padding-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-text-indent-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-text-indent-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-text-indent-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-text-indent-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-text-indent-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-text-indent-intrinsic-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-transform-origin-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-transform-origin-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-transform-origin-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-transform-origin-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-vertical-align-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-vertical-align-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-vertical-align-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-vertical-align-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-width-block-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-block-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-block-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-block-intrinsic-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-block-intrinsic-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-width-table-auto-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-table-auto-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-table-auto-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-table-auto-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/calc-width-table-fixed-1-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/calc-width-table-fixed-1.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/ch-unit-001.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/ch-unit-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/ch-unit-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/ch-unit-001.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/min-width-001.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/min-width-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/min-width-001.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-001.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-002.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-columns-invalid-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-count-non-integer-003.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/multicol-inherit-002.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/multicol-inherit-002.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/multicol-inherit-002-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/multicol-inherit-002.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/regions-resizing-003.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-003.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-003.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/regions-resizing-007.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-007.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-007.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/regions-resizing-009.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/regions-resizing-009.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/regions-resizing-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/regions-resizing-009.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-em-inherit.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-em-inherit.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-em-inherit.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-inherit.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-inherit.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-inherit.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-interpolate-pct.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-pct.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-pct.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-interpolate-px.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-px.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-px.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-interpolate-vh.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-interpolate-vh.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-interpolate-vh.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-support-margin.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-support-margin.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-support-margin.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-support.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-support.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-support.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh-zero-support.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh-zero-support.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/all-green.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh-zero-support.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome.xht"
+ }
+ ],
+ "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht": [
+ {
+ "path": "css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht",
+ "references": [
+ [
+ "/css-values-3_dev/xhtml1/reference/vh_not_refreshing_on_chrome-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css-values-3_dev/xhtml1/vh_not_refreshing_on_chrome_iframe.xht"
+ }
+ ],
"css-variables-1_dev/html/css-vars-custom-property-case-sensitive-001.htm": [
{
"path": "css-variables-1_dev/html/css-vars-custom-property-case-sensitive-001.htm",
@@ -489685,6 +493319,18 @@
"url": "/css21_dev/html4/before-after-positioned-001.htm"
}
],
+ "css21_dev/html4/before-after-selector-001.htm": [
+ {
+ "path": "css21_dev/html4/before-after-selector-001.htm",
+ "references": [
+ [
+ "/css21_dev/html4/reference/before-after-selector-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/html4/before-after-selector-001.htm"
+ }
+ ],
"css21_dev/html4/before-after-table-parts-001.htm": [
{
"path": "css21_dev/html4/before-after-table-parts-001.htm",
@@ -522873,6 +526519,18 @@
"url": "/css21_dev/html4/keywords-001.htm"
}
],
+ "css21_dev/html4/lang-selector-001.htm": [
+ {
+ "path": "css21_dev/html4/lang-selector-001.htm",
+ "references": [
+ [
+ "/css21_dev/html4/reference/lang-selector-001-ref.htm",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/html4/lang-selector-001.htm"
+ }
+ ],
"css21_dev/html4/lang-selector-002.htm": [
{
"path": "css21_dev/html4/lang-selector-002.htm",
@@ -560997,6 +564655,18 @@
"url": "/css21_dev/xhtml1/before-after-positioned-001.xht"
}
],
+ "css21_dev/xhtml1/before-after-selector-001.xht": [
+ {
+ "path": "css21_dev/xhtml1/before-after-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1/reference/before-after-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1/before-after-selector-001.xht"
+ }
+ ],
"css21_dev/xhtml1/before-after-table-parts-001.xht": [
{
"path": "css21_dev/xhtml1/before-after-table-parts-001.xht",
@@ -593813,6 +597483,18 @@
"url": "/css21_dev/xhtml1/keywords-001.xht"
}
],
+ "css21_dev/xhtml1/lang-selector-001.xht": [
+ {
+ "path": "css21_dev/xhtml1/lang-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1/reference/lang-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1/lang-selector-001.xht"
+ }
+ ],
"css21_dev/xhtml1/lang-selector-002.xht": [
{
"path": "css21_dev/xhtml1/lang-selector-002.xht",
@@ -631637,6 +635319,18 @@
"url": "/css21_dev/xhtml1print/before-after-positioned-001.xht"
}
],
+ "css21_dev/xhtml1print/before-after-selector-001.xht": [
+ {
+ "path": "css21_dev/xhtml1print/before-after-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1print/reference/before-after-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1print/before-after-selector-001.xht"
+ }
+ ],
"css21_dev/xhtml1print/before-after-table-parts-001.xht": [
{
"path": "css21_dev/xhtml1print/before-after-table-parts-001.xht",
@@ -664453,6 +668147,18 @@
"url": "/css21_dev/xhtml1print/keywords-001.xht"
}
],
+ "css21_dev/xhtml1print/lang-selector-001.xht": [
+ {
+ "path": "css21_dev/xhtml1print/lang-selector-001.xht",
+ "references": [
+ [
+ "/css21_dev/xhtml1print/reference/lang-selector-001-ref.xht",
+ "=="
+ ]
+ ],
+ "url": "/css21_dev/xhtml1print/lang-selector-001.xht"
+ }
+ ],
"css21_dev/xhtml1print/lang-selector-002.xht": [
{
"path": "css21_dev/xhtml1print/lang-selector-002.xht",
@@ -690714,7 +694420,7 @@
}
]
},
- "rev": "465c03e3d8d42ce98b9dfa0c8d8e7b4b8d48ebd7",
+ "rev": "d13905941293af83ea8c3c1750dba652e0423fb0",
"url_base": "/",
"version": 2
} \ No newline at end of file
diff --git a/tests/wpt/metadata-css/css21_dev/html4/lang-selector-001.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/lang-selector-001.htm.ini
new file mode 100644
index 00000000000..2f8519669f6
--- /dev/null
+++ b/tests/wpt/metadata-css/css21_dev/html4/lang-selector-001.htm.ini
@@ -0,0 +1,3 @@
+[lang-selector-001.htm]
+ type: reftest
+ expected: FAIL
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index fd7aace016b..3222090ad1d 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -11438,6 +11438,10 @@
"url": "/IndexedDB/idbobjectstore_openCursor_invalid.htm"
},
{
+ "path": "IndexedDB/idbobjectstore_openKeyCursor.htm",
+ "url": "/IndexedDB/idbobjectstore_openKeyCursor.htm"
+ },
+ {
"path": "IndexedDB/idbobjectstore_put.htm",
"url": "/IndexedDB/idbobjectstore_put.htm"
},
@@ -29748,6 +29752,9 @@
"path": "webdriver/element_state/method_test.py"
},
{
+ "path": "webdriver/element_state/properties.py"
+ },
+ {
"path": "webdriver/element_state/visibility_test.py"
},
{
@@ -29778,6 +29785,12 @@
"path": "webdriver/navigation/refresh-page.py"
},
{
+ "path": "webdriver/navigation/refresh_page.py"
+ },
+ {
+ "path": "webdriver/screenshot/take_screenshot.py"
+ },
+ {
"path": "webdriver/timeouts/implicit_waits_tests.py"
},
{
@@ -29785,6 +29798,12 @@
},
{
"path": "webdriver/user_input/clear_test.py"
+ },
+ {
+ "path": "webdriver/windows/tabbing.py"
+ },
+ {
+ "path": "webdriver/windows/window_manipulation.py"
}
]
},
@@ -35327,7 +35346,7 @@
}
]
},
- "rev": "4b25d322ac6ed466f992669e5408b15d37d56436",
+ "rev": "7123012427f92f0dc38a120e6e86a75b6c03aab5",
"url_base": "/",
"version": 2
} \ No newline at end of file
diff --git a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini
index 1df7bd3dc0b..b56a9490e9a 100644
--- a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini
+++ b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini
@@ -6,3 +6,9 @@
[The SecurityError must be thrown if the container's document does not have the same effective script origin]
expected: FAIL
+ [The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin]
+ expected: FAIL
+
+ [The window's frameElement attribute must return null if the container's document does not have the same effective script origin]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini b/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini
index f858a12d101..dd109c994dd 100644
--- a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/the-select-element/select-ask-for-reset.html.ini
@@ -2,3 +2,4 @@
type: testharness
[ask for reset on node remove, non multiple.]
expected: FAIL
+
diff --git a/tests/wpt/metadata/mozilla-sync b/tests/wpt/metadata/mozilla-sync
index c30d6257fc1..296a35e4d67 100644
--- a/tests/wpt/metadata/mozilla-sync
+++ b/tests/wpt/metadata/mozilla-sync
@@ -1 +1 @@
-7574a8ec72e121613cb56f2af746f858c02b7181 \ No newline at end of file
+521a87180a85709f8f704df33537f79bd131bf71 \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/.gitignore b/tests/wpt/web-platform-tests/.gitignore
index 72908a311d8..7728bbdc3c4 100644
--- a/tests/wpt/web-platform-tests/.gitignore
+++ b/tests/wpt/web-platform-tests/.gitignore
@@ -9,3 +9,4 @@ config.json
node_modules
scratch
testharness_runner.html
+webdriver/.idea
diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm
new file mode 100644
index 00000000000..9dc547c3ff9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<title>IDBObjectStore.openKeyCursor()</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+function store_test(func, name) {
+ async_test(function(t) {
+ var del = indexedDB.deleteDatabase(name);
+ del.onerror = t.unreached_func("deleteDatabase failed");
+ var open = indexedDB.open(name);
+ open.onupgradeneeded = t.step_func(function() {
+ var db = open.result;
+ var store = db.createObjectStore("store");
+ for (var i = 0; i < 10; ++i) {
+ store.put("value: " + i, i);
+ }
+ });
+
+ open.onsuccess = t.step_func(function() {
+ var db = open.result;
+ var tx = db.transaction("store");
+ var store = tx.objectStore("store");
+ func(t, db, tx, store);
+ });
+ }, name);
+}
+
+store_test(function(t, db, tx, store) {
+ var expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var actual = [];
+ var request = store.openKeyCursor();
+ request.onsuccess = t.step_func(function() {
+ var cursor = request.result;
+ if (!cursor)
+ return;
+ assert_equals(cursor.direction, "next");
+ assert_false("value" in cursor);
+ assert_equals(indexedDB.cmp(cursor.key, cursor.primaryKey), 0);
+ actual.push(cursor.key);
+ cursor.continue();
+ });
+
+ tx.onabort = t.unreached_func("transaction aborted");
+ tx.oncomplete = t.step_func(function() {
+ assert_array_equals(expected, actual, "keys should match");
+ t.done();
+ });
+
+}, "IDBObjectStore.openKeyCursor() - forward iteration");
+
+store_test(function(t, db, tx, store) {
+ var expected = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
+ var actual = [];
+ var request = store.openKeyCursor(null, "prev");
+ request.onsuccess = t.step_func(function() {
+ var cursor = request.result;
+ if (!cursor)
+ return;
+ assert_equals(cursor.direction, "prev");
+ assert_false("value" in cursor);
+ assert_equals(indexedDB.cmp(cursor.key, cursor.primaryKey), 0);
+ actual.push(cursor.key);
+ cursor.continue();
+ });
+
+ tx.onabort = t.unreached_func("transaction aborted");
+ tx.oncomplete = t.step_func(function() {
+ assert_array_equals(expected, actual, "keys should match");
+ t.done();
+ });
+
+}, "IDBObjectStore.openKeyCursor() - reverse iteration");
+
+store_test(function(t, db, tx, store) {
+ var expected = [4, 5, 6];
+ var actual = [];
+ var request = store.openKeyCursor(IDBKeyRange.bound(4, 6));
+ request.onsuccess = t.step_func(function() {
+ var cursor = request.result;
+ if (!cursor)
+ return;
+ assert_equals(cursor.direction, "next");
+ assert_false("value" in cursor);
+ assert_equals(indexedDB.cmp(cursor.key, cursor.primaryKey), 0);
+ actual.push(cursor.key);
+ cursor.continue();
+ });
+
+ tx.onabort = t.unreached_func("transaction aborted");
+ tx.oncomplete = t.step_func(function() {
+ assert_array_equals(expected, actual, "keys should match");
+ t.done();
+ });
+
+}, "IDBObjectStore.openKeyCursor() - forward iteration with range");
+
+store_test(function(t, db, tx, store) {
+ var expected = [6, 5, 4];
+ var actual = [];
+ var request = store.openKeyCursor(IDBKeyRange.bound(4, 6), "prev");
+ request.onsuccess = t.step_func(function() {
+ var cursor = request.result;
+ if (!cursor)
+ return;
+ assert_equals(cursor.direction, "prev");
+ assert_false("value" in cursor);
+ assert_equals(indexedDB.cmp(cursor.key, cursor.primaryKey), 0);
+ actual.push(cursor.key);
+ cursor.continue();
+ });
+
+ tx.onabort = t.unreached_func("transaction aborted");
+ tx.oncomplete = t.step_func(function() {
+ assert_array_equals(expected, actual, "keys should match");
+ t.done();
+ });
+
+}, "IDBObjectStore.openKeyCursor() - reverse iteration with range");
+
+store_test(function(t, db, tx, store) {
+ assert_throws("DataError", function() { store.openKeyCursor(NaN); },
+ "openKeyCursor should throw on invalid number key");
+ assert_throws("DataError", function() { store.openKeyCursor(new Date(NaN)); },
+ "openKeyCursor should throw on invalid date key");
+ assert_throws("DataError", function() {
+ var cycle = [];
+ cycle.push(cycle);
+ store.openKeyCursor(cycle);
+ }, "openKeyCursor should throw on invalid array key");
+ assert_throws("DataError", function() { store.openKeyCursor({}); },
+ "openKeyCursor should throw on invalid key type");
+ setTimeout(t.step_func(function() {
+ assert_throws("TransactionInactiveError", function() { store.openKeyCursor(); },
+ "openKeyCursor should throw if transaction is inactive");
+ t.done();
+ }), 0);
+
+}, "IDBObjectStore.openKeyCursor() - invalid inputs");
+</script>
diff --git a/tests/wpt/web-platform-tests/IndexedDB/support.js b/tests/wpt/web-platform-tests/IndexedDB/support.js
index 2eeca4f1f53..1e8458fee96 100644
--- a/tests/wpt/web-platform-tests/IndexedDB/support.js
+++ b/tests/wpt/web-platform-tests/IndexedDB/support.js
@@ -1,29 +1,6 @@
var databaseName = "database";
var databaseVersion = 1;
-if (!window.indexedDB)
-{
- if (window.msIndexedDB)
- {
- window.indexedDB = window.msIndexedDB;
- }
- else if (window.mozIndexedDB)
- {
- window.indexedDB = window.mozIndexedDB;
- }
- else if (window.webkitIndexedDB)
- {
- window.indexedDB = webkitIndexedDB;
- IDBCursor = webkitIDBCursor;
- IDBDatabaseException = webkitIDBDatabaseException;
- IDBIndex = webkitIDBIndex;
- IDBObjectStore = webkitIDBObjectStore;
- IDBRequest = webkitIDBRequest;
- IDBKeyRange = webkitIDBKeyRange;
- IDBTransaction = webkitIDBTransaction;
- }
-}
-
/* Delete created databases
*
* Go through each finished test, see if it has an associated database. Close
diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md
index 8157a4a841c..cac36bc2f37 100644
--- a/tests/wpt/web-platform-tests/README.md
+++ b/tests/wpt/web-platform-tests/README.md
@@ -2,8 +2,10 @@ The Web Platform Tests Project [![IRC chat](https://goo.gl/6nCIks)](http://irc.w
==============================
The Web Platform Tests Project is a W3C-coordinated attempt to build a
-cross-browser testsuite for the Web-platform stack. Writing tests in a
-way that allows them to be run in all browsers gives browser projects
+cross-browser testsuite for the Web-platform stack. However, for mainly
+historic reasons, the CSS WG testsuite is in a separate repository,
+[csswg-test](https://github.com/w3c/csswg-test). Writing tests in a way
+that allows them to be run in all browsers gives browser projects
confidence that they are shipping software that is compatible with other
implementations, and that later implementations will be compatible with
their implementations. This in turn gives Web authors/developers
diff --git a/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html b/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html
index 14582670b22..8a064c70172 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html
@@ -6,37 +6,68 @@
<title>scripthash-unicode-normalization</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="/content-security-policy/support/alertAssert.sub.js?alerts=%5B%22PASS%22%2C%22PASS%22%5D">
-
</script>
<!-- enforcing policy:
-script-src 'self' 'unsafe-inline' 'sha256-xy4iRAvdlFCq+M5+4yu4B7dy0Kc2FfljmZO4Jkj3Yhw='; connect-src 'self';
+script-src 'self' 'nonce-nonceynonce' 'sha256-dWTP4Di8KBjaiXvQ5mRquI9OoBSo921ahYxLfYSiuT8='; connect-src 'self';
-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+
+<body>
<!-- The following two scripts contain two separate code points (U+00C5
and U+212B, respectively) which, depending on your text editor, might be
- rendered the same. However, their difference is important as they should
- be NFC normalized to the same code point, thus they should hash to the
- same value.-->
- <script>
- 'Å';
- alert_assert('PASS');
+ rendered the same.However, their difference is important because, under
+ NFC normalization, they would become the same code point, which would be
+ against the spec. This test, therefore, validates that the scripts have
+ *different* hash values. -->
+ <script nonce="nonceynonce">
+ var matchingContent = 'Å';
+ var nonMatchingContent = 'Å';
- </script>
- <script>
- 'Å';
- alert_assert('PASS');
+ // This script should have a hash value of
+ // sha256-9UFeeZbvnMa0tLNu76v96T4Hh+UtDWHm2lPQJoTWb9c=
+ var scriptContent1 = "window.finish('" + matchingContent + "');";
+
+ // This script should have a hash value of
+ // sha256-iNjjXUXds31FFvkAmbC74Sxnvreug3PzGtu16udQyqM=
+ var scriptContent2 = "window.finish('" + nonMatchingContent + "');";
+ var script1 = document.createElement('script');
+ script1.innerHTML = scriptContent1;
+ var script2 = document.createElement('script');
+ script2.innerHTML = scriptContent2;
+
+ script1.test = async_test("Inline script with hash in CSP");
+ script2.test = async_test("Inline script without hash in CSP");
+
+ var failure = function() {
+ assert_unreached();
+ }
+
+ window.finish = function(content) {
+ if (content == matchingContent) {
+ script1.test.step(function() {
+ script1.test.done();
+ });
+ } else {
+ assert_unreached();
+ }
+ }
+
+ script1.onerror = failure;
+ script2.onerror = script2.test.step_func(function() {
+ script2.test.done();
+ });
+ document.body.appendChild(script1);
+ document.body.appendChild(script2);
</script>
-</head>
-<body>
<p>
This tests Unicode normalization. While appearing the same, the strings in the scripts are different Unicode points, but through normalization, should be the same when the hash is taken.
</p>
<div id="log"></div>
- <script async defer src="../support/checkReport.sub.js?reportExists=false"></script>
+ <script async defer src="../support/checkReport.sub.js?reportExists=true"></script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html.sub.headers b/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html.sub.headers
index 6281a262386..a23724f8ab4 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html.sub.headers
+++ b/tests/wpt/web-platform-tests/content-security-policy/blink-contrib-2/scripthash-unicode-normalization.sub.html.sub.headers
@@ -3,4 +3,4 @@ Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0, false
Pragma: no-cache
Set-Cookie: scripthash-unicode-normalization={{$id:uuid()}}; Path=/content-security-policy/blink-contrib-2
-Content-Security-Policy: script-src 'self' 'sha256-xy4iRAvdlFCq+M5+4yu4B7dy0Kc2FfljmZO4Jkj3Yhw='; connect-src 'self'; report-uri /content-security-policy/support/report.py?op=put&reportID={{$id}}
+Content-Security-Policy: script-src 'self' 'nonce-nonceynonce' 'sha256-9UFeeZbvnMa0tLNu76v96T4Hh+UtDWHm2lPQJoTWb9c='; connect-src 'self'; report-uri /content-security-policy/support/report.py?op=put&reportID={{$id}}
diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
index ffc4a2c0d16..0ee6783b4b4 100644
--- a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
+++ b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
@@ -7,7 +7,8 @@
<script>
var t1 = async_test("The window's frameElement attribute must return its container element if it is a nested browsing context");
-var t2 = async_test("The SecurityError must be thrown if the container's document does not have the same effective script origin");
+var t2 = async_test("The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin");
+var t3 = async_test("The window's frameElement attribute must return null if the container's document does not have the same effective script origin");
function on_load() {
t1.step(function () {
@@ -17,9 +18,9 @@ function on_load() {
"The frameElement attribute should be the object element.");
assert_equals(window["win3"].frameElement, document.getElementById("emb"),
"The frameElement attribute should be the embed element.");
- assert_equals(document.getElementById("fr3").contentWindow[0].frameElement,
- document.getElementById("fr3").contentDocument.getElementById("f1"),
- "The frameElement attribute should be the frame element in 'test.html'.");
+ assert_equals(document.getElementById("fr4").contentWindow[0].frameElement,
+ document.getElementById("fr4").contentDocument.getElementById("f1"),
+ "The frameElement attribute should be the frame element in 'test.html'.");
});
t1.done();
@@ -28,23 +29,39 @@ function on_load() {
"The SecurityError exception should be thrown.");
});
t2.done();
+
+ t3.step(function () {
+ document.getElementById("fr5").contentWindow.postMessage(null, "*");
+ });
+ window.addEventListener("message", function (event) {
+ var data = JSON.parse(event.data);
+ if (data.name == "testcase3") {
+ t3.step(function () {
+ assert_equals(data.result, "window.frameElement = null",
+ "The frameElement attribute shoudl be null.");
+ });
+ t3.done();
+ }
+ }, false);
}
</script>
<body onload="on_load()">
<div id="log"></div>
<iframe id="fr1"></iframe>
- <iframe id="fr2" src="test.html"></iframe>
+ <iframe id="fr2" src="test.html"></iframe> <!-- cross origin -->
<iframe id="fr3" src="" style="display:none"></iframe>
<object id="obj" name="win2" type="text/html" data="about:blank"></object>
<embed id="emb" name="win3" type="image/svg+xml" src="/images/green.svg" />
+ <iframe id="fr4" src="test.html"></iframe> <!-- same origin -->
+ <iframe id="fr5" src="testcase3.html"></iframe> <!-- cross origin -->
<script>
setup(function () {
- var src = "http://{{domains[www1]}}:{{ports[http][0]}}";
- src += document.location.pathname.substring(0, document.location.pathname.lastIndexOf("/") + 1);
- src += "test.html";
- document.getElementById("fr2").src = src;
+ var src_base = "http://{{domains[www1]}}:{{ports[http][0]}}";
+ src_base += document.location.pathname.substring(0, document.location.pathname.lastIndexOf("/") + 1);
+ document.getElementById("fr2").src = src_base + "test.html";
+ document.getElementById("fr5").src = src_base + "testcase3.html";
});
test(function () {
diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html
new file mode 100644
index 00000000000..d67bde26f43
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>Testcase 3: frameElement attribute must return null if the container\'s document does not have the same effective script origin</title>
+<script>
+window.addEventListener("message", function (event) {
+ try {
+ var result = "window.frameElement = " + window.frameElement;
+ } catch (e) {
+ result = e.message;
+ }
+ event.source.postMessage(JSON.stringify({name: "testcase3", result: result}),
+ "*");
+}, false);
+</script>
diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js
index 4e203c4863a..7920ccd4e80 100644
--- a/tests/wpt/web-platform-tests/resources/testharness.js
+++ b/tests/wpt/web-platform-tests/resources/testharness.js
@@ -1176,6 +1176,7 @@ policies and contribution forms [3].
NO_MODIFICATION_ALLOWED_ERR: 'NoModificationAllowedError',
NOT_FOUND_ERR: 'NotFoundError',
NOT_SUPPORTED_ERR: 'NotSupportedError',
+ INUSE_ATTRIBUTE_ERR: 'InUseAttributeError',
INVALID_STATE_ERR: 'InvalidStateError',
SYNTAX_ERR: 'SyntaxError',
INVALID_MODIFICATION_ERR: 'InvalidModificationError',
@@ -1202,6 +1203,7 @@ policies and contribution forms [3].
NoModificationAllowedError: 7,
NotFoundError: 8,
NotSupportedError: 9,
+ InUseAttributeError: 10,
InvalidStateError: 11,
SyntaxError: 12,
InvalidModificationError: 13,
diff --git a/tests/wpt/web-platform-tests/webdriver/base_test.py b/tests/wpt/web-platform-tests/webdriver/base_test.py
index 9fe6b6ef3f0..851099936d2 100644
--- a/tests/wpt/web-platform-tests/webdriver/base_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/base_test.py
@@ -10,7 +10,7 @@ repo_root = os.path.abspath(os.path.join(__file__, "../.."))
sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
sys.path.insert(1, os.path.join(repo_root, "tools", "wptserve"))
from wptserve import server
-from webdriver.driver import WebDriver
+from selenium import webdriver
class WebDriverBaseTest(unittest.TestCase):
@@ -33,9 +33,10 @@ def create_driver():
config = ConfigParser.ConfigParser()
config.read('webdriver.cfg')
section = os.environ.get("WD_BROWSER", 'firefox')
- url = 'http://127.0.0.1:4444/wd/hub'
if config.has_option(section, 'url'):
url = config.get(section, "url")
+ else:
+ url = 'http://127.0.0.1:4444/wd/hub'
capabilities = None
if config.has_option(section, 'capabilities'):
try:
@@ -45,5 +46,15 @@ def create_driver():
mode = 'compatibility'
if config.has_option(section, 'mode'):
mode = config.get(section, 'mode')
-
- return WebDriver(url, {}, capabilities, mode)
+ if section == 'firefox':
+ driver = webdriver.Firefox()
+ elif section == 'chrome':
+ driver = webdriver.Chrome()
+ elif section == 'edge':
+ driver = webdriver.Remote()
+ elif section == 'ie':
+ driver = webdriver.Ie()
+ elif section == 'selendroid':
+ driver = webdriver.Android()
+
+ return driver
diff --git a/tests/wpt/web-platform-tests/webdriver/cookie/cookie_test.py b/tests/wpt/web-platform-tests/webdriver/cookie/cookie_test.py
index e4211cbb946..e57d4671308 100644
--- a/tests/wpt/web-platform-tests/webdriver/cookie/cookie_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/cookie/cookie_test.py
@@ -4,7 +4,7 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
class CookieTest(base_test.WebDriverBaseTest):
@@ -12,20 +12,14 @@ class CookieTest(base_test.WebDriverBaseTest):
self.driver.get(self.webserver.where_is("cookie/res/cookie_container.html"))
def test_can_create_a_well_formed_cookie( self ):
- name = 'foo'
- value = 'bar'
-
- self.driver.add_cookie({ 'name': name, 'value': value })
+ self.driver.add_cookie({'name': 'foo', 'value': 'bar'})
def test_cookies_should_allow_secure_to_be_set( self ):
name = 'foo'
- value = 'bar'
- secure = True
-
- self.driver.add_cookie({ 'name': name,
- 'value': value,
- 'path': '/',
- 'secure': secure})
+ self.driver.add_cookie({'name': name,
+ 'value': 'bar',
+ 'path': '/',
+ 'secure': (True)})
self.assertTrue(self.driver.get_cookie(name)[0]['secure'])
def test_secure_defaults_to_false( self ):
@@ -39,10 +33,8 @@ class CookieTest(base_test.WebDriverBaseTest):
def test_should_throw_an_exception_when_semicolon_exists_in_the_cookie_attribute(self):
invalid_name = 'foo;bar'
- value = 'foobar'
-
try:
- self.driver.add_cookie({ 'name': invalid_name, 'value': value })
+ self.driver.add_cookie({'name': invalid_name, 'value': 'foobar'})
self.fail( 'should have thrown exceptions.' )
except exceptions.UnableToSetCookieException:
@@ -51,10 +43,8 @@ class CookieTest(base_test.WebDriverBaseTest):
pass
def test_should_throw_an_exception_the_name_is_null(self):
- val = 'foobar'
-
try:
- self.driver.add_cookie({ 'name': None, 'value': val })
+ self.driver.add_cookie({'name': None, 'value': 'foobar'})
self.fail( 'should have thrown exceptions.' )
except exceptions.UnableToSetCookieException:
diff --git a/tests/wpt/web-platform-tests/webdriver/element_location/element_location_test.py b/tests/wpt/web-platform-tests/webdriver/element_location/element_location_test.py
index acbc56d7ee4..aff548ea5e4 100644
--- a/tests/wpt/web-platform-tests/webdriver/element_location/element_location_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/element_location/element_location_test.py
@@ -5,16 +5,15 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-
class ElementLocationTest(base_test.WebDriverBaseTest):
def test_find_element_by_name(self):
self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
- e = self.driver.find_element_by_css("*[name='name']")
+ e = self.driver.find_element_by_name("name")
self.assertEquals("name", e.text)
def test_find_element_by_css_selector(self):
self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
- e = self.driver.find_element_by_css("#id")
+ e = self.driver.find_element_by_css_selector("#id")
self.assertEquals("id", e.text)
def test_find_element_by_link_text(self):
@@ -32,6 +31,30 @@ class ElementLocationTest(base_test.WebDriverBaseTest):
e = self.driver.find_element_by_xpath("//*[@id='id']")
self.assertEquals("id", e.text)
+ def test_find_elements_by_name(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_name("name")
+ self.assertEquals("name", e[0].text)
+
+ def test_find_elements_by_css_selector(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_css_selector("#id")
+ self.assertEquals("id", e[0].text)
+
+ def test_find_elements_by_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_link_text("link text")
+ self.assertEquals("link text", e[0].text)
+
+ def test_find_elements_by_partial_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_partial_link_text("link tex")
+ self.assertEquals("link text", e[0].text)
+
+ def test_find_elements_by_xpath(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_xpath("//*[@id='id']")
+ self.assertEquals("id", e[0].text)
if __name__ == "__main__":
unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/element_state/method_test.py b/tests/wpt/web-platform-tests/webdriver/element_state/method_test.py
index e357471a0c2..dacd81b6ae0 100644
--- a/tests/wpt/web-platform-tests/webdriver/element_state/method_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/element_state/method_test.py
@@ -9,12 +9,12 @@ import base_test
class GetElementAttributeTest(base_test.WebDriverBaseTest):
def test_get_element_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-id-attribute.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertEqual("myId", el.get_attribute("id"))
def test_style_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-style-attribute.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
expected_style = """
font-family: \"Gill Sans Extrabold\",Helvetica,sans-serif;
line-height: 1.2; font-weight: bold;
@@ -23,47 +23,47 @@ class GetElementAttributeTest(base_test.WebDriverBaseTest):
def test_color_serialization_of_style_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-color-style-attribute.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertEqual("color: rgba(255, 0, 0, 1.0);", el.get_attribute("style"))
def test_true_if_boolean_attribute_present(self):
self.driver.get(self.webserver.where_is("element_state/res/input-with-checked-attribute.html"))
- el = self.driver.find_element_by_css("input")
+ el = self.driver.find_element_by_css_selector("input")
self.assertEqual("true", el.get_attribute("checked"))
def test_none_if_boolean_attribute_absent(self):
self.driver.get(self.webserver.where_is("element_state/res/input-without-checked-attribute.html"))
- el = self.driver.find_element_by_css("input")
+ el = self.driver.find_element_by_css_selector("input")
self.assertIsNone(el.get_attribute("checked"))
def test_option_with_attribute_value(self):
self.driver.get(self.webserver.where_is("element_state/res/option-with-value-attribute.html"))
- el = self.driver.find_element_by_css("option")
+ el = self.driver.find_element_by_css_selector("option")
self.assertEqual("value1", el.get_attribute("value"))
def test_option_without_value_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/option-without-value-attribute.html"))
- el = self.driver.find_element_by_css("option")
+ el = self.driver.find_element_by_css_selector("option")
self.assertEqual("Value 1", el.get_attribute("value"))
def test_a_href_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/a-with-href-attribute.html"))
- el = self.driver.find_element_by_css("a")
+ el = self.driver.find_element_by_css_selector("a")
self.assertEqual("http://web-platform.test:8000/path#fragment", el.get_attribute("href"))
def test_img_src_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/img-with-src-attribute.html"))
- el = self.driver.find_element_by_css("img")
+ el = self.driver.find_element_by_css_selector("img")
self.assertEqual("http://web-platform.test:8000/images/blue.png", el.get_attribute("src"))
def test_custom_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-custom-attribute.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertEqual("attribute value", el.get_attribute("webdriver-custom-attribute"))
def test_attribute_not_present(self):
self.driver.get(self.webserver.where_is("element_state/res/element-without-attribute.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertIsNone(el.get_attribute("class"))
diff --git a/tests/wpt/web-platform-tests/webdriver/element_state/properties.py b/tests/wpt/web-platform-tests/webdriver/element_state/properties.py
new file mode 100644
index 00000000000..a767700852e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/element_state/properties.py
@@ -0,0 +1,17 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class GetElementPropertiesTest(base_test.WebDriverBaseTest):
+ def test_get_element_text(self):
+ self.driver.get(self.webserver.where_is("element_state/res/elements_text.html"))
+ e = self.driver.find_element_by_name("name")
+ self.assertEquals("name", e.text)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/element_state/res/elements_text.html b/tests/wpt/web-platform-tests/webdriver/element_state/res/elements_text.html
new file mode 100644
index 00000000000..45b7c237012
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/element_state/res/elements_text.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<title>Element location</title>
+
+<body>
+ <div id="id">id</div>
+ <div id="name" name="name">name</div>
+ <a id="link">link text</a>
+</body>
diff --git a/tests/wpt/web-platform-tests/webdriver/element_state/visibility_test.py b/tests/wpt/web-platform-tests/webdriver/element_state/visibility_test.py
index 02efadb0aca..58218a7ff2e 100644
--- a/tests/wpt/web-platform-tests/webdriver/element_state/visibility_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/element_state/visibility_test.py
@@ -4,41 +4,41 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
def test_0x0_pixel_element_is_not_visible(self):
self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertFalse(el.is_displayed())
def test_0x0_pixel_text_node_is_visible(self):
self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels-text-node.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertTrue(el.is_displayed())
def test_1x1_pixel_element(self):
self.driver.get(self.webserver.where_is("element_state/res/1x1-pixels.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertTrue(el.is_displayed())
def test_zero_sized_element_is_shown_if_decendant_has_size(self):
self.driver.get(self.webserver.where_is("element_state/res/zero-sized-element-with-sizable-decendant.html"))
- parent = self.driver.find_element_by_css("#parent")
- child = self.driver.find_element_by_css("#child")
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertTrue(parent.is_displayed())
self.assertTrue(child.is_displayed())
def test_input_type_hidden_is_never_visible(self):
self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden.html"))
- input = self.driver.find_element_by_css("input")
+ input = self.driver.find_element_by_css_selector("input")
self.assertFalse(input.is_displayed())
def test_input_morphs_into_hidden(self):
self.driver.get(self.webserver.where_is("element_state/res/input-morphs-into-hidden.html"))
- input = self.driver.find_element_by_css("input")
+ input = self.driver.find_element_by_css_selector("input")
self.assertFalse(input.is_displayed())
def test_parent_node_visible_when_all_children_are_absolutely_positioned_and_overflow_is_hidden(self):
@@ -51,10 +51,10 @@ class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
self.driver.get(self.webserver.where_is("element_state/res/absolute-children-ancestor-hidden-overflow.html"))
- children = self.driver.find_elements_by_css(".child")
+ children = self.driver.find_elements_by_css_selector(".child")
assert all(child.is_displayed() for child in children)
- parent = self.driver.find_element_by_css("#parent")
+ parent = self.driver.find_element_by_css_selector("#parent")
assert parent.is_displayed()
def test_element_hidden_by_overflow_x_is_not_visible(self):
@@ -66,8 +66,8 @@ class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
for page in pages:
self.driver.get(self.webserver.where_is(page))
- right = self.driver.find_element_by_css("#right")
- bottom_right = self.driver.find_element_by_css("#bottom-right")
+ right = self.driver.find_element_by_css_selector("#right")
+ bottom_right = self.driver.find_element_by_css_selector("#bottom-right")
self.assertFalse(right.is_displayed())
self.assertFalse(bottom_right.is_displayed())
@@ -81,8 +81,8 @@ class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
for page in pages:
self.driver.get(self.webserver.where_is(page))
- bottom = self.driver.find_element_by_css("#bottom")
- bottom_right = self.driver.find_element_by_css("#bottom-right")
+ bottom = self.driver.find_element_by_css_selector("#bottom")
+ bottom_right = self.driver.find_element_by_css_selector("#bottom-right")
self.assertFalse(bottom.is_displayed())
self.assertFalse(bottom_right.is_displayed())
@@ -104,78 +104,78 @@ class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
def test_element_outside_viewport(self):
self.driver.get(self.webserver.where_is("element_state/res/element-outside-viewport.html"))
- hidden = self.driver.find_element_by_css("div")
+ hidden = self.driver.find_element_by_css_selector("div")
self.assertFalse(hidden.is_displayed())
def test_element_dynamically_moved_outside_viewport(self):
self.driver.get(self.webserver.where_is("element_state/res/element-dynamically-moved-outside-viewport.html"))
- hidden = self.driver.find_element_by_css("div")
+ hidden = self.driver.find_element_by_css_selector("div")
self.assertFalse(hidden.is_displayed())
def test_element_hidden_by_other_element(self):
self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-other-element.html"))
- overlay = self.driver.find_element_by_css("#overlay")
- hidden = self.driver.find_element_by_css("#hidden")
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
self.assertTrue(overlay.is_displayed())
self.assertFalse(hidden.is_displayed())
def test_element_partially_hidden_by_other_element(self):
self.driver.get(self.webserver.where_is("element_state/res/element-partially-hidden-by-other-element.html"))
- partial = self.driver.find_element_by_css("#partial")
+ partial = self.driver.find_element_by_css_selector("#partial")
self.assertTrue(partial.is_displayed())
def test_element_hidden_by_z_index(self):
self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-z-index.html"))
- overlay = self.driver.find_element_by_css("#overlay")
- hidden = self.driver.find_element_by_css("#hidden")
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
self.assertTrue(overlay.is_displayed())
self.assertFalse(hidden.is_displayed())
def test_element_moved_outside_viewport_by_transform(self):
self.driver.get(self.webserver.where_is("element_state/res/element-moved-outside-viewport-by-transform.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertFalse(el.is_displayed())
def test_element_moved_behind_other_element_by_transform(self):
self.driver.get(self.webserver.where_is("element_state/res/element-moved-behind-other-element-by-transform.html"))
- overlay = self.driver.find_element_by_css("#overlay")
- hidden = self.driver.find_element_by_css("#hidden")
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
self.assertTrue(overlay.is_displayed())
self.assertFalse(hidden.is_displayed())
def test_text_with_same_color_as_background(self):
self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-background.html"))
- p = self.driver.find_element_by_css("p")
+ p = self.driver.find_element_by_css_selector("p")
self.assertFalse(p.is_displayed())
def test_text_with_same_color_as_parent_background(self):
self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-parent-background.html"))
- p = self.driver.find_element_by_css("p")
+ p = self.driver.find_element_by_css_selector("p")
self.assertFalse(p.is_displayed())
def test_text_with_matching_color_and_background(self):
self.driver.get(self.webserver.where_is("element_state/res/text-with-matching-color-and-background.html"))
- p = self.driver.find_element_by_css("p")
+ p = self.driver.find_element_by_css_selector("p")
self.assertTrue(p.is_displayed())
def test_element_with_same_color_as_background(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-background.html"))
- el = self.driver.find_element_by_css("div")
+ el = self.driver.find_element_by_css_selector("div")
self.assertFalse(el.is_displayed())
def test_element_with_same_color_as_parent_background(self):
self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-parent-background.html"))
- hidden = self.driver.find_element_by_css("#hidden")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
self.assertFalse(hidden.is_displayed())
class BodyElementIsAlwaysDisplayedTest(base_test.WebDriverBaseTest):
def assert_body_is_displayed_on(self, page):
self.driver.get(self.webserver.where_is(page))
- body = self.driver.find_element_by_css("body")
+ body = self.driver.find_element_by_css_selector("body")
assert body.is_displayed()
def test_implicit(self):
@@ -194,86 +194,86 @@ class BodyElementIsAlwaysDisplayedTest(base_test.WebDriverBaseTest):
class DisplayTest(base_test.WebDriverBaseTest):
def test_display_block(self):
self.driver.get(self.webserver.where_is("element_state/res/display-block.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertTrue(el.is_displayed())
def test_display_none(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertFalse(el.is_displayed())
def test_display_none_hides_child_node(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-child.html"))
- parent = self.driver.find_element_by_css("#parent")
- child = self.driver.find_element_by_css("#child")
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(parent.is_displayed())
self.assertFalse(child.is_displayed())
def test_display_none_hides_child_node_link(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-child-link.html"))
- child = self.driver.find_element_by_css("#child")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(child.is_displayed())
def test_display_none_hides_child_node_paragraph(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-child-paragraph.html"))
- child = self.driver.find_element_by_css("#child")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(child.is_displayed())
def test_display_none_on_parent_takes_presedence(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence.html"))
- child = self.driver.find_element_by_css("#child")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(child.is_displayed())
def test_display_none_on_parent_takes_presedence_over_visibility_visible(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence-visibility.html"))
- child = self.driver.find_element_by_css("#child")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(child.is_displayed())
def test_display_none_hidden_dynamically(self):
self.driver.get(self.webserver.where_is("element_state/res/display-none-dynamic.html"))
- hidden = self.driver.find_element_by_css("#hidden")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
self.assertFalse(hidden.is_displayed())
class VisibilityTest(base_test.WebDriverBaseTest):
def test_element_state_hidden(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-hidden.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertFalse(el.is_displayed())
def test_element_state_visible(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-visible.html"))
- el = self.driver.find_element_by_css("p")
+ el = self.driver.find_element_by_css_selector("p")
self.assertTrue(el.is_displayed())
def test_visibility_hidden_hides_child_node(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-child.html"))
- parent = self.driver.find_element_by_css("#parent")
- child = self.driver.find_element_by_css("#child")
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(parent.is_displayed())
self.assertFalse(child.is_displayed())
def test_visibility_hidden_hides_child_node_link(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-child-link.html"))
- parent = self.driver.find_element_by_css("#parent")
- child = self.driver.find_element_by_css("#child")
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(parent.is_displayed())
self.assertFalse(child.is_displayed())
def test_visibility_hidden_hides_child_node_paragraph(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-child-paragraph.html"))
- parent = self.driver.find_element_by_css("#parent")
- child = self.driver.find_element_by_css("#child")
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertFalse(parent.is_displayed())
self.assertFalse(child.is_displayed())
def test_visibility_hidden_on_child_takes_precedence(self):
self.driver.get(self.webserver.where_is("element_state/res/visibility-child-presedence.html"))
- child = self.driver.find_element_by_css("#child")
+ child = self.driver.find_element_by_css_selector("#child")
self.assertTrue(child.is_displayed())
def test_visibility_hidden_on_parent_takes_precedence_over_display_block(self):
@@ -284,33 +284,33 @@ class VisibilityTest(base_test.WebDriverBaseTest):
def test_should_show_element_not_visible_with_hidden_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/hidden.html"))
- singleHidden = self.driver.find_element_by_css('#singleHidden')
+ singleHidden = self.driver.find_element_by_css_selector('#singleHidden')
self.assertFalse(singleHidden.is_displayed())
def test_should_show_element_not_visible_when_parent_element_has_hidden_attribute(self):
self.driver.get(self.webserver.where_is("element_state/res/hidden.html"))
- child = self.driver.find_element_by_css('#child')
+ child = self.driver.find_element_by_css_selector('#child')
self.assertFalse(child.is_displayed())
class VisibilityInteractionTest(base_test.WebDriverBaseTest):
def test_input_hidden_is_unclickable(self):
self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden-unclickable.html"))
- input = self.driver.find_element_by_css("input")
+ input = self.driver.find_element_by_css_selector("input")
with self.assertRaises(exceptions.ElementNotVisibleException):
input.click()
def test_hidden_input_checkbox_is_untogglable(self):
self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-checkbox-untogglable.html"))
- checkbox = self.driver.find_element_by_css("input")
+ checkbox = self.driver.find_element_by_css_selector("input")
with self.assertRaises(exceptions.ElementNotVisibleException):
checkbox.click()
def test_typing_in_hidden_input_is_impossible(self):
self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-text-writing.html"))
- textfield = self.driver.find_element_by_css("input")
+ textfield = self.driver.find_element_by_css_selector("input")
with self.assertRaises(exceptions.ElementNotVisibleException):
textfield.send_keys("Koha is a popular Indian cheese")
diff --git a/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py b/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py
index 72810a5fe04..dd7cfca946c 100644
--- a/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py
@@ -4,6 +4,7 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
+from selenium.webdriver.remote.webelement import WebElement
class ExecuteScriptTest(base_test.WebDriverBaseTest):
diff --git a/tests/wpt/web-platform-tests/webdriver/modal/alerts_quit_test.py b/tests/wpt/web-platform-tests/webdriver/modal/alerts_quit_test.py
index 2650a2dc678..83f7d145001 100644
--- a/tests/wpt/web-platform-tests/webdriver/modal/alerts_quit_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/modal/alerts_quit_test.py
@@ -4,16 +4,17 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions, wait
+from selenium.common import exceptions
+from selenium.webdriver.support import wait
class AlertsQuitTest(base_test.WebDriverBaseTest):
def setUp(self):
- self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions=[exceptions.NoSuchAlertException])
+ self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions=[exceptions.NoAlertPresentException])
self.driver.get(self.webserver.where_is('modal/res/alerts.html'))
def test_can_quit_when_an_alert_is_present(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
self.driver.quit()
with self.assertRaises(Exception):
diff --git a/tests/wpt/web-platform-tests/webdriver/modal/alerts_test.py b/tests/wpt/web-platform-tests/webdriver/modal/alerts_test.py
index d4182f6d07b..b982821cba2 100644
--- a/tests/wpt/web-platform-tests/webdriver/modal/alerts_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/modal/alerts_test.py
@@ -4,144 +4,145 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions, wait
-
+from selenium.common import exceptions
+from selenium.webdriver.support import wait
class AlertsTest(base_test.WebDriverBaseTest):
def setUp(self):
- self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoSuchAlertException])
+ self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoAlertPresentException])
self.driver.get(self.webserver.where_is('modal/res/alerts.html'))
def tearDown(self):
try:
self.driver.switch_to_alert().dismiss()
- except exceptions.NoSuchAlertException:
+ except exceptions.NoAlertPresentException:
pass
# Alerts
def test_should_allow_user_to_accept_an_alert(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- self.driver.get_current_url()
+ self.driver.current_url
def test_should_allow_user_to_accept_an_alert_with_no_text(self):
- self.driver.find_element_by_css('#empty-alert').click()
+ self.driver.find_element_by_css_selector('#empty-alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- self.driver.get_current_url()
+ self.driver.current_url
def test_should_allow_user_to_dismiss_an_alert(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.dismiss()
- self.driver.get_current_url()
+ self.driver.current_url
def test_should_allow_user_to_get_text_of_an_alert(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
- value = alert.get_text()
+ value = alert.text
alert.accept()
self.assertEquals('cheese', value)
def test_setting_the_value_of_an_alert_throws(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
with self.assertRaises(exceptions.ElementNotVisibleException):
alert.send_keys('cheese')
alert.accept()
def test_alert_should_not_allow_additional_commands_if_dismissed(self):
- self.driver.find_element_by_css('#alert').click()
+ self.driver.find_element_by_css_selector('#alert').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- with self.assertRaises(exceptions.NoSuchAlertException):
- alert.get_text()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
# Prompts
def test_should_allow_user_to_accept_a_prompt(self):
- self.driver.find_element_by_css('#prompt').click()
+ self.driver.find_element_by_css_selector('#prompt').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == '')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == '')
def test_should_allow_user_to_dismiss_a_prompt(self):
- self.driver.find_element_by_css('#prompt').click()
+ self.driver.find_element_by_css_selector('#prompt').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.dismiss()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'null')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null')
def test_should_allow_user_to_set_the_value_of_a_prompt(self):
- self.driver.find_element_by_css('#prompt').click()
+ self.driver.find_element_by_css_selector('#prompt').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.send_keys('cheese')
alert.accept()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'cheese')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'cheese')
def test_should_allow_user_to_get_text_of_a_prompt(self):
- self.driver.find_element_by_css('#prompt').click()
+ self.driver.find_element_by_css_selector('#prompt').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
- value = alert.get_text()
+ value = alert.text
alert.accept()
self.assertEquals('Enter something', value)
def test_prompt_should_not_allow_additional_commands_if_dismissed(self):
- self.driver.find_element_by_css('#prompt').click()
+ self.driver.find_element_by_css_selector('#prompt').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- with self.assertRaises(exceptions.NoSuchAlertException):
- alert.get_text()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
def test_prompt_should_use_default_value_if_no_keys_sent(self):
- self.driver.find_element_by_css('#prompt-with-default').click()
+ self.driver.find_element_by_css_selector('#prompt-with-default').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'This is a default value')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'This is a default value')
def test_prompt_should_have_null_value_if_dismissed(self):
- self.driver.find_element_by_css('#prompt-with-default').click()
+ self.driver.find_element_by_css_selector('#prompt-with-default').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.dismiss()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'null')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null')
# Confirmations
def test_should_allow_user_to_accept_a_confirm(self):
- self.driver.find_element_by_css('#confirm').click()
+ self.driver.find_element_by_css_selector('#confirm').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'true')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'true')
def test_should_allow_user_to_dismiss_a_confirm(self):
- self.driver.find_element_by_css('#confirm').click()
+ self.driver.find_element_by_css_selector('#confirm').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.dismiss()
- self.wait.until(lambda x: x.find_element_by_css('#text').text == 'false')
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'false')
def test_setting_the_value_of_a_confirm_throws(self):
- self.driver.find_element_by_css('#confirm').click()
+ self.driver.find_element_by_css_selector('#confirm').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
with self.assertRaises(exceptions.ElementNotVisibleException):
alert.send_keys('cheese')
alert.accept()
def test_should_allow_user_to_get_text_of_a_confirm(self):
- self.driver.find_element_by_css('#confirm').click()
+ self.driver.find_element_by_css_selector('#confirm').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
- value = alert.get_text()
+ value = alert.text
alert.accept()
self.assertEquals('cheese', value)
def test_confirm_should_not_allow_additional_commands_if_dismissed(self):
- self.driver.find_element_by_css('#confirm').click()
+ self.driver.find_element_by_css_selector('#confirm').click()
alert = self.wait.until(lambda x: x.switch_to_alert())
alert.accept()
- with self.assertRaises(exceptions.NoSuchAlertException):
- alert.get_text()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
+"""
def test_switch_to_missing_alert_fails(self):
- with self.assertRaises(exceptions.NoSuchAlertException):
+ with self.assertRaises(exceptions.NoAlertPresentException):
self.driver.switch_to_alert()
-
+"""
if __name__ == '__main__':
unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/auth_tests.py b/tests/wpt/web-platform-tests/webdriver/navigation/auth_tests.py
index 068e44fe9f6..266c76e16ff 100644
--- a/tests/wpt/web-platform-tests/webdriver/navigation/auth_tests.py
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/auth_tests.py
@@ -5,7 +5,7 @@ import ConfigParser
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
from wptserve import server
from wptserve.router import any_method
from wptserve.handlers import basic_auth_handler
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/forward.py b/tests/wpt/web-platform-tests/webdriver/navigation/forward.py
index 6cc77c2a458..67ca83227bf 100644
--- a/tests/wpt/web-platform-tests/webdriver/navigation/forward.py
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/forward.py
@@ -11,12 +11,12 @@ class ForwardTest(base_test.WebDriverBaseTest):
def test_forward(self):
self.driver.get(self.webserver.where_is('navigation/res/forwardStart.html'))
self.driver.get(self.webserver.where_is('navigation/res/forwardNext.html'))
- nextbody = self.driver.find_element_by_css("body").text
- self.driver.go_back()
- currbody = self.driver.find_element_by_css("body").text
+ nextbody = self.driver.find_element_by_css_selector("body").text
+ self.driver.back()
+ currbody = self.driver.find_element_by_css_selector("body").text
self.assertNotEqual(nextbody, currbody)
- self.driver.go_forward()
- currbody = self.driver.find_element_by_css("body").text
+ self.driver.forward()
+ currbody = self.driver.find_element_by_css_selector("body").text
self.assertEqual(nextbody, currbody)
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/forwardToNothing.py b/tests/wpt/web-platform-tests/webdriver/navigation/forwardToNothing.py
index 057fb9c5828..99759681a0d 100644
--- a/tests/wpt/web-platform-tests/webdriver/navigation/forwardToNothing.py
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/forwardToNothing.py
@@ -10,9 +10,9 @@ class ForwardToNothingTest(base_test.WebDriverBaseTest):
# Get a static page that must be the same upon refresh
def test_forwardToNothing(self):
self.driver.get(self.webserver.where_is('navigation/forwardStart.html'))
- body = self.driver.find_element_by_css("body").text
- self.driver.go_forward()
- currbody = self.driver.find_element_by_css("body").text
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.forward()
+ currbody = self.driver.find_element_by_css_selector("body").text
self.assertEqual(body, currbody)
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/get_from_http_test.py b/tests/wpt/web-platform-tests/webdriver/navigation/get_from_http_test.py
index 714e65f2b4d..d28a0d0b142 100644
--- a/tests/wpt/web-platform-tests/webdriver/navigation/get_from_http_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/get_from_http_test.py
@@ -10,7 +10,7 @@ class GetFromHttpTest(base_test.WebDriverBaseTest):
def testGetUrlWithNoRedirectionOverHttp(self):
page = self.webserver.where_is('navigation/res/empty.html')
self.driver.get(page)
- url = self.driver.get_current_url()
+ url = self.driver.current_url
self.assertEquals(page, url)
@@ -18,7 +18,7 @@ class GetFromHttpTest(base_test.WebDriverBaseTest):
page = self.webserver.where_is('navigation/redirect')
self.driver.get(page)
expected = self.webserver.where_is('navigation/res/empty.html')
- url = self.driver.get_current_url()
+ url = self.driver.current_url
self.assertEquals(expected, url)
@@ -26,7 +26,7 @@ class GetFromHttpTest(base_test.WebDriverBaseTest):
page = self.webserver.where_is('navigation/res/instant-meta-redirect.html')
self.driver.get(page)
expected = self.webserver.where_is('navigation/res/empty.html')
- url = self.driver.get_current_url()
+ url = self.driver.current_url
self.assertEquals(expected, url)
@@ -34,14 +34,14 @@ class GetFromHttpTest(base_test.WebDriverBaseTest):
page = self.webserver.where_is('navigation/res/1s-meta-redirect.html')
self.driver.get(page)
expected = self.webserver.where_is('navigation/res/empty.html')
- url = self.driver.get_current_url()
+ url = self.driver.current_url
self.assertEquals(expected, url)
def testGetWillNotFollowMetaRefreshThatRefreshesAfterMoreThanOneSecond(self):
page = self.webserver.where_is('navigation/res/60s-meta-redirect.html')
self.driver.get(page)
- url = self.driver.get_current_url()
+ url = self.driver.current_url
self.assertEquals(page, url)
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/invalid_cert_test.py b/tests/wpt/web-platform-tests/webdriver/navigation/invalid_cert_test.py
index 5f84827966d..b980146ee2c 100644
--- a/tests/wpt/web-platform-tests/webdriver/navigation/invalid_cert_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/invalid_cert_test.py
@@ -21,7 +21,7 @@ class InvalidCertTest(base_test.WebDriverBaseTest):
'navigation/res/empty.html').replace('http:', 'https:', 1)
self.driver.get(expected)
- self.assertEquals(expected, self.driver.get_current_url())
+ self.assertEquals(expected, self.driver.current_url)
if __name__ == '__main__':
diff --git a/tests/wpt/web-platform-tests/webdriver/navigation/refresh_page.py b/tests/wpt/web-platform-tests/webdriver/navigation/refresh_page.py
new file mode 100644
index 00000000000..1e1899008b0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/navigation/refresh_page.py
@@ -0,0 +1,27 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class RefreshPageTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_refreshPage(self):
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageStatic.html'))
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.execute_script("document.getElementById('body').innerHTML=''")
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css_selector("body").text
+ self.assertEqual(body, newbody)
+
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageDynamic.html'))
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css_selector("body").text
+ self.assertNotEqual(body, newbody)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/runtests_p0.py b/tests/wpt/web-platform-tests/webdriver/runtests_p0.py
new file mode 100644
index 00000000000..dc52c14be63
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/runtests_p0.py
@@ -0,0 +1,42 @@
+import unittest
+
+from unittest import TestLoader, TextTestRunner, TestSuite
+
+from cookie import cookie_test
+from navigation import forward
+from navigation import forwardToNothing
+from navigation import get_from_http_test
+from navigation import refresh_page
+from element_location import element_location_test
+from element_state import visibility_test
+from element_state import method_test
+from element_state import properties
+from javascript import execute_script_test
+from user_input import clear_test
+from windows import window_manipulation
+from windows import tabbing
+
+
+
+if __name__ == "__main__":
+
+ loader = TestLoader()
+ suite = TestSuite((
+ loader.loadTestsFromModule(cookie_test),
+ loader.loadTestsFromModule(forward),
+ loader.loadTestsFromModule(forwardToNothing),
+ loader.loadTestsFromModule(element_location_test),
+ loader.loadTestsFromModule(visibility_test),
+ loader.loadTestsFromModule(execute_script_test),
+ loader.loadTestsFromModule(clear_test),
+ loader.loadTestsFromModule(method_test),
+ loader.loadTestsFromModule(properties),
+ loader.loadTestsFromModule(refresh_page),
+ loader.loadTestsFromModule(get_from_http_test),
+ loader.loadTestsFromModule(window_manipulation),
+ loader.loadTestsFromModule(tabbing)
+ ))
+
+ runner = TextTestRunner(verbosity=2)
+ runner.run(suite)
+ unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/screenshot/__init__.py b/tests/wpt/web-platform-tests/webdriver/screenshot/__init__.py
new file mode 100644
index 00000000000..0c8107bebed
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/screenshot/__init__.py
@@ -0,0 +1 @@
+__author__ = 'b-redeg'
diff --git a/tests/wpt/web-platform-tests/webdriver/screenshot/res/screenshot.html b/tests/wpt/web-platform-tests/webdriver/screenshot/res/screenshot.html
new file mode 100644
index 00000000000..057bb9bf5f8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/screenshot/res/screenshot.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>"img" element with not fully qualified url</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/screenshot/take_screenshot.py b/tests/wpt/web-platform-tests/webdriver/screenshot/take_screenshot.py
new file mode 100644
index 00000000000..20ff2bff2ae
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/screenshot/take_screenshot.py
@@ -0,0 +1,15 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class ScreenShotTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_screenShot(self):
+ self.driver.get(self.webserver.where_is('screenshot/res/screen.html'))
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/timeouts/implicit_waits_tests.py b/tests/wpt/web-platform-tests/webdriver/timeouts/implicit_waits_tests.py
index e39723c50c1..5faa0ad122d 100644
--- a/tests/wpt/web-platform-tests/webdriver/timeouts/implicit_waits_tests.py
+++ b/tests/wpt/web-platform-tests/webdriver/timeouts/implicit_waits_tests.py
@@ -4,7 +4,7 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
class ImplicitWaitsTests(base_test.WebDriverBaseTest):
@@ -12,15 +12,15 @@ class ImplicitWaitsTests(base_test.WebDriverBaseTest):
self.driver.get(self.webserver.where_is('timeouts/res/implicit_waits_tests.html'))
def test_find_element_by_id(self):
- add = self.driver.find_element_by_css("#adder")
- self.driver.set_implicit_timeout(3)
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(3)
add.click()
- self.driver.find_element_by_css("#box0") # All is well if this doesn't throw.
+ self.driver.find_element_by_css_selector("#box0") # All is well if this doesn't throw.
def test_should_still_fail_to_find_an_element_when_implicit_waits_are_enabled(self):
- self.driver.set_implicit_timeout(0.5)
+ self.driver.implicitly_wait(0.5)
try:
- self.driver.find_element_by_css("#box0")
+ self.driver.find_element_by_css_selector("#box0")
self.fail("Expected NoSuchElementException to have been thrown")
except exceptions.NoSuchElementException as e:
pass
@@ -28,10 +28,10 @@ class ImplicitWaitsTests(base_test.WebDriverBaseTest):
self.fail("Expected NoSuchElementException but got " + str(e))
def test_should_return_after_first_attempt_to_find_one_after_disabling_implicit_waits(self):
- self.driver.set_implicit_timeout(3)
- self.driver.set_implicit_timeout(0)
+ self.driver.implicitly_wait(3)
+ self.driver.implicitly_wait(0)
try:
- self.driver.find_element_by_css("#box0")
+ self.driver.find_element_by_css_selector("#box0")
self.fail("Expected NoSuchElementException to have been thrown")
except exceptions.NoSuchElementException as e:
pass
@@ -39,24 +39,24 @@ class ImplicitWaitsTests(base_test.WebDriverBaseTest):
self.fail("Expected NoSuchElementException but got " + str(e))
def test_should_implicitly_wait_until_at_least_one_element_is_found_when_searching_for_many(self):
- add = self.driver.find_element_by_css("#adder")
- self.driver.set_implicit_timeout(2)
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(2)
add.click()
add.click()
- elements = self.driver.find_elements_by_css(".redbox")
+ elements = self.driver.find_elements_by_css_selector(".redbox")
self.assertTrue(len(elements) >= 1)
def test_should_still_fail_to_find_an_element_by_class_when_implicit_waits_are_enabled(self):
- self.driver.set_implicit_timeout(0.5)
- elements = self.driver.find_elements_by_css(".redbox")
+ self.driver.implicitly_wait(0.5)
+ elements = self.driver.find_elements_by_css_selector(".redbox")
self.assertEqual(0, len(elements))
def test_should_return_after_first_attempt_to_find_many_after_disabling_implicit_waits(self):
- add = self.driver.find_element_by_css("#adder")
- self.driver.set_implicit_timeout(1.1)
- self.driver.set_implicit_timeout(0)
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(1.1)
+ self.driver.implicitly_wait(0)
add.click()
- elements = self.driver.find_elements_by_css(".redbox")
+ elements = self.driver.find_elements_by_css_selector(".redbox")
self.assertEqual(0, len(elements))
diff --git a/tests/wpt/web-platform-tests/webdriver/timeouts/page_load_timeouts_tests.py b/tests/wpt/web-platform-tests/webdriver/timeouts/page_load_timeouts_tests.py
index 6d8693f6c2e..2f0d3beebaa 100644
--- a/tests/wpt/web-platform-tests/webdriver/timeouts/page_load_timeouts_tests.py
+++ b/tests/wpt/web-platform-tests/webdriver/timeouts/page_load_timeouts_tests.py
@@ -4,7 +4,7 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
class PageLoadTimeoutTest(base_test.WebDriverBaseTest):
diff --git a/tests/wpt/web-platform-tests/webdriver/user_input/clear_test.py b/tests/wpt/web-platform-tests/webdriver/user_input/clear_test.py
index 5375725128b..34e82e15999 100644
--- a/tests/wpt/web-platform-tests/webdriver/user_input/clear_test.py
+++ b/tests/wpt/web-platform-tests/webdriver/user_input/clear_test.py
@@ -6,45 +6,45 @@ import unittest
sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
import base_test
-from webdriver import exceptions
+from selenium.common import exceptions
class ElementClearTest(base_test.WebDriverBaseTest):
def test_writable_text_input_element_should_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_input_page.html"))
- e = self.driver.find_element_by_css("#writableTextInput")
+ e = self.driver.find_element_by_css_selector("#writableTextInput")
e.clear()
self.assertEquals("", e.get_attribute("value"))
def test_disabled_text_input_element_should_not_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_input_page.html"))
- e = self.driver.find_element_by_css("#disabledTextInput")
+ e = self.driver.find_element_by_css_selector("#disabledTextInput")
self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
def test_read_only_text_input_element_should_not_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_input_page.html"))
- e = self.driver.find_element_by_css("#readOnlyTextInput")
+ e = self.driver.find_element_by_css_selector("#readOnlyTextInput")
self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
def test_writable_text_area_element_should_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_textarea_page.html"))
- e = self.driver.find_element_by_css("#writableTextArea")
+ e = self.driver.find_element_by_css_selector("#writableTextArea")
e.clear()
self.assertEquals("", e.get_attribute("value"))
def test_disabled_text_area_element_should_not_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_textarea_page.html"))
- e = self.driver.find_element_by_css("#disabledTextArea")
+ e = self.driver.find_element_by_css_selector("#disabledTextArea")
self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
def test_read_only_text_input_element_should_not_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_textarea_page.html"))
- e = self.driver.find_element_by_css("#readOnlyTextArea")
+ e = self.driver.find_element_by_css_selector("#readOnlyTextArea")
self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
def test_content_editable_area_should_clear(self):
self.driver.get(self.webserver.where_is("user_input/res/element_clear_contenteditable_page.html"))
- e = self.driver.find_element_by_css("#contentEditableElement")
+ e = self.driver.find_element_by_css_selector("#contentEditableElement")
e.clear()
self.assertEquals("", e.text)
diff --git a/tests/wpt/web-platform-tests/webdriver/webdriver.cfg b/tests/wpt/web-platform-tests/webdriver/webdriver.cfg
index 98ecde7bd7c..cb74f56ceaa 100644
--- a/tests/wpt/web-platform-tests/webdriver/webdriver.cfg
+++ b/tests/wpt/web-platform-tests/webdriver/webdriver.cfg
@@ -21,6 +21,10 @@ mode: compatibility
capabilities: {"browserName": "ie"}
mode: compatibility
+[edge]
+capabilities: {"browserName": "edge"}
+mode: compatibility
+
[ios-driver]
capabilities: {"browserName": "iphone"}
mode: compatibility
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/__init__.py b/tests/wpt/web-platform-tests/webdriver/windows/__init__.py
new file mode 100644
index 00000000000..0c8107bebed
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/__init__.py
@@ -0,0 +1 @@
+__author__ = 'b-redeg'
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/res/win1.html b/tests/wpt/web-platform-tests/webdriver/windows/res/win1.html
new file mode 100644
index 00000000000..b8bf7e80b5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/res/win1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window one</title>
+
+<div onclick="window.open('win2.html')">win2</div> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/res/win2.html b/tests/wpt/web-platform-tests/webdriver/windows/res/win2.html
new file mode 100644
index 00000000000..81a068fa888
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/res/win2.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window two</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/res/win3.html b/tests/wpt/web-platform-tests/webdriver/windows/res/win3.html
new file mode 100644
index 00000000000..d3ee6944b57
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/res/win3.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window three</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/res/win4.html b/tests/wpt/web-platform-tests/webdriver/windows/res/win4.html
new file mode 100644
index 00000000000..ef35f761769
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/res/win4.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window four</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/res/win5.html b/tests/wpt/web-platform-tests/webdriver/windows/res/win5.html
new file mode 100644
index 00000000000..673d2a19a1f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/res/win5.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window five</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/tabbing.py b/tests/wpt/web-platform-tests/webdriver/windows/tabbing.py
new file mode 100644
index 00000000000..a6b5f99bf37
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/tabbing.py
@@ -0,0 +1,30 @@
+# -*- mode: python; fill-column: 100; comment-column: 100; -*-
+
+import os
+import sys
+import unittest
+import time
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+from selenium.webdriver.common.keys import Keys
+from selenium.webdriver.common.action_chains import ActionChains
+
+
+class tabbingTest(base_test.WebDriverBaseTest):
+ def test_open_close_tab(self):
+ self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.find_element_by_tag_name("div").click()
+ h = self.driver.window_handles
+ self.assertEquals(2, len(h))
+ self.driver.switch_to.window(h[1])
+ try:
+ self.driver.switch_to.window("does not exist")
+ self.fail("NoSuchWindowException expected")
+ except exceptions.NoSuchWindowException:
+ pass
+ self.driver.close()
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/tests/wpt/web-platform-tests/webdriver/windows/window_manipulation.py b/tests/wpt/web-platform-tests/webdriver/windows/window_manipulation.py
new file mode 100644
index 00000000000..02771672776
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/windows/window_manipulation.py
@@ -0,0 +1,43 @@
+# -*- mode: python; fill-column: 100; comment-column: 100; -*-
+
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class WindowingTest(base_test.WebDriverBaseTest):
+ def test_maximize(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.maximize_window()
+
+ def test_window_size_manipulation(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.set_window_size(400, 400)
+ window_size = self.driver.get_window_size()
+ self.assertTrue("width" in window_size)
+ self.assertTrue("height" in window_size)
+ self.assertEquals({"width": 400, "height":400}, window_size)
+
+ """
+ todo: make that work
+ see: https://w3c.github.io/webdriver/webdriver-spec.html#setwindowsize
+ result = self.driver.set_window_size(100, 100)
+ self.assertTrue("status" in result)
+ self.assertEquals(result["status"], 500)
+ """
+
+ def test_window_position_manipulation(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.set_window_position(400, 400)
+ window_position = self.driver.get_window_position()
+ self.assertTrue("x" in window_position)
+ self.assertTrue("y" in window_position)
+ self.assertEquals({"x": 400, "y": 400}, window_position)
+
+
+if __name__ == "__main__":
+ unittest.main()