mirror of
https://github.com/servo/servo.git
synced 2025-06-24 17:14:33 +01:00
Update web-platform-tests to revision 3b3585e368841b77caea8576fa56cef91c3fbdf0
This commit is contained in:
parent
d00639c55f
commit
3b4f0ec0bb
541 changed files with 14609 additions and 3288 deletions
File diff suppressed because it is too large
Load diff
|
@ -1,5 +0,0 @@
|
||||||
[event-error.html]
|
|
||||||
type: testharness
|
|
||||||
[XMLHttpRequest Test: event - error]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -11,3 +11,4 @@
|
||||||
|
|
||||||
[Values iterator should return non-deleted values]
|
[Values iterator should return non-deleted values]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[setrequestheader-case-insensitive.htm]
|
||||||
|
type: testharness
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that differ in case]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
[setrequestheader-header-allowed.htm]
|
||||||
|
type: testharness
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Authorization)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Pragma)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (User-Agent)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Transfer-Encoding)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Type)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Overwrite)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (If)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (Status-URI)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[XMLHttpRequest: setRequestHeader() - headers that are allowed (X-Pink-Unicorn)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -384,3 +384,141 @@
|
||||||
[CDATASection interface: existence and properties of interface prototype object's "constructor" property]
|
[CDATASection interface: existence and properties of interface prototype object's "constructor" property]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: operation getRootNode(GetRootNodeOptions)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: new Document() must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on new Document() with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: xmlDoc must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on xmlDoc with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.doctype must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on document.doctype with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.createDocumentFragment() must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on document.createDocumentFragment() with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: element must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on element with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "parentNode" with the proper type (18)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "parentElement" with the proper type (19)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "hasChildNodes" with the proper type (20)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "childNodes" with the proper type (21)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "firstChild" with the proper type (22)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lastChild" with the proper type (23)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "previousSibling" with the proper type (24)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "nextSibling" with the proper type (25)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "normalize" with the proper type (28)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "cloneNode" with the proper type (29)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isEqualNode" with the proper type (30)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isSameNode" with the proper type (31)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type (32)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type (33)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type (34)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type (35)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type (36)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type (37)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "compareDocumentPosition" with the proper type (38)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "contains" with the proper type (39)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lookupPrefix" with the proper type (40)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lookupNamespaceURI" with the proper type (41)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isDefaultNamespace" with the proper type (42)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "insertBefore" with the proper type (43)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "appendChild" with the proper type (44)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "replaceChild" with the proper type (45)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "removeChild" with the proper type (46)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.createTextNode("abc") must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on document.createTextNode("abc") with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: document.createComment("abc") must inherit property "getRootNode" with the proper type (17)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Node interface: calling getRootNode(GetRootNodeOptions) on document.createComment("abc") with too few arguments must throw TypeError]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
14
tests/wpt/metadata/dom/nodes/rootNode.html.ini
Normal file
14
tests/wpt/metadata/dom/nodes/rootNode.html.ini
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[rootNode.html]
|
||||||
|
type: testharness
|
||||||
|
[getRootNode() must return the context object when it does not have any parent]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[getRootNode() must return the parent node of the context object when the context object has a single ancestor not in a document]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[getRootNode() must return the document when a node is in document]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[getRootNode() must return a document fragment when a node is in the fragment]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -3,3 +3,12 @@
|
||||||
[Request through fetch should have 'accept' header with value '*/*']
|
[Request through fetch should have 'accept' header with value '*/*']
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have 'accept' header with value 'custom/*']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have a 'accept-language' header]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have 'accept-language' header with value 'bzh']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -3,3 +3,12 @@
|
||||||
[Request through fetch should have 'accept' header with value '*/*']
|
[Request through fetch should have 'accept' header with value '*/*']
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have 'accept' header with value 'custom/*']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have a 'accept-language' header]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Request through fetch should have 'accept-language' header with value 'bzh']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -15,3 +15,33 @@
|
||||||
[Referrer policy: unsafe-url]
|
[Referrer policy: unsafe-url]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: no-referrer and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: no-referrer and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: "" and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: "" and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin-when-cross-origin and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin-when-cross-origin and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: unsafe-url and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: unsafe-url and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -15,3 +15,33 @@
|
||||||
[Referrer policy: unsafe-url]
|
[Referrer policy: unsafe-url]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: no-referrer and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: no-referrer and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: "" and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: "" and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin-when-cross-origin and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: origin-when-cross-origin and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: unsafe-url and referrer: default]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[Referrer policy: unsafe-url and referrer: 'myreferrer']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
[origin-of-data-document.html]
|
||||||
|
type: testharness
|
||||||
|
expected: TIMEOUT
|
||||||
|
[The origin of a 'data:' document in a frame is opaque.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -10,3 +10,6 @@
|
||||||
[Script document-write]
|
[Script document-write]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[Script script-exec]
|
||||||
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[document.forms.html]
|
||||||
|
type: testharness
|
||||||
|
[document.forms iteration]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -17880,9 +17880,6 @@
|
||||||
[area.ping: IDL set to "\\0" followed by getAttribute()]
|
[area.ping: IDL set to "\\0" followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[area.ping: IDL set to "\\0" followed by IDL get]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[area.ping: IDL set to null followed by getAttribute()]
|
[area.ping: IDL set to null followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -20925,3 +20922,9 @@
|
||||||
[img.crossOrigin: IDL set to null followed by IDL get]
|
[img.crossOrigin: IDL set to null followed by IDL get]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[area.ping: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[area.ping: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -717,9 +717,6 @@
|
||||||
[a.ping: IDL set to "\\0" followed by getAttribute()]
|
[a.ping: IDL set to "\\0" followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[a.ping: IDL set to "\\0" followed by IDL get]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[a.ping: IDL set to null followed by getAttribute()]
|
[a.ping: IDL set to null followed by getAttribute()]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -24408,3 +24405,9 @@
|
||||||
[wbr.tabIndex: setAttribute() to "\\r7" followed by IDL get]
|
[wbr.tabIndex: setAttribute() to "\\r7" followed by IDL get]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[a.ping: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[a.ping: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[style_scoped.html]
|
|
||||||
type: testharness
|
|
||||||
[The scoped attribute is present, the style information must be applied only to its parent element]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -27,3 +27,12 @@
|
||||||
[HTMLTrackElement.src resolvable value in content attribute]
|
[HTMLTrackElement.src resolvable value in content attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTMLTrackElement.src assigning empty string to IDL attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTMLTrackElement.src foo\\u0000bar in content attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTMLTrackElement.src assigning foo\\u0000bar to IDL attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[task-source.html]
|
|
||||||
type: testharness
|
|
||||||
[MediaController events task source]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -33,3 +33,9 @@
|
||||||
[simple: "100,100,120,100,100,120" (polygon)]
|
[simple: "100,100,120,100,100,120" (polygon)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[simple: "2,2,10,10" (rect)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[simple: "2,2,10,10" (rectangle)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[historical.html]
|
||||||
|
type: testharness
|
||||||
|
expected: ERROR
|
|
@ -367,3 +367,33 @@
|
||||||
[[INPUT in FILE status\] suffering from being missing (in a form)]
|
[[INPUT in FILE status\] suffering from being missing (in a form)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] no constraint]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] no constraint (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an overflow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an overflow (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an underflow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an underflow (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from being missing]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from being missing (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -367,3 +367,33 @@
|
||||||
[[INPUT in FILE status\] suffering from being missing (in a form)]
|
[[INPUT in FILE status\] suffering from being missing (in a form)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] no constraint]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] no constraint (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an overflow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an overflow (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an underflow]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from an underflow (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from being missing]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] suffering from being missing (in a form)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -192,3 +192,36 @@
|
||||||
[[INPUT in NUMBER status\] The value is greater than max(scientific notation)]
|
[[INPUT in NUMBER status\] The value is greater than max(scientific notation)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The max attribute is not set]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Value is empty string]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The max attribute is an invalid local date time string]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The max attribute is greater than the value attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is an invalid local date time string(hour is greater than 23)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value if an invalid local date time string(year is two digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max(with millisecond in 1 digit)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max(with millisecond in 2 digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max(with millisecond in 3 digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max(Year is 10000 should be valid)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -183,3 +183,39 @@
|
||||||
[[INPUT in NUMBER status\] The value is less than min(scientific notation)]
|
[[INPUT in NUMBER status\] The value is less than min(scientific notation)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The min attribute is not set]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Value is empty string]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The min attribute is an invalid local date time string]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The min attribute is less than the value attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is an invalid local date time string(hour is greater than 23)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is an invalid local date time string(year is two digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is less than min]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is less than min(with millisecond in 1 digit)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is less than min(with millisecond in 2 digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is less than min(with millisecond in 3 digits)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is less than min(Year is 10000 should be valid)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value is greater than max]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -142,3 +142,15 @@
|
||||||
[[INPUT in FILE status\] validity.valid must be false if validity.valueMissing is true]
|
[[INPUT in FILE status\] validity.valid must be false if validity.valueMissing is true]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] validity.valid must be false if validity.rangeOverflow is true]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] validity.valid must be false if validity.rangeUnderflow is true]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] validity.valid must be false if validity.stepMismatch is true]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] validity.valid must be false if validity.valueMissing is true]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -271,3 +271,36 @@
|
||||||
[[INPUT in NUMBER status\] Value is a string that cannot be converted to a number]
|
[[INPUT in NUMBER status\] Value is a string that cannot be converted to a number]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The required attribute is not set]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Valid local date and time string(2000-12-10T12:00:00)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Valid local date and time string(2000-12-10 12:00)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Valid local date and time string(1979-10-14T12:00:00.001)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value attribute is a number(1234567)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value attribute is a Date object]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Invalid local date and time string(1979-10-99 99:99)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Valid local date and time string(1979-10-14 12:00:00)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Invalid local date and time string(2001-12-21 12:00)-two white space]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] the value attribute is a string(abc)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The value attribute is empty string]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -250,3 +250,15 @@
|
||||||
[[BUTTON in SUBMIT status\] The willValidate attribute must be true if an element is mutable]
|
[[BUTTON in SUBMIT status\] The willValidate attribute must be true if an element is mutable]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Must be barred from the constraint validation if it is disabled]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The willValidate attribute must be true if an element is mutable]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] Must be barred from the constraint validation if it is readonly]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[[INPUT in DATETIME-LOCAL status\] The willValidate attribute must be false if it has a datalist ancestor]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
[historical.html]
|
||||||
|
type: testharness
|
||||||
|
[<input type=datetime> should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<input name=isindex> should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -66,3 +66,6 @@
|
||||||
[text field selection for the input password]
|
[text field selection for the input password]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[text field selection for the input datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,3 @@
|
||||||
[canceled activation steps on unchecked checkbox (indeterminate=true in onclick)]
|
[canceled activation steps on unchecked checkbox (indeterminate=true in onclick)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[click on mutable checkbox fires a click event, then an input event, then a change event]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
[cloning-steps.html]
|
||||||
|
type: testharness
|
||||||
|
[input element's value should be cloned]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input element's dirty value flag should be cloned, so setAttribute doesn't affect the cloned input's value]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input element's checkedness should be cloned]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input element's dirty checkedness should be cloned, so setAttribute doesn't affect the cloned input's checkedness]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
[datetime-2.html]
|
|
||||||
type: testharness
|
|
||||||
[datetime input value set to 2014-01-01 11:11Z without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11-04:00 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11-0400 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000-04:00 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000Z without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000+ without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000+24 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:11:00.000+2360 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-0 11:11:00.000+0400 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[datetime input value set to 2014-01-01 11:1:00.000+0400 without min/max]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Value >= min attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Value < min attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Value <= max attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Value > max attribute]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -840,3 +840,102 @@
|
||||||
[change state from button to color]
|
[change state from button to color]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from hidden to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from text to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from search to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from tel to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from url to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from email to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from password to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to text]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to search]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to tel]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to url]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to email]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to password]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to date]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to month]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to week]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to time]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to number]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to range]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from datetime-local to color]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from date to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from month to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from week to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from time to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from number to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from range to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from color to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from checkbox to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from radio to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from submit to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from image to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from reset to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[change state from button to datetime-local]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -90,3 +90,9 @@
|
||||||
[value IDL attribute of input type button with value attribute]
|
[value IDL attribute of input type button with value attribute]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[value IDL attribute of input type datetime-local without value attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[value IDL attribute of input type datetime-local with value attribute]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
[cloning-steps.html]
|
||||||
|
type: testharness
|
||||||
|
[textarea element's value should be cloned]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[textarea element's dirty value flag should be cloned, so setAttribute doesn't affect the cloned textarea's value]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
[historical.html]
|
||||||
|
type: testharness
|
||||||
|
[onbeforescriptexecute content attribute should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[onafterscriptexecute content attribute should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[beforescriptexecute event should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[afterscriptexecute event should not be supported]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[load-event.html]
|
||||||
|
type: testharness
|
||||||
|
[load events should not be fired for inline scripts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -15,15 +15,6 @@
|
||||||
[innerHTML <listing> non-context starting with U+000A]
|
[innerHTML <listing> non-context starting with U+000A]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[innerHTML <pre> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML <textarea> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML <listing> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <pre> context starting with U+000A]
|
[outerHTML <pre> context starting with U+000A]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -33,15 +24,6 @@
|
||||||
[outerHTML <listing> context starting with U+000A]
|
[outerHTML <listing> context starting with U+000A]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[outerHTML <pre> context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <textarea> context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <listing> context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <pre> non-context starting with U+000A]
|
[outerHTML <pre> non-context starting with U+000A]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -51,15 +33,6 @@
|
||||||
[outerHTML <listing> non-context starting with U+000A]
|
[outerHTML <listing> non-context starting with U+000A]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[outerHTML <pre> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <textarea> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[outerHTML <listing> non-context not starting with U+000A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[innerHTML Void context node area]
|
[innerHTML Void context node area]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
2d13178d2930da8668e77de078eeb65438eb502e
|
d00639c55f9a342765483d347a3c29d4647f7411
|
|
@ -0,0 +1,11 @@
|
||||||
|
[window-only.worker]
|
||||||
|
type: testharness
|
||||||
|
[NavigatorID properties exposed only for Window: appCodeName]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[NavigatorID properties exposed only for Window: product]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[NavigatorID properties exposed only for Window: taintEnabled]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -24,3 +24,60 @@
|
||||||
[The TextMetrics interface object should be exposed.]
|
[The TextMetrics interface object should be exposed.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[The CanvasPath interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The Path2D interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The PromiseRejectionEvent interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The BroadcastChannel interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The ReadableStream interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The WritableStream interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The ByteLengthQueuingStrategy interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The CountQueuingStrategy interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBRequest interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBOpenDBRequest interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBVersionChangeEvent interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBFactory interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBDatabase interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBObjectStore interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBIndex interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBKeyRange interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBCursor interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBCursorWithValue interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The IDBTransaction interface object should be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -15,3 +15,30 @@
|
||||||
[The MouseEvent interface object should not be exposed.]
|
[The MouseEvent interface object should not be exposed.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[The CanvasRenderingContext2D interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The CanvasGradient interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The CanvasPattern interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The PopStateEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The HashChangeEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The PageTransitionEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The UIEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The FocusEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[The KeyboardEvent interface object should not be exposed.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[003.html]
|
[003.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: ERROR
|
||||||
[available interface objects in shared worker]
|
[available interface objects in shared worker]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[004.html]
|
[004.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: ERROR
|
||||||
[unavailable interface objects in shared worker]
|
[unavailable interface objects in shared worker]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -764,32 +764,28 @@
|
||||||
"url": "/_mozilla/css/blur_a.html"
|
"url": "/_mozilla/css/blur_a.html"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"css/border_black_groove.html": [
|
"css/border_black_ridge_a.html": [
|
||||||
{
|
{
|
||||||
"path": "css/border_black_groove.html",
|
"path": "css/border_black_ridge_a.html",
|
||||||
"references": [
|
|
||||||
[
|
|
||||||
"/_mozilla/css/border_black_solid.html",
|
|
||||||
"!="
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"url": "/_mozilla/css/border_black_groove.html"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"css/border_black_ridge.html": [
|
|
||||||
{
|
|
||||||
"path": "css/border_black_ridge.html",
|
|
||||||
"references": [
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/border_black_groove.html",
|
"/_mozilla/css/border_black_groove.html",
|
||||||
"!="
|
"!="
|
||||||
],
|
]
|
||||||
|
],
|
||||||
|
"url": "/_mozilla/css/border_black_ridge_a.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"css/border_black_ridge_b.html": [
|
||||||
|
{
|
||||||
|
"path": "css/border_black_ridge_b.html",
|
||||||
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/border_black_solid.html",
|
"/_mozilla/css/border_black_solid.html",
|
||||||
"!="
|
"!="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"url": "/_mozilla/css/border_black_ridge.html"
|
"url": "/_mozilla/css/border_black_ridge_b.html"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"css/border_code_tag.html": [
|
"css/border_code_tag.html": [
|
||||||
|
@ -2177,7 +2173,7 @@
|
||||||
"path": "css/image_rendering_auto_a.html",
|
"path": "css/image_rendering_auto_a.html",
|
||||||
"references": [
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/image_rendering_pixelated_a.html",
|
"/_mozilla/css/image_rendering_pixelated_ref.html",
|
||||||
"!="
|
"!="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -14394,20 +14390,28 @@
|
||||||
"url": "/_mozilla/css/border_black_groove.html"
|
"url": "/_mozilla/css/border_black_groove.html"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"css/border_black_ridge.html": [
|
"css/border_black_ridge_a.html": [
|
||||||
{
|
{
|
||||||
"path": "css/border_black_ridge.html",
|
"path": "css/border_black_ridge_a.html",
|
||||||
"references": [
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/border_black_groove.html",
|
"/_mozilla/css/border_black_groove.html",
|
||||||
"!="
|
"!="
|
||||||
],
|
]
|
||||||
|
],
|
||||||
|
"url": "/_mozilla/css/border_black_ridge_a.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"css/border_black_ridge_b.html": [
|
||||||
|
{
|
||||||
|
"path": "css/border_black_ridge_b.html",
|
||||||
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/border_black_solid.html",
|
"/_mozilla/css/border_black_solid.html",
|
||||||
"!="
|
"!="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"url": "/_mozilla/css/border_black_ridge.html"
|
"url": "/_mozilla/css/border_black_ridge_b.html"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"css/border_code_tag.html": [
|
"css/border_code_tag.html": [
|
||||||
|
@ -15807,7 +15811,7 @@
|
||||||
"path": "css/image_rendering_auto_a.html",
|
"path": "css/image_rendering_auto_a.html",
|
||||||
"references": [
|
"references": [
|
||||||
[
|
[
|
||||||
"/_mozilla/css/image_rendering_pixelated_a.html",
|
"/_mozilla/css/image_rendering_pixelated_ref.html",
|
||||||
"!="
|
"!="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[tex_image_2d_canvas_no_context.html]
|
|
||||||
type: reftest
|
|
||||||
disabled:
|
|
||||||
if os == "linux": https://github.com/servo/servo/issues/7931
|
|
|
@ -2,7 +2,6 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel=mismatch href=border_black_groove.html>
|
<link rel=mismatch href=border_black_groove.html>
|
||||||
<link rel=mismatch href=border_black_solid.html>
|
|
||||||
<style>
|
<style>
|
||||||
.box {
|
.box {
|
||||||
width: 100px;
|
width: 100px;
|
22
tests/wpt/mozilla/tests/css/border_black_ridge_b.html
Normal file
22
tests/wpt/mozilla/tests/css/border_black_ridge_b.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel=mismatch href=border_black_solid.html>
|
||||||
|
<style>
|
||||||
|
.box {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
margin: 10px;
|
||||||
|
border-width: 20px;
|
||||||
|
border-color: black;
|
||||||
|
border-style: ridge;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Test mixed border styles. Expect a square with borders with
|
||||||
|
2 colors (lighter/dark), it fails if it has a solid dark border.
|
||||||
|
-->
|
||||||
|
<div class="box"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<!-- Tests that `image-rendering: auto` uses bilinear filtering. -->
|
<!-- Tests that `image-rendering: auto` uses bilinear filtering. -->
|
||||||
<link rel=mismatch href=image_rendering_pixelated_a.html>
|
<link rel=mismatch href=image_rendering_pixelated_ref.html>
|
||||||
<style>
|
<style>
|
||||||
img {
|
img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -5,4 +5,11 @@ python:
|
||||||
before_install:
|
before_install:
|
||||||
- git submodule update --init --recursive
|
- git submodule update --init --recursive
|
||||||
# command to run tests, e.g. python setup.py test
|
# command to run tests, e.g. python setup.py test
|
||||||
script: ./lint
|
script:
|
||||||
|
- ./lint
|
||||||
|
- ./manifest
|
||||||
|
- ./diff-manifest.py
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
on_success: never
|
||||||
|
on_failure: always
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>HTML5 Canvas Test: isPointInPath() unaffected by the current transformation matrix</title>
|
<title>HTML5 Canvas Test: isPointInPath() unaffected by the current transformation matrix</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
||||||
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-ispointinpath" />
|
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-ispointinpath" />
|
||||||
<meta name="assert" content="isPointInPath must check the point (x, y) as coordinates unaffected by the current transformation matrix." />
|
<meta name="assert" content="isPointInPath must check the point (x, y) as coordinates unaffected by the current transformation matrix." />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function runTest()
|
async_test(function(t) {
|
||||||
{
|
window.addEventListener("load", t.step_func_done(function runTest() {
|
||||||
var canvas = document.getElementById("canvas1");
|
var canvas = document.getElementById("canvas1");
|
||||||
var ctx = canvas.getContext("2d");
|
var ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
|
@ -16,17 +18,14 @@
|
||||||
ctx.rect(0, 0, 100, 50);
|
ctx.rect(0, 0, 100, 50);
|
||||||
|
|
||||||
// Ensure that the coordinates passed to isPointInPath are unaffected by the current transformation matrix.
|
// Ensure that the coordinates passed to isPointInPath are unaffected by the current transformation matrix.
|
||||||
if (ctx.isPointInPath(125, 75) && !ctx.isPointInPath(25, 25))
|
assert_true(ctx.isPointInPath(125, 75), "isPointInPath(125, 75)");
|
||||||
{
|
assert_false(ctx.isPointInPath(25, 25), "!isPointInPath(25, 25)");
|
||||||
document.getElementById("testresult").firstChild.data = "PASS";
|
}));
|
||||||
}
|
}, "isPointInPath unaffected by transformation matrix");
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body onload="runTest();">
|
<body>
|
||||||
<p>Description: isPointInPath must check the point (x, y) as coordinates unaffected by the current transformation matrix.</p>
|
<p>Description: isPointInPath must check the point (x, y) as coordinates unaffected by the current transformation matrix.</p>
|
||||||
<p>Test passes if the word "PASS" appears below.</p>
|
|
||||||
<div id="testresult">FAIL</div>
|
|
||||||
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,14 +2,18 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>HTML5 Canvas Test: createlinearGradient() with two points same</title>
|
<title>HTML5 Canvas Test: createlinearGradient() with two points same</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
||||||
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-createlineargradient" />
|
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-createlineargradient" />
|
||||||
<meta name="assert" content="If the two points in a linear gradient have identical x,y coordinates, the canvas must paint nothing." />
|
<meta name="assert" content="If the two points in a linear gradient have identical x,y coordinates, the canvas must paint nothing." />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function runTest()
|
async_test(function(t) {
|
||||||
{
|
window.addEventListener("load", t.step_func_done(function runTest() {
|
||||||
var canvas = document.getElementById("canvas1");
|
var canvas = document.getElementById("canvas1");
|
||||||
var ctx = canvas.getContext("2d");
|
var ctx = canvas.getContext("2d");
|
||||||
|
var width = canvas.width;
|
||||||
|
var height = canvas.height;
|
||||||
|
|
||||||
// Start by drawing a left to right, green-to-blue linear gradient.
|
// Start by drawing a left to right, green-to-blue linear gradient.
|
||||||
var lingrad = ctx.createLinearGradient(0, 50, 100, 50);
|
var lingrad = ctx.createLinearGradient(0, 50, 100, 50);
|
||||||
|
@ -18,18 +22,38 @@
|
||||||
ctx.fillStyle = lingrad;
|
ctx.fillStyle = lingrad;
|
||||||
ctx.fillRect(0, 0, 100, 50);
|
ctx.fillRect(0, 0, 100, 50);
|
||||||
|
|
||||||
|
// Get the current state of the canvas
|
||||||
|
var initial = ctx.getImageData(0, 0, width, height);
|
||||||
|
|
||||||
// Nothing must be drawn if the two points in the linear gradient are the same.
|
// Nothing must be drawn if the two points in the linear gradient are the same.
|
||||||
lingrad = ctx.createLinearGradient(100, 100, 100, 100);
|
lingrad = ctx.createLinearGradient(100, 100, 100, 100);
|
||||||
lingrad.addColorStop(0, "rgba(255, 0, 0, 1.0)");
|
lingrad.addColorStop(0, "rgba(255, 0, 0, 1.0)");
|
||||||
lingrad.addColorStop(1, "rgba(255, 0, 0, 1.0)");
|
lingrad.addColorStop(1, "rgba(255, 0, 0, 1.0)");
|
||||||
ctx.fillStyle = lingrad;
|
ctx.fillStyle = lingrad;
|
||||||
ctx.fillRect(0, 0, 300, 150);
|
ctx.fillRect(0, 0, 300, 150);
|
||||||
}
|
|
||||||
|
// Check that nothing is drawn.
|
||||||
|
var after = ctx.getImageData(0, 0, width, height);
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
assert_equals(initial.width, after.width, "widths are equal");
|
||||||
|
assert_equals(initial.height, after.height, "heights are equal");
|
||||||
|
assert_array_equals(initial.data, after.data, "data are equal");
|
||||||
|
|
||||||
|
for (var i = 0; i < after.data.length; i += 4) {
|
||||||
|
var r = after.data[i];
|
||||||
|
var g = after.data[i+1];
|
||||||
|
var b = after.data[i+2];
|
||||||
|
var a = after.data[i+3];
|
||||||
|
assert_false(r == 0xFF && g == 0 && b == 0 && a == 0xFF, "no red");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}, "linear gradient from point to self draws nothing");
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body onload="runTest()">
|
<body>
|
||||||
<p>Description: If the two points in a linear gradient have identical x,y coordinates, the canvas must paint nothing.</p>
|
<p>Description: If the two points in a linear gradient have identical x,y coordinates, the canvas must paint nothing.</p>
|
||||||
<p>Test passes if there is one left-to-right, green-to-blue linear gradient seen on the page and no red is seen on the page.</p>
|
<p>Test passes if there is one left-to-right, green-to-blue linear gradient seen on the page and no red is seen on the page.</p>
|
||||||
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>HTML5 Canvas Test: Shadows for linear gradients</title>
|
<title>HTML5 Canvas Test: Shadows for linear gradients</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
||||||
<link rel="help" href="http://www.w3.org/TR/2dcontext/#shadows" />
|
<link rel="help" href="http://www.w3.org/TR/2dcontext/#shadows" />
|
||||||
<meta name="assert" content="Shadows must be drawn for linear gradients." />
|
<meta name="assert" content="Shadows must be drawn for linear gradients." />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function runTest()
|
async_test(function(t) {
|
||||||
{
|
window.addEventListener("load", t.step_func_done(function runTest() {
|
||||||
var canvas = document.getElementById("canvas1");
|
var canvas = document.getElementById("canvas1");
|
||||||
var ctx = canvas.getContext("2d");
|
var ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
|
@ -25,10 +27,32 @@
|
||||||
lingrad.addColorStop(1, "rgba(0, 0, 255, 1.0)");
|
lingrad.addColorStop(1, "rgba(0, 0, 255, 1.0)");
|
||||||
ctx.fillStyle = lingrad;
|
ctx.fillStyle = lingrad;
|
||||||
ctx.fillRect(0, 0, 100, 50);
|
ctx.fillRect(0, 0, 100, 50);
|
||||||
}
|
|
||||||
|
// Check the red is gone
|
||||||
|
var data = ctx.getImageData(150, 0, 100, 50);
|
||||||
|
for (var i = 0; i < data.data.length; i += 4) {
|
||||||
|
var r = data.data[i];
|
||||||
|
var g = data.data[i+1];
|
||||||
|
var b = data.data[i+2];
|
||||||
|
var a = data.data[i+3];
|
||||||
|
assert_equals(r, 0, "r channel");
|
||||||
|
assert_equals(g, 0, "g channel");
|
||||||
|
assert_equals(b, 0, "b channel");
|
||||||
|
assert_equals(a, 0xFF, "a channel");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var j = 0; j < data.data.length; j += 4) {
|
||||||
|
var r2 = data.data[j];
|
||||||
|
var g2 = data.data[j+1];
|
||||||
|
var b2 = data.data[j+2];
|
||||||
|
var a2 = data.data[j+3];
|
||||||
|
assert_false(r2 == 0xFF && g2 == 0 && b2 == 0 && a2 == 0xFF, "no red");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}, "linear gradient fillRect draws shadow (black rectange)");
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body onload="runTest()">
|
<body>
|
||||||
<p>Description: Shadows must be drawn for linear gradients.</p>
|
<p>Description: Shadows must be drawn for linear gradients.</p>
|
||||||
<p>Test passes if there is one gradient filled rectangle and one black rectangle, and no red seen on the page.</p>
|
<p>Test passes if there is one gradient filled rectangle and one black rectangle, and no red seen on the page.</p>
|
||||||
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!doctype HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>HTML5 Canvas Test: Ignore property-independent style sheet syntax "inherit" in Text (reference)</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function runTest()
|
||||||
|
{
|
||||||
|
var canvas = document.getElementById("canvas1");
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
|
ctx.font = "40px Ahem";
|
||||||
|
ctx.fillText("Filler", 5, 50);
|
||||||
|
ctx.fillText("Filler", 5, 100);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body onload="runTest()">
|
||||||
|
<p>Description: Ignore "inherit" property-independent style sheet syntax without assigning a new font value.</p>
|
||||||
|
<p>Test passes if there are two identical black boxes below.</p>
|
||||||
|
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -2,6 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>HTML5 Canvas Test: Ignore property-independent style sheet syntax "inherit" in Text</title>
|
<title>HTML5 Canvas Test: Ignore property-independent style sheet syntax "inherit" in Text</title>
|
||||||
|
<link rel="match" href="canvas_text_font_001-ref.htm" />
|
||||||
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com" />
|
||||||
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-font" />
|
<link rel="help" href="http://www.w3.org/TR/2dcontext/#dom-context-2d-font" />
|
||||||
<meta name="assert" content=": Ignore 'inherit' property-independent style sheet syntax without assigning a new font value." />
|
<meta name="assert" content=": Ignore 'inherit' property-independent style sheet syntax without assigning a new font value." />
|
||||||
|
@ -12,21 +13,21 @@
|
||||||
var ctx = canvas.getContext("2d");
|
var ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
// Assign a valid font.
|
// Assign a valid font.
|
||||||
ctx.font = "40px Times New Roman";
|
ctx.font = "40px Ahem";
|
||||||
|
|
||||||
// Assign property-independent style sheet syntax 'inherit' as font.
|
// Assign property-independent style sheet syntax 'inherit' as font (this must be ignored).
|
||||||
ctx.font = "20px inherit";
|
ctx.font = "20px inherit";
|
||||||
ctx.fillText("Test String", 5, 50);
|
ctx.fillText("Filler", 5, 50);
|
||||||
|
|
||||||
// Assign a valid font which was used earlier.
|
// Assign a valid font which was used earlier.
|
||||||
ctx.font = "40px Times New Roman";
|
ctx.font = "40px Ahem";
|
||||||
ctx.fillText("Test String", 5, 100);
|
ctx.fillText("Filler", 5, 100);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body onload="runTest()">
|
<body onload="runTest()">
|
||||||
<p>Description: Ignore "inherit" property-independent style sheet syntax without assigning a new font value.</p>
|
<p>Description: Ignore "inherit" property-independent style sheet syntax without assigning a new font value.</p>
|
||||||
<p>Test passes if both strings are identical in both size, style, and text.</p>
|
<p>Test passes if there are two identical black boxes below.</p>
|
||||||
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -45,15 +45,14 @@ git submodule update --init --recursive
|
||||||
|
|
||||||
The test environment can then be started using
|
The test environment can then be started using
|
||||||
|
|
||||||
```
|
./serve
|
||||||
./serve
|
|
||||||
```
|
|
||||||
|
|
||||||
This will start HTTP servers on two ports and a websockets server on
|
This will start HTTP servers on two ports and a websockets server on
|
||||||
one port. By default one web server starts on port 8000 and the other
|
one port. By default one web server starts on port 8000 and the other
|
||||||
ports are randomly-chosen free ports. Tests must be loaded from the
|
ports are randomly-chosen free ports. Tests must be loaded from the
|
||||||
*first* HTTP server in the output. To change the ports, edit the
|
*first* HTTP server in the output. To change the ports, copy the
|
||||||
`config.json` file, for example, replacing the part that reads:
|
`config.default.json` file to `config.json` and edit the new file,
|
||||||
|
replacing the part that reads:
|
||||||
|
|
||||||
```
|
```
|
||||||
"http": [8000, "auto"]
|
"http": [8000, "auto"]
|
||||||
|
@ -62,7 +61,7 @@ ports are randomly-chosen free ports. Tests must be loaded from the
|
||||||
to some port of your choice e.g.
|
to some port of your choice e.g.
|
||||||
|
|
||||||
```
|
```
|
||||||
"http":[1234, "auto"]
|
"http": [1234, "auto"]
|
||||||
```
|
```
|
||||||
|
|
||||||
If you installed OpenSSL in such a way that running `openssl` at a
|
If you installed OpenSSL in such a way that running `openssl` at a
|
||||||
|
@ -79,7 +78,7 @@ like:
|
||||||
|
|
||||||
Running wptserve with SSL enabled on Windows typically requires
|
Running wptserve with SSL enabled on Windows typically requires
|
||||||
installing an OpenSSL distribution.
|
installing an OpenSSL distribution.
|
||||||
[Shining Light](http://slproweb.com/products/Win32OpenSSL.html)
|
[Shining Light](https://slproweb.com/products/Win32OpenSSL.html)
|
||||||
provide a convenient installer that is known to work, but requires a
|
provide a convenient installer that is known to work, but requires a
|
||||||
little extra setup.
|
little extra setup.
|
||||||
|
|
||||||
|
|
|
@ -33,10 +33,7 @@ function run_test() {
|
||||||
Object.keys(derivations[derivedKeySize][saltSize]).forEach(function(hashName) {
|
Object.keys(derivations[derivedKeySize][saltSize]).forEach(function(hashName) {
|
||||||
Object.keys(derivations[derivedKeySize][saltSize][hashName]).forEach(function(infoSize) {
|
Object.keys(derivations[derivedKeySize][saltSize][hashName]).forEach(function(infoSize) {
|
||||||
var testName = derivedKeySize + " derivedKey, " + saltSize + " salt, " + hashName + ", with " + infoSize + " info";
|
var testName = derivedKeySize + " derivedKey, " + saltSize + " salt, " + hashName + ", with " + infoSize + " info";
|
||||||
var algorithm = {name: "HKDF", salt: salts[saltSize], hash: hashName};
|
var algorithm = {name: "HKDF", salt: salts[saltSize], info: infos[infoSize], hash: hashName};
|
||||||
if (infoSize !== "missing") {
|
|
||||||
algorithm.info = infos[infoSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for correct deriveBits result
|
// Check for correct deriveBits result
|
||||||
promise_test(function(test) {
|
promise_test(function(test) {
|
||||||
|
@ -121,6 +118,27 @@ function run_test() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Test various error conditions for deriveBits below:
|
// Test various error conditions for deriveBits below:
|
||||||
|
|
||||||
|
// missing salt (TypeError)
|
||||||
|
promise_test(function(test) {
|
||||||
|
return subtle.deriveBits({name: "HKDF", info: infos[infoSize], hash: hashName}, baseKeys[derivedKeySize], 0)
|
||||||
|
.then(function(derivation) {
|
||||||
|
assert_equals(derivation.byteLength, 0, "Derived even with missing salt");
|
||||||
|
}, function(err) {
|
||||||
|
assert_equals(err.name, "TypeError", "deriveBits missing salt correctly threw OperationError: " + err.message);
|
||||||
|
});
|
||||||
|
}, testName + " with missing salt");
|
||||||
|
|
||||||
|
// missing info (TypeError)
|
||||||
|
promise_test(function(test) {
|
||||||
|
return subtle.deriveBits({name: "HKDF", salt: salts[saltSize], hash: hashName}, baseKeys[derivedKeySize], 0)
|
||||||
|
.then(function(derivation) {
|
||||||
|
assert_equals(derivation.byteLength, 0, "Derived even with missing info");
|
||||||
|
}, function(err) {
|
||||||
|
assert_equals(err.name, "TypeError", "deriveBits missing info correctly threw OperationError: " + err.message);
|
||||||
|
});
|
||||||
|
}, testName + " with missing info");
|
||||||
|
|
||||||
// length null (OperationError)
|
// length null (OperationError)
|
||||||
promise_test(function(test) {
|
promise_test(function(test) {
|
||||||
return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], null)
|
return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], null)
|
||||||
|
|
|
@ -55,14 +55,12 @@ function getTestData() {
|
||||||
|
|
||||||
var salts = {
|
var salts = {
|
||||||
"normal": new Uint8Array([83, 111, 100, 105, 117, 109, 32, 67, 104, 108, 111, 114, 105, 100, 101, 32, 99, 111, 109, 112, 111, 117, 110, 100]),
|
"normal": new Uint8Array([83, 111, 100, 105, 117, 109, 32, 67, 104, 108, 111, 114, 105, 100, 101, 32, 99, 111, 109, 112, 111, 117, 110, 100]),
|
||||||
"empty": new Uint8Array([]),
|
"empty": new Uint8Array([])
|
||||||
"missing": null
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var infos = {
|
var infos = {
|
||||||
"normal": new Uint8Array([72, 75, 68, 70, 32, 101, 120, 116, 114, 97, 32, 105, 110, 102, 111]),
|
"normal": new Uint8Array([72, 75, 68, 70, 32, 101, 120, 116, 114, 97, 32, 105, 110, 102, 111]),
|
||||||
"empty": new Uint8Array([]),
|
"empty": new Uint8Array([])
|
||||||
"missing": null
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var derivations = {
|
var derivations = {
|
||||||
|
@ -70,67 +68,37 @@ function getTestData() {
|
||||||
"normal": {
|
"normal": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([25, 186, 116, 54, 142, 107, 153, 51, 144, 242, 127, 233, 167, 208, 43, 195, 56, 23, 63, 114, 190, 113, 161, 159, 199, 68, 252, 219, 63, 212, 184, 75]),
|
"normal": new Uint8Array([25, 186, 116, 54, 142, 107, 153, 51, 144, 242, 127, 233, 167, 208, 43, 195, 56, 23, 63, 114, 190, 113, 161, 159, 199, 68, 252, 219, 63, 212, 184, 75]),
|
||||||
"empty": new Uint8Array([151, 96, 31, 78, 12, 83, 165, 211, 243, 162, 129, 0, 153, 188, 104, 32, 236, 80, 8, 52, 52, 118, 155, 89, 252, 36, 164, 23, 169, 84, 55, 52]),
|
"empty": new Uint8Array([151, 96, 31, 78, 12, 83, 165, 211, 243, 162, 129, 0, 153, 188, 104, 32, 236, 80, 8, 52, 52, 118, 155, 89, 252, 36, 164, 23, 169, 84, 55, 52])
|
||||||
"missing": new Uint8Array([151, 96, 31, 78, 12, 83, 165, 211, 243, 162, 129, 0, 153, 188, 104, 32, 236, 80, 8, 52, 52, 118, 155, 89, 252, 36, 164, 23, 169, 84, 55, 52])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([75, 189, 109, 178, 67, 95, 182, 150, 21, 127, 96, 137, 201, 119, 195, 199, 63, 62, 172, 94, 243, 221, 107, 170, 230, 4, 203, 83, 191, 187, 21, 62]),
|
"normal": new Uint8Array([75, 189, 109, 178, 67, 95, 182, 150, 21, 127, 96, 137, 201, 119, 195, 199, 63, 62, 172, 94, 243, 221, 107, 170, 230, 4, 203, 83, 191, 187, 21, 62]),
|
||||||
"empty": new Uint8Array([47, 49, 87, 231, 254, 12, 16, 176, 18, 152, 200, 240, 136, 106, 144, 237, 207, 128, 171, 222, 245, 219, 193, 223, 43, 20, 130, 83, 43, 82, 185, 52]),
|
"empty": new Uint8Array([47, 49, 87, 231, 254, 12, 16, 176, 18, 152, 200, 240, 136, 106, 144, 237, 207, 128, 171, 222, 245, 219, 193, 223, 43, 20, 130, 83, 43, 82, 185, 52])
|
||||||
"missing": new Uint8Array([47, 49, 87, 231, 254, 12, 16, 176, 18, 152, 200, 240, 136, 106, 144, 237, 207, 128, 171, 222, 245, 219, 193, 223, 43, 20, 130, 83, 43, 82, 185, 52])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([5, 173, 34, 237, 33, 56, 201, 96, 14, 77, 158, 39, 37, 222, 211, 1, 245, 210, 135, 251, 251, 87, 2, 249, 153, 188, 101, 54, 211, 237, 239, 152]),
|
"normal": new Uint8Array([5, 173, 34, 237, 33, 56, 201, 96, 14, 77, 158, 39, 37, 222, 211, 1, 245, 210, 135, 251, 251, 87, 2, 249, 153, 188, 101, 54, 211, 237, 239, 152]),
|
||||||
"empty": new Uint8Array([213, 27, 111, 183, 229, 153, 202, 48, 197, 238, 38, 69, 147, 228, 184, 95, 34, 32, 199, 195, 171, 0, 49, 87, 191, 248, 203, 79, 54, 156, 117, 96]),
|
"empty": new Uint8Array([213, 27, 111, 183, 229, 153, 202, 48, 197, 238, 38, 69, 147, 228, 184, 95, 34, 32, 199, 195, 171, 0, 49, 87, 191, 248, 203, 79, 54, 156, 117, 96])
|
||||||
"missing": new Uint8Array([213, 27, 111, 183, 229, 153, 202, 48, 197, 238, 38, 69, 147, 228, 184, 95, 34, 32, 199, 195, 171, 0, 49, 87, 191, 248, 203, 79, 54, 156, 117, 96])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([42, 245, 144, 30, 40, 132, 156, 40, 68, 56, 87, 56, 106, 161, 172, 59, 177, 39, 233, 38, 49, 193, 192, 81, 72, 45, 102, 144, 148, 23, 114, 180]),
|
"normal": new Uint8Array([42, 245, 144, 30, 40, 132, 156, 40, 68, 56, 87, 56, 106, 161, 172, 59, 177, 39, 233, 38, 49, 193, 192, 81, 72, 45, 102, 144, 148, 23, 114, 180]),
|
||||||
"empty": new Uint8Array([158, 75, 113, 144, 51, 116, 33, 1, 233, 15, 26, 214, 30, 47, 243, 180, 37, 104, 99, 102, 114, 150, 215, 67, 137, 241, 240, 42, 242, 196, 230, 166]),
|
"empty": new Uint8Array([158, 75, 113, 144, 51, 116, 33, 1, 233, 15, 26, 214, 30, 47, 243, 180, 37, 104, 99, 102, 114, 150, 215, 67, 137, 241, 240, 42, 242, 196, 230, 166])
|
||||||
"missing": new Uint8Array([158, 75, 113, 144, 51, 116, 33, 1, 233, 15, 26, 214, 30, 47, 243, 180, 37, 104, 99, 102, 114, 150, 215, 67, 137, 241, 240, 42, 242, 196, 230, 166])
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([251, 72, 47, 242, 44, 79, 141, 70, 108, 77, 254, 110, 41, 242, 204, 46, 205, 171, 245, 136, 67, 40, 251, 240, 138, 115, 143, 217, 69, 241, 102, 203]),
|
"normal": new Uint8Array([251, 72, 47, 242, 44, 79, 141, 70, 108, 77, 254, 110, 41, 242, 204, 46, 205, 171, 245, 136, 67, 40, 251, 240, 138, 115, 143, 217, 69, 241, 102, 203]),
|
||||||
"empty": new Uint8Array([30, 2, 60, 23, 179, 64, 83, 60, 234, 239, 57, 35, 12, 184, 179, 187, 219, 246, 99, 161, 61, 96, 117, 208, 221, 50, 108, 4, 148, 120, 251, 165]),
|
"empty": new Uint8Array([30, 2, 60, 23, 179, 64, 83, 60, 234, 239, 57, 35, 12, 184, 179, 187, 219, 246, 99, 161, 61, 96, 117, 208, 221, 50, 108, 4, 148, 120, 251, 165])
|
||||||
"missing": new Uint8Array([30, 2, 60, 23, 179, 64, 83, 60, 234, 239, 57, 35, 12, 184, 179, 187, 219, 246, 99, 161, 61, 96, 117, 208, 221, 50, 108, 4, 148, 120, 251, 165])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([241, 123, 91, 220, 216, 215, 211, 212, 96, 16, 54, 161, 148, 54, 49, 125, 22, 68, 249, 164, 224, 149, 110, 252, 14, 55, 43, 131, 172, 218, 207, 219]),
|
"normal": new Uint8Array([241, 123, 91, 220, 216, 215, 211, 212, 96, 16, 54, 161, 148, 54, 49, 125, 22, 68, 249, 164, 224, 149, 110, 252, 14, 55, 43, 131, 172, 218, 207, 219]),
|
||||||
"empty": new Uint8Array([199, 180, 116, 148, 47, 49, 248, 63, 175, 93, 20, 115, 24, 2, 177, 189, 73, 71, 133, 73, 203, 58, 143, 61, 191, 237, 196, 211, 32, 156, 245, 182]),
|
"empty": new Uint8Array([199, 180, 116, 148, 47, 49, 248, 63, 175, 93, 20, 115, 24, 2, 177, 189, 73, 71, 133, 73, 203, 58, 143, 61, 191, 237, 196, 211, 32, 156, 245, 182])
|
||||||
"missing": new Uint8Array([199, 180, 116, 148, 47, 49, 248, 63, 175, 93, 20, 115, 24, 2, 177, 189, 73, 71, 133, 73, 203, 58, 143, 61, 191, 237, 196, 211, 32, 156, 245, 182])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([193, 38, 241, 230, 242, 90, 157, 228, 44, 247, 212, 39, 5, 154, 82, 237, 150, 1, 242, 154, 88, 21, 203, 251, 198, 75, 199, 246, 104, 198, 163, 65]),
|
"normal": new Uint8Array([193, 38, 241, 230, 242, 90, 157, 228, 44, 247, 212, 39, 5, 154, 82, 237, 150, 1, 242, 154, 88, 21, 203, 251, 198, 75, 199, 246, 104, 198, 163, 65]),
|
||||||
"empty": new Uint8Array([50, 21, 195, 240, 141, 231, 5, 73, 176, 81, 183, 3, 55, 69, 168, 24, 79, 140, 186, 166, 177, 115, 83, 48, 210, 188, 182, 177, 111, 70, 66, 239]),
|
"empty": new Uint8Array([50, 21, 195, 240, 141, 231, 5, 73, 176, 81, 183, 3, 55, 69, 168, 24, 79, 140, 186, 166, 177, 115, 83, 48, 210, 188, 182, 177, 111, 70, 66, 239])
|
||||||
"missing": new Uint8Array([50, 21, 195, 240, 141, 231, 5, 73, 176, 81, 183, 3, 55, 69, 168, 24, 79, 140, 186, 166, 177, 115, 83, 48, 210, 188, 182, 177, 111, 70, 66, 239])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([115, 60, 139, 107, 207, 172, 135, 92, 127, 8, 152, 42, 110, 63, 251, 86, 10, 206, 166, 241, 101, 71, 110, 184, 52, 96, 185, 53, 62, 212, 29, 254]),
|
"normal": new Uint8Array([115, 60, 139, 107, 207, 172, 135, 92, 127, 8, 152, 42, 110, 63, 251, 86, 10, 206, 166, 241, 101, 71, 110, 184, 52, 96, 185, 53, 62, 212, 29, 254]),
|
||||||
"empty": new Uint8Array([200, 225, 39, 116, 19, 83, 5, 201, 20, 127, 44, 196, 118, 110, 94, 173, 37, 216, 244, 87, 185, 161, 149, 61, 82, 103, 115, 97, 206, 213, 88, 251]),
|
"empty": new Uint8Array([200, 225, 39, 116, 19, 83, 5, 201, 20, 127, 44, 196, 118, 110, 94, 173, 37, 216, 244, 87, 185, 161, 149, 61, 82, 103, 115, 97, 206, 213, 88, 251])
|
||||||
"missing": new Uint8Array([200, 225, 39, 116, 19, 83, 5, 201, 20, 127, 44, 196, 118, 110, 94, 173, 37, 216, 244, 87, 185, 161, 149, 61, 82, 103, 115, 97, 206, 213, 88, 251])
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"missing": {
|
|
||||||
"SHA-384": {
|
|
||||||
"normal": new Uint8Array([251, 72, 47, 242, 44, 79, 141, 70, 108, 77, 254, 110, 41, 242, 204, 46, 205, 171, 245, 136, 67, 40, 251, 240, 138, 115, 143, 217, 69, 241, 102, 203]),
|
|
||||||
"empty": new Uint8Array([30, 2, 60, 23, 179, 64, 83, 60, 234, 239, 57, 35, 12, 184, 179, 187, 219, 246, 99, 161, 61, 96, 117, 208, 221, 50, 108, 4, 148, 120, 251, 165]),
|
|
||||||
"missing": new Uint8Array([30, 2, 60, 23, 179, 64, 83, 60, 234, 239, 57, 35, 12, 184, 179, 187, 219, 246, 99, 161, 61, 96, 117, 208, 221, 50, 108, 4, 148, 120, 251, 165])
|
|
||||||
},
|
|
||||||
"SHA-512": {
|
|
||||||
"normal": new Uint8Array([241, 123, 91, 220, 216, 215, 211, 212, 96, 16, 54, 161, 148, 54, 49, 125, 22, 68, 249, 164, 224, 149, 110, 252, 14, 55, 43, 131, 172, 218, 207, 219]),
|
|
||||||
"empty": new Uint8Array([199, 180, 116, 148, 47, 49, 248, 63, 175, 93, 20, 115, 24, 2, 177, 189, 73, 71, 133, 73, 203, 58, 143, 61, 191, 237, 196, 211, 32, 156, 245, 182]),
|
|
||||||
"missing": new Uint8Array([199, 180, 116, 148, 47, 49, 248, 63, 175, 93, 20, 115, 24, 2, 177, 189, 73, 71, 133, 73, 203, 58, 143, 61, 191, 237, 196, 211, 32, 156, 245, 182])
|
|
||||||
},
|
|
||||||
"SHA-1": {
|
|
||||||
"normal": new Uint8Array([193, 38, 241, 230, 242, 90, 157, 228, 44, 247, 212, 39, 5, 154, 82, 237, 150, 1, 242, 154, 88, 21, 203, 251, 198, 75, 199, 246, 104, 198, 163, 65]),
|
|
||||||
"empty": new Uint8Array([50, 21, 195, 240, 141, 231, 5, 73, 176, 81, 183, 3, 55, 69, 168, 24, 79, 140, 186, 166, 177, 115, 83, 48, 210, 188, 182, 177, 111, 70, 66, 239]),
|
|
||||||
"missing": new Uint8Array([50, 21, 195, 240, 141, 231, 5, 73, 176, 81, 183, 3, 55, 69, 168, 24, 79, 140, 186, 166, 177, 115, 83, 48, 210, 188, 182, 177, 111, 70, 66, 239])
|
|
||||||
},
|
|
||||||
"SHA-256": {
|
|
||||||
"normal": new Uint8Array([115, 60, 139, 107, 207, 172, 135, 92, 127, 8, 152, 42, 110, 63, 251, 86, 10, 206, 166, 241, 101, 71, 110, 184, 52, 96, 185, 53, 62, 212, 29, 254]),
|
|
||||||
"empty": new Uint8Array([200, 225, 39, 116, 19, 83, 5, 201, 20, 127, 44, 196, 118, 110, 94, 173, 37, 216, 244, 87, 185, 161, 149, 61, 82, 103, 115, 97, 206, 213, 88, 251]),
|
|
||||||
"missing": new Uint8Array([200, 225, 39, 116, 19, 83, 5, 201, 20, 127, 44, 196, 118, 110, 94, 173, 37, 216, 244, 87, 185, 161, 149, 61, 82, 103, 115, 97, 206, 213, 88, 251])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -138,67 +106,37 @@ function getTestData() {
|
||||||
"normal": {
|
"normal": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([249, 21, 113, 181, 33, 247, 238, 241, 62, 87, 58, 164, 99, 120, 101, 158, 243, 183, 243, 111, 253, 209, 187, 5, 93, 178, 205, 119, 210, 96, 196, 103]),
|
"normal": new Uint8Array([249, 21, 113, 181, 33, 247, 238, 241, 62, 87, 58, 164, 99, 120, 101, 158, 243, 183, 243, 111, 253, 209, 187, 5, 93, 178, 205, 119, 210, 96, 196, 103]),
|
||||||
"empty": new Uint8Array([104, 175, 28, 44, 246, 185, 55, 13, 32, 84, 52, 71, 152, 189, 187, 24, 71, 204, 244, 7, 183, 101, 43, 121, 61, 209, 54, 212, 100, 14, 3, 72]),
|
"empty": new Uint8Array([104, 175, 28, 44, 246, 185, 55, 13, 32, 84, 52, 71, 152, 189, 187, 24, 71, 204, 244, 7, 183, 101, 43, 121, 61, 209, 54, 212, 100, 14, 3, 72])
|
||||||
"missing": new Uint8Array([104, 175, 28, 44, 246, 185, 55, 13, 32, 84, 52, 71, 152, 189, 187, 24, 71, 204, 244, 7, 183, 101, 43, 121, 61, 209, 54, 212, 100, 14, 3, 72])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([113, 10, 174, 47, 223, 136, 158, 69, 254, 15, 185, 149, 178, 194, 107, 51, 235, 152, 134, 80, 236, 15, 174, 241, 103, 2, 138, 122, 108, 203, 54, 56]),
|
"normal": new Uint8Array([113, 10, 174, 47, 223, 136, 158, 69, 254, 15, 185, 149, 178, 194, 107, 51, 235, 152, 134, 80, 236, 15, 174, 241, 103, 2, 138, 122, 108, 203, 54, 56]),
|
||||||
"empty": new Uint8Array([229, 222, 86, 128, 129, 199, 30, 86, 39, 80, 130, 152, 113, 195, 66, 117, 129, 4, 118, 94, 214, 243, 6, 240, 97, 60, 157, 75, 179, 54, 242, 170]),
|
"empty": new Uint8Array([229, 222, 86, 128, 129, 199, 30, 86, 39, 80, 130, 152, 113, 195, 66, 117, 129, 4, 118, 94, 214, 243, 6, 240, 97, 60, 157, 75, 179, 54, 242, 170])
|
||||||
"missing": new Uint8Array([229, 222, 86, 128, 129, 199, 30, 86, 39, 80, 130, 152, 113, 195, 66, 117, 129, 4, 118, 94, 214, 243, 6, 240, 97, 60, 157, 75, 179, 54, 242, 170])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([127, 149, 126, 220, 188, 227, 203, 11, 112, 86, 110, 30, 182, 14, 253, 30, 64, 90, 19, 48, 76, 102, 29, 54, 99, 119, 129, 9, 191, 6, 137, 156]),
|
"normal": new Uint8Array([127, 149, 126, 220, 188, 227, 203, 11, 112, 86, 110, 30, 182, 14, 253, 30, 64, 90, 19, 48, 76, 102, 29, 54, 99, 119, 129, 9, 191, 6, 137, 156]),
|
||||||
"empty": new Uint8Array([48, 98, 243, 207, 26, 115, 11, 156, 239, 81, 240, 44, 29, 250, 200, 94, 217, 30, 75, 0, 101, 235, 80, 202, 159, 216, 176, 16, 126, 114, 135, 51]),
|
"empty": new Uint8Array([48, 98, 243, 207, 26, 115, 11, 156, 239, 81, 240, 44, 29, 250, 200, 94, 217, 30, 75, 0, 101, 235, 80, 202, 159, 216, 176, 16, 126, 114, 135, 51])
|
||||||
"missing": new Uint8Array([48, 98, 243, 207, 26, 115, 11, 156, 239, 81, 240, 44, 29, 250, 200, 94, 217, 30, 75, 0, 101, 235, 80, 202, 159, 216, 176, 16, 126, 114, 135, 51])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([49, 183, 214, 133, 48, 168, 99, 231, 23, 192, 129, 202, 105, 23, 182, 134, 80, 179, 221, 154, 41, 243, 6, 6, 226, 202, 209, 153, 190, 193, 77, 19]),
|
"normal": new Uint8Array([49, 183, 214, 133, 48, 168, 99, 231, 23, 192, 129, 202, 105, 23, 182, 134, 80, 179, 221, 154, 41, 243, 6, 6, 226, 202, 209, 153, 190, 193, 77, 19]),
|
||||||
"empty": new Uint8Array([229, 121, 209, 249, 231, 240, 142, 111, 153, 15, 252, 252, 206, 30, 210, 1, 197, 227, 126, 98, 205, 246, 6, 240, 186, 74, 202, 128, 66, 127, 188, 68]),
|
"empty": new Uint8Array([229, 121, 209, 249, 231, 240, 142, 111, 153, 15, 252, 252, 206, 30, 210, 1, 197, 227, 126, 98, 205, 246, 6, 240, 186, 74, 202, 128, 66, 127, 188, 68])
|
||||||
"missing": new Uint8Array([229, 121, 209, 249, 231, 240, 142, 111, 153, 15, 252, 252, 206, 30, 210, 1, 197, 227, 126, 98, 205, 246, 6, 240, 186, 74, 202, 128, 66, 127, 188, 68])
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([97, 158, 182, 249, 40, 115, 149, 187, 213, 237, 106, 103, 201, 104, 70, 90, 216, 43, 108, 85, 159, 60, 56, 182, 4, 187, 176, 143, 88, 50, 11, 3]),
|
"normal": new Uint8Array([97, 158, 182, 249, 40, 115, 149, 187, 213, 237, 106, 103, 201, 104, 70, 90, 216, 43, 108, 85, 159, 60, 56, 182, 4, 187, 176, 143, 88, 50, 11, 3]),
|
||||||
"empty": new Uint8Array([255, 68, 123, 66, 61, 131, 254, 118, 131, 108, 50, 51, 114, 40, 181, 107, 91, 217, 191, 104, 213, 142, 125, 202, 75, 124, 202, 132, 42, 69, 225, 26]),
|
"empty": new Uint8Array([255, 68, 123, 66, 61, 131, 254, 118, 131, 108, 50, 51, 114, 40, 181, 107, 91, 217, 191, 104, 213, 142, 125, 202, 75, 124, 202, 132, 42, 69, 225, 26])
|
||||||
"missing": new Uint8Array([255, 68, 123, 66, 61, 131, 254, 118, 131, 108, 50, 51, 114, 40, 181, 107, 91, 217, 191, 104, 213, 142, 125, 202, 75, 124, 202, 132, 42, 69, 225, 26])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([19, 62, 138, 127, 127, 244, 51, 105, 12, 200, 132, 50, 194, 163, 56, 194, 119, 229, 193, 55, 86, 255, 135, 143, 70, 117, 63, 230, 165, 100, 227, 229]),
|
"normal": new Uint8Array([19, 62, 138, 127, 127, 244, 51, 105, 12, 200, 132, 50, 194, 163, 56, 194, 119, 229, 193, 55, 86, 255, 135, 143, 70, 117, 63, 230, 165, 100, 227, 229]),
|
||||||
"empty": new Uint8Array([222, 84, 247, 238, 200, 12, 156, 198, 109, 52, 159, 201, 135, 248, 13, 70, 29, 178, 239, 79, 244, 225, 133, 5, 210, 139, 216, 12, 180, 44, 125, 118]),
|
"empty": new Uint8Array([222, 84, 247, 238, 200, 12, 156, 198, 109, 52, 159, 201, 135, 248, 13, 70, 29, 178, 239, 79, 244, 225, 133, 5, 210, 139, 216, 12, 180, 44, 125, 118])
|
||||||
"missing": new Uint8Array([222, 84, 247, 238, 200, 12, 156, 198, 109, 52, 159, 201, 135, 248, 13, 70, 29, 178, 239, 79, 244, 225, 133, 5, 210, 139, 216, 12, 180, 44, 125, 118])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([173, 185, 60, 219, 206, 121, 183, 213, 17, 89, 182, 192, 19, 26, 43, 98, 242, 56, 40, 210, 106, 205, 104, 94, 52, 192, 101, 53, 230, 247, 116, 150]),
|
"normal": new Uint8Array([173, 185, 60, 219, 206, 121, 183, 213, 17, 89, 182, 192, 19, 26, 43, 98, 242, 56, 40, 210, 106, 205, 104, 94, 52, 192, 101, 53, 230, 247, 116, 150]),
|
||||||
"empty": new Uint8Array([71, 113, 13, 42, 117, 7, 224, 90, 29, 220, 200, 122, 124, 47, 144, 97, 119, 162, 102, 239, 185, 230, 34, 81, 12, 204, 179, 113, 60, 208, 141, 88]),
|
"empty": new Uint8Array([71, 113, 13, 42, 117, 7, 224, 90, 29, 220, 200, 122, 124, 47, 144, 97, 119, 162, 102, 239, 185, 230, 34, 81, 12, 204, 179, 113, 60, 208, 141, 88])
|
||||||
"missing": new Uint8Array([71, 113, 13, 42, 117, 7, 224, 90, 29, 220, 200, 122, 124, 47, 144, 97, 119, 162, 102, 239, 185, 230, 34, 81, 12, 204, 179, 113, 60, 208, 141, 88])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([164, 1, 215, 201, 21, 138, 41, 229, 199, 25, 58, 185, 115, 15, 7, 72, 133, 28, 197, 186, 173, 180, 44, 173, 2, 75, 98, 144, 254, 33, 52, 54]),
|
"normal": new Uint8Array([164, 1, 215, 201, 21, 138, 41, 229, 199, 25, 58, 185, 115, 15, 7, 72, 133, 28, 197, 186, 173, 180, 44, 173, 2, 75, 98, 144, 254, 33, 52, 54]),
|
||||||
"empty": new Uint8Array([180, 247, 231, 85, 118, 116, 213, 1, 203, 251, 192, 20, 138, 216, 0, 192, 117, 1, 137, 254, 41, 90, 42, 202, 94, 27, 244, 18, 44, 133, 237, 249]),
|
"empty": new Uint8Array([180, 247, 231, 85, 118, 116, 213, 1, 203, 251, 192, 20, 138, 216, 0, 192, 117, 1, 137, 254, 41, 90, 42, 202, 94, 27, 244, 18, 44, 133, 237, 249])
|
||||||
"missing": new Uint8Array([180, 247, 231, 85, 118, 116, 213, 1, 203, 251, 192, 20, 138, 216, 0, 192, 117, 1, 137, 254, 41, 90, 42, 202, 94, 27, 244, 18, 44, 133, 237, 249])
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"missing": {
|
|
||||||
"SHA-384": {
|
|
||||||
"normal": new Uint8Array([97, 158, 182, 249, 40, 115, 149, 187, 213, 237, 106, 103, 201, 104, 70, 90, 216, 43, 108, 85, 159, 60, 56, 182, 4, 187, 176, 143, 88, 50, 11, 3]),
|
|
||||||
"empty": new Uint8Array([255, 68, 123, 66, 61, 131, 254, 118, 131, 108, 50, 51, 114, 40, 181, 107, 91, 217, 191, 104, 213, 142, 125, 202, 75, 124, 202, 132, 42, 69, 225, 26]),
|
|
||||||
"missing": new Uint8Array([255, 68, 123, 66, 61, 131, 254, 118, 131, 108, 50, 51, 114, 40, 181, 107, 91, 217, 191, 104, 213, 142, 125, 202, 75, 124, 202, 132, 42, 69, 225, 26])
|
|
||||||
},
|
|
||||||
"SHA-512": {
|
|
||||||
"normal": new Uint8Array([19, 62, 138, 127, 127, 244, 51, 105, 12, 200, 132, 50, 194, 163, 56, 194, 119, 229, 193, 55, 86, 255, 135, 143, 70, 117, 63, 230, 165, 100, 227, 229]),
|
|
||||||
"empty": new Uint8Array([222, 84, 247, 238, 200, 12, 156, 198, 109, 52, 159, 201, 135, 248, 13, 70, 29, 178, 239, 79, 244, 225, 133, 5, 210, 139, 216, 12, 180, 44, 125, 118]),
|
|
||||||
"missing": new Uint8Array([222, 84, 247, 238, 200, 12, 156, 198, 109, 52, 159, 201, 135, 248, 13, 70, 29, 178, 239, 79, 244, 225, 133, 5, 210, 139, 216, 12, 180, 44, 125, 118])
|
|
||||||
},
|
|
||||||
"SHA-1": {
|
|
||||||
"normal": new Uint8Array([173, 185, 60, 219, 206, 121, 183, 213, 17, 89, 182, 192, 19, 26, 43, 98, 242, 56, 40, 210, 106, 205, 104, 94, 52, 192, 101, 53, 230, 247, 116, 150]),
|
|
||||||
"empty": new Uint8Array([71, 113, 13, 42, 117, 7, 224, 90, 29, 220, 200, 122, 124, 47, 144, 97, 119, 162, 102, 239, 185, 230, 34, 81, 12, 204, 179, 113, 60, 208, 141, 88]),
|
|
||||||
"missing": new Uint8Array([71, 113, 13, 42, 117, 7, 224, 90, 29, 220, 200, 122, 124, 47, 144, 97, 119, 162, 102, 239, 185, 230, 34, 81, 12, 204, 179, 113, 60, 208, 141, 88])
|
|
||||||
},
|
|
||||||
"SHA-256": {
|
|
||||||
"normal": new Uint8Array([164, 1, 215, 201, 21, 138, 41, 229, 199, 25, 58, 185, 115, 15, 7, 72, 133, 28, 197, 186, 173, 180, 44, 173, 2, 75, 98, 144, 254, 33, 52, 54]),
|
|
||||||
"empty": new Uint8Array([180, 247, 231, 85, 118, 116, 213, 1, 203, 251, 192, 20, 138, 216, 0, 192, 117, 1, 137, 254, 41, 90, 42, 202, 94, 27, 244, 18, 44, 133, 237, 249]),
|
|
||||||
"missing": new Uint8Array([180, 247, 231, 85, 118, 116, 213, 1, 203, 251, 192, 20, 138, 216, 0, 192, 117, 1, 137, 254, 41, 90, 42, 202, 94, 27, 244, 18, 44, 133, 237, 249])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -206,67 +144,37 @@ function getTestData() {
|
||||||
"normal": {
|
"normal": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([106, 134, 50, 228, 134, 137, 157, 194, 100, 241, 161, 249, 32, 89, 63, 40, 128, 128, 78, 14, 26, 218, 207, 148, 235, 78, 213, 229, 248, 61, 13, 18]),
|
"normal": new Uint8Array([106, 134, 50, 228, 134, 137, 157, 194, 100, 241, 161, 249, 32, 89, 63, 40, 128, 128, 78, 14, 26, 218, 207, 148, 235, 78, 213, 229, 248, 61, 13, 18]),
|
||||||
"empty": new Uint8Array([234, 80, 18, 254, 181, 135, 81, 213, 188, 142, 182, 78, 13, 234, 205, 89, 126, 215, 16, 201, 243, 82, 88, 174, 107, 154, 8, 122, 237, 7, 37, 174]),
|
"empty": new Uint8Array([234, 80, 18, 254, 181, 135, 81, 213, 188, 142, 182, 78, 13, 234, 205, 89, 126, 215, 16, 201, 243, 82, 88, 174, 107, 154, 8, 122, 237, 7, 37, 174])
|
||||||
"missing": new Uint8Array([234, 80, 18, 254, 181, 135, 81, 213, 188, 142, 182, 78, 13, 234, 205, 89, 126, 215, 16, 201, 243, 82, 88, 174, 107, 154, 8, 122, 237, 7, 37, 174])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([199, 151, 225, 209, 242, 202, 183, 242, 138, 95, 67, 69, 92, 16, 89, 127, 148, 51, 133, 237, 251, 66, 140, 254, 43, 152, 190, 212, 169, 85, 215, 161]),
|
"normal": new Uint8Array([199, 151, 225, 209, 242, 202, 183, 242, 138, 95, 67, 69, 92, 16, 89, 127, 148, 51, 133, 237, 251, 66, 140, 254, 43, 152, 190, 212, 169, 85, 215, 161]),
|
||||||
"empty": new Uint8Array([224, 140, 220, 196, 197, 166, 170, 121, 157, 134, 188, 3, 169, 84, 117, 39, 110, 187, 128, 29, 154, 222, 1, 110, 20, 168, 250, 91, 100, 5, 22, 81]),
|
"empty": new Uint8Array([224, 140, 220, 196, 197, 166, 170, 121, 157, 134, 188, 3, 169, 84, 117, 39, 110, 187, 128, 29, 154, 222, 1, 110, 20, 168, 250, 91, 100, 5, 22, 81])
|
||||||
"missing": new Uint8Array([224, 140, 220, 196, 197, 166, 170, 121, 157, 134, 188, 3, 169, 84, 117, 39, 110, 187, 128, 29, 154, 222, 1, 110, 20, 168, 250, 91, 100, 5, 22, 81])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([171, 103, 158, 103, 188, 180, 48, 95, 238, 66, 239, 148, 14, 80, 156, 221, 212, 6, 227, 73, 143, 133, 116, 24, 169, 121, 171, 57, 207, 49, 95, 81]),
|
"normal": new Uint8Array([171, 103, 158, 103, 188, 180, 48, 95, 238, 66, 239, 148, 14, 80, 156, 221, 212, 6, 227, 73, 143, 133, 116, 24, 169, 121, 171, 57, 207, 49, 95, 81]),
|
||||||
"empty": new Uint8Array([254, 66, 33, 135, 24, 140, 134, 54, 211, 109, 170, 213, 142, 242, 132, 49, 164, 51, 191, 15, 239, 114, 209, 202, 231, 53, 160, 75, 219, 190, 185, 211]),
|
"empty": new Uint8Array([254, 66, 33, 135, 24, 140, 134, 54, 211, 109, 170, 213, 142, 242, 132, 49, 164, 51, 191, 15, 239, 114, 209, 202, 231, 53, 160, 75, 219, 190, 185, 211])
|
||||||
"missing": new Uint8Array([254, 66, 33, 135, 24, 140, 134, 54, 211, 109, 170, 213, 142, 242, 132, 49, 164, 51, 191, 15, 239, 114, 209, 202, 231, 53, 160, 75, 219, 190, 185, 211])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([223, 146, 185, 169, 250, 156, 1, 184, 152, 206, 234, 161, 49, 52, 131, 46, 49, 203, 28, 8, 29, 22, 165, 35, 92, 105, 216, 86, 81, 227, 23, 172]),
|
"normal": new Uint8Array([223, 146, 185, 169, 250, 156, 1, 184, 152, 206, 234, 161, 49, 52, 131, 46, 49, 203, 28, 8, 29, 22, 165, 35, 92, 105, 216, 86, 81, 227, 23, 172]),
|
||||||
"empty": new Uint8Array([230, 13, 67, 43, 6, 238, 136, 157, 250, 183, 41, 154, 32, 236, 35, 105, 117, 49, 209, 25, 252, 247, 102, 208, 152, 141, 10, 203, 12, 0, 199, 247]),
|
"empty": new Uint8Array([230, 13, 67, 43, 6, 238, 136, 157, 250, 183, 41, 154, 32, 236, 35, 105, 117, 49, 209, 25, 252, 247, 102, 208, 152, 141, 10, 203, 12, 0, 199, 247])
|
||||||
"missing": new Uint8Array([230, 13, 67, 43, 6, 238, 136, 157, 250, 183, 41, 154, 32, 236, 35, 105, 117, 49, 209, 25, 252, 247, 102, 208, 152, 141, 10, 203, 12, 0, 199, 247])
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"SHA-384": {
|
"SHA-384": {
|
||||||
"normal": new Uint8Array([234, 203, 157, 102, 112, 255, 59, 25, 4, 119, 154, 65, 145, 1, 177, 255, 170, 189, 109, 101, 16, 189, 80, 133, 104, 1, 116, 106, 135, 31, 123, 49]),
|
"normal": new Uint8Array([234, 203, 157, 102, 112, 255, 59, 25, 4, 119, 154, 65, 145, 1, 177, 255, 170, 189, 109, 101, 16, 189, 80, 133, 104, 1, 116, 106, 135, 31, 123, 49]),
|
||||||
"empty": new Uint8Array([71, 12, 198, 83, 135, 202, 74, 16, 199, 166, 138, 59, 81, 72, 200, 229, 19, 218, 166, 49, 1, 0, 7, 57, 196, 198, 101, 155, 134, 17, 136, 132]),
|
"empty": new Uint8Array([71, 12, 198, 83, 135, 202, 74, 16, 199, 166, 138, 59, 81, 72, 200, 229, 19, 218, 166, 49, 1, 0, 7, 57, 196, 198, 101, 155, 134, 17, 136, 132])
|
||||||
"missing": new Uint8Array([71, 12, 198, 83, 135, 202, 74, 16, 199, 166, 138, 59, 81, 72, 200, 229, 19, 218, 166, 49, 1, 0, 7, 57, 196, 198, 101, 155, 134, 17, 136, 132])
|
|
||||||
},
|
},
|
||||||
"SHA-512": {
|
"SHA-512": {
|
||||||
"normal": new Uint8Array([87, 3, 145, 116, 241, 111, 84, 24, 168, 104, 86, 218, 235, 119, 246, 157, 75, 77, 80, 0, 51, 75, 109, 209, 244, 244, 179, 231, 179, 220, 185, 211]),
|
"normal": new Uint8Array([87, 3, 145, 116, 241, 111, 84, 24, 168, 104, 86, 218, 235, 119, 246, 157, 75, 77, 80, 0, 51, 75, 109, 209, 244, 244, 179, 231, 179, 220, 185, 211]),
|
||||||
"empty": new Uint8Array([157, 115, 201, 142, 121, 30, 128, 235, 229, 180, 203, 69, 105, 58, 163, 47, 221, 68, 181, 250, 62, 218, 179, 236, 130, 249, 208, 244, 214, 105, 5, 226]),
|
"empty": new Uint8Array([157, 115, 201, 142, 121, 30, 128, 235, 229, 180, 203, 69, 105, 58, 163, 47, 221, 68, 181, 250, 62, 218, 179, 236, 130, 249, 208, 244, 214, 105, 5, 226])
|
||||||
"missing": new Uint8Array([157, 115, 201, 142, 121, 30, 128, 235, 229, 180, 203, 69, 105, 58, 163, 47, 221, 68, 181, 250, 62, 218, 179, 236, 130, 249, 208, 244, 214, 105, 5, 226])
|
|
||||||
},
|
},
|
||||||
"SHA-1": {
|
"SHA-1": {
|
||||||
"normal": new Uint8Array([161, 189, 216, 195, 50, 198, 70, 74, 75, 182, 162, 242, 49, 174, 201, 164, 68, 35, 126, 171, 224, 77, 47, 85, 242, 171, 37, 212, 12, 84, 235, 238]),
|
"normal": new Uint8Array([161, 189, 216, 195, 50, 198, 70, 74, 75, 182, 162, 242, 49, 174, 201, 164, 68, 35, 126, 171, 224, 77, 47, 85, 242, 171, 37, 212, 12, 84, 235, 238]),
|
||||||
"empty": new Uint8Array([136, 95, 192, 41, 179, 34, 75, 137, 110, 9, 224, 187, 229, 235, 52, 126, 197, 158, 104, 39, 200, 232, 87, 179, 148, 245, 79, 244, 155, 136, 168, 246]),
|
"empty": new Uint8Array([136, 95, 192, 41, 179, 34, 75, 137, 110, 9, 224, 187, 229, 235, 52, 126, 197, 158, 104, 39, 200, 232, 87, 179, 148, 245, 79, 244, 155, 136, 168, 246])
|
||||||
"missing": new Uint8Array([136, 95, 192, 41, 179, 34, 75, 137, 110, 9, 224, 187, 229, 235, 52, 126, 197, 158, 104, 39, 200, 232, 87, 179, 148, 245, 79, 244, 155, 136, 168, 246])
|
|
||||||
},
|
},
|
||||||
"SHA-256": {
|
"SHA-256": {
|
||||||
"normal": new Uint8Array([183, 184, 110, 66, 42, 209, 200, 165, 113, 253, 165, 40, 218, 22, 160, 102, 244, 36, 134, 221, 64, 86, 121, 47, 217, 51, 98, 8, 142, 93, 212, 194]),
|
"normal": new Uint8Array([183, 184, 110, 66, 42, 209, 200, 165, 113, 253, 165, 40, 218, 22, 160, 102, 244, 36, 134, 221, 64, 86, 121, 47, 217, 51, 98, 8, 142, 93, 212, 194]),
|
||||||
"empty": new Uint8Array([235, 112, 240, 29, 237, 233, 175, 175, 164, 73, 238, 225, 177, 40, 101, 4, 225, 246, 35, 136, 179, 247, 221, 79, 149, 102, 151, 176, 232, 40, 254, 24]),
|
"empty": new Uint8Array([235, 112, 240, 29, 237, 233, 175, 175, 164, 73, 238, 225, 177, 40, 101, 4, 225, 246, 35, 136, 179, 247, 221, 79, 149, 102, 151, 176, 232, 40, 254, 24])
|
||||||
"missing": new Uint8Array([235, 112, 240, 29, 237, 233, 175, 175, 164, 73, 238, 225, 177, 40, 101, 4, 225, 246, 35, 136, 179, 247, 221, 79, 149, 102, 151, 176, 232, 40, 254, 24])
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"missing": {
|
|
||||||
"SHA-384": {
|
|
||||||
"normal": new Uint8Array([234, 203, 157, 102, 112, 255, 59, 25, 4, 119, 154, 65, 145, 1, 177, 255, 170, 189, 109, 101, 16, 189, 80, 133, 104, 1, 116, 106, 135, 31, 123, 49]),
|
|
||||||
"empty": new Uint8Array([71, 12, 198, 83, 135, 202, 74, 16, 199, 166, 138, 59, 81, 72, 200, 229, 19, 218, 166, 49, 1, 0, 7, 57, 196, 198, 101, 155, 134, 17, 136, 132]),
|
|
||||||
"missing": new Uint8Array([71, 12, 198, 83, 135, 202, 74, 16, 199, 166, 138, 59, 81, 72, 200, 229, 19, 218, 166, 49, 1, 0, 7, 57, 196, 198, 101, 155, 134, 17, 136, 132])
|
|
||||||
},
|
|
||||||
"SHA-512": {
|
|
||||||
"normal": new Uint8Array([87, 3, 145, 116, 241, 111, 84, 24, 168, 104, 86, 218, 235, 119, 246, 157, 75, 77, 80, 0, 51, 75, 109, 209, 244, 244, 179, 231, 179, 220, 185, 211]),
|
|
||||||
"empty": new Uint8Array([157, 115, 201, 142, 121, 30, 128, 235, 229, 180, 203, 69, 105, 58, 163, 47, 221, 68, 181, 250, 62, 218, 179, 236, 130, 249, 208, 244, 214, 105, 5, 226]),
|
|
||||||
"missing": new Uint8Array([157, 115, 201, 142, 121, 30, 128, 235, 229, 180, 203, 69, 105, 58, 163, 47, 221, 68, 181, 250, 62, 218, 179, 236, 130, 249, 208, 244, 214, 105, 5, 226])
|
|
||||||
},
|
|
||||||
"SHA-1": {
|
|
||||||
"normal": new Uint8Array([161, 189, 216, 195, 50, 198, 70, 74, 75, 182, 162, 242, 49, 174, 201, 164, 68, 35, 126, 171, 224, 77, 47, 85, 242, 171, 37, 212, 12, 84, 235, 238]),
|
|
||||||
"empty": new Uint8Array([136, 95, 192, 41, 179, 34, 75, 137, 110, 9, 224, 187, 229, 235, 52, 126, 197, 158, 104, 39, 200, 232, 87, 179, 148, 245, 79, 244, 155, 136, 168, 246]),
|
|
||||||
"missing": new Uint8Array([136, 95, 192, 41, 179, 34, 75, 137, 110, 9, 224, 187, 229, 235, 52, 126, 197, 158, 104, 39, 200, 232, 87, 179, 148, 245, 79, 244, 155, 136, 168, 246])
|
|
||||||
},
|
|
||||||
"SHA-256": {
|
|
||||||
"normal": new Uint8Array([183, 184, 110, 66, 42, 209, 200, 165, 113, 253, 165, 40, 218, 22, 160, 102, 244, 36, 134, 221, 64, 86, 121, 47, 217, 51, 98, 8, 142, 93, 212, 194]),
|
|
||||||
"empty": new Uint8Array([235, 112, 240, 29, 237, 233, 175, 175, 164, 73, 238, 225, 177, 40, 101, 4, 225, 246, 35, 136, 179, 247, 221, 79, 149, 102, 151, 176, 232, 40, 254, 24]),
|
|
||||||
"missing": new Uint8Array([235, 112, 240, 29, 237, 233, 175, 175, 164, 73, 238, 225, 177, 40, 101, 4, 225, 246, 35, 136, 179, 247, 221, 79, 149, 102, 151, 176, 232, 40, 254, 24])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>XMLHttpRequest Test: event - error</title>
|
|
||||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
|
||||||
<meta name="assert" content="Check if event onerror is fired When the request has failed.">
|
|
||||||
<script src="/resources/testharness.js"></script>
|
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
|
||||||
|
|
||||||
<div id="log"></div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
async_test(function (t) {
|
|
||||||
var client = new XMLHttpRequest();
|
|
||||||
client.onerror = t.step_func(function(e) {
|
|
||||||
assert_true(e instanceof ProgressEvent);
|
|
||||||
assert_equals(e.type, "error");
|
|
||||||
t.done();
|
|
||||||
});
|
|
||||||
|
|
||||||
client.open("GET", "http://nonexistent-origin.{{host}}:{{ports[http][0]}}");
|
|
||||||
client.send("null");
|
|
||||||
}, document.title);
|
|
||||||
|
|
||||||
</script>
|
|
|
@ -11,7 +11,7 @@
|
||||||
<script>
|
<script>
|
||||||
test(function() {
|
test(function() {
|
||||||
var client = new XMLHttpRequest()
|
var client = new XMLHttpRequest()
|
||||||
client.open("POST", "resources/inspect-headers.py?filter_value=t1, t2, t3", false)
|
client.open("POST", "resources/inspect-headers.py?filter_value=t1,t2,t3", false)
|
||||||
client.setRequestHeader("x-test", "t1")
|
client.setRequestHeader("x-test", "t1")
|
||||||
client.setRequestHeader("X-TEST", "t2")
|
client.setRequestHeader("X-TEST", "t2")
|
||||||
client.setRequestHeader("X-teST", "t3")
|
client.setRequestHeader("X-teST", "t3")
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<title>XMLHttpRequest: setRequestHeader() - headers that are allowed</title>
|
<title>XMLHttpRequest: setRequestHeader() - headers that are allowed</title>
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="/following::ol/li[6] /following::ol/li[7]" />
|
<link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="/following::ol/li[6] /following::ol/li[7]" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="log"></div>
|
<div id="log"></div>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
function request(header) {
|
function request(header) {
|
||||||
test(function() {
|
test(function() {
|
||||||
var client = new XMLHttpRequest()
|
var client = new XMLHttpRequest()
|
||||||
client.open("POST", "resources/inspect-headers.py?filter_value=t1, t2", false)
|
client.open("POST", "resources/inspect-headers.py?filter_value=t1,t2", false)
|
||||||
client.setRequestHeader(header, "t1")
|
client.setRequestHeader(header, "t1")
|
||||||
client.setRequestHeader(header, "t2")
|
client.setRequestHeader(header, "t2")
|
||||||
client.send(null)
|
client.send(null)
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>AmbientLightSensor Test: Sensor readings must only be available in the top-level browsing context</title>
|
||||||
|
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/ambient-light/">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div id="log"></div>
|
||||||
|
<iframe src="support-iframe.html" id="frame" style="display:none">
|
||||||
|
</iframe>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
async_test(function (t) {
|
||||||
|
document.getElementById('frame').onload = t.step_func_done(function(event) {
|
||||||
|
var iframe = document.getElementById('frame').contentWindow;
|
||||||
|
let reading = iframe.document.getElementById('reading').value;
|
||||||
|
assert_equals(reading, "null");
|
||||||
|
});
|
||||||
|
}, "sensor readings can not be fired within iframes");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
let sensor = new AmbientLightSensor();
|
||||||
|
sensor.start();
|
||||||
|
var win = window.open('', '_blank');
|
||||||
|
let reading = String(sensor.reading);
|
||||||
|
win.close();
|
||||||
|
sensor.stop();
|
||||||
|
assert_equals(reading, "null");
|
||||||
|
}, "sensor readings can not be fired on the background tab");
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,36 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>AmbientLightSensor Test: onchange</title>
|
||||||
|
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/ambient-light/">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
|
||||||
|
<h2>Description</h2>
|
||||||
|
<p>
|
||||||
|
This test validates that the "onchange" event can be invoked when changing the ambient light illuminance of the device.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Precondition</h2>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
Change the ambient light illuminance of the device.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
async_test(function(t) {
|
||||||
|
let sensor = new AmbientLightSensor();
|
||||||
|
sensor.start();
|
||||||
|
|
||||||
|
sensor.onchange = t.step_func_done(function(event) {
|
||||||
|
sensor.stop();
|
||||||
|
});
|
||||||
|
|
||||||
|
sensor.onerror = t.step_func_done(function(event) {
|
||||||
|
assert_unreached(event.error.name + ":" + event.error.message);
|
||||||
|
});
|
||||||
|
}, "event change fired");
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,39 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>AmbientLightSensor Test: onstatechange</title>
|
||||||
|
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/ambient-light/">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div id="log"></div>
|
||||||
|
<script>
|
||||||
|
var sensor;
|
||||||
|
setup(function() {
|
||||||
|
sensor = new AmbientLightSensor();
|
||||||
|
});
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(sensor.state, "idle");
|
||||||
|
}, "The default sensor.state is 'idle'.");
|
||||||
|
|
||||||
|
async_test(function(t) {
|
||||||
|
sensor.onstatechange = t.step_func_done(function(event) {
|
||||||
|
assert_equals(sensor.state, "activating");
|
||||||
|
});
|
||||||
|
sensor.onerror = t.step_func_done(function(event) {
|
||||||
|
assert_unreached(event.error.name + ":" + event.error.message);
|
||||||
|
});
|
||||||
|
sensor.start();
|
||||||
|
}, "The sensor.state changes to 'activating' after sensor.start().");
|
||||||
|
|
||||||
|
async_test(function(t) {
|
||||||
|
sensor.onstatechange = t.step_func_done(function(event) {
|
||||||
|
assert_equals(sensor.state, "idle");
|
||||||
|
});
|
||||||
|
sensor.onerror = t.step_func_done(function(event) {
|
||||||
|
assert_unreached(event.error.name + ":" + event.error.message);
|
||||||
|
});
|
||||||
|
sensor.stop();
|
||||||
|
}, "The sensor.state changes to 'idle' after sensor.stop().");
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>AmbientLightSensor Test: start()</title>
|
||||||
|
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/ambient-light/">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div id="log"></div>
|
||||||
|
<script>
|
||||||
|
var sensor, start_return;
|
||||||
|
|
||||||
|
setup(function() {
|
||||||
|
sensor = new AmbientLightSensor();
|
||||||
|
start_return = sensor.start();
|
||||||
|
});
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(String(sensor.reading), "[object AmbientLightSensorReading]");
|
||||||
|
}, "the sensor.reading is AmbientLightSensorReading after executing start() method");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_throws("InvalidStateError", function() { sensor.start(); }, "start() twice");
|
||||||
|
}, "throw an InvalidStateError exception when state is neither idle nor errored");
|
||||||
|
|
||||||
|
//TODO: The permission is not ready.
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(start_return, undefined);
|
||||||
|
}, "the sensor.start() return undefined");
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>AmbientLightSensor Test: stop()</title>
|
||||||
|
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/ambient-light/">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<div id="log"></div>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var sensor, stop_return;
|
||||||
|
setup(function() {
|
||||||
|
sensor = new AmbientLightSensor();
|
||||||
|
sensor.start();
|
||||||
|
stop_return = sensor.stop();
|
||||||
|
});
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(String(sensor.reading), "null");
|
||||||
|
}, "the sensor.reading is null after executing stop() method");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_throws("InvalidStateError", function() { sensor.stop(); }, "stop() twice");
|
||||||
|
}, "throw an InvalidStateError exception when state is either idle or errored");
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(stop_return, undefined);
|
||||||
|
}, "the sensor.stop() returns undefined");
|
||||||
|
|
||||||
|
</script>
|
|
@ -98,7 +98,7 @@ dictionary AmbientLightSensorReadingInit {
|
||||||
idl_array.add_objects({
|
idl_array.add_objects({
|
||||||
AmbientLightSensor: ['new AmbientLightSensor();'],
|
AmbientLightSensor: ['new AmbientLightSensor();'],
|
||||||
AmbientLightSensorReading: ['new AmbientLightSensorReading({ illuminance: 750 });'],
|
AmbientLightSensorReading: ['new AmbientLightSensorReading({ illuminance: 750 });'],
|
||||||
SensorReadingEvent: ['new SensorReadingEvent({ reading: new AmbientLightSensorReading({ illuminance: 750 }) });']
|
SensorReadingEvent: ['new SensorReadingEvent("reading", { reading: new AmbientLightSensorReading({ illuminance: 750 }) });']
|
||||||
});
|
});
|
||||||
|
|
||||||
idl_array.test();
|
idl_array.test();
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<input type="text" id="reading" />
|
||||||
|
<script>
|
||||||
|
|
||||||
|
let sensor = new AmbientLightSensor();
|
||||||
|
sensor.start();
|
||||||
|
document.getElementById("reading").value = String(sensor.reading);
|
||||||
|
sensor.stop();
|
||||||
|
|
||||||
|
</script>
|
|
@ -5,7 +5,7 @@
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
"errorMessage": "ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.",
|
"errorMessage": "ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.",
|
||||||
"title": "Annotation has **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
"title": "Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
||||||
"description": "True when the Annotation has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 3.1)",
|
"description": "True when the Annotation has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 3.1)",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [ "@context" ],
|
"required": [ "@context" ],
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
"errorMessage": "ERROR: Annotation is missing id key or its value is not a single string of format uri.",
|
"errorMessage": "ERROR: Annotation is missing id key or its value is not a single string of format uri.",
|
||||||
"title": "Annotation has **_id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
"title": "Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
||||||
"description": "True when the Annotation has a single id that is a string of format uri (Section 3.1)",
|
"description": "True when the Annotation has a single id that is a string of format uri (Section 3.1)",
|
||||||
"$ref": "id.json#/definitions/idValueFound"
|
"$ref": "id.json#/definitions/idValueFound"
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
"errorMessage": "ERROR: Annotation is missing type key or 'Annotation' is not a value of type.",
|
"errorMessage": "ERROR: Annotation is missing type key or 'Annotation' is not a value of type.",
|
||||||
"title": "Annotation has **_type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
"title": "Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
||||||
"allOf": [
|
"allOf": [
|
||||||
{ "$ref": "annotations.json#/definitions/annotationTypeValueFound"}
|
{ "$ref": "annotations.json#/definitions/annotationTypeValueFound"}
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
"errorMessage": "Error: Annotation is missing target key.",
|
"errorMessage": "Error: Annotation is missing target key.",
|
||||||
"title": "Annotation has a **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
"title": "Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
|
||||||
"description": "True when the Annotation has a target key (Section 3.1)",
|
"description": "True when the Annotation has a target key (Section 3.1)",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": ["target" ]
|
"required": ["target" ]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
"errorMessage": "ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.",
|
"errorMessage": "ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.",
|
||||||
"title": "If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)",
|
"title": "If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)",
|
||||||
"description": "True when all Body(ies) are one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource (Sections 3.2, Section 4)",
|
"description": "True when all Bodies are one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource (Sections 3.2, Section 4)",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties":
|
"properties":
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
"id": "3.3.1-annotationCreatedImplemented.json",
|
"id": "3.3.1-annotationCreatedImplemented.json",
|
||||||
"assertionType": "may",
|
"assertionType": "should",
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "passAndContinue",
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
"errorMessage": "Valid Annotation-level created key not found. Annotation may have zero or exactly one created key value.",
|
"errorMessage": "Valid Annotation-level created key not found. Annotation should have exactly one created key value.",
|
||||||
"title": "Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
|
"title": "Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
|
||||||
"description": "True when the Annotation implements exactly one created key value (Section 3.3.1)",
|
"description": "True when the Annotation implements exactly one created key value (Section 3.3.1)",
|
||||||
"allOf":
|
"allOf":
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
"id": "3.3.7-annotationviaValidated.json",
|
"id": "3.3.7-annotationViaValidated.json",
|
||||||
"assertionType": "must",
|
"assertionType": "must",
|
||||||
"expectedResult": "valid",
|
"expectedResult": "valid",
|
||||||
"onUnexpectedResult" : "failAndContinue",
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
|
|
||||||
"name": "Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents",
|
|
||||||
"description": "Agents (Creators, Generators) involved in an Annotation: <ul> <li>Should include certain properties (keys)</li> <li>May include additional keys</li> <li>should have Agent key values that conform to model recommended constraints</li> </ul> Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.",
|
|
||||||
"testType": "manual",
|
|
||||||
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
|
|
||||||
"assertions": [
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentIdImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentIdImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentTypeImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentTypeImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentNicknameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentNicknameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentSingleNameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentSingleNameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentNameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentNameImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentEmailImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentEmailImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentEmail_sha1Implemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentEmail_sha1Implemented.json",
|
|
||||||
"annotations/3.3.2-annotationCreatorAgentHomepageImplemented.json",
|
|
||||||
"annotations/3.3.2-annotationGeneratorAgentHomepageImplemented.json"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,7 +1,8 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Annotation has all required keys and all annotation keys used meet required value constraints</title>
|
<title>A single ANNOTATION has all required keys and all annotation keys used meet required value constraints</title>
|
||||||
|
<link rel="stylesheet" href="/resources/testharness.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
||||||
|
@ -11,26 +12,12 @@
|
||||||
setup({explicit_timeout: true, explicit_done: true });
|
setup({explicit_timeout: true, explicit_done: true });
|
||||||
|
|
||||||
var theDefinitions=[
|
var theDefinitions=[
|
||||||
"definitions/compositeDetected.json",
|
|
||||||
"definitions/processingLanguageDetected.json",
|
|
||||||
"definitions/textDirectionDetected.json",
|
|
||||||
"definitions/independentsDetected.json",
|
|
||||||
"definitions/specificResource.json",
|
"definitions/specificResource.json",
|
||||||
"definitions/stringUri.json",
|
|
||||||
"definitions/choiceSet.json",
|
"definitions/choiceSet.json",
|
||||||
"definitions/bodyTarget.json",
|
"definitions/bodyTarget.json",
|
||||||
"definitions/listDetected.json",
|
|
||||||
"definitions/formatDetected.json",
|
|
||||||
"definitions/annotations.json",
|
"definitions/annotations.json",
|
||||||
"definitions/otherProperties.json",
|
"definitions/otherProperties.json",
|
||||||
"definitions/choiceDetected.json",
|
"definitions/id.json"
|
||||||
"definitions/externalWebResource.json",
|
|
||||||
"definitions/externalWebResourceDetected.json",
|
|
||||||
"definitions/languageDetected.json",
|
|
||||||
"definitions/textualBody.json",
|
|
||||||
"definitions/id.json",
|
|
||||||
"definitions/itemsDetected.json",
|
|
||||||
"definitions/specificResourceDetected.json"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var theTestFile="annotationMusts.test";
|
var theTestFile="annotationMusts.test";
|
||||||
|
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
|
||||||
<p>Fill the textarea below with JSON output from your annotation client
|
<p>Fill the textarea below with JSON output from your annotation client
|
||||||
implementation that supports the following criteria:</p>
|
implementation that supports the following criteria:</p>
|
||||||
<div id="testDescription"></div>
|
<div id="testDescription"></div>
|
||||||
<p>Specifically, the following assertions will be evaluated:</p>
|
|
||||||
<div id="assertion"></div>
|
|
||||||
<form name="annotation" id="annotation">
|
<form name="annotation" id="annotation">
|
||||||
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
||||||
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
||||||
<input style="display: none" type="button" id="annotation-close"
|
<input style="display: none" type="button" id="annotation-close"
|
||||||
name="Close" value="Close"></p>
|
name="Close" value="Close"></p>
|
||||||
</form>
|
</form>
|
||||||
|
<p>Specifically, the following assertions will be evaluated:</p>
|
||||||
|
<div id="assertion"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
|
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
|
||||||
"name": "Annotation has all required keys and all annotation keys used meet required value constraints",
|
"name": "A single ANNOTATION has all required keys and all annotation keys used meet required value constraints",
|
||||||
"description": "Web Annotations: <ul> <li>MUST include certain properties (keys)</li> <li>MUST NOT have both body and bodyValue keys simultaneously</li> <li>MUST satisfy model constraints on values of required and any optional Annotation keys used</li> </ul> Note: Optional Annotation keys, optional constraints on key values, and optional and required details of body(ies) and target(s) checked by other tests.",
|
"description": "Web Annotations: <ul> <li>MUST include certain properties (keys)</li> <li>MUST NOT have both body and bodyValue keys simultaneously</li> <li>MUST satisfy model constraints on values of required and any optional Annotation keys used</li> </ul> Note: Implementation of optional Annotation keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation checked by other tests.",
|
||||||
"testType": "manual",
|
"testType": "manual",
|
||||||
"ref": "https://www.w3.org/TR/annotation-model/#annotations",
|
"ref": "https://www.w3.org/TR/annotation-model/",
|
||||||
"assertions": [
|
"assertions": [
|
||||||
"annotations/3.1-annotationContextValidated.json",
|
"annotations/3.1-annotationContextValidated.json",
|
||||||
"annotations/3.1-annotationIdValidated.json",
|
"annotations/3.1-annotationIdValidated.json",
|
||||||
|
@ -18,6 +18,46 @@
|
||||||
"annotations/3.3.1-annotationGeneratedValidated.json",
|
"annotations/3.3.1-annotationGeneratedValidated.json",
|
||||||
"annotations/3.3.6-annotationRightsValidated.json",
|
"annotations/3.3.6-annotationRightsValidated.json",
|
||||||
"annotations/3.3.7-annotationCanonicalValidated.json",
|
"annotations/3.3.7-annotationCanonicalValidated.json",
|
||||||
"annotations/3.3.7-annotationViaValidated.json"
|
"annotations/3.3.7-annotationViaValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyTextDirectionValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodyCreatedValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodyModifiedValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.6-bodyRightsValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-bodyCanonicalValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-bodyViaValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-bodyEWRNoItems.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-bodyEWRNoPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-bodyChoiceSetNoValue.json",
|
||||||
|
"annotations/bodiesTargets/4-bodyChoiceSetNoSource.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-bodyChoiceSetNoPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-bodyEmbeddedTextualNoItems.json",
|
||||||
|
"annotations/bodiesTargets/4-bodyEmbeddedTextualNoSource.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-bodySpecificResourceNoItems.json",
|
||||||
|
"annotations/bodiesTargets/4-bodySpecificResourceNoValue.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targTextDirectionValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targCreatedValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targModifiedValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.6-targRightsValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-targCanonicalValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-targViaValidated.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-targEWRNoItems.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-targEWRNoPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-targChoiceSetNoValue.json",
|
||||||
|
"annotations/bodiesTargets/4-targChoiceSetNoSource.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-targChoiceSetNoPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-targSpecificResourceNoItems.json",
|
||||||
|
"annotations/bodiesTargets/4-targSpecificResourceNoValue.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json",
|
||||||
|
"annotations/specificResource/4.2-selectorValidIfPresent.json",
|
||||||
|
"annotations/specificResource/4.3-stateValidIfPresent.json",
|
||||||
|
"annotations/specificResource/4.3.3-refinedByValidated.json",
|
||||||
|
"annotations/specificResource/4.4-styleClassValidIfPresent.json",
|
||||||
|
"annotations/specificResource/4.2-fragmentCssXPathSelectorValid.json",
|
||||||
|
"annotations/specificResource/4.2.4-textQuoteSelectorValid.json",
|
||||||
|
"annotations/specificResource/4.2-TextDataPositionSelectorValid.json",
|
||||||
|
"annotations/specificResource/4.2.7-svgSelectorValid.json",
|
||||||
|
"annotations/specificResource/4.2.8-rangeSelectorValid.json",
|
||||||
|
"annotations/specificResource/4.3.1-timeStateValid.json",
|
||||||
|
"annotations/specificResource/4.3.2-httpRequestStateValid.json"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Annotation implements optional keys and meets optional key value constraints</title>
|
<title>Annotation implements optional keys and meets optional key value constraints</title>
|
||||||
|
<link rel="stylesheet" href="/resources/testharness.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
||||||
|
@ -11,26 +12,12 @@
|
||||||
setup({explicit_timeout: true, explicit_done: true });
|
setup({explicit_timeout: true, explicit_done: true });
|
||||||
|
|
||||||
var theDefinitions=[
|
var theDefinitions=[
|
||||||
"definitions/compositeDetected.json",
|
|
||||||
"definitions/processingLanguageDetected.json",
|
|
||||||
"definitions/textDirectionDetected.json",
|
|
||||||
"definitions/independentsDetected.json",
|
|
||||||
"definitions/specificResource.json",
|
"definitions/specificResource.json",
|
||||||
"definitions/stringUri.json",
|
|
||||||
"definitions/choiceSet.json",
|
"definitions/choiceSet.json",
|
||||||
"definitions/bodyTarget.json",
|
"definitions/bodyTarget.json",
|
||||||
"definitions/listDetected.json",
|
|
||||||
"definitions/formatDetected.json",
|
|
||||||
"definitions/annotations.json",
|
"definitions/annotations.json",
|
||||||
"definitions/otherProperties.json",
|
"definitions/otherProperties.json",
|
||||||
"definitions/choiceDetected.json",
|
"definitions/id.json"
|
||||||
"definitions/externalWebResource.json",
|
|
||||||
"definitions/externalWebResourceDetected.json",
|
|
||||||
"definitions/languageDetected.json",
|
|
||||||
"definitions/textualBody.json",
|
|
||||||
"definitions/id.json",
|
|
||||||
"definitions/itemsDetected.json",
|
|
||||||
"definitions/specificResourceDetected.json"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var theTestFile="annotationOptionals.test";
|
var theTestFile="annotationOptionals.test";
|
||||||
|
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
|
||||||
<p>Fill the textarea below with JSON output from your annotation client
|
<p>Fill the textarea below with JSON output from your annotation client
|
||||||
implementation that supports the following criteria:</p>
|
implementation that supports the following criteria:</p>
|
||||||
<div id="testDescription"></div>
|
<div id="testDescription"></div>
|
||||||
<p>Specifically, the following assertions will be evaluated:</p>
|
|
||||||
<div id="assertion"></div>
|
|
||||||
<form name="annotation" id="annotation">
|
<form name="annotation" id="annotation">
|
||||||
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
||||||
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
||||||
<input style="display: none" type="button" id="annotation-close"
|
<input style="display: none" type="button" id="annotation-close"
|
||||||
name="Close" value="Close"></p>
|
name="Close" value="Close"></p>
|
||||||
</form>
|
</form>
|
||||||
|
<p>Specifically, the following assertions will be evaluated:</p>
|
||||||
|
<div id="assertion"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -5,13 +5,10 @@
|
||||||
"testType": "manual",
|
"testType": "manual",
|
||||||
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
|
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
|
||||||
"assertions": [
|
"assertions": [
|
||||||
"annotations/3.1-bodyKeyFound.json",
|
|
||||||
"annotations/3.3.1-annotationSingleCreatorImplemented.json",
|
"annotations/3.3.1-annotationSingleCreatorImplemented.json",
|
||||||
"annotations/3.3.1-annotationCreatedImplemented.json",
|
"annotations/3.3.1-annotationCreatedImplemented.json",
|
||||||
"annotations/3.3.5-annotationSingleMotivationImplemented.json",
|
"annotations/3.3.5-annotationSingleMotivationImplemented.json",
|
||||||
"annotations/3.2.5-bodyValueImplemented.json",
|
"annotations/3.2.5-bodyValueImplemented.json",
|
||||||
"annotations/3.3.1-annotationCreatorImplemented.json",
|
|
||||||
"annotations/3.3.1-annotationGeneratorImplemented.json",
|
|
||||||
"annotations/3.3.1-annotationGeneratedImplemented.json",
|
"annotations/3.3.1-annotationGeneratedImplemented.json",
|
||||||
"annotations/3.3.1-annotationModifiedImplemented.json",
|
"annotations/3.3.1-annotationModifiedImplemented.json",
|
||||||
"annotations/3.3.3-annotationAudienceImplemented.json",
|
"annotations/3.3.3-annotationAudienceImplemented.json",
|
||||||
|
@ -19,7 +16,76 @@
|
||||||
"annotations/3.3.6-annotationRightsImplemented.json",
|
"annotations/3.3.6-annotationRightsImplemented.json",
|
||||||
"annotations/3.3.7-annotationCanonicalImplemented.json",
|
"annotations/3.3.7-annotationCanonicalImplemented.json",
|
||||||
"annotations/3.3.7-annotationViaImplemented.json",
|
"annotations/3.3.7-annotationViaImplemented.json",
|
||||||
"annotations/4.4-annotationStylesheetImplemented.json"
|
"annotations/4.4-annotationStylesheetImplemented.json",
|
||||||
|
"annotations/3.1-bodyKeyFound.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodySingleFormat.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodySingleLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodySingleCreator.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodyCreated.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyFormat.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.2.2-bodyType.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyProcessingLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyTextDirection.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodyModified.json",
|
||||||
|
"annotations/bodiesTargets/3.3.3-bodyAudience.json",
|
||||||
|
"annotations/bodiesTargets/3.3.4-bodyAccessibility.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-bodyPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.3.6-bodyRights.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-bodyCanonical.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-bodyVia.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-bodyEWR.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-bodyETB.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-bodyETBTypeTextualBody.json",
|
||||||
|
"annotations/bodiesTargets/3.2.4-bodyETBTypeText.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-bodyChoiceSet.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-bodyChoice.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-bodyList.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-bodyComposite.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-bodyIndependents.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targSingleFormat.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targSingleLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targSingleCreator.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targCreated.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targFormat.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.2.2-targType.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targProcessingLanguage.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targTextDirection.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targModified.json",
|
||||||
|
"annotations/bodiesTargets/3.3.3-targAudience.json",
|
||||||
|
"annotations/bodiesTargets/3.3.4-targAccessibility.json",
|
||||||
|
"annotations/bodiesTargets/3.3.5-targPurpose.json",
|
||||||
|
"annotations/bodiesTargets/3.3.6-targRights.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-targCanonical.json",
|
||||||
|
"annotations/bodiesTargets/3.3.7-targVia.json",
|
||||||
|
"annotations/bodiesTargets/3.2.1-targEWR.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-targChoiceSet.json",
|
||||||
|
"annotations/bodiesTargets/3.2.7-targChoice.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-targList.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-targComposite.json",
|
||||||
|
"annotations/bodiesTargets/3.2.8-targIndependents.json",
|
||||||
|
"annotations/bodiesTargets/4-bodySpecificResource.json",
|
||||||
|
"annotations/bodiesTargets/4-targSpecificResource.json",
|
||||||
|
"annotations/specificResource/4.3.3-refinedBy.json",
|
||||||
|
"annotations/specificResource/4.4-styleClass.json",
|
||||||
|
"annotations/specificResource/4.5-renderedVia.json",
|
||||||
|
"annotations/specificResource/4.6-scope.json",
|
||||||
|
"annotations/specificResource/4.2-selectorFound.json",
|
||||||
|
"annotations/specificResource/4.2.1-fragmentSelector.json",
|
||||||
|
"annotations/specificResource/4.2.1-conformsTo.json",
|
||||||
|
"annotations/specificResource/4.2.2-cssSelector.json",
|
||||||
|
"annotations/specificResource/4.2.3-xpathSelector.json",
|
||||||
|
"annotations/specificResource/4.2.4-textQuoteSelector.json",
|
||||||
|
"annotations/specificResource/4.2.4-prefix.json",
|
||||||
|
"annotations/specificResource/4.2.4-suffix.json",
|
||||||
|
"annotations/specificResource/4.2.5-textPositionSelector.json",
|
||||||
|
"annotations/specificResource/4.2.6-dataPositionSelector.json",
|
||||||
|
"annotations/specificResource/4.2.7-svgSelector.json",
|
||||||
|
"annotations/specificResource/4.2.8-rangeSelector.json",
|
||||||
|
"annotations/specificResource/4.3-stateFound.json",
|
||||||
|
"annotations/specificResource/4.3.1-timeState.json",
|
||||||
|
"annotations/specificResource/4.3.2-requestHeaderState.json",
|
||||||
|
"annotations/specificResource/4.3.1-cached.json"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents</title>
|
<title>Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents</title>
|
||||||
|
<link rel="stylesheet" href="/resources/testharness.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
<script src="/annotation-model/scripts/ajv.min.js"></script>
|
||||||
|
@ -11,29 +12,15 @@
|
||||||
setup({explicit_timeout: true, explicit_done: true });
|
setup({explicit_timeout: true, explicit_done: true });
|
||||||
|
|
||||||
var theDefinitions=[
|
var theDefinitions=[
|
||||||
"definitions/compositeDetected.json",
|
|
||||||
"definitions/processingLanguageDetected.json",
|
|
||||||
"definitions/textDirectionDetected.json",
|
|
||||||
"definitions/independentsDetected.json",
|
|
||||||
"definitions/specificResource.json",
|
"definitions/specificResource.json",
|
||||||
"definitions/stringUri.json",
|
|
||||||
"definitions/choiceSet.json",
|
"definitions/choiceSet.json",
|
||||||
"definitions/bodyTarget.json",
|
"definitions/bodyTarget.json",
|
||||||
"definitions/listDetected.json",
|
|
||||||
"definitions/formatDetected.json",
|
|
||||||
"definitions/annotations.json",
|
"definitions/annotations.json",
|
||||||
"definitions/otherProperties.json",
|
"definitions/otherProperties.json",
|
||||||
"definitions/choiceDetected.json",
|
"definitions/id.json"
|
||||||
"definitions/externalWebResource.json",
|
|
||||||
"definitions/externalWebResourceDetected.json",
|
|
||||||
"definitions/languageDetected.json",
|
|
||||||
"definitions/textualBody.json",
|
|
||||||
"definitions/id.json",
|
|
||||||
"definitions/itemsDetected.json",
|
|
||||||
"definitions/specificResourceDetected.json"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var theTestFile="annotationAgentOptionals.test";
|
var theTestFile="annotationsAgentOptionals.test";
|
||||||
|
|
||||||
var runningTest = new JSONtest( {
|
var runningTest = new JSONtest( {
|
||||||
"testInput" : "annotation-input",
|
"testInput" : "annotation-input",
|
||||||
|
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
|
||||||
<p>Fill the textarea below with JSON output from your annotation client
|
<p>Fill the textarea below with JSON output from your annotation client
|
||||||
implementation that supports the following criteria:</p>
|
implementation that supports the following criteria:</p>
|
||||||
<div id="testDescription"></div>
|
<div id="testDescription"></div>
|
||||||
<p>Specifically, the following assertions will be evaluated:</p>
|
|
||||||
<div id="assertion"></div>
|
|
||||||
<form name="annotation" id="annotation">
|
<form name="annotation" id="annotation">
|
||||||
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
|
||||||
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
|
||||||
<input style="display: none" type="button" id="annotation-close"
|
<input style="display: none" type="button" id="annotation-close"
|
||||||
name="Close" value="Close"></p>
|
name="Close" value="Close"></p>
|
||||||
</form>
|
</form>
|
||||||
|
<p>Specifically, the following assertions will be evaluated:</p>
|
||||||
|
<div id="assertion"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
|
||||||
|
"name": "Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents",
|
||||||
|
"description": "Agents (Creators, Generators) involved in an Annotation: <ul> <li>Should include certain properties (keys)</li> <li>May include additional keys</li> <li>should have Agent key values that conform to model recommended constraints</li> </ul> Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.",
|
||||||
|
"testType": "manual",
|
||||||
|
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
|
||||||
|
"assertions":
|
||||||
|
[
|
||||||
|
"annotations/3.3.1-annotationCreatorImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentIdImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentTypeImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentNicknameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentSingleNameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentNameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentEmailImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentEmail_sha1Implemented.json",
|
||||||
|
"annotations/3.3.2-annotationCreatorAgentHomepageImplemented.json",
|
||||||
|
"annotations/3.3.1-annotationGeneratorImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentIdImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentTypeImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentNicknameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentSingleNameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentNameImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentEmailImplemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentEmail_sha1Implemented.json",
|
||||||
|
"annotations/3.3.2-annotationGeneratorAgentHomepageImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-bodyCreator.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentIdImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentTypeImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentNicknameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentSingleNameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentNameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentEmailImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentEmail_sha1Implemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentHomepageImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.1-targCreator.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentIdImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentTypeImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentNicknameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentSingleNameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentNameImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentEmailImplemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentEmail_sha1Implemented.json",
|
||||||
|
"annotations/bodiesTargets/3.3.2-targCreatorAgentHomepageImplemented.json"
|
||||||
|
]
|
||||||
|
}
|
0
tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/.gitignore
vendored
Normal file
0
tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/.gitignore
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyEWR.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "An External Web Resource body may be used as an Annotation Body.",
|
||||||
|
"title": "Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more External Web Resources as Annotation body(ies). (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" } } } },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" } } } },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemEwrDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrDetected" } } } }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyFormat.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a body may include format key with one or more values that are each a media type.",
|
||||||
|
"title": "Implements **body _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more bodies, one or more of which include format key with one or more values that are each a media type. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyLanguage.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a body may include language key with one or more values that are each a language code.",
|
||||||
|
"title": "Implements **body _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more bodies, one or more of which include language key with one or more values that are each a language code. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyProcessingLanguage.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Body may include processingLanguage key with a single value that is a language code.",
|
||||||
|
"title": "Implements **body _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more Bodies, one or more of which include single processingLanguage key with a language code as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodySingleFormat.json",
|
||||||
|
"assertionType": "should",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Body should include format key with a single value that is a media type.",
|
||||||
|
"title": "Implements **body _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more bodies, one or more of which include single format key with a media type as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["body"]
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodySingleLanguage.json",
|
||||||
|
"assertionType": "should",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Body should include language key with a single value that is a language code.",
|
||||||
|
"title": "Implements **body _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or moreBodies, one or more of which include single language key with a language code as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyTextDirection.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Body may include textDirection key with a single value that is one of ltr, rtl, or auto.",
|
||||||
|
"title": "Implements **body _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more Bodies, one or more of which include single textDirection key with one of ltr, rtl, or auto as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-bodyTextDirectionValidated.json",
|
||||||
|
"assertionType": "must",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
|
"errorMessage": "ERROR: A body or body/source has multiple textDirection key values for a body or source, or a single textDirection key with a value that is not one of ltr, rtl, auto.",
|
||||||
|
"title": "If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)",
|
||||||
|
"description": "True when no body-level or body/source-level (SR body) textDirection key present or when all textDirection keys have a single value that is one of ltr, rtl, auto (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
|
||||||
|
{ "allOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
|
||||||
|
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "array",
|
||||||
|
"minItems": 1,
|
||||||
|
"items":
|
||||||
|
{
|
||||||
|
"oneOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
|
||||||
|
{ "allOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
|
||||||
|
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targEWR.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "An External Web Resource target may be used as an Annotation Target.",
|
||||||
|
"title": "Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more External Web Resources as Annotation target(ies). (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" } } } },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" } } } },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemEwrDetected" },
|
||||||
|
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrDetected" } } } }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targFormat.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a target may include format key with one or more values that are each a media type.",
|
||||||
|
"title": "Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more targets, one or more of which include format key with one or more values that are each a media type. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targLanguage.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a target may include language key with one or more values that are each a language code.",
|
||||||
|
"title": "Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more targets, one or more of which include language key with one or more values that are each a language code. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targProcessingLanguage.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Target may include processingLanguage key with a single value that is a language code.",
|
||||||
|
"title": "Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more Targets, one or more of which include single processingLanguage key with a language code as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targSingleFormat.json",
|
||||||
|
"assertionType": "should",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Target should include format key with a single value that is a media type.",
|
||||||
|
"title": "Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more targets, one or more of which include single format key with a media type as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targSingleLanguage.json",
|
||||||
|
"assertionType": "should",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Target should include language key with a single value that is a language code.",
|
||||||
|
"title": "Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or moreTargets, one or more of which include single language key with a language code as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targTextDirection.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Target may include textDirection key with a single value that is one of ltr, rtl, or auto.",
|
||||||
|
"title": "Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)",
|
||||||
|
"description": "True when Annotation includes one or more Targets, one or more of which include single textDirection key with one of ltr, rtl, or auto as value. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.1-targTextDirectionValidated.json",
|
||||||
|
"assertionType": "must",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "failAndContinue",
|
||||||
|
"errorMessage": "ERROR: A target or target/source has multiple textDirection key values for a target or source, or a single textDirection key with a value that is not one of ltr, rtl, auto.",
|
||||||
|
"title": "If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)",
|
||||||
|
"description": "True when no target-level or target/source-level (SR target) textDirection key present or when all textDirection keys have a single value that is one of ltr, rtl, auto (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
|
||||||
|
{ "allOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
|
||||||
|
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "array",
|
||||||
|
"minItems": 1,
|
||||||
|
"items":
|
||||||
|
{
|
||||||
|
"oneOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
|
||||||
|
{ "allOf":
|
||||||
|
[
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
|
||||||
|
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue