mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
Bug 1066771 - Update web-platform-tests to revision 9b98ac4c3a7fba5f5437e2e29b5ae38abd6d5eb0, a=test-only
--HG-- rename : testing/web-platform/meta/websockets/interfaces/WebSocket/close/006.html.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/close/close-connecting.html.ini rename : testing/web-platform/meta/websockets/interfaces/WebSocket/events/002.html.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/constants/004.html.ini rename : testing/web-platform/meta/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.xhtml.ini => testing/web-platform/meta/websockets/interfaces/WebSocket/events/015.html.ini rename : testing/web-platform/tests/html/editing/dnd/target-origin/003.html => testing/web-platform/tests/html/editing/dnd/target-origin/003-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/004.html => testing/web-platform/tests/html/editing/dnd/target-origin/004-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/005.html => testing/web-platform/tests/html/editing/dnd/target-origin/005-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/006.html => testing/web-platform/tests/html/editing/dnd/target-origin/006-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/007.html => testing/web-platform/tests/html/editing/dnd/target-origin/007-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/008.html => testing/web-platform/tests/html/editing/dnd/target-origin/008-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/009.html => testing/web-platform/tests/html/editing/dnd/target-origin/009-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/010.html => testing/web-platform/tests/html/editing/dnd/target-origin/010-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/011.html => testing/web-platform/tests/html/editing/dnd/target-origin/011-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/012.html => testing/web-platform/tests/html/editing/dnd/target-origin/012-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/013.html => testing/web-platform/tests/html/editing/dnd/target-origin/013-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/102.html => testing/web-platform/tests/html/editing/dnd/target-origin/102-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/103.html => testing/web-platform/tests/html/editing/dnd/target-origin/103-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/104.html => testing/web-platform/tests/html/editing/dnd/target-origin/104-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/105.html => testing/web-platform/tests/html/editing/dnd/target-origin/105-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/106.html => testing/web-platform/tests/html/editing/dnd/target-origin/106-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/107.html => testing/web-platform/tests/html/editing/dnd/target-origin/107-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/108.html => testing/web-platform/tests/html/editing/dnd/target-origin/108-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/109.html => testing/web-platform/tests/html/editing/dnd/target-origin/109-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/110.html => testing/web-platform/tests/html/editing/dnd/target-origin/110-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/111.html => testing/web-platform/tests/html/editing/dnd/target-origin/111-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/112.html => testing/web-platform/tests/html/editing/dnd/target-origin/112-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/113.html => testing/web-platform/tests/html/editing/dnd/target-origin/113-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/114.html => testing/web-platform/tests/html/editing/dnd/target-origin/114-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/115.html => testing/web-platform/tests/html/editing/dnd/target-origin/115-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/116.html => testing/web-platform/tests/html/editing/dnd/target-origin/116-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/117.html => testing/web-platform/tests/html/editing/dnd/target-origin/117-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/118.html => testing/web-platform/tests/html/editing/dnd/target-origin/118-manual.html rename : testing/web-platform/tests/html/editing/dnd/target-origin/201.html => testing/web-platform/tests/html/editing/dnd/target-origin/201-manual.html rename : testing/web-platform/tests/html/semantics/interfaces.html => testing/web-platform/tests/html/semantics/interfaces.js rename : testing/web-platform/tests/pointerevents/pointerevent_pointerout_after_pointerup_nohover.html => testing/web-platform/tests/pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html rename : testing/web-platform/tests/websockets/interfaces/CloseEvent/004.html => testing/web-platform/tests/websockets/interfaces/CloseEvent/clean-close.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/008.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/007.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/006.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/004.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/003.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/001.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/009.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/002.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/010.html => testing/web-platform/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-basic.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/006.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-connecting.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/003.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/005.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-nested.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/002.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-replace.html rename : testing/web-platform/tests/websockets/interfaces/WebSocket/close/004.html => testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-return.html extra : rebase_source : 200f5fafb760e3c985a5ae3e8682c0e3cc99920f
This commit is contained in:
parent
934564017f
commit
4280c39cc9
14
testing/web-platform/meta/FileAPI/File-constructor.html.ini
Normal file
14
testing/web-platform/meta/FileAPI/File-constructor.html.ini
Normal file
@ -0,0 +1,14 @@
|
||||
[File-constructor.html]
|
||||
type: testharness
|
||||
[Using special character in fileName]
|
||||
expected: FAIL
|
||||
|
||||
[Using uppercase characters in type]
|
||||
expected: FAIL
|
||||
|
||||
[Using illegal character for type]
|
||||
expected: FAIL
|
||||
|
||||
[Using lastModified]
|
||||
expected: FAIL
|
||||
|
@ -191,3 +191,55 @@
|
||||
[Blob interface: new Blob(["TEST"\]) must inherit property "close" with the proper type (3)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob interface: attribute isClosed]
|
||||
expected: FAIL
|
||||
|
||||
[Blob interface: new Blob(["TEST"\]) must inherit property "isClosed" with the proper type (2)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob interface: new Blob(["TEST"\]) must inherit property "close" with the proper type (4)]
|
||||
expected: FAIL
|
||||
|
||||
[File interface: attribute lastModified]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of new File(["myFileBits"\], "myFileName")]
|
||||
expected:
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
|
||||
[File interface: new File(["myFileBits"\], "myFileName") must inherit property "lastModified" with the proper type (1)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "isClosed" with the proper type (2)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "close" with the proper type (4)]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: existence and properties of interface prototype object\'s "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: operation readAsArrayBuffer(Blob)]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: operation readAsText(Blob,DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[FileReaderSync interface: operation readAsDataURL(Blob)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -2342,8 +2342,8 @@
|
||||
"url": "/html/editing/dnd/resources/circle.png"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/resources/crossorigin.js",
|
||||
"url": "/html/editing/dnd/resources/crossorigin.js"
|
||||
"path": "html/editing/dnd/resources/crossorigin.sub.js",
|
||||
"url": "/html/editing/dnd/resources/crossorigin.sub.js"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/resources/fail.png",
|
||||
@ -2861,6 +2861,10 @@
|
||||
"path": "html/semantics/interactive-elements/the-menu-element/contains.json",
|
||||
"url": "/html/semantics/interactive-elements/the-menu-element/contains.json"
|
||||
},
|
||||
{
|
||||
"path": "html/semantics/interfaces.js",
|
||||
"url": "/html/semantics/interfaces.js"
|
||||
},
|
||||
{
|
||||
"path": "html/semantics/links/downloading-resources/contains.json",
|
||||
"url": "/html/semantics/links/downloading-resources/contains.json"
|
||||
@ -3809,10 +3813,6 @@
|
||||
"path": "user-timing/resources/webperftestharnessextension.js",
|
||||
"url": "/user-timing/resources/webperftestharnessextension.js"
|
||||
},
|
||||
{
|
||||
"path": "vibration/TODO.txt",
|
||||
"url": "/vibration/TODO.txt"
|
||||
},
|
||||
{
|
||||
"path": "web-animations/README.md",
|
||||
"url": "/web-animations/README.md"
|
||||
@ -5417,6 +5417,10 @@
|
||||
"path": "workers/constructors/Worker/undefined",
|
||||
"url": "/workers/constructors/Worker/undefined"
|
||||
},
|
||||
{
|
||||
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.js",
|
||||
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.js"
|
||||
},
|
||||
{
|
||||
"path": "workers/interfaces/WorkerGlobalScope/location/helper-redirect.py",
|
||||
"url": "/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py"
|
||||
@ -5903,10 +5907,126 @@
|
||||
"path": "html/editing/dnd/target-origin/002-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/002-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/003-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/003-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/004-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/004-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/005-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/005-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/006-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/006-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/007-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/007-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/008-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/008-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/009-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/009-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/010-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/010-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/011-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/011-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/012-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/012-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/013-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/013-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/101-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/101-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/102-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/102-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/103-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/103-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/104-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/104-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/105-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/105-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/106-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/106-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/107-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/107-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/108-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/108-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/109-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/109-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/110-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/110-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/111-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/111-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/112-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/112-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/113-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/113-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/114-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/114-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/115-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/115-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/116-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/116-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/117-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/117-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/118-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/118-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/201-manual.html",
|
||||
"url": "/html/editing/dnd/target-origin/201-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/the-dragevent-interface/dragevent-manual.html",
|
||||
"url": "/html/editing/dnd/the-dragevent-interface/dragevent-manual.html"
|
||||
@ -6383,10 +6503,18 @@
|
||||
"path": "touch-events/single-touch-manual.html",
|
||||
"url": "/touch-events/single-touch-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/cancel-when-hidden-manual.html",
|
||||
"url": "/vibration/cancel-when-hidden-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/cancel-with-0-manual.html",
|
||||
"url": "/vibration/cancel-with-0-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/cancel-with-array-0-manual.html",
|
||||
"url": "/vibration/cancel-with-array-0-manual.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/cancel-with-empty-array-manual.html",
|
||||
"url": "/vibration/cancel-with-empty-array-manual.html"
|
||||
@ -11863,6 +11991,10 @@
|
||||
"path": "FileAPI/Blob-slice.html",
|
||||
"url": "/FileAPI/Blob-slice.html"
|
||||
},
|
||||
{
|
||||
"path": "FileAPI/File-constructor.html",
|
||||
"url": "/FileAPI/File-constructor.html"
|
||||
},
|
||||
{
|
||||
"path": "FileAPI/FileReader-interface/filereader_abort.html",
|
||||
"url": "/FileAPI/FileReader-interface/filereader_abort.html"
|
||||
@ -12784,10 +12916,6 @@
|
||||
"path": "XMLHttpRequest/anonymous-mode-unsupported.htm",
|
||||
"url": "/XMLHttpRequest/anonymous-mode-unsupported.htm"
|
||||
},
|
||||
{
|
||||
"path": "XMLHttpRequest/data-uri-basic.htm",
|
||||
"url": "/XMLHttpRequest/data-uri-basic.htm"
|
||||
},
|
||||
{
|
||||
"path": "XMLHttpRequest/data-uri.htm",
|
||||
"url": "/XMLHttpRequest/data-uri.htm"
|
||||
@ -14277,6 +14405,10 @@
|
||||
"path": "dom/nodes/Node-nodeName.xhtml",
|
||||
"url": "/dom/nodes/Node-nodeName.xhtml"
|
||||
},
|
||||
{
|
||||
"path": "dom/nodes/Node-nodeValue.html",
|
||||
"url": "/dom/nodes/Node-nodeValue.html"
|
||||
},
|
||||
{
|
||||
"path": "dom/nodes/Node-normalize.html",
|
||||
"url": "/dom/nodes/Node-normalize.html"
|
||||
@ -15004,6 +15136,11 @@
|
||||
"path": "html/browsers/offline/manifest_url_check.html",
|
||||
"url": "/html/browsers/offline/manifest_url_check.html"
|
||||
},
|
||||
{
|
||||
"path": "html/browsers/origin/cross-origin-objects/cross-origin-objects.html",
|
||||
"timeout": "long",
|
||||
"url": "/html/browsers/origin/cross-origin-objects/cross-origin-objects.html"
|
||||
},
|
||||
{
|
||||
"path": "html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html",
|
||||
"url": "/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-01.html"
|
||||
@ -15837,6 +15974,10 @@
|
||||
"path": "html/editing/dnd/synthetic/001.html",
|
||||
"url": "/html/editing/dnd/synthetic/001.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/target-origin/202.html",
|
||||
"url": "/html/editing/dnd/target-origin/202.html"
|
||||
},
|
||||
{
|
||||
"path": "html/editing/dnd/the-draggable-attribute/draggable_attribute.html",
|
||||
"url": "/html/editing/dnd/the-draggable-attribute/draggable_attribute.html"
|
||||
@ -19700,6 +19841,14 @@
|
||||
"path": "pointerevents/pointerevent_constructor.html",
|
||||
"url": "/pointerevents/pointerevent_constructor.html"
|
||||
},
|
||||
{
|
||||
"path": "pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html",
|
||||
"url": "/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html"
|
||||
},
|
||||
{
|
||||
"path": "pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html",
|
||||
"url": "/pointerevents/pointerevent_pointerleave_after_pointerup_nohover.html"
|
||||
},
|
||||
{
|
||||
"path": "pointerevents/pointerevent_pointerout_after_pointercancel_touch.html",
|
||||
"url": "/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html"
|
||||
@ -20444,6 +20593,10 @@
|
||||
"path": "vibration/api-is-present.html",
|
||||
"url": "/vibration/api-is-present.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/invalid-values.html",
|
||||
"url": "/vibration/invalid-values.html"
|
||||
},
|
||||
{
|
||||
"path": "vibration/silent-ignore.html",
|
||||
"url": "/vibration/silent-ignore.html"
|
||||
@ -21318,86 +21471,82 @@
|
||||
"url": "/websockets/interfaces.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/CloseEvent/001.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/001.html"
|
||||
"path": "websockets/interfaces/CloseEvent/clean-close.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/clean-close.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/CloseEvent/002.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/002.html"
|
||||
"path": "websockets/interfaces/CloseEvent/constructor.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/constructor.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/CloseEvent/003.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/003.html"
|
||||
"path": "websockets/interfaces/CloseEvent/historical.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/historical.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/CloseEvent/004.html",
|
||||
"url": "/websockets/interfaces/CloseEvent/004.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/001.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/001.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/002.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/002.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/003.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/003.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/004.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/004.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/005.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/005.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/006.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/006.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/007.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/007.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/008.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/008.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/009.html",
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html",
|
||||
"timeout": "long",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/009.html"
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/010.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/010.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/001.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/001.html"
|
||||
"path": "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html",
|
||||
"url": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/002.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/002.html"
|
||||
"path": "websockets/interfaces/WebSocket/close/close-basic.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-basic.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/003.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/003.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/004.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/004.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/005.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/005.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/006.html",
|
||||
"path": "websockets/interfaces/WebSocket/close/close-connecting.html",
|
||||
"timeout": "long",
|
||||
"url": "/websockets/interfaces/WebSocket/close/006.html"
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-connecting.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/close-multiple.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-multiple.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/close-nested.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-nested.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/close-replace.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-replace.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/close/close-return.html",
|
||||
"url": "/websockets/interfaces/WebSocket/close/close-return.html"
|
||||
},
|
||||
{
|
||||
"path": "websockets/interfaces/WebSocket/constants/001.html",
|
||||
@ -22208,6 +22357,10 @@
|
||||
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html",
|
||||
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html"
|
||||
},
|
||||
{
|
||||
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.html",
|
||||
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/message-event.html"
|
||||
},
|
||||
{
|
||||
"path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.html",
|
||||
"url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.html"
|
||||
@ -22608,5 +22761,5 @@
|
||||
]
|
||||
},
|
||||
"local_changes": [],
|
||||
"rev": "c311dde873f0bc2ebc5d2e5617f67dd14df7ddfe"
|
||||
"rev": "9b98ac4c3a7fba5f5437e2e29b5ae38abd6d5eb0"
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
[data-uri-basic.htm]
|
||||
type: testharness
|
||||
|
||||
[GET getAllResponseHeaders]
|
||||
expected: FAIL
|
||||
|
||||
[POST status]
|
||||
expected: FAIL
|
||||
|
||||
[POST responseText]
|
||||
expected: FAIL
|
||||
|
@ -18,3 +18,15 @@
|
||||
[XHR method UNICORN with charset text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[XHR method GET with charset text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[XHR method GET with charset text/plain (base64)]
|
||||
expected: FAIL
|
||||
|
||||
[XHR method GET with charset text/html]
|
||||
expected: FAIL
|
||||
|
||||
[XHR method GET with charset text/html;charset=UTF-8]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1,6 +0,0 @@
|
||||
[xmlhttprequest-timeout-overridesexpires.html]
|
||||
type: testharness
|
||||
[Timeout test: timeout set to expired value before load fires, original timeout at 1000, reset at 400 to 300]
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
|
@ -2,5 +2,5 @@
|
||||
type: testharness
|
||||
[Timeout test: timeout fires normally with same timeout set twice, original timeout at 400, reset at 200 to 400]
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
|
||||
|
||||
|
@ -315,3 +315,54 @@
|
||||
[DOMSettableTokenList interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type (15)]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new Event("foo") must inherit property "timeStamp" with the proper type (15)]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type (15)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "prepend" with the proper type (31)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "append" with the proper type (32)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "query" with the proper type (33)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "queryAll" with the proper type (34)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation hasAttributes()]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "closest" with the proper type (22)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "prepend" with the proper type (31)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "append" with the proper type (32)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "query" with the proper type (33)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "queryAll" with the proper type (34)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "before" with the proper type (39)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "after" with the proper type (40)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "replace" with the proper type (41)]
|
||||
expected: FAIL
|
||||
|
||||
[Attr interface: attribute textContent]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
[Document-characterSet-normalization.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
[Name "big5" has label "big5-hkscs"]
|
||||
expected: FAIL
|
||||
|
||||
@ -14,7 +12,3 @@
|
||||
[Name "x-user-defined" has label "x-user-defined"]
|
||||
expected: FAIL
|
||||
|
||||
[Name "iso-8859-4" has label "latin4"]
|
||||
expected:
|
||||
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): NOTRUN
|
||||
|
||||
|
@ -1,8 +0,0 @@
|
||||
[Document-createElement-namespace.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
[Created element\'s namespace in xhtml_ns_changed.xhtml]
|
||||
expected:
|
||||
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): NOTRUN
|
||||
|
@ -3,3 +3,6 @@
|
||||
[Date returned by lastModified is current.]
|
||||
expected: FAIL
|
||||
|
||||
[Date returned by lastModified is in the form "MM/DD/YYYY hh:mm:ss".]
|
||||
expected: FAIL
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
[202.html]
|
||||
type: testharness
|
||||
[allowTargetOrigin with fake dataTransfer should block events]
|
||||
expected: FAIL
|
||||
|
@ -28,10 +28,14 @@
|
||||
expected: FAIL
|
||||
|
||||
[importScripts() in a shared worker]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
FAIL
|
||||
|
||||
[SharedWorker() in a shared worker]
|
||||
expected: FAIL
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
FAIL
|
||||
|
||||
[WebSocket#url]
|
||||
expected: FAIL
|
||||
@ -119,3 +123,11 @@
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): TIMEOUT
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
|
||||
|
||||
[SharedWorker constructor]
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
|
||||
[Worker() in a shared worker]
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
[track-api-texttracks.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
[Count track list]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -114,9 +114,6 @@
|
||||
[html5lib_template.html cd8bc9521f9683086a9e8529dd97314a6869daeb]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html f915e7b3407c24b28c3aad318e5693cc774020f4]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html 3c5eb261787b3d15aff86fa61de773fd7e439b0e]
|
||||
expected: FAIL
|
||||
|
||||
@ -300,3 +297,18 @@
|
||||
[html5lib_template.html 24b3b50fdd0bf8d5cf2ebaa6bf502d7bcfde1da4]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html d3704c68528357189eb5826ab66eea071d6137a5]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html d958f7d44faf772d1fb60f1a8f186f837ca735d9]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html 3fc4d97fa68fc2658356bdbd4e051c867de8de53]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html 94820107bbf3fab3f82de1f717e8413aead7d3a6]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_template.html 657c00ebdda37ae060cc69633ed98482ccc29e18]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -0,0 +1,11 @@
|
||||
[html5lib_tests11.html]
|
||||
type: testharness
|
||||
[html5lib_tests11.html d3a8de194ffc676baf08142bcda59ba18dcde2ba]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_tests11.html 7ab36bc30d0d6bee4be899f13baed214e1ff0a74]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_tests11.html 45b6adfc38d306084d105aa7779a3b4fb83c031f]
|
||||
expected: FAIL
|
||||
|
@ -1,8 +1,8 @@
|
||||
[html5lib_tests25.html]
|
||||
type: testharness
|
||||
[html5lib_tests25.html de4aa726e09215ba9c50b97d257e6c6b880107f1]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_tests25.html 1ccc6e280f6dc773e2e00f2cb70cd96e97078296]
|
||||
expected: FAIL
|
||||
|
||||
[html5lib_tests25.html d46fa11c0107d59c84778beae84f388f55bffc31]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -0,0 +1,6 @@
|
||||
[pointerevent_pointerleave_after_pointercancel_touch.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[pointerleave event received]
|
||||
expected: NOTRUN
|
||||
|
@ -0,0 +1,6 @@
|
||||
[pointerevent_pointerleave_after_pointerup_nohover.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[pointerleave event received]
|
||||
expected: NOTRUN
|
||||
|
@ -1,6 +0,0 @@
|
||||
[020.html]
|
||||
type: testharness
|
||||
[cross-origin test]
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
|
||||
|
@ -1,5 +0,0 @@
|
||||
[002.html]
|
||||
type: testharness
|
||||
[WebSockets: dispatching a CloseEvent]
|
||||
expected: FAIL
|
||||
|
@ -1,5 +0,0 @@
|
||||
[003.html]
|
||||
type: testharness
|
||||
[WebSockets: dispatching a CloseEvent]
|
||||
expected: FAIL
|
||||
|
@ -0,0 +1,8 @@
|
||||
[historical.html]
|
||||
type: testharness
|
||||
[createEvent("CloseEvent")]
|
||||
expected: FAIL
|
||||
|
||||
[initCloseEvent]
|
||||
expected: FAIL
|
||||
|
@ -1,5 +0,0 @@
|
||||
[004.html]
|
||||
type: testharness
|
||||
[WebSockets: delete bufferedAmount]
|
||||
expected: FAIL
|
||||
|
@ -1,4 +1,4 @@
|
||||
[006.html]
|
||||
[close-connecting.html]
|
||||
type: testharness
|
||||
[WebSockets: close() when connecting]
|
||||
expected: FAIL
|
@ -1,4 +1,6 @@
|
||||
[002.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -2,4 +2,4 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -0,0 +1,5 @@
|
||||
[004.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
@ -1,8 +1,6 @@
|
||||
[005.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -2,3 +2,4 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
|
@ -2,4 +2,4 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -2,6 +2,5 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
|
@ -0,0 +1,4 @@
|
||||
[004.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
@ -2,4 +2,4 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -1,6 +1,7 @@
|
||||
[012.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
|
@ -1,7 +1,8 @@
|
||||
[013.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
[onclose]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -2,6 +2,4 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -1,4 +1,4 @@
|
||||
[dynamic-urls.sub.xhtml]
|
||||
[015.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
@ -1,8 +1,7 @@
|
||||
[005.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
|
||||
|
@ -0,0 +1,5 @@
|
||||
[message-event.html]
|
||||
type: testharness
|
||||
[Properties of the \'message\' event]
|
||||
expected: FAIL
|
||||
|
@ -2,7 +2,6 @@
|
||||
type: testharness
|
||||
expected:
|
||||
if not debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): OK
|
||||
if not debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): OK
|
||||
ERROR
|
||||
[close() and incoming message]
|
||||
expected: FAIL
|
||||
|
@ -1,9 +1,3 @@
|
||||
[setInterval.html]
|
||||
type: testharness
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): OK
|
||||
ERROR
|
||||
[close() and setInterval]
|
||||
expected:
|
||||
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
|
||||
expected: ERROR
|
||||
|
@ -2,5 +2,5 @@
|
||||
type: testharness
|
||||
[close() and setTimeout]
|
||||
expected:
|
||||
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
|
||||
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
[postMessage_event_properties.htm]
|
||||
type: testharness
|
||||
expected: ERROR
|
||||
[Test Description: The postMessage() method - Create an event that uses the MessageEvent interface, with the name message, which does not bubble and is not cancelable.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Properties of the \'message\' event]
|
||||
expected: FAIL
|
||||
|
||||
|
72
testing/web-platform/tests/FileAPI/File-constructor.html
Normal file
72
testing/web-platform/tests/FileAPI/File-constructor.html
Normal file
@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
<title>File constructor</title>
|
||||
<link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-file">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_true("File" in window, "window should have a File property.");
|
||||
}, "File interface object exists");
|
||||
|
||||
function test_first_argument(arg1, expectedSize, testName) {
|
||||
test(function() {
|
||||
var file = new File(arg1, "dummy");
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.name, "dummy");
|
||||
assert_equals(file.size, expectedSize);
|
||||
assert_equals(file.type, "");
|
||||
// assert_false(file.isClosed); XXX: File.isClosed doesn't seem to be implemented
|
||||
assert_not_equals(file.lastModified, "");
|
||||
}, testName);
|
||||
}
|
||||
|
||||
test_first_argument(["bits"], 4, "DOMString fileBits");
|
||||
test_first_argument(["𝓽𝓮𝔁𝓽"], 16, "Unicode DOMString fileBits");
|
||||
test_first_argument([new Blob()], 0, "Empty Blob fileBits");
|
||||
test_first_argument([new Blob(["bits"])], 4, "Blob fileBits");
|
||||
test_first_argument([new ArrayBuffer(8)], 8, "ArrayBuffer fileBits");
|
||||
test_first_argument([new Uint8Array([0x50, 0x41, 0x53, 0x53])], 4, "Typed array fileBits");
|
||||
test_first_argument(["bits", new Blob(["bits"]), new Blob(), new Uint8Array([0x50, 0x41]),
|
||||
new Uint16Array([0x5353]), new Uint32Array([0x53534150])], 16, "Various fileBits");
|
||||
|
||||
function test_second_argument(arg2, expectedFileName, testName) {
|
||||
test(function() {
|
||||
var file = new File(["bits"], arg2);
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.name, expectedFileName);
|
||||
}, testName);
|
||||
}
|
||||
|
||||
test_second_argument("dummy", "dummy", "Using fileName");
|
||||
test_second_argument("dummy/foo", "dummy:foo", "Using special character in fileName");
|
||||
|
||||
// testing the third argument
|
||||
test(function() {
|
||||
var file = new File(["bits"], "dummy", { type: "text/plain"});
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.type, "text/plain");
|
||||
}, "Using type on the File constructor");
|
||||
test(function() {
|
||||
var file = new File(["bits"], "dummy", { type: "TEXT/PLAIN"});
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.type, "text/plain");
|
||||
}, "Using uppercase characters in type");
|
||||
test(function() {
|
||||
var file = new File(["bits"], "dummy", { type: "𝓽𝓮𝔁𝓽/𝔭𝔩𝔞𝔦𝔫"});
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.type, "");
|
||||
}, "Using illegal character for type");
|
||||
test(function() {
|
||||
var file = new File(["bits"], "dummy", { lastModified: 42 });
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.lastModified, 42);
|
||||
}, "Using lastModified");
|
||||
test(function() {
|
||||
var file = new File(["bits"], "dummy", { name: "foo" });
|
||||
assert_true(file instanceof File);
|
||||
assert_equals(file.name, "dummy");
|
||||
}, "Misusing name");
|
||||
|
||||
</script>
|
@ -49,70 +49,97 @@
|
||||
</pre>
|
||||
|
||||
<pre id="idl" style="display: none">
|
||||
interface FileList {
|
||||
getter File? item(unsigned long index);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
[Constructor,
|
||||
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker]
|
||||
interface Blob {
|
||||
|
||||
[Constructor,
|
||||
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
|
||||
interface Blob {
|
||||
readonly attribute unsigned long long size;
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute unsigned long long size;
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute boolean isClosed;
|
||||
|
||||
//slice Blob into byte-ranged chunks
|
||||
//slice Blob into byte-ranged chunks
|
||||
|
||||
Blob slice(optional long long start,
|
||||
optional long long end,
|
||||
optional DOMString contentType);
|
||||
void close();
|
||||
};
|
||||
Blob slice([Clamp] optional long long start,
|
||||
[Clamp] optional long long end,
|
||||
optional DOMString contentType);
|
||||
void close();
|
||||
|
||||
dictionary BlobPropertyBag {
|
||||
DOMString type = "";
|
||||
};
|
||||
};
|
||||
|
||||
[Constructor(Blob fileBits, DOMString fileName)]
|
||||
interface File : Blob {
|
||||
readonly attribute DOMString name;
|
||||
readonly attribute Date lastModifiedDate;
|
||||
};
|
||||
dictionary BlobPropertyBag {
|
||||
DOMString type = "";
|
||||
};
|
||||
|
||||
[Constructor]
|
||||
interface FileReader: EventTarget {
|
||||
// async read methods
|
||||
void readAsArrayBuffer(Blob blob);
|
||||
void readAsText(Blob blob, optional DOMString label);
|
||||
void readAsDataURL(Blob blob);
|
||||
[Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits,
|
||||
[EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker]
|
||||
interface File : Blob {
|
||||
|
||||
void abort();
|
||||
readonly attribute DOMString name;
|
||||
readonly attribute long long lastModified;
|
||||
|
||||
// states
|
||||
const unsigned short EMPTY = 0;
|
||||
const unsigned short LOADING = 1;
|
||||
const unsigned short DONE = 2;
|
||||
};
|
||||
|
||||
readonly attribute unsigned short readyState;
|
||||
dictionary FilePropertyBag {
|
||||
|
||||
// File or Blob data
|
||||
readonly attribute (DOMString or ArrayBuffer)? result;
|
||||
DOMString type = "";
|
||||
long long lastModified;
|
||||
|
||||
readonly attribute DOMError? error;
|
||||
};
|
||||
|
||||
// event handler attributes
|
||||
attribute EventHandler onloadstart;
|
||||
attribute EventHandler onprogress;
|
||||
attribute EventHandler onload;
|
||||
attribute EventHandler onabort;
|
||||
attribute EventHandler onerror;
|
||||
attribute EventHandler onloadend;
|
||||
};
|
||||
[Exposed=Window,Worker] interface FileList {
|
||||
getter File? item(unsigned long index);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
partial interface URL {
|
||||
static DOMString? createObjectURL(Blob blob);
|
||||
static DOMString? createFor(Blob blob); // static DOMString? createFor()Blob blob);
|
||||
static void revokeObjectURL(DOMString url);
|
||||
};
|
||||
[Constructor, Exposed=Window,Worker]
|
||||
interface FileReader: EventTarget {
|
||||
|
||||
// async read methods
|
||||
void readAsArrayBuffer(Blob blob);
|
||||
void readAsText(Blob blob, optional DOMString label);
|
||||
void readAsDataURL(Blob blob);
|
||||
|
||||
void abort();
|
||||
|
||||
// states
|
||||
const unsigned short EMPTY = 0;
|
||||
const unsigned short LOADING = 1;
|
||||
const unsigned short DONE = 2;
|
||||
|
||||
readonly attribute unsigned short readyState;
|
||||
|
||||
// File or Blob data
|
||||
readonly attribute (DOMString or ArrayBuffer)? result;
|
||||
|
||||
readonly attribute DOMError? error;
|
||||
|
||||
// event handler attributes
|
||||
attribute EventHandler onloadstart;
|
||||
attribute EventHandler onprogress;
|
||||
attribute EventHandler onload;
|
||||
attribute EventHandler onabort;
|
||||
attribute EventHandler onerror;
|
||||
attribute EventHandler onloadend;
|
||||
|
||||
};
|
||||
|
||||
[Constructor, Exposed=Worker]
|
||||
interface FileReaderSync {
|
||||
|
||||
// Synchronously return strings
|
||||
|
||||
ArrayBuffer readAsArrayBuffer(Blob blob);
|
||||
DOMString readAsText(Blob blob, optional DOMString label);
|
||||
DOMString readAsDataURL(Blob blob);
|
||||
};
|
||||
|
||||
partial interface URL {
|
||||
|
||||
static DOMString createObjectURL(Blob blob);
|
||||
static DOMString createFor(Blob blob);
|
||||
static void revokeObjectURL(DOMString url);
|
||||
|
||||
};
|
||||
</pre>
|
||||
|
||||
<script>
|
||||
|
@ -37,70 +37,98 @@
|
||||
</pre>
|
||||
|
||||
<pre id="idl" style="display: none">
|
||||
interface FileList {
|
||||
getter File? item(unsigned long index);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
[Constructor,
|
||||
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker]
|
||||
interface Blob {
|
||||
|
||||
[Constructor,
|
||||
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
|
||||
interface Blob {
|
||||
readonly attribute unsigned long long size;
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute unsigned long long size;
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute boolean isClosed;
|
||||
|
||||
//slice Blob into byte-ranged chunks
|
||||
//slice Blob into byte-ranged chunks
|
||||
|
||||
Blob slice(optional long long start,
|
||||
optional long long end,
|
||||
optional DOMString contentType);
|
||||
void close();
|
||||
};
|
||||
Blob slice([Clamp] optional long long start,
|
||||
[Clamp] optional long long end,
|
||||
optional DOMString contentType);
|
||||
void close();
|
||||
|
||||
dictionary BlobPropertyBag {
|
||||
DOMString type = "";
|
||||
};
|
||||
};
|
||||
|
||||
[Constructor(Blob fileBits, DOMString fileName)]
|
||||
interface File : Blob {
|
||||
readonly attribute DOMString name;
|
||||
readonly attribute Date lastModifiedDate;
|
||||
};
|
||||
dictionary BlobPropertyBag {
|
||||
DOMString type = "";
|
||||
};
|
||||
|
||||
[Constructor]
|
||||
interface FileReader: EventTarget {
|
||||
// async read methods
|
||||
void readAsArrayBuffer(Blob blob);
|
||||
void readAsText(Blob blob, optional DOMString label);
|
||||
void readAsDataURL(Blob blob);
|
||||
[Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits,
|
||||
[EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker]
|
||||
interface File : Blob {
|
||||
|
||||
void abort();
|
||||
readonly attribute DOMString name;
|
||||
readonly attribute long long lastModified;
|
||||
|
||||
// states
|
||||
const unsigned short EMPTY = 0;
|
||||
const unsigned short LOADING = 1;
|
||||
const unsigned short DONE = 2;
|
||||
};
|
||||
|
||||
readonly attribute unsigned short readyState;
|
||||
dictionary FilePropertyBag {
|
||||
|
||||
// File or Blob data
|
||||
readonly attribute (DOMString or ArrayBuffer)? result;
|
||||
DOMString type = "";
|
||||
long long lastModified;
|
||||
|
||||
readonly attribute DOMError? error;
|
||||
};
|
||||
|
||||
// event handler attributes
|
||||
attribute EventHandler onloadstart;
|
||||
attribute EventHandler onprogress;
|
||||
attribute EventHandler onload;
|
||||
attribute EventHandler onabort;
|
||||
attribute EventHandler onerror;
|
||||
attribute EventHandler onloadend;
|
||||
};
|
||||
[Exposed=Window,Worker] interface FileList {
|
||||
getter File? item(unsigned long index);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
[Constructor, Exposed=Window,Worker]
|
||||
interface FileReader: EventTarget {
|
||||
|
||||
// async read methods
|
||||
void readAsArrayBuffer(Blob blob);
|
||||
void readAsText(Blob blob, optional DOMString label);
|
||||
void readAsDataURL(Blob blob);
|
||||
|
||||
void abort();
|
||||
|
||||
// states
|
||||
const unsigned short EMPTY = 0;
|
||||
const unsigned short LOADING = 1;
|
||||
const unsigned short DONE = 2;
|
||||
|
||||
readonly attribute unsigned short readyState;
|
||||
|
||||
// File or Blob data
|
||||
readonly attribute (DOMString or ArrayBuffer)? result;
|
||||
|
||||
readonly attribute DOMError? error;
|
||||
|
||||
// event handler attributes
|
||||
attribute EventHandler onloadstart;
|
||||
attribute EventHandler onprogress;
|
||||
attribute EventHandler onload;
|
||||
attribute EventHandler onabort;
|
||||
attribute EventHandler onerror;
|
||||
attribute EventHandler onloadend;
|
||||
|
||||
};
|
||||
|
||||
[Constructor, Exposed=Worker]
|
||||
interface FileReaderSync {
|
||||
|
||||
// Synchronously return strings
|
||||
|
||||
ArrayBuffer readAsArrayBuffer(Blob blob);
|
||||
DOMString readAsText(Blob blob, optional DOMString label);
|
||||
DOMString readAsDataURL(Blob blob);
|
||||
};
|
||||
|
||||
partial interface URL {
|
||||
|
||||
static DOMString createObjectURL(Blob blob);
|
||||
static DOMString createFor(Blob blob);
|
||||
static void revokeObjectURL(DOMString url);
|
||||
|
||||
};
|
||||
|
||||
partial interface URL {
|
||||
static DOMString? createObjectURL(Blob blob);
|
||||
static DOMString? createFor(Blob blob); // static DOMString? createFor()Blob blob);
|
||||
static void revokeObjectURL(DOMString url);
|
||||
};
|
||||
</pre>
|
||||
|
||||
<script>
|
||||
@ -113,6 +141,7 @@
|
||||
|
||||
idl_array.add_objects({
|
||||
Blob: ['new Blob(["TEST"])'],
|
||||
File: ['new File(["myFileBits"], "myFileName")'],
|
||||
FileReader: ['new FileReader()']
|
||||
});
|
||||
});
|
||||
|
@ -1,52 +0,0 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>XMLHttpRequest: basic data uri</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#data:-urls-and-http" data-tested-assertations="following::ul/li[2] following::ul/li[3] following::ul/li[4] following::ul/li[5]" />
|
||||
<link rel="help" href="http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-send()-method" data-tested-assertations="following::ul/li[10]/dl/dt[2]" />
|
||||
|
||||
<div id="log"></div>
|
||||
|
||||
<script>
|
||||
function do_test(name, method, uri, func) {
|
||||
var test = async_test(name);
|
||||
test.step(function() {
|
||||
var client = new XMLHttpRequest();
|
||||
client.onreadystatechange = test.step_func(function () {
|
||||
if (client.readyState !== 4) return;
|
||||
func(client);
|
||||
test.done();
|
||||
});
|
||||
client.open(method, uri);
|
||||
client.send(null);
|
||||
});
|
||||
}
|
||||
do_test("GET responseText", 'GET', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.responseText, "Hello, World!")
|
||||
});
|
||||
do_test("GET responseText base64", 'GET', "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D", function (client) {
|
||||
assert_equals(client.responseText, "Hello, World!")
|
||||
});
|
||||
do_test("GET status", 'GET', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.status, 200);
|
||||
});
|
||||
do_test("GET statusText", 'GET', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.statusText, "OK");
|
||||
});
|
||||
do_test("GET Content-Type", 'GET', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.getResponseHeader('Content-Type'), 'text/plain');
|
||||
});
|
||||
do_test("GET Content-Type with param", 'GET', "data:text/html;charset=utf-8,<p>Hello, World!", function (client) {
|
||||
assert_equals(client.getResponseHeader('Content-Type'), 'text/html;charset=utf-8');
|
||||
});
|
||||
do_test("GET getAllResponseHeaders", 'GET', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.getAllResponseHeaders(), 'content-type: text/plain');
|
||||
});
|
||||
do_test("POST responseText", 'POST', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.responseText, null);
|
||||
});
|
||||
do_test("POST status", 'POST', "data:text/plain,Hello, World!", function (client) {
|
||||
assert_equals(client.status, 0);
|
||||
});
|
||||
</script>
|
@ -8,22 +8,32 @@
|
||||
<div id="log"></div>
|
||||
|
||||
<script>
|
||||
function do_test(method, uri, charset, namePostfix) {
|
||||
function do_test(method, uri, charset, testNamePostfix) {
|
||||
if (typeof charset === 'undefined' || charset === null) charset = 'text/plain';
|
||||
var test = async_test("XHR method " + method + " with charset " + charset+(namePostfix||''));
|
||||
var test = async_test("XHR method " + method + " with charset " + charset+(testNamePostfix||''));
|
||||
test.step(function() {
|
||||
var client = new XMLHttpRequest();
|
||||
client.onreadystatechange = test.step_func(function () {
|
||||
if (client.readyState !== 4) return;
|
||||
if (client.readyState !== 4) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Note: fetching a data URL with a non-GET method returns a network
|
||||
// error per <http://fetch.spec.whatwg.org/#basic-fetch>.
|
||||
if (method.toUpperCase() !== 'GET') {
|
||||
assert_equals(client.status, 0);
|
||||
assert_equals(client.responseText, null);
|
||||
assert_equals(client.responseText, '');
|
||||
assert_equals(client.statusText, 'OK');
|
||||
test.done();
|
||||
return;
|
||||
}
|
||||
|
||||
assert_equals(client.responseText, "Hello, World!");
|
||||
assert_equals(client.status, 200);
|
||||
assert_equals(client.getResponseHeader('Content-Type'), charset);
|
||||
var allHeaders = client.getAllResponseHeaders();
|
||||
assert_regexp_match(allHeaders, /content\-type\:/i, 'getAllResponseHeaders() includes Content-Type');
|
||||
assert_false(/content\-length\:/i.test(allHeaders), 'getAllResponseHeaders() must not include Content-Length');
|
||||
test.done();
|
||||
});
|
||||
client.open(method, uri);
|
||||
@ -33,6 +43,7 @@
|
||||
do_test('GET', "data:text/plain,Hello, World!");
|
||||
do_test('GET', "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==", undefined, " (base64)");
|
||||
do_test('GET', "data:text/html,Hello, World!", 'text/html');
|
||||
do_test('GET', "data:text/html;charset=UTF-8,Hello, World!", 'text/html;charset=UTF-8');
|
||||
do_test('GET', "data:image/png,Hello, World!", 'image/png');
|
||||
do_test('POST', "data:text/plain,Hello, World!");
|
||||
do_test('PUT', "data:text/plain,Hello, World!");
|
||||
|
@ -110,6 +110,6 @@
|
||||
if (log) {
|
||||
log.parentNode.insertBefore(documentingPrefixUsage, log);
|
||||
} else {
|
||||
body.appendChild(documentingPrefixUsage);
|
||||
document.body.appendChild(documentingPrefixUsage);
|
||||
}
|
||||
})();
|
||||
})();
|
||||
|
@ -21,7 +21,6 @@ var nukedInterfaces = [
|
||||
"Entity",
|
||||
"EntityReference",
|
||||
"EventException", // DOM Events
|
||||
"NamedNodeMap",
|
||||
"NameList",
|
||||
"Notation",
|
||||
"TypeInfo",
|
||||
@ -39,8 +38,6 @@ function isNukedFromDocument(name) {
|
||||
}
|
||||
var documentNuked = [
|
||||
"createCDATASection",
|
||||
"createAttribute",
|
||||
"createAttributeNS",
|
||||
"createEntityReference",
|
||||
"inputEncoding",
|
||||
"xmlEncoding",
|
||||
@ -69,10 +66,6 @@ function isNukedFromElement(name) {
|
||||
}, "Historical DOM features must be removed: " + name)
|
||||
}
|
||||
var elementNuked = [
|
||||
"getAttributeNode",
|
||||
"getAttributeNodeNS",
|
||||
"setAttributeNode",
|
||||
"removeAttributeNode",
|
||||
"schemaTypeInfo",
|
||||
"setIdAttribute",
|
||||
"setIdAttributeNS",
|
||||
|
@ -20,7 +20,7 @@ exception DOMException {
|
||||
const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
|
||||
const unsigned short NOT_FOUND_ERR = 8;
|
||||
const unsigned short NOT_SUPPORTED_ERR = 9;
|
||||
const unsigned short INUSE_ATTRIBUTE_ERR = 10; // historical
|
||||
const unsigned short INUSE_ATTRIBUTE_ERR = 10;
|
||||
const unsigned short INVALID_STATE_ERR = 11;
|
||||
const unsigned short SYNTAX_ERR = 12;
|
||||
const unsigned short INVALID_MODIFICATION_ERR = 13;
|
||||
@ -67,7 +67,7 @@ interface Event {
|
||||
readonly attribute boolean defaultPrevented;
|
||||
|
||||
[Unforgeable] readonly attribute boolean isTrusted;
|
||||
readonly attribute /* DOMTimeStamp */ unsigned long long timeStamp;
|
||||
readonly attribute DOMTimeStamp timeStamp;
|
||||
|
||||
void initEvent(DOMString type, boolean bubbles, boolean cancelable);
|
||||
};
|
||||
@ -276,6 +276,9 @@ interface Document : Node {
|
||||
Node importNode(Node node, optional boolean deep = false);
|
||||
Node adoptNode(Node node);
|
||||
|
||||
Attr createAttribute(DOMString localName);
|
||||
Attr createAttributeNS(DOMString namespace, DOMString name);
|
||||
|
||||
[NewObject] Event createEvent(DOMString interface);
|
||||
|
||||
[NewObject] Range createRange();
|
||||
@ -315,7 +318,8 @@ interface Element : Node {
|
||||
attribute DOMString className;
|
||||
[SameObject] readonly attribute DOMTokenList classList;
|
||||
|
||||
[SameObject] readonly attribute Attr[] attributes;
|
||||
boolean hasAttributes();
|
||||
[SameObject] readonly attribute NamedNodeMap attributes;
|
||||
DOMString? getAttribute(DOMString name);
|
||||
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
||||
void setAttribute(DOMString name, DOMString value);
|
||||
@ -325,6 +329,12 @@ interface Element : Node {
|
||||
boolean hasAttribute(DOMString name);
|
||||
boolean hasAttributeNS(DOMString? namespace, DOMString localName);
|
||||
|
||||
Attr? getAttributeNode(DOMString name);
|
||||
Attr? getAttributeNodeNS(DOMString namespace, DOMString localName);
|
||||
Attr? setAttributeNode(Attr attr);
|
||||
Attr? setAttributeNodeNS(Attr attr);
|
||||
Attr removeAttributeNode(Attr attr);
|
||||
|
||||
Element? closest(DOMString selectors);
|
||||
boolean matches(DOMString selectors);
|
||||
|
||||
@ -333,13 +343,26 @@ interface Element : Node {
|
||||
HTMLCollection getElementsByClassName(DOMString classNames);
|
||||
};
|
||||
|
||||
interface Attr {
|
||||
readonly attribute DOMString localName;
|
||||
attribute DOMString value;
|
||||
interface NamedNodeMap {
|
||||
readonly attribute unsigned long length;
|
||||
getter Attr? item(unsigned long index);
|
||||
getter Attr? getNamedItem(DOMString name);
|
||||
Attr? getNamedItemNS(DOMString? namespace, DOMString localName);
|
||||
Attr? setNamedItem(Attr attr);
|
||||
Attr? setNamedItemNS(Attr attr);
|
||||
Attr removeNamedItem(DOMString name);
|
||||
Attr removeNamedItemNS(DOMString? namespace, DOMString localName);
|
||||
};
|
||||
|
||||
readonly attribute DOMString name;
|
||||
interface Attr {
|
||||
readonly attribute DOMString? namespaceURI;
|
||||
readonly attribute DOMString? prefix;
|
||||
readonly attribute DOMString localName;
|
||||
readonly attribute DOMString name;
|
||||
attribute DOMString value;
|
||||
attribute DOMString textContent; // alias of .value
|
||||
|
||||
readonly attribute Element? ownerElement;
|
||||
|
||||
readonly attribute boolean specified; // useless; always returns true
|
||||
};
|
||||
|
@ -23,6 +23,12 @@ test(function() {
|
||||
"f<oo"
|
||||
],
|
||||
invalidNSQNameCombinations = [
|
||||
[undefined, ":foo"],
|
||||
[undefined, "foo:"],
|
||||
[undefined, "foo:foo"],
|
||||
[null, ":foo"],
|
||||
[null, "foo:"],
|
||||
[null, "foo:foo"],
|
||||
["", ":foo"],
|
||||
["", "foo:"],
|
||||
["", "foo:foo"],
|
||||
@ -54,9 +60,9 @@ test(function() {
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
|
||||
assert_true(element instanceof HTMLSpanElement, "Should be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
|
||||
assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement");
|
||||
}, "Lower-case HTML element without a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -67,9 +73,9 @@ test(function() {
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "HTML:SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
|
||||
assert_true(element instanceof HTMLSpanElement, "Should be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
|
||||
assert_true(element instanceof HTMLSpanElement, "Should be an HTMLSpanElement");
|
||||
}, "Lower-case HTML element with a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -79,9 +85,9 @@ test(function() {
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "span");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Lower-case non-HTML element without a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -91,9 +97,9 @@ test(function() {
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "html:span");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Lower-case non-HTML element with a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -104,10 +110,10 @@ test(function() {
|
||||
assert_equals(element.localName, "SPAN");
|
||||
assert_equals(element.tagName, "SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
|
||||
assert_true(element instanceof HTMLUnknownElement, "Should be a HTMLUnknownElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
|
||||
assert_true(element instanceof HTMLUnknownElement, "Should be an HTMLUnknownElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Upper-case HTML element without a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -118,9 +124,9 @@ test(function() {
|
||||
assert_equals(element.localName, "SPAN");
|
||||
assert_equals(element.tagName, "HTML:SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be a HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_true(element instanceof HTMLElement, "Should be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Upper-case HTML element with a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -130,9 +136,9 @@ test(function() {
|
||||
assert_equals(element.localName, "SPAN");
|
||||
assert_equals(element.tagName, "SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Upper-case non-HTML element without a prefix");
|
||||
|
||||
test(function() {
|
||||
@ -142,8 +148,44 @@ test(function() {
|
||||
assert_equals(element.localName, "SPAN");
|
||||
assert_equals(element.tagName, "html:SPAN");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be a Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be a HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be a HTMLSpanElement");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "Upper-case non-HTML element with a prefix");
|
||||
|
||||
test(function() {
|
||||
var element = document.createElementNS(null, "span");
|
||||
assert_equals(element.namespaceURI, null);
|
||||
assert_equals(element.prefix, null);
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "span");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "null namespace");
|
||||
|
||||
test(function() {
|
||||
var element = document.createElementNS(undefined, "span");
|
||||
assert_equals(element.namespaceURI, null);
|
||||
assert_equals(element.prefix, null);
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "span");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "undefined namespace");
|
||||
|
||||
test(function() {
|
||||
var element = document.createElementNS("", "span");
|
||||
assert_equals(element.namespaceURI, null);
|
||||
assert_equals(element.prefix, null);
|
||||
assert_equals(element.localName, "span");
|
||||
assert_equals(element.tagName, "span");
|
||||
assert_true(element instanceof Node, "Should be a Node");
|
||||
assert_true(element instanceof Element, "Should be an Element");
|
||||
assert_false(element instanceof HTMLElement, "Should not be an HTMLElement");
|
||||
assert_false(element instanceof HTMLSpanElement, "Should not be an HTMLSpanElement");
|
||||
}, "empty string namespace");
|
||||
</script>
|
||||
|
64
testing/web-platform/tests/dom/nodes/Node-nodeValue.html
Normal file
64
testing/web-platform/tests/dom/nodes/Node-nodeValue.html
Normal file
@ -0,0 +1,64 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Node.nodeValue</title>
|
||||
<link rel=help href="http://dom.spec.whatwg.org/#dom-node-nodevalue">
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
test(function() {
|
||||
var the_text = document.createTextNode("A span!");
|
||||
assert_equals(the_text.nodeValue, "A span!");
|
||||
assert_equals(the_text.data, "A span!");
|
||||
the_text.nodeValue = "test again";
|
||||
assert_equals(the_text.nodeValue, "test again");
|
||||
assert_equals(the_text.data, "test again");
|
||||
the_text.nodeValue = null;
|
||||
assert_equals(the_text.nodeValue, "");
|
||||
assert_equals(the_text.data, "");
|
||||
}, "Text.nodeValue");
|
||||
|
||||
test(function() {
|
||||
var the_comment = document.createComment("A comment!");
|
||||
assert_equals(the_comment.nodeValue, "A comment!");
|
||||
assert_equals(the_comment.data, "A comment!");
|
||||
the_comment.nodeValue = "test again";
|
||||
assert_equals(the_comment.nodeValue, "test again");
|
||||
assert_equals(the_comment.data, "test again");
|
||||
the_comment.nodeValue = null;
|
||||
assert_equals(the_comment.nodeValue, "");
|
||||
assert_equals(the_comment.data, "");
|
||||
}, "Comment.nodeValue");
|
||||
|
||||
test(function() {
|
||||
var the_pi = document.createProcessingInstruction("pi", "A PI!");
|
||||
assert_equals(the_pi.nodeValue, "A PI!");
|
||||
assert_equals(the_pi.data, "A PI!");
|
||||
the_pi.nodeValue = "test again";
|
||||
assert_equals(the_pi.nodeValue, "test again");
|
||||
assert_equals(the_pi.data, "test again");
|
||||
the_pi.nodeValue = null;
|
||||
assert_equals(the_pi.nodeValue, "");
|
||||
assert_equals(the_pi.data, "");
|
||||
}, "ProcessingInstruction.nodeValue");
|
||||
|
||||
test(function() {
|
||||
var the_link = document.createElement("a");
|
||||
assert_equals(the_link.nodeValue, null);
|
||||
the_link.nodeValue = "foo";
|
||||
assert_equals(the_link.nodeValue, null);
|
||||
}, "Element.nodeValue");
|
||||
|
||||
test(function() {
|
||||
assert_equals(document.nodeValue, null);
|
||||
document.nodeValue = "foo";
|
||||
assert_equals(document.nodeValue, null);
|
||||
}, "Document.nodeValue");
|
||||
|
||||
test(function() {
|
||||
var the_frag = document.createDocumentFragment();
|
||||
assert_equals(the_frag.nodeValue, null);
|
||||
the_frag.nodeValue = "foo";
|
||||
assert_equals(the_frag.nodeValue, null);
|
||||
}, "DocumentFragment.nodeValue");
|
||||
</script>
|
@ -0,0 +1,336 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name="timeout" content="long">
|
||||
<title>Cross-origin behavior of Window and Location</title>
|
||||
<link rel="author" title="Bobby Holley (:bholley)" href="bobbyholley@gmail.com">
|
||||
<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/#security-window">
|
||||
<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/#security-location">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id=log></div>
|
||||
<iframe id="B"></iframe>
|
||||
<iframe id="C"></iframe>
|
||||
<script>
|
||||
|
||||
/*
|
||||
* Setup boilerplate. This gives us a same-origin window "B" and a cross-origin
|
||||
* window "C".
|
||||
*/
|
||||
|
||||
setup({explicit_done: true});
|
||||
path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/frame.html';
|
||||
var B = document.getElementById('B').contentWindow;
|
||||
var C = document.getElementById('C').contentWindow;
|
||||
B.frameElement.uriToLoad = path;
|
||||
C.frameElement.uriToLoad = 'http://www1.web-platform.test:' + location.port + path;
|
||||
|
||||
function reloadSubframes(cb) {
|
||||
var iframes = document.getElementsByTagName('iframe');
|
||||
iframes.forEach = Array.prototype.forEach;
|
||||
var count = 0;
|
||||
function frameLoaded() {
|
||||
this.onload = null;
|
||||
if (++count == iframes.length)
|
||||
cb();
|
||||
}
|
||||
iframes.forEach(function(ifr) { ifr.onload = frameLoaded; ifr.setAttribute('src', ifr.uriToLoad); });
|
||||
}
|
||||
function isObject(x) { return Object(x) === x; }
|
||||
|
||||
/*
|
||||
* Note: we eschew assert_equals in a lot of these tests, since the harness ends
|
||||
* up throwing when it tries to format a message involving a cross-origin object.
|
||||
*/
|
||||
|
||||
var testList = [];
|
||||
function addTest(fun, desc) { testList.push([fun, desc]); }
|
||||
|
||||
|
||||
/*
|
||||
* Basic sanity testing.
|
||||
*/
|
||||
|
||||
addTest(function() {
|
||||
assert_equals(location.host, 'web-platform.test:8000', 'Need to run the top-level test from web-platform.test:8000');
|
||||
assert_equals(B.parent, window, "window.parent works same-origin");
|
||||
assert_equals(C.parent, window, "window.parent works cross-origin");
|
||||
assert_equals(B.location.pathname, path, "location.href works same-origin");
|
||||
assert_throws(null, function() { C.location.pathname; }, "location.pathname throws cross-origin");
|
||||
assert_equals(B.frames, 'override', "Overrides visible in the same-origin case");
|
||||
assert_equals(C.frames, C, "Overrides invisible in the cross-origin case");
|
||||
}, "Basic sanity-checking");
|
||||
|
||||
/*
|
||||
* Whitelist behavior.
|
||||
*
|
||||
* Also tests for [[GetOwnProperty]] and [[HasOwnProperty]] behavior.
|
||||
*/
|
||||
|
||||
var whitelistedWindowProps = ['location', 'postMessage', 'window', 'frames', 'self', 'top', 'parent',
|
||||
'opener', 'closed', 'close', 'blur', 'focus', 'length'];
|
||||
addTest(function() {
|
||||
for (var prop in window) {
|
||||
if (whitelistedWindowProps.indexOf(prop) != -1) {
|
||||
C[prop]; // Shouldn't throw.
|
||||
Object.getOwnPropertyDescriptor(C, prop); // Shouldn't throw.
|
||||
assert_true(Object.prototype.hasOwnProperty.call(C, prop), "hasOwnProperty for " + prop);
|
||||
} else {
|
||||
assert_throws(null, function() { C[prop]; }, "Should throw when accessing " + prop + " on Window");
|
||||
assert_throws(null, function() { Object.getOwnPropertyDescriptor(C, prop); },
|
||||
"Should throw when accessing property descriptor for " + prop + " on Window");
|
||||
assert_throws(null, function() { Object.prototype.hasOwnProperty.call(C, prop); },
|
||||
"Should throw when invoking hasOwnProperty for " + prop + " on Window");
|
||||
}
|
||||
if (prop != 'location')
|
||||
assert_throws(null, function() { C[prop] = undefined; }, "Should throw when writing to " + prop + " on Window");
|
||||
}
|
||||
for (var prop in location) {
|
||||
if (prop == 'replace') {
|
||||
C.location[prop]; // Shouldn't throw.
|
||||
Object.getOwnPropertyDescriptor(C.location, prop); // Shouldn't throw.
|
||||
assert_true(Object.prototype.hasOwnProperty.call(C.location, prop), "hasOwnProperty for " + prop);
|
||||
}
|
||||
else {
|
||||
assert_throws(null, function() { C[prop]; }, "Should throw when accessing " + prop + " on Location");
|
||||
assert_throws(null, function() { Object.getOwnPropertyDescriptor(C, prop); },
|
||||
"Should throw when accessing property descriptor for " + prop + " on Location");
|
||||
assert_throws(null, function() { Object.prototype.hasOwnProperty.call(C, prop); },
|
||||
"Should throw when invoking hasOwnProperty for " + prop + " on Location");
|
||||
}
|
||||
if (prop != 'href')
|
||||
assert_throws(null, function() { C[prop] = undefined; }, "Should throw when writing to " + prop + " on Location");
|
||||
}
|
||||
}, "Only whitelisted properties are accessible cross-origin");
|
||||
|
||||
/*
|
||||
* ES Internal Methods.
|
||||
*/
|
||||
|
||||
/*
|
||||
* [[GetPrototypeOf]]
|
||||
*/
|
||||
addTest(function() {
|
||||
assert_true(Object.getPrototypeOf(C) === null, "cross-origin Window proto is null");
|
||||
assert_true(Object.getPrototypeOf(C.location) === null, "cross-origin Location proto is null (__proto__)");
|
||||
var protoGetter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get;
|
||||
assert_true(protoGetter.call(C) === null, "cross-origin Window proto is null");
|
||||
assert_true(protoGetter.call(C.location) === null, "cross-origin Location proto is null (__proto__)");
|
||||
assert_throws(null, function() { C.__proto__; }, "__proto__ property not available cross-origin");
|
||||
assert_throws(null, function() { C.location.__proto__; }, "__proto__ property not available cross-origin");
|
||||
|
||||
}, "[[GetPrototypeOf]] should return null");
|
||||
|
||||
/*
|
||||
* [[SetPrototypeOf]]
|
||||
*/
|
||||
addTest(function() {
|
||||
assert_throws(null, function() { C.__proto__ = new Object(); }, "proto set on cross-origin Window");
|
||||
assert_throws(null, function() { C.location.__proto__ = new Object(); }, "proto set on cross-origin Location");
|
||||
var setters = [Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set];
|
||||
if (Object.setPrototypeOf)
|
||||
setters.push(function(p) { Object.setPrototypeOf(this, p); });
|
||||
setters.forEach(function(protoSetter) {
|
||||
assert_throws(null, function() { protoSetter.call(C, new Object()); }, "proto setter |call| on cross-origin Window");
|
||||
assert_throws(null, function() { protoSetter.call(C.location, new Object()); }, "proto setter |call| on cross-origin Location");
|
||||
});
|
||||
}, "[[SetPrototypeOf]] should throw");
|
||||
|
||||
/*
|
||||
* [[IsExtensible]]
|
||||
*/
|
||||
addTest(function() {
|
||||
assert_true(Object.isExtensible(C), "cross-origin Window should be extensible");
|
||||
assert_true(Object.isExtensible(C.location), "cross-origin Location should be extensible");
|
||||
}, "[[IsExtensible]] should return true for cross-origin objects");
|
||||
|
||||
/*
|
||||
* [[PreventExtensions]]
|
||||
*/
|
||||
addTest(function() {
|
||||
assert_throws(null, function() { Object.preventExtensions(C) },
|
||||
"preventExtensions on cross-origin Window should throw");
|
||||
assert_throws(null, function() { Object.preventExtensions(C.location) },
|
||||
"preventExtensions on cross-origin Location should throw");
|
||||
}, "[[PreventExtensions]] should throw for cross-origin objects");
|
||||
|
||||
/*
|
||||
* [[GetOwnProperty]]
|
||||
*/
|
||||
|
||||
addTest(function() {
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'close')), "C.close is |own|");
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'top')), "C.top is |own|");
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C.location, 'href')), "C.location.href is |own|");
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C.location, 'replace')), "C.location.replace is |own|");
|
||||
}, "[[GetOwnProperty]] - Properties on cross-origin objects should be reported |own|");
|
||||
|
||||
function checkPropertyDescriptor(desc, propName, expectWritable) {
|
||||
assert_true(isObject(desc), "property descriptor for " + propName + " should exist");
|
||||
assert_equals(desc.enumerable, false, "property descriptor for " + propName + " should be non-enumerable");
|
||||
assert_equals(desc.configurable, true, "property descriptor for " + propName + " should be configurable");
|
||||
if ('value' in desc)
|
||||
assert_equals(desc.writable, expectWritable, "property descriptor for " + propName + " should have writable: " + expectWritable);
|
||||
else
|
||||
assert_equals(typeof desc.set != 'undefined', expectWritable,
|
||||
"property descriptor for " + propName + " should " + (expectWritable ? "" : "not ") + "have setter");
|
||||
}
|
||||
|
||||
addTest(function() {
|
||||
whitelistedWindowProps.forEach(function(prop) {
|
||||
var desc = Object.getOwnPropertyDescriptor(C, prop);
|
||||
checkPropertyDescriptor(desc, prop, prop == 'location');
|
||||
});
|
||||
checkPropertyDescriptor(Object.getOwnPropertyDescriptor(C.location, 'replace'), 'replace', false);
|
||||
checkPropertyDescriptor(Object.getOwnPropertyDescriptor(C.location, 'href'), 'href', true);
|
||||
assert_equals(typeof Object.getOwnPropertyDescriptor(C.location, 'href').get, 'undefined', "Cross-origin location should have no href getter");
|
||||
}, "[[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly");
|
||||
|
||||
/*
|
||||
* [[Delete]]
|
||||
*/
|
||||
addTest(function() {
|
||||
assert_throws(null, function() { delete C.location; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.parent; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.length; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.document; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.foopy; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.location.href; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.location.replace; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.location.port; }, "Can't delete cross-origin property");
|
||||
assert_throws(null, function() { delete C.location.foopy; }, "Can't delete cross-origin property");
|
||||
}, "[[Delete]] Should throw on cross-origin objects");
|
||||
|
||||
/*
|
||||
* [[DefineOwnProperty]]
|
||||
*/
|
||||
function checkDefine(obj, prop) {
|
||||
var valueDesc = { configurable: true, enumerable: false, writable: false, value: 2 };
|
||||
var accessorDesc = { configurable: true, enumerable: false, get: function() {} };
|
||||
assert_throws(null, function() { Object.defineProperty(obj, prop, valueDesc); }, "Can't define cross-origin value property " + prop);
|
||||
assert_throws(null, function() { Object.defineProperty(obj, prop, accessorDesc); }, "Can't define cross-origin accessor property " + prop);
|
||||
}
|
||||
addTest(function() {
|
||||
checkDefine(C, 'length');
|
||||
checkDefine(C, 'parent');
|
||||
checkDefine(C, 'location');
|
||||
checkDefine(C, 'document');
|
||||
checkDefine(C, 'foopy');
|
||||
checkDefine(C.location, 'href');
|
||||
checkDefine(C.location, 'replace');
|
||||
checkDefine(C.location, 'port');
|
||||
checkDefine(C.location, 'foopy');
|
||||
}, "[[DefineOwnProperty]] Should throw for cross-origin objects");
|
||||
|
||||
/*
|
||||
* [[Enumerate]]
|
||||
*/
|
||||
|
||||
addTest(function() {
|
||||
for (var prop in C)
|
||||
assert_unreached("Shouldn't have been able to enumerate " + prop + " on cross-origin Window");
|
||||
for (var prop in C.location)
|
||||
assert_unreached("Shouldn't have been able to enumerate " + prop + " on cross-origin Location");
|
||||
}, "[[Enumerate]] should return an empty iterator");
|
||||
|
||||
/*
|
||||
* [[OwnPropertyKeys]]
|
||||
*/
|
||||
|
||||
addTest(function() {
|
||||
assert_array_equals(whitelistedWindowProps.sort(), Object.getOwnPropertyNames(C).sort(),
|
||||
"Object.getOwnPropertyNames() gives the right answer for cross-origin Window");
|
||||
assert_array_equals(Object.getOwnPropertyNames(C.location).sort(), ['href', 'replace'],
|
||||
"Object.getOwnPropertyNames() gives the right answer for cross-origin Location");
|
||||
}, "[[OwnPropertyKeys]] should return all properties from cross-origin objects");
|
||||
|
||||
addTest(function() {
|
||||
assert_true(B.eval('parent.C') === C, "A and B observe the same identity for C's Window");
|
||||
assert_true(B.eval('parent.C.location') === C.location, "A and B observe the same identity for C's Location");
|
||||
}, "A and B jointly observe the same identity for cross-origin Window and Location");
|
||||
|
||||
function checkFunction(f, proto) {
|
||||
var name = f.name || '<missing name>';
|
||||
assert_equals(typeof f, 'function', name + " is a function");
|
||||
assert_equals(Object.getPrototypeOf(f), proto, f.name + " has the right prototype");
|
||||
}
|
||||
|
||||
addTest(function() {
|
||||
checkFunction(C.close, Function.prototype);
|
||||
checkFunction(C.location.replace, Function.prototype);
|
||||
}, "Cross-origin functions get local Function.prototype");
|
||||
|
||||
addTest(function() {
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'parent')),
|
||||
"Need to be able to use Object.getOwnPropertyDescriptor do this test");
|
||||
checkFunction(Object.getOwnPropertyDescriptor(C, 'parent').get, Function.prototype);
|
||||
checkFunction(Object.getOwnPropertyDescriptor(C.location, 'href').set, Function.prototype);
|
||||
}, "Cross-origin Window accessors get local Function.prototype");
|
||||
|
||||
addTest(function() {
|
||||
checkFunction(close, Function.prototype);
|
||||
assert_true(close != B.close, 'same-origin Window functions get their own object');
|
||||
assert_true(close != C.close, 'cross-origin Window functions get their own object');
|
||||
var close_B = B.eval('parent.C.close');
|
||||
assert_true(close != close_B, 'close_B is unique when viewed by the parent');
|
||||
assert_true(close_B != C.close, 'different Window functions per-incumbent script settings object');
|
||||
checkFunction(close_B, B.Function.prototype);
|
||||
|
||||
checkFunction(location.replace, Function.prototype);
|
||||
assert_true(location.replace != C.location.replace, "cross-origin Location functions get their own object");
|
||||
var replace_B = B.eval('parent.C.location.replace');
|
||||
assert_true(replace_B != C.location.replace, 'different Location functions per-incumbent script settings object');
|
||||
checkFunction(replace_B, B.Function.prototype);
|
||||
}, "Same-origin observers get different functions for cross-origin objects");
|
||||
|
||||
addTest(function() {
|
||||
assert_true(isObject(Object.getOwnPropertyDescriptor(C, 'parent')),
|
||||
"Need to be able to use Object.getOwnPropertyDescriptor do this test");
|
||||
var get_self_parent = Object.getOwnPropertyDescriptor(window, 'parent').get;
|
||||
var get_parent_A = Object.getOwnPropertyDescriptor(C, 'parent').get;
|
||||
var get_parent_B = B.eval('Object.getOwnPropertyDescriptor(parent.C, "parent").get');
|
||||
assert_true(get_self_parent != get_parent_A, 'different Window accessors per-incumbent script settings object');
|
||||
assert_true(get_parent_A != get_parent_B, 'different Window accessors per-incumbent script settings object');
|
||||
checkFunction(get_self_parent, Function.prototype);
|
||||
checkFunction(get_parent_A, Function.prototype);
|
||||
checkFunction(get_parent_B, B.Function.prototype);
|
||||
}, "Same-origin obsevers get different accessors for cross-origin Window");
|
||||
|
||||
addTest(function() {
|
||||
var set_self_href = Object.getOwnPropertyDescriptor(window.location, 'href').set;
|
||||
var set_href_A = Object.getOwnPropertyDescriptor(C.location, 'href').set;
|
||||
var set_href_B = B.eval('Object.getOwnPropertyDescriptor(parent.C.location, "href").set');
|
||||
assert_true(set_self_href != set_href_A, 'different Location accessors per-incumbent script settings object');
|
||||
assert_true(set_href_A != set_href_B, 'different Location accessors per-incumbent script settings object');
|
||||
checkFunction(set_self_href, Function.prototype);
|
||||
checkFunction(set_href_A, Function.prototype);
|
||||
checkFunction(set_href_B, B.Function.prototype);
|
||||
}, "Same-origin observers get different accessors for cross-origin Location");
|
||||
|
||||
function doDocumentDomainTest(cb) {
|
||||
window.addEventListener('message', function onmessage(evt) {
|
||||
window.removeEventListener('message', onmessage);
|
||||
test(function() {
|
||||
var results = evt.data;
|
||||
assert_true(results.length > 0, 'Need results');
|
||||
results.forEach(function(r) { assert_true(r.pass, r.message); });
|
||||
}, "Cross-origin object identity preserved across document.domain");
|
||||
win.close();
|
||||
cb();
|
||||
});
|
||||
var win = window.open('win-documentdomain.html');
|
||||
}
|
||||
|
||||
// We do a fresh load of the subframes for each test to minimize side-effects.
|
||||
// It would be nice to reload ourselves as well, but we can't do that without
|
||||
// disrupting the test harness.
|
||||
function runNextTest() {
|
||||
var entry = testList.shift();
|
||||
test(entry[0], entry[1]);
|
||||
if (testList.length != 0)
|
||||
reloadSubframes(runNextTest);
|
||||
else
|
||||
doDocumentDomainTest(done); // Asynchronous.
|
||||
}
|
||||
reloadSubframes(runNextTest);
|
||||
|
||||
</script>
|
@ -0,0 +1,35 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script>
|
||||
// Override the |frames| property to test that such overrides are
|
||||
// properly ignored cross-origin.
|
||||
window.frames = "override";
|
||||
|
||||
// If we get a postMessage, we grab references to everything and set
|
||||
// document.domain to trim off our topmost subdomain.
|
||||
window.onmessage = function(evt) {
|
||||
window.windowReferences = [];
|
||||
window.locationReferences = [];
|
||||
for (var i = 0; i < parent.length; ++i) {
|
||||
windowReferences.push(parent[i]);
|
||||
locationReferences.push(parent[i].location);
|
||||
}
|
||||
document.domain = document.domain.substring(document.domain.indexOf('.') + 1);
|
||||
evt.source.postMessage('', '*');
|
||||
}
|
||||
|
||||
function checkWindowReferences() {
|
||||
for (var i = 0; i < parent.length; ++i) {
|
||||
if (windowReferences[i] != parent[i])
|
||||
throw new Error("Window references don't match for " + i + " after document.domain");
|
||||
if (locationReferences[i] != parent[i].location)
|
||||
throw new Error("Location references don't match for " + i + " after document.domain");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script>
|
||||
function loadFrames() {
|
||||
window.A = document.getElementById('A').contentWindow;
|
||||
window.B = document.getElementById('B').contentWindow;
|
||||
window.C = document.getElementById('C').contentWindow;
|
||||
window.D = document.getElementById('D').contentWindow;
|
||||
|
||||
var path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/frame.html';
|
||||
A.location = 'frame.html';
|
||||
B.location = frameURI = 'http://www2.web-platform.test:' + location.port + path;
|
||||
C.location = frameURI = 'http://www2.web-platform.test:' + location.port + path;
|
||||
D.location = frameURI = 'http://www1.web-platform.test:' + location.port + path;
|
||||
|
||||
var loadCount = 0;
|
||||
function frameLoaded() {
|
||||
if (++loadCount == 4)
|
||||
go();
|
||||
}
|
||||
Array.forEach(document.getElementsByTagName('iframe'), function(ifr) { ifr.onload = frameLoaded; });
|
||||
}
|
||||
|
||||
|
||||
var results = [];
|
||||
function assert(cond, msg) {
|
||||
results.push({pass: !!cond, message: msg});
|
||||
}
|
||||
|
||||
function go() {
|
||||
window.onmessage = function() {
|
||||
assert(B.checkWindowReferences(), "B's Window references are still self-consistent after document.domain");
|
||||
for (var i = 0; i < window.length; ++i) {
|
||||
assert(window[i] === B.windowReferences[i],
|
||||
"Window reference " + i + " consistent between globals after document.domain");
|
||||
assert(window[i].location === B.locationReferences[i],
|
||||
"Location reference " + i + " consistent between globals after document.domain");
|
||||
}
|
||||
opener.postMessage(results, '*');
|
||||
};
|
||||
A.document.domain = A.document.domain;
|
||||
document.domain = document.domain;
|
||||
B.postMessage('', '*');
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="loadFrames()">
|
||||
<iframe id="A"></iframe>
|
||||
<iframe id="B"></iframe>
|
||||
<iframe id="C"></iframe>
|
||||
<iframe id="D"></iframe>
|
||||
</body>
|
||||
</html>
|
@ -23,21 +23,14 @@
|
||||
test(function() {
|
||||
assert_regexp_match(lastMod, pattern,
|
||||
"Format should match the pattern \"NN/NN/NNNN NN:NN:NN\".");
|
||||
assert_equals(lastMod.substring(0,2), month, "MM part should match month.");
|
||||
assert_equals(lastMod.substring(3,5), day, "DD part should match day.");
|
||||
assert_equals(lastMod.substring(6,10), year, "YYYY part should match year.");
|
||||
assert_equals(lastMod.substring(11,13), hours, "hh part should match hours.");
|
||||
assert_equals(lastMod.substring(14,16), minutes, "mm part should match minutes.");
|
||||
assert_approx_equals(parseInt(lastMod.substring(17,19), 10),
|
||||
parseInt(seconds), 1, "ss part should match seconds.");
|
||||
assert_approx_equals(Date.parse(document.lastModified), currentDate, 10);
|
||||
}, "Date returned by lastModified is in the form \"MM/DD/YYYY hh:mm:ss\".");
|
||||
var t = async_test('Date returned by lastModified is current.');
|
||||
var old = Date.parse(document.lastModified);
|
||||
setTimeout(function() {
|
||||
t.step(function() {
|
||||
assert_equals((new Date(Date.parse(document.lastModified))).toString(),
|
||||
(new Date(old + 1000)).toString());
|
||||
assert_approx_equals(Date.parse(document.lastModified), old + 2000, 300);
|
||||
t.done();
|
||||
});
|
||||
}, 1000);
|
||||
}, 2000);
|
||||
</script>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@ window.onload = function() {
|
||||
return;
|
||||
}
|
||||
if( !location.hostname.match(/[^\.]\.[^\.]+\.[^\.]/) ) {
|
||||
document.getElementsByTagName('p')[0].innerHTML = 'This test should be loaded from a subdomain that allows document.domain to be set to a parent domain (try using a server name that contains at least two or three dots, for example www.w3c-test.org).';
|
||||
document.getElementsByTagName('p')[0].innerHTML = 'This test should be loaded from a subdomain that allows document.domain to be set to a parent domain (try using a server name that contains at least two or three dots, for example www.example.org).';
|
||||
return;
|
||||
}
|
||||
var realhost = location.hostname, newdomain = location.hostname.replace(/^[^.]+\./,'');
|
||||
|
@ -1,11 +0,0 @@
|
||||
var httpHostMain = 'w3c-test.org'; //name of the server that this page must accessed over port 80
|
||||
var httpHostAlias = 'www.w3c-test.org'; //another hostname (must be a subdomain so document.domain can be set to a higher domain) that accesses the same content, over HTTP
|
||||
var httpsHostAlias = httpHostAlias; //another hostname (can be same as httpHostAlias) that accesses the same content, over HTTPS port
|
||||
var httpPortAlias = 81; //another port that accesses the same content on the current hostname, over HTTP
|
||||
var httpsPortAlias = 8443; //another port that accesses the same content on the httpsHostAlias, over HTTPS
|
||||
|
||||
function crossOriginUrl(subdomain, relative_url) {
|
||||
var a = document.createElement("a");
|
||||
a.href = relative_url;
|
||||
return a.href.replace(location.href.replace("://", "://" + subdomain + "."));
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
var httpHostMain = '{{domains[]}}'; //name of the server that this page must accessed over port 80
|
||||
var httpHostAlias = '{{domains[www]}}'; //another hostname (must be a subdomain so document.domain can be set to a higher domain) that accesses the same content, over HTTP
|
||||
var httpsHostAlias = httpHostAlias; //another hostname (can be same as httpHostAlias) that accesses the same content, over HTTPS port
|
||||
var httpPortAlias = {{ports[http][0]}}; //another port that accesses the same content on the current hostname, over HTTP
|
||||
//XXX HTTPS
|
||||
//var httpsPortAlias = ports[https][0]; //another port that accesses the same content on the httpsHostAlias, over HTTPS
|
||||
var httpsPortAlias = 8443;
|
||||
|
||||
function crossOriginUrl(subdomain, relative_url) {
|
||||
var a = document.createElement("a");
|
||||
a.href = relative_url;
|
||||
return a.href.replace(location.href.replace("://", "://" + subdomain + "."));
|
||||
}
|
@ -7,7 +7,7 @@ div { float: left; height: 100px; width: 100px; margin-right: 10px; background:
|
||||
iframe { height: 100px; width: 100px; border: none; }
|
||||
.note { float: right; color: silver; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
function addNote(el,str) {
|
||||
var par = document.createElement(el);
|
@ -6,7 +6,7 @@
|
||||
html, body { margin: 0; padding: 0; }
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
document.getElementsByTagName('div')[0].ondragstart = function (e) {
|
||||
|
@ -6,7 +6,7 @@
|
||||
html, body { margin: 0; padding: 0; }
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
document.getElementsByTagName('div')[0].ondragstart = function (e) {
|
||||
|
@ -7,7 +7,7 @@ div { float: left; height: 100px; width: 100px; margin-right: 10px; background:
|
||||
iframe { height: 100px; width: 100px; border: none; }
|
||||
.note { float: right; color: silver; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
function addNote(el,str) {
|
||||
var par = document.createElement(el);
|
@ -8,7 +8,7 @@ blockquote + blockquote { background: blue; }
|
||||
blockquote + blockquote + blockquote { background: fuchsia; }
|
||||
blockquote + div { clear: left; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript" src="/resources/testharness.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup(function () {},{explicit_done:true});
|
||||
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain+':'+httpPortAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain+':'+httpPortAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'https://'+httpsHostAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'https://'+httpsHostAlias+':'+httpsPortAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'https://'+httpsHostAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'https://'+httpsHostAlias+':'+httpsPortAlias;
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -2,7 +2,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Origin for file: to http:</title>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -2,7 +2,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Origin for data: with no inherited origin to http:</title>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<style type="text/css">
|
||||
html, body, iframe { display: block; width: 100%; height: 100%; border: none; margin: 0; padding: 0; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
@ -2,7 +2,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Origin for javascript: with no inherited origin to http:</title>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
div { height: 100px; width: 100px; background: orange; }
|
||||
iframe { width: 500px; height: 120px; border: none; }
|
||||
</style>
|
||||
<script type="text/javascript" src="../resources/crossorigin.js"></script>
|
||||
<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
|
||||
<script type="text/javascript">
|
||||
window.onload = function () {
|
||||
var origin = 'http://'+httpHostMain;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user