mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Update web-platform-tests to revision acdb8bf3e4714528b6b5f9ff038dc80ee4fb7dcf
This commit is contained in:
parent
56a7981c9c
commit
93b883e1db
27 changed files with 1021 additions and 165 deletions
|
@ -1767,6 +1767,46 @@
|
||||||
],
|
],
|
||||||
"url": "/html/rendering/bindings/the-select-element-0/option-label.html"
|
"url": "/html/rendering/bindings/the-select-element-0/option-label.html"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/cols-default.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/cols-default.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/cols-zero.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/cols-zero.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/rows-default.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/rows-default.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/rows-zero.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/rows-zero.html"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
|
"path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
|
||||||
"references": [
|
"references": [
|
||||||
|
@ -11763,6 +11803,10 @@
|
||||||
"path": "html/dom/documents/dom-tree-accessors/document.title-08.html",
|
"path": "html/dom/documents/dom-tree-accessors/document.title-08.html",
|
||||||
"url": "/html/dom/documents/dom-tree-accessors/document.title-08.html"
|
"url": "/html/dom/documents/dom-tree-accessors/document.title-08.html"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "html/dom/documents/dom-tree-accessors/document.title-09.html",
|
||||||
|
"url": "/html/dom/documents/dom-tree-accessors/document.title-09.html"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "html/dom/documents/dom-tree-accessors/nameditem-01.html",
|
"path": "html/dom/documents/dom-tree-accessors/nameditem-01.html",
|
||||||
"url": "/html/dom/documents/dom-tree-accessors/nameditem-01.html"
|
"url": "/html/dom/documents/dom-tree-accessors/nameditem-01.html"
|
||||||
|
@ -21482,6 +21526,54 @@
|
||||||
"url": "/html/rendering/bindings/the-select-element-0/option-label.html"
|
"url": "/html/rendering/bindings/the-select-element-0/option-label.html"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"html/rendering/bindings/the-textarea-element-0/cols-default.html": [
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/cols-default.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/cols-default.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"html/rendering/bindings/the-textarea-element-0/cols-zero.html": [
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/cols-zero.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/cols-zero.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"html/rendering/bindings/the-textarea-element-0/rows-default.html": [
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/rows-default.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/rows-default.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"html/rendering/bindings/the-textarea-element-0/rows-zero.html": [
|
||||||
|
{
|
||||||
|
"path": "html/rendering/bindings/the-textarea-element-0/rows-zero.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/rendering/bindings/the-textarea-element-0/rows-zero.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
"html/rendering/non-replaced-elements/flow-content-0/figure.html": [
|
"html/rendering/non-replaced-elements/flow-content-0/figure.html": [
|
||||||
{
|
{
|
||||||
"path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
|
"path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
|
||||||
|
@ -25203,7 +25295,7 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rev": "000905d008db2538360020335bc2dbba16d322b5",
|
"rev": "acdb8bf3e4714528b6b5f9ff038dc80ee4fb7dcf",
|
||||||
"url_base": "/",
|
"url_base": "/",
|
||||||
"version": 2
|
"version": 2
|
||||||
}
|
}
|
|
@ -1,35 +1,530 @@
|
||||||
[textdecoder-labels.html]
|
[textdecoder-labels.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
[name=gbk label=chinese]
|
["chinese" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=csgb2312]
|
[" chinese" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=csiso58gb231280]
|
["chinese " => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=gb2312]
|
[" chinese " => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=gb_2312]
|
["\\tchinese" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=gb_2312-80]
|
["chinese\\t" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=gbk]
|
["\\tchinese\\t" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=iso-ir-58]
|
["\\nchinese" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=gbk label=x-gbk]
|
["chinese\\n" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=utf-16le label=utf-16]
|
["\\nchinese\\n" => "gbk"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[name=utf-16le label=utf-16le]
|
["\\fchinese" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["chinese\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fchinese\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rchinese" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["chinese\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rchinese\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" csgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" csgb2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tcsgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tcsgb2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ncsgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ncsgb2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fcsgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fcsgb2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rcsgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csgb2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rcsgb2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" csiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" csiso58gb231280 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tcsiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tcsiso58gb231280\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ncsiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ncsiso58gb231280\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fcsiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fcsiso58gb231280\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rcsiso58gb231280" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["csiso58gb231280\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rcsiso58gb231280\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb_2312 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb_2312\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb_2312\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb_2312\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb_2312" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb_2312\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gb_2312-80 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgb_2312-80\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngb_2312-80\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgb_2312-80\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb_2312-80" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gb_2312-80\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgb_2312-80\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" gbk " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tgbk\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\ngbk\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fgbk\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["gbk\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rgbk\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" iso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" iso-ir-58 " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tiso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tiso-ir-58\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\niso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\niso-ir-58\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fiso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fiso-ir-58\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\riso-ir-58" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["iso-ir-58\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\riso-ir-58\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" x-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" x-gbk " => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tx-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tx-gbk\\t" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nx-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nx-gbk\\n" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fx-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\fx-gbk\\f" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rx-gbk" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["x-gbk\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rx-gbk\\r" => "gbk"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" utf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16 " => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" utf-16 " => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tutf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16\\t" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tutf-16\\t" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nutf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16\\n" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nutf-16\\n" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\futf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16\\f" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\futf-16\\f" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rutf-16" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16\\r" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rutf-16\\r" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" utf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le " => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[" utf-16le " => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tutf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le\\t" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\tutf-16le\\t" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nutf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le\\n" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\nutf-16le\\n" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\futf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le\\f" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\futf-16le\\f" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rutf-16le" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["utf-16le\\r" => "utf-16le"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
["\\rutf-16le\\r" => "utf-16le"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -8196,21 +8196,9 @@
|
||||||
[Location interface object length]
|
[Location interface object length]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Location interface: operation replace(DOMString)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Location interface: operation reload()]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Location interface: window.location must inherit property "replace" with the proper type (1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Location interface: calling replace(DOMString) on window.location with too few arguments must throw TypeError]
|
[Location interface: calling replace(DOMString) on window.location with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Location interface: window.location must inherit property "reload" with the proper type (2)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[PopStateEvent interface: existence and properties of interface object]
|
[PopStateEvent interface: existence and properties of interface object]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -9501,3 +9489,102 @@
|
||||||
[HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type (2)]
|
[HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type (2)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "close" with the proper type (13)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "frameElement" with the proper type (23)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "navigator" with the proper type (27)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "alert" with the proper type (30)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onchange" with the proper type (45)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onclick" with the proper type (46)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onerror" with the proper type (62)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "oninput" with the proper type (64)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onload" with the proper type (69)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onsubmit" with the proper type (95)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "onunload" with the proper type (113)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "btoa" with the proper type (114)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "atob" with the proper type (115)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling atob(DOMString) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "setTimeout" with the proper type (116)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling setTimeout(Function,long,any) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "setTimeout" with the proper type (117)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling setTimeout(DOMString,long,any) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "clearTimeout" with the proper type (118)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling clearTimeout(long) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "setInterval" with the proper type (119)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling setInterval(Function,long,any) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "setInterval" with the proper type (120)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling setInterval(DOMString,long,any) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "clearInterval" with the proper type (121)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: calling clearInterval(long) on window with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "sessionStorage" with the proper type (123)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Window interface: window must inherit property "localStorage" with the proper type (124)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Location interface: window.location must have own property "assign"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Location interface: calling assign(DOMString) on window.location with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Location interface: window.location must have own property "replace"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Location interface: window.location must have own property "reload"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[cols-zero.html]
|
||||||
|
type: reftest
|
||||||
|
reftype: ==
|
||||||
|
refurl: /html/rendering/bindings/the-textarea-element-0/textarea-ref.html
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,5 @@
|
||||||
|
[rows-zero.html]
|
||||||
|
type: reftest
|
||||||
|
reftype: ==
|
||||||
|
refurl: /html/rendering/bindings/the-textarea-element-0/textarea-ref.html
|
||||||
|
expected: FAIL
|
|
@ -1,55 +1,56 @@
|
||||||
[relevant-mutations.html]
|
[relevant-mutations.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: TIMEOUT
|
||||||
[src removed]
|
[src removed]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[srcset set]
|
[srcset set]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[srcset changed]
|
[srcset changed]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[srcset removed]
|
[srcset removed]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[sizes set]
|
[sizes set]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[sizes changed]
|
[sizes changed]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[sizes removed]
|
[sizes removed]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin absent to empty]
|
[crossorigin absent to empty]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin absent to anonymous]
|
[crossorigin absent to anonymous]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin absent to use-credentials]
|
[crossorigin absent to use-credentials]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin empty to absent]
|
[crossorigin empty to absent]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin empty to use-credentials]
|
[crossorigin empty to use-credentials]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin anonymous to absent]
|
[crossorigin anonymous to absent]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin anonymous to use-credentials]
|
[crossorigin anonymous to use-credentials]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin use-credentials to absent]
|
[crossorigin use-credentials to absent]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin use-credentials to empty]
|
[crossorigin use-credentials to empty]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin use-credentials to anonymous]
|
[crossorigin use-credentials to anonymous]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[crossorigin state not changed: absent, removeAttribute]
|
[crossorigin state not changed: absent, removeAttribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
53d2432c90ab9ef171dfbef8e22ed3f58fcef8f0
|
56a7981c9c9c6df30fbb3add3d8d0085916fe313
|
|
@ -90,15 +90,6 @@
|
||||||
[WorkerNavigator interface: attribute onLine]
|
[WorkerNavigator interface: attribute onLine]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[WorkerNavigator interface: self.navigator must inherit property "language" with the proper type (7)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (8)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type (9)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[WorkerLocation interface object length]
|
[WorkerLocation interface object length]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -138,3 +129,21 @@
|
||||||
[WorkerLocation interface: self.location must inherit property "pathname" with the proper type (6)]
|
[WorkerLocation interface: self.location must inherit property "pathname" with the proper type (6)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[DedicatedWorkerGlobalScope interface: self must inherit property "postMessage" with the proper type (0)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[DedicatedWorkerGlobalScope interface: calling postMessage(any,[object Object\]) on self with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type (1)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WorkerNavigator interface: self.navigator must inherit property "language" with the proper type (6)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (7)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type (8)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -144,13 +144,6 @@
|
||||||
assert_equals(battery.onchargingchange, null, desc);
|
assert_equals(battery.onchargingchange, null, desc);
|
||||||
}, 'onchargingchange: treat array as null');
|
}, 'onchargingchange: treat array as null');
|
||||||
|
|
||||||
test(function() {
|
|
||||||
var desc = 'onchargingchange did not treat noncallable host object as null';
|
|
||||||
battery.onchargingchange = function() {};
|
|
||||||
battery.onchargingchange = Node;
|
|
||||||
assert_equals(battery.onchargingchange, null, desc);
|
|
||||||
}, 'onchargingchange: treat non-callable host object as null');
|
|
||||||
|
|
||||||
// attribute EventHandler onchargingtimechange;
|
// attribute EventHandler onchargingtimechange;
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
|
@ -214,13 +207,6 @@
|
||||||
assert_equals(battery.onchargingtimechange, null, desc);
|
assert_equals(battery.onchargingtimechange, null, desc);
|
||||||
}, 'onchargingtimechange: treat array as null');
|
}, 'onchargingtimechange: treat array as null');
|
||||||
|
|
||||||
test(function() {
|
|
||||||
var desc = 'onchargingtimechange did not treat noncallable host object as null';
|
|
||||||
battery.onchargingtimechange = function() {};
|
|
||||||
battery.onchargingtimechange = Node;
|
|
||||||
assert_equals(battery.onchargingtimechange, null, desc);
|
|
||||||
}, 'onchargingtimechange: treat non-callable host object as null');
|
|
||||||
|
|
||||||
// attribute EventHandler ondischargingtimechange;
|
// attribute EventHandler ondischargingtimechange;
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
|
@ -284,13 +270,6 @@
|
||||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
assert_equals(battery.ondischargingtimechange, null, desc);
|
||||||
}, 'ondischargingtimechange: treat array as null');
|
}, 'ondischargingtimechange: treat array as null');
|
||||||
|
|
||||||
test(function() {
|
|
||||||
var desc = 'ondischargingtimechange did not treat noncallable host object as null';
|
|
||||||
battery.ondischargingtimechange = function() {};
|
|
||||||
battery.ondischargingtimechange = Node;
|
|
||||||
assert_equals(battery.ondischargingtimechange, null, desc);
|
|
||||||
}, 'ondischargingtimechange: treat non-callable host object as null');
|
|
||||||
|
|
||||||
// attribute EventHandler onlevelchange;
|
// attribute EventHandler onlevelchange;
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
|
@ -354,13 +333,6 @@
|
||||||
assert_equals(battery.onlevelchange, null, desc);
|
assert_equals(battery.onlevelchange, null, desc);
|
||||||
}, 'onlevelchange: treat array as null');
|
}, 'onlevelchange: treat array as null');
|
||||||
|
|
||||||
test(function() {
|
|
||||||
var desc = 'onlevelchange did not treat noncallable host object as null';
|
|
||||||
battery.onlevelchange = function() {};
|
|
||||||
battery.onlevelchange = Node;
|
|
||||||
assert_equals(battery.onlevelchange, null, desc);
|
|
||||||
}, 'onlevelchange: treat non-callable host object as null');
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|
||||||
}, function () {});
|
}, function () {});
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
var invalidLabel = "invalid-invalidLabel"
|
var invalidLabel = "invalid-invalidLabel"
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextEncoder(invalidLabel); });
|
assert_throws(new RangeError(), function() { new TextEncoder(invalidLabel); });
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextDecoder(invalidLabel); });
|
assert_throws(new RangeError(), function() { new TextDecoder(invalidLabel); });
|
||||||
}, 'Invalid label "' + invalidLabel + '" should be rejected by API.');
|
}, 'Invalid label "' + invalidLabel + '" should be rejected by API.');
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextEncoder('replacement'); });
|
assert_throws(new RangeError(), function() { new TextEncoder('replacement'); });
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextDecoder('replacement'); });
|
assert_throws(new RangeError(), function() { new TextDecoder('replacement'); });
|
||||||
}, 'The "replacement" label should not be a known encoding.');
|
}, 'The "replacement" label should not be a known encoding.');
|
||||||
|
|
||||||
encodings_table.forEach(function(section) {
|
encodings_table.forEach(function(section) {
|
||||||
|
@ -16,8 +16,8 @@ encodings_table.forEach(function(section) {
|
||||||
}).forEach(function(encoding) {
|
}).forEach(function(encoding) {
|
||||||
encoding.labels.forEach(function(label) {
|
encoding.labels.forEach(function(label) {
|
||||||
test(function() {
|
test(function() {
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextEncoder(label); });
|
assert_throws(new RangeError(), function() { new TextEncoder(label); });
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextDecoder(label); });
|
assert_throws(new RangeError(), function() { new TextDecoder(label); });
|
||||||
}, 'Label for "replacement" should be rejected by API: ' + label);
|
}, 'Label for "replacement" should be rejected by API: ' + label);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,22 +4,33 @@
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="resources/encodings.js"></script>
|
<script src="resources/encodings.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
var tests = [];
|
||||||
encodings_table.forEach(function(section) {
|
setup(function() {
|
||||||
|
var whitespace = [' ', '\t', '\n', '\f', '\r'];
|
||||||
|
encodings_table.forEach(function(section) {
|
||||||
section.encodings.filter(function(encoding) {
|
section.encodings.filter(function(encoding) {
|
||||||
return encoding.name !== 'replacement';
|
return encoding.name !== 'replacement';
|
||||||
}).forEach(function(encoding) {
|
}).forEach(function(encoding) {
|
||||||
var name = encoding.name;
|
var name = encoding.name;
|
||||||
encoding.labels.forEach(function(label) {
|
encoding.labels.forEach(function(label) {
|
||||||
test(function(){
|
tests.push([label, encoding.name]);
|
||||||
assert_equals(new TextDecoder(label).encoding, encoding.name,
|
whitespace.forEach(function(ws) {
|
||||||
'label for encoding should match');
|
tests.push([ws + label, encoding.name]);
|
||||||
assert_equals(new TextDecoder(label.toUpperCase()).encoding,
|
tests.push([label + ws, encoding.name]);
|
||||||
encoding.name,
|
tests.push([ws + label + ws, encoding.name]);
|
||||||
'label matching should be case-insensitive');
|
|
||||||
}, 'name=' + name + ' label=' + label);
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tests.forEach(function(t) {
|
||||||
|
var input = t[0], output = t[1];
|
||||||
|
test(function() {
|
||||||
|
assert_equals(new TextDecoder(input).encoding, output,
|
||||||
|
'label for encoding should match');
|
||||||
|
assert_equals(new TextDecoder(input.toUpperCase()).encoding, output,
|
||||||
|
'label matching should be case-insensitive');
|
||||||
|
}, format_value(input) + " => " + format_value(output));
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -17,7 +17,7 @@ encodings_table.forEach(function(section) {
|
||||||
} else {
|
} else {
|
||||||
test(function() {
|
test(function() {
|
||||||
assert_equals(new TextDecoder(encoding.name).encoding, encoding.name);
|
assert_equals(new TextDecoder(encoding.name).encoding, encoding.name);
|
||||||
assert_throws({name: 'RangeError'}, function() { new TextEncoder(encoding.name); });
|
assert_throws(new RangeError(), function() { new TextEncoder(encoding.name); });
|
||||||
}, 'Non-UTF encodings supported only for decode, not encode: ' + encoding.name);
|
}, 'Non-UTF encodings supported only for decode, not encode: ' + encoding.name);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/#document.title">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div id="log"></div>
|
||||||
|
<script>
|
||||||
|
var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
|
||||||
|
|
||||||
|
function newSVGDocument() {
|
||||||
|
return document.implementation.createDocument(SVG_NAMESPACE, "svg");
|
||||||
|
}
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
var doc = newSVGDocument();
|
||||||
|
assert_equals(doc.title, "");
|
||||||
|
var child = doc.createElementNS(SVG_NAMESPACE, "x-child");
|
||||||
|
doc.documentElement.appendChild(child);
|
||||||
|
doc.title = "foo";
|
||||||
|
var lastChild = doc.documentElement.lastChild;
|
||||||
|
assert_equals(lastChild.namespaceURI, SVG_NAMESPACE);
|
||||||
|
assert_equals(lastChild.localName, "title");
|
||||||
|
assert_equals(lastChild.textContent, "foo");
|
||||||
|
assert_equals(doc.title, "foo");
|
||||||
|
}, "No title element in SVG document");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
var doc = newSVGDocument();
|
||||||
|
var title = doc.createElementNS(SVG_NAMESPACE, "title");
|
||||||
|
title.textContent = "foo";
|
||||||
|
doc.documentElement.appendChild(title)
|
||||||
|
assert_equals(doc.title, "foo");
|
||||||
|
doc.title += "bar";
|
||||||
|
assert_equals(title.textContent, "foobar");
|
||||||
|
assert_equals(title.childNodes.length, 1);
|
||||||
|
assert_true(title.childNodes[0] instanceof Text);
|
||||||
|
assert_equals(doc.title, "foobar");
|
||||||
|
doc.title = "";
|
||||||
|
assert_equals(title.textContent, "");
|
||||||
|
assert_equals(doc.title, "");
|
||||||
|
assert_equals(title.childNodes.length, 0);
|
||||||
|
}, "Title element in SVG document");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
var doc = newSVGDocument();
|
||||||
|
var title = doc.createElementNS(SVG_NAMESPACE, "title");
|
||||||
|
title.textContent = "foo";
|
||||||
|
var child = doc.createElementNS(SVG_NAMESPACE, "x-child");
|
||||||
|
child.appendChild(title);
|
||||||
|
doc.documentElement.appendChild(child);
|
||||||
|
assert_equals(doc.title, "");
|
||||||
|
}, "Title element not child of SVG root");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
var doc = newSVGDocument();
|
||||||
|
var title = doc.createElement("title");
|
||||||
|
title.textContent = "foo";
|
||||||
|
doc.documentElement.appendChild(title);
|
||||||
|
assert_equals(doc.title, "");
|
||||||
|
}, "Title element not in SVG namespace");
|
||||||
|
</script>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Textarea cols</title>
|
||||||
|
<link rel=match href=textarea-ref.html>
|
||||||
|
<textarea cols=20></textarea>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Textarea cols</title>
|
||||||
|
<link rel=match href=textarea-ref.html>
|
||||||
|
<textarea cols=0></textarea>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Textarea rows</title>
|
||||||
|
<link rel=match href=textarea-ref.html>
|
||||||
|
<textarea rows=2></textarea>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Textarea rows</title>
|
||||||
|
<link rel=match href=textarea-ref.html>
|
||||||
|
<textarea rows=0></textarea>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Default textarea</title>
|
||||||
|
<textarea></textarea>
|
|
@ -107,10 +107,9 @@ function t(desc, func, expect) {
|
||||||
var img = document.querySelector('[data-desc="' + desc + '"]');
|
var img = document.querySelector('[data-desc="' + desc + '"]');
|
||||||
img.onload = img.onerror = this.unreached_func('update the image data was run');
|
img.onload = img.onerror = this.unreached_func('update the image data was run');
|
||||||
if (expect == 'timeout') {
|
if (expect == 'timeout') {
|
||||||
setTimeout(this.step_func_done(), 250);
|
setTimeout(this.step_func_done(), 1000);
|
||||||
} else {
|
} else {
|
||||||
img['on' + expect] = this.step_func_done(function() {});
|
img['on' + expect] = this.step_func_done(function() {});
|
||||||
setTimeout(this.unreached_func('update the image data was not run'), 250)
|
|
||||||
}
|
}
|
||||||
func.call(this, img);
|
func.call(this, img);
|
||||||
}, desc);
|
}, desc);
|
||||||
|
|
|
@ -23,7 +23,20 @@ function run_test() {
|
||||||
}, "product");
|
}, "product");
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
assert_false(navigator.taintEnabled());
|
// See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555
|
||||||
|
if ("window" in self) {
|
||||||
|
// If you identify as WebKit, taintEnabled should not exist.
|
||||||
|
if (navigator.userAgent.indexOf("WebKit") != -1) {
|
||||||
|
assert_false("taintEnabled" in navigator);
|
||||||
|
}
|
||||||
|
// Otherwise it should exist and return false.
|
||||||
|
else {
|
||||||
|
assert_false(navigator.taintEnabled());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// taintEnabled should not exist in workers.
|
||||||
|
assert_false("taintEnabled" in navigator);
|
||||||
|
}
|
||||||
}, "taintEnabled");
|
}, "taintEnabled");
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
|
|
|
@ -553,6 +553,11 @@ function IdlInterface(obj, is_callback) {
|
||||||
|
|
||||||
/** An array of IdlInterfaceMembers. */
|
/** An array of IdlInterfaceMembers. */
|
||||||
this.members = obj.members.map(function(m){return new IdlInterfaceMember(m); });
|
this.members = obj.members.map(function(m){return new IdlInterfaceMember(m); });
|
||||||
|
if (this.has_extended_attribute("Unforgeable")) {
|
||||||
|
this.members
|
||||||
|
.filter(function(m) { return !m["static"] && (m.type == "attribute" || m.type == "operation"); })
|
||||||
|
.forEach(function(m) { return m.isUnforgeable = true; });
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name (as a string) of the type we inherit from, or null if there is
|
* The name (as a string) of the type we inherit from, or null if there is
|
||||||
|
@ -1003,7 +1008,26 @@ IdlInterface.prototype.test_member_attribute = function(member)
|
||||||
assert_false(member.name in self[this.name].prototype,
|
assert_false(member.name in self[this.name].prototype,
|
||||||
"The prototype object must not have a property " +
|
"The prototype object must not have a property " +
|
||||||
format_value(member.name));
|
format_value(member.name));
|
||||||
do_interface_attribute_asserts(self, member);
|
|
||||||
|
// Try/catch around the get here, since it can legitimately throw.
|
||||||
|
// If it does, we obviously can't check for equality with direct
|
||||||
|
// invocation of the getter.
|
||||||
|
var gotValue;
|
||||||
|
var propVal;
|
||||||
|
try {
|
||||||
|
propVal = self[member.name];
|
||||||
|
gotValue = true;
|
||||||
|
} catch (e) {
|
||||||
|
gotValue = false;
|
||||||
|
}
|
||||||
|
if (gotValue) {
|
||||||
|
var getter = Object.getOwnPropertyDescriptor(self, member.name).get;
|
||||||
|
assert_equals(typeof(getter), "function",
|
||||||
|
format_value(member.name) + " must have a getter");
|
||||||
|
assert_equals(propVal, getter.call(undefined),
|
||||||
|
"Gets on a global should not require an explicit this");
|
||||||
|
}
|
||||||
|
this.do_interface_attribute_asserts(self, member);
|
||||||
} else {
|
} else {
|
||||||
assert_true(member.name in self[this.name].prototype,
|
assert_true(member.name in self[this.name].prototype,
|
||||||
"The prototype object must have a property " +
|
"The prototype object must have a property " +
|
||||||
|
@ -1017,7 +1041,7 @@ IdlInterface.prototype.test_member_attribute = function(member)
|
||||||
assert_equals(self[this.name].prototype[member.name], undefined,
|
assert_equals(self[this.name].prototype[member.name], undefined,
|
||||||
"getting property on prototype object must return undefined");
|
"getting property on prototype object must return undefined");
|
||||||
}
|
}
|
||||||
do_interface_attribute_asserts(self[this.name].prototype, member);
|
this.do_interface_attribute_asserts(self[this.name].prototype, member);
|
||||||
}
|
}
|
||||||
}.bind(this), this.name + " interface: attribute " + member.name);
|
}.bind(this), this.name + " interface: attribute " + member.name);
|
||||||
};
|
};
|
||||||
|
@ -1055,7 +1079,7 @@ IdlInterface.prototype.test_member_operation = function(member)
|
||||||
var memberHolderObject;
|
var memberHolderObject;
|
||||||
if (member["static"]) {
|
if (member["static"]) {
|
||||||
assert_own_property(self[this.name], member.name,
|
assert_own_property(self[this.name], member.name,
|
||||||
"interface prototype object missing static operation");
|
"interface object missing static operation");
|
||||||
memberHolderObject = self[this.name];
|
memberHolderObject = self[this.name];
|
||||||
} else if (this.is_global()) {
|
} else if (this.is_global()) {
|
||||||
assert_own_property(self, member.name,
|
assert_own_property(self, member.name,
|
||||||
|
@ -1067,46 +1091,66 @@ IdlInterface.prototype.test_member_operation = function(member)
|
||||||
memberHolderObject = self[this.name].prototype;
|
memberHolderObject = self[this.name].prototype;
|
||||||
}
|
}
|
||||||
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(memberHolderObject, member.name);
|
this.do_member_operation_asserts(memberHolderObject, member);
|
||||||
// "The property has attributes { [[Writable]]: true,
|
}.bind(this), this.name + " interface: operation " + member.name +
|
||||||
// [[Enumerable]]: true, [[Configurable]]: true }."
|
"(" + member.arguments.map(function(m) { return m.idlType.idlType; }) +
|
||||||
assert_false("get" in desc, "property has getter");
|
")");
|
||||||
assert_false("set" in desc, "property has setter");
|
};
|
||||||
assert_true(desc.writable, "property is not writable");
|
|
||||||
assert_true(desc.enumerable, "property is not enumerable");
|
|
||||||
assert_true(desc.configurable, "property is not configurable");
|
|
||||||
// "The value of the property is a Function object whose
|
|
||||||
// behavior is as follows . . ."
|
|
||||||
assert_equals(typeof memberHolderObject[member.name], "function",
|
|
||||||
"property must be a function");
|
|
||||||
// "The value of the Function object’s “length” property is
|
|
||||||
// a Number determined as follows:
|
|
||||||
// ". . .
|
|
||||||
// "Return the length of the shortest argument list of the
|
|
||||||
// entries in S."
|
|
||||||
//
|
|
||||||
// TODO: Doesn't handle overloading or variadic arguments.
|
|
||||||
assert_equals(memberHolderObject[member.name].length,
|
|
||||||
member.arguments.filter(function(arg) {
|
|
||||||
return !arg.optional;
|
|
||||||
}).length,
|
|
||||||
"property has wrong .length");
|
|
||||||
|
|
||||||
// Make some suitable arguments
|
//@}
|
||||||
var args = member.arguments.map(function(arg) {
|
IdlInterface.prototype.do_member_operation_asserts = function(memberHolderObject, member)
|
||||||
return create_suitable_object(arg.idlType);
|
//@{
|
||||||
});
|
{
|
||||||
|
var operationUnforgeable = member.isUnforgeable;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(memberHolderObject, member.name);
|
||||||
|
// "The property has attributes { [[Writable]]: B,
|
||||||
|
// [[Enumerable]]: true, [[Configurable]]: B }, where B is false if the
|
||||||
|
// operation is unforgeable on the interface, and true otherwise".
|
||||||
|
assert_false("get" in desc, "property has getter");
|
||||||
|
assert_false("set" in desc, "property has setter");
|
||||||
|
assert_equals(desc.writable, !operationUnforgeable,
|
||||||
|
"property should be writable if and only if not unforgeable");
|
||||||
|
assert_true(desc.enumerable, "property is not enumerable");
|
||||||
|
assert_equals(desc.configurable, !operationUnforgeable,
|
||||||
|
"property should be configurable if and only if not unforgeable");
|
||||||
|
// "The value of the property is a Function object whose
|
||||||
|
// behavior is as follows . . ."
|
||||||
|
assert_equals(typeof memberHolderObject[member.name], "function",
|
||||||
|
"property must be a function");
|
||||||
|
// "The value of the Function object’s “length” property is
|
||||||
|
// a Number determined as follows:
|
||||||
|
// ". . .
|
||||||
|
// "Return the length of the shortest argument list of the
|
||||||
|
// entries in S."
|
||||||
|
//
|
||||||
|
// TODO: Doesn't handle overloading or variadic arguments.
|
||||||
|
assert_equals(memberHolderObject[member.name].length,
|
||||||
|
member.arguments.filter(function(arg) {
|
||||||
|
return !arg.optional;
|
||||||
|
}).length,
|
||||||
|
"property has wrong .length");
|
||||||
|
|
||||||
// "Let O be a value determined as follows:
|
// Make some suitable arguments
|
||||||
// ". . .
|
var args = member.arguments.map(function(arg) {
|
||||||
// "Otherwise, throw a TypeError."
|
return create_suitable_object(arg.idlType);
|
||||||
// This should be hit if the operation is not static, there is
|
});
|
||||||
// no [ImplicitThis] attribute, and the this value is null.
|
|
||||||
//
|
// "Let O be a value determined as follows:
|
||||||
// TODO: We currently ignore the [ImplicitThis] case.
|
// ". . .
|
||||||
if (!member["static"]) {
|
// "Otherwise, throw a TypeError."
|
||||||
|
// This should be hit if the operation is not static, there is
|
||||||
|
// no [ImplicitThis] attribute, and the this value is null.
|
||||||
|
//
|
||||||
|
// TODO: We currently ignore the [ImplicitThis] case. Except we manually
|
||||||
|
// check for globals, since otherwise we'll invoke window.close(). And we
|
||||||
|
// have to skip this test for anything that on the proto chain of "self",
|
||||||
|
// since that does in fact have implicit-this behavior.
|
||||||
|
if (!member["static"]) {
|
||||||
|
if (!this.is_global() &&
|
||||||
|
memberHolderObject[member.name] != self[member.name])
|
||||||
|
{
|
||||||
assert_throws(new TypeError(), function() {
|
assert_throws(new TypeError(), function() {
|
||||||
self[this.name].prototype[member.name].apply(null, args);
|
memberHolderObject[member.name].apply(null, args);
|
||||||
}, "calling operation with this = null didn't throw TypeError");
|
}, "calling operation with this = null didn't throw TypeError");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1116,12 +1160,10 @@ IdlInterface.prototype.test_member_operation = function(member)
|
||||||
// TODO: Test a platform object that implements some other
|
// TODO: Test a platform object that implements some other
|
||||||
// interface. (Have to be sure to get inheritance right.)
|
// interface. (Have to be sure to get inheritance right.)
|
||||||
assert_throws(new TypeError(), function() {
|
assert_throws(new TypeError(), function() {
|
||||||
self[this.name].prototype[member.name].apply({}, args);
|
memberHolderObject[member.name].apply({}, args);
|
||||||
}, "calling operation with this = {} didn't throw TypeError");
|
}, "calling operation with this = {} didn't throw TypeError");
|
||||||
}.bind(this), this.name + " interface: operation " + member.name +
|
}
|
||||||
"(" + member.arguments.map(function(m) { return m.idlType.idlType; }) +
|
}
|
||||||
")");
|
|
||||||
};
|
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
IdlInterface.prototype.test_member_stringifier = function(member)
|
IdlInterface.prototype.test_member_stringifier = function(member)
|
||||||
|
@ -1150,15 +1192,18 @@ IdlInterface.prototype.test_member_stringifier = function(member)
|
||||||
assert_own_property(self[this.name].prototype, "toString",
|
assert_own_property(self[this.name].prototype, "toString",
|
||||||
"interface prototype object missing non-static operation");
|
"interface prototype object missing non-static operation");
|
||||||
|
|
||||||
|
var stringifierUnforgeable = member.isUnforgeable;
|
||||||
var desc = Object.getOwnPropertyDescriptor(interfacePrototypeObject, "toString");
|
var desc = Object.getOwnPropertyDescriptor(interfacePrototypeObject, "toString");
|
||||||
// "The property has attributes { [[Writable]]: B,
|
// "The property has attributes { [[Writable]]: B,
|
||||||
// [[Enumerable]]: true, [[Configurable]]: B }, where B is false if the
|
// [[Enumerable]]: true, [[Configurable]]: B }, where B is false if the
|
||||||
// stringifier is unforgeable on the interface, and true otherwise."
|
// stringifier is unforgeable on the interface, and true otherwise."
|
||||||
assert_false("get" in desc, "property has getter");
|
assert_false("get" in desc, "property has getter");
|
||||||
assert_false("set" in desc, "property has setter");
|
assert_false("set" in desc, "property has setter");
|
||||||
assert_true(desc.writable, "property is not writable");
|
assert_equals(desc.writable, !stringifierUnforgeable,
|
||||||
|
"property should be writable if and only if not unforgeable");
|
||||||
assert_true(desc.enumerable, "property is not enumerable");
|
assert_true(desc.enumerable, "property is not enumerable");
|
||||||
assert_true(desc.configurable, "property is not configurable");
|
assert_equals(desc.configurable, !stringifierUnforgeable,
|
||||||
|
"property should be configurable if and only if not unforgeable");
|
||||||
// "The value of the property is a Function object, which behaves as
|
// "The value of the property is a Function object, which behaves as
|
||||||
// follows . . ."
|
// follows . . ."
|
||||||
assert_equals(typeof interfacePrototypeObject.toString, "function",
|
assert_equals(typeof interfacePrototypeObject.toString, "function",
|
||||||
|
@ -1203,7 +1248,8 @@ IdlInterface.prototype.test_members = function()
|
||||||
case "attribute":
|
case "attribute":
|
||||||
// For unforgeable attributes, we do the checks in
|
// For unforgeable attributes, we do the checks in
|
||||||
// test_interface_of instead.
|
// test_interface_of instead.
|
||||||
if (!member.has_extended_attribute("Unforgeable")) {
|
if (!member.isUnforgeable)
|
||||||
|
{
|
||||||
this.test_member_attribute(member);
|
this.test_member_attribute(member);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1211,8 +1257,13 @@ IdlInterface.prototype.test_members = function()
|
||||||
case "operation":
|
case "operation":
|
||||||
// TODO: Need to correctly handle multiple operations with the same
|
// TODO: Need to correctly handle multiple operations with the same
|
||||||
// identifier.
|
// identifier.
|
||||||
|
// For unforgeable operations, we do the checks in
|
||||||
|
// test_interface_of instead.
|
||||||
if (member.name) {
|
if (member.name) {
|
||||||
this.test_member_operation(member);
|
if (!member.isUnforgeable)
|
||||||
|
{
|
||||||
|
this.test_member_operation(member);
|
||||||
|
}
|
||||||
} else if (member.stringifier) {
|
} else if (member.stringifier) {
|
||||||
this.test_member_stringifier(member);
|
this.test_member_stringifier(member);
|
||||||
}
|
}
|
||||||
|
@ -1321,13 +1372,26 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
|
||||||
for (var i = 0; i < this.members.length; i++)
|
for (var i = 0; i < this.members.length; i++)
|
||||||
{
|
{
|
||||||
var member = this.members[i];
|
var member = this.members[i];
|
||||||
if (member.has_extended_attribute("Unforgeable"))
|
if (member.type == "attribute" && member.isUnforgeable)
|
||||||
{
|
{
|
||||||
test(function()
|
test(function()
|
||||||
{
|
{
|
||||||
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
||||||
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
||||||
do_interface_attribute_asserts(obj, member);
|
this.do_interface_attribute_asserts(obj, member);
|
||||||
|
}.bind(this), this.name + " interface: " + desc + ' must have own property "' + member.name + '"');
|
||||||
|
}
|
||||||
|
else if (member.type == "operation" &&
|
||||||
|
member.name &&
|
||||||
|
member.isUnforgeable)
|
||||||
|
{
|
||||||
|
test(function()
|
||||||
|
{
|
||||||
|
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
||||||
|
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
||||||
|
assert_own_property(obj, member.name,
|
||||||
|
"Doesn't have the unforgeable operation property");
|
||||||
|
this.do_member_operation_asserts(obj, member);
|
||||||
}.bind(this), this.name + " interface: " + desc + ' must have own property "' + member.name + '"');
|
}.bind(this), this.name + " interface: " + desc + ' must have own property "' + member.name + '"');
|
||||||
}
|
}
|
||||||
else if ((member.type == "const"
|
else if ((member.type == "const"
|
||||||
|
@ -1340,7 +1404,12 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
|
||||||
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
||||||
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
||||||
if (!member["static"]) {
|
if (!member["static"]) {
|
||||||
assert_inherits(obj, member.name);
|
if (!this.is_global()) {
|
||||||
|
assert_inherits(obj, member.name);
|
||||||
|
} else {
|
||||||
|
assert_own_property(obj, member.name);
|
||||||
|
}
|
||||||
|
|
||||||
if (member.type == "const")
|
if (member.type == "const")
|
||||||
{
|
{
|
||||||
assert_equals(obj[member.name], constValue(member.value));
|
assert_equals(obj[member.name], constValue(member.value));
|
||||||
|
@ -1381,7 +1450,11 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect
|
||||||
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
assert_equals(exception, null, "Unexpected exception when evaluating object");
|
||||||
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
assert_equals(typeof obj, expected_typeof, "wrong typeof object");
|
||||||
if (!member["static"]) {
|
if (!member["static"]) {
|
||||||
assert_inherits(obj, member.name);
|
if (!this.is_global() && !member.isUnforgeable) {
|
||||||
|
assert_inherits(obj, member.name);
|
||||||
|
} else {
|
||||||
|
assert_own_property(obj, member.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1423,7 +1496,7 @@ IdlInterface.prototype.has_stringifier = function()
|
||||||
};
|
};
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
function do_interface_attribute_asserts(obj, member)
|
IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member)
|
||||||
//@{
|
//@{
|
||||||
{
|
{
|
||||||
// This function tests WebIDL as of 2015-01-27.
|
// This function tests WebIDL as of 2015-01-27.
|
||||||
|
@ -1451,7 +1524,7 @@ function do_interface_attribute_asserts(obj, member)
|
||||||
assert_false("value" in desc, 'property descriptor has value but is supposed to be accessor');
|
assert_false("value" in desc, 'property descriptor has value but is supposed to be accessor');
|
||||||
assert_false("writable" in desc, 'property descriptor has "writable" field but is supposed to be accessor');
|
assert_false("writable" in desc, 'property descriptor has "writable" field but is supposed to be accessor');
|
||||||
assert_true(desc.enumerable, "property is not enumerable");
|
assert_true(desc.enumerable, "property is not enumerable");
|
||||||
if (member.has_extended_attribute("Unforgeable"))
|
if (member.isUnforgeable)
|
||||||
{
|
{
|
||||||
assert_false(desc.configurable, "[Unforgeable] property must not be configurable");
|
assert_false(desc.configurable, "[Unforgeable] property must not be configurable");
|
||||||
}
|
}
|
||||||
|
@ -1545,6 +1618,8 @@ function IdlInterfaceMember(obj)
|
||||||
{
|
{
|
||||||
this.extAttrs = [];
|
this.extAttrs = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.isUnforgeable = this.has_extended_attribute("Unforgeable");
|
||||||
}
|
}
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
|
@ -71,13 +71,22 @@ policies and contribution forms [3].
|
||||||
|
|
||||||
WindowTestEnvironment.prototype._dispatch = function(selector, callback_args, message_arg) {
|
WindowTestEnvironment.prototype._dispatch = function(selector, callback_args, message_arg) {
|
||||||
this._forEach_windows(
|
this._forEach_windows(
|
||||||
function(w, is_same_origin) {
|
function(w, same_origin) {
|
||||||
if (is_same_origin && selector in w) {
|
if (same_origin) {
|
||||||
try {
|
try {
|
||||||
w[selector].apply(undefined, callback_args);
|
var has_selector = selector in w;
|
||||||
} catch (e) {
|
} catch(e) {
|
||||||
if (debug) {
|
// If document.domain was set at some point same_origin can be
|
||||||
throw e;
|
// wrong and the above will fail.
|
||||||
|
has_selector = false;
|
||||||
|
}
|
||||||
|
if (has_selector) {
|
||||||
|
try {
|
||||||
|
w[selector].apply(undefined, callback_args);
|
||||||
|
} catch (e) {
|
||||||
|
if (debug) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1504,7 +1513,7 @@ policies and contribution forms [3].
|
||||||
status: {
|
status: {
|
||||||
status: tests.status.ERROR,
|
status: tests.status.ERROR,
|
||||||
message: "Error in worker" + filename + ": " + message,
|
message: "Error in worker" + filename + ": " + message,
|
||||||
stack: e.stack
|
stack: error.stack
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
error.preventDefault();
|
error.preventDefault();
|
||||||
|
|
|
@ -76,7 +76,7 @@ def whitelist_errors(path, errors):
|
||||||
global _whitelist_fn
|
global _whitelist_fn
|
||||||
|
|
||||||
if _whitelist_fn is None:
|
if _whitelist_fn is None:
|
||||||
_whitelist_fn = parse_whitelist_file(os.path.join(here, "lint.whitelist"))
|
_whitelist_fn = parse_whitelist_file(os.path.join(repo_root, "lint.whitelist"))
|
||||||
return _whitelist_fn(path, errors)
|
return _whitelist_fn(path, errors)
|
||||||
|
|
||||||
class Regexp(object):
|
class Regexp(object):
|
||||||
|
|
|
@ -96,7 +96,6 @@ interface NavigatorID {
|
||||||
readonly attribute DOMString appVersion;
|
readonly attribute DOMString appVersion;
|
||||||
readonly attribute DOMString platform;
|
readonly attribute DOMString platform;
|
||||||
readonly attribute DOMString product; // constant "Gecko"
|
readonly attribute DOMString product; // constant "Gecko"
|
||||||
boolean taintEnabled(); // constant false
|
|
||||||
readonly attribute DOMString userAgent;
|
readonly attribute DOMString userAgent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<script>
|
<script>
|
||||||
async_test(function() {
|
async_test(function() {
|
||||||
var worker = new Worker('helper-redirect.py?fail');
|
var worker = new Worker('helper-redirect.py?fail');
|
||||||
worker.onmessage = this.step_func(function(e) {
|
worker.onmessage = this.step_func_done(function(e) {
|
||||||
assert_equals(e.data[0], location.href.replace(/\/[^\/]+$/, '/post-location-members.js?a'));
|
assert_equals(e.data[0], location.href.replace(/\/[^\/]+$/, '/post-location-members.js?a'));
|
||||||
assert_equals(e.data[1], location.protocol);
|
assert_equals(e.data[1], location.protocol);
|
||||||
assert_equals(e.data[2], location.host);
|
assert_equals(e.data[2], location.host);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue