mirror of
https://github.com/servo/servo.git
synced 2025-06-25 01:24:37 +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,16 +22,36 @@
|
||||||
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>
|
||||||
|
|
|
@ -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"]
|
||||||
|
@ -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>
|
|
|
@ -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" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.2-bodyType.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Body may include type key with one or more values that are each drawn from the model's list of resource classes.",
|
||||||
|
"title": "Implements **body _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [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 type key with one or more values that are each drawn from the model's list of resource classes. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"required": ["body"],
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"body":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceRecognizedTypeFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "3.2.2-targType.json",
|
||||||
|
"assertionType": "may",
|
||||||
|
"expectedResult": "valid",
|
||||||
|
"onUnexpectedResult" : "passAndContinue",
|
||||||
|
"errorMessage": "The description of a Target may include type key with one or more values that are each drawn from the model's list of resource classes.",
|
||||||
|
"title": "Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [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 type key with one or more values that are each drawn from the model's list of resource classes. (Section 3.2.1)",
|
||||||
|
"type": "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"target":
|
||||||
|
{
|
||||||
|
"oneOf": [
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "not":
|
||||||
|
{ "items":
|
||||||
|
{ "not":
|
||||||
|
{ "anyOf": [
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
|
||||||
|
{ "$ref": "bodyTarget.json#/definitions/sourceRecognizedTypeFound" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
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