Update web-platform-tests to revision 3b3585e368841b77caea8576fa56cef91c3fbdf0

This commit is contained in:
Ms2ger 2016-09-26 10:52:50 +02:00
parent d00639c55f
commit 3b4f0ec0bb
541 changed files with 14609 additions and 3288 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,5 +0,0 @@
[event-error.html]
type: testharness
[XMLHttpRequest Test: event - error]
expected: FAIL

View file

@ -11,3 +11,4 @@
[Values iterator should return non-deleted values]
expected: FAIL

View file

@ -0,0 +1,5 @@
[setrequestheader-case-insensitive.htm]
type: testharness
[XMLHttpRequest: setRequestHeader() - headers that differ in case]
expected: FAIL

View file

@ -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

View file

@ -384,3 +384,141 @@
[CDATASection interface: existence and properties of interface prototype object's "constructor" property]
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

View 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

View file

@ -3,3 +3,12 @@
[Request through fetch should have 'accept' header with value '*/*']
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

View file

@ -3,3 +3,12 @@
[Request through fetch should have 'accept' header with value '*/*']
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

View file

@ -15,3 +15,33 @@
[Referrer policy: unsafe-url]
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

View file

@ -15,3 +15,33 @@
[Referrer policy: unsafe-url]
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

View file

@ -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

View file

@ -10,3 +10,6 @@
[Script document-write]
expected: NOTRUN
[Script script-exec]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[document.forms.html]
type: testharness
[document.forms iteration]
expected: FAIL

View file

@ -17880,9 +17880,6 @@
[area.ping: IDL set to "\\0" followed by getAttribute()]
expected: FAIL
[area.ping: IDL set to "\\0" followed by IDL get]
expected: FAIL
[area.ping: IDL set to null followed by getAttribute()]
expected: FAIL
@ -20925,3 +20922,9 @@
[img.crossOrigin: IDL set to null followed by IDL get]
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

View file

@ -717,9 +717,6 @@
[a.ping: IDL set to "\\0" followed by getAttribute()]
expected: FAIL
[a.ping: IDL set to "\\0" followed by IDL get]
expected: FAIL
[a.ping: IDL set to null followed by getAttribute()]
expected: FAIL
@ -24408,3 +24405,9 @@
[wbr.tabIndex: setAttribute() to "\\r7" followed by IDL get]
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

View file

@ -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

View file

@ -27,3 +27,12 @@
[HTMLTrackElement.src resolvable value in content attribute]
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

View file

@ -1,5 +0,0 @@
[task-source.html]
type: testharness
[MediaController events task source]
expected: FAIL

View file

@ -33,3 +33,9 @@
[simple: "100,100,120,100,100,120" (polygon)]
expected: FAIL
[simple: "2,2,10,10" (rect)]
expected: FAIL
[simple: "2,2,10,10" (rectangle)]
expected: FAIL

View file

@ -0,0 +1,3 @@
[historical.html]
type: testharness
expected: ERROR

View file

@ -367,3 +367,33 @@
[[INPUT in FILE status\] suffering from being missing (in a form)]
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

View file

@ -367,3 +367,33 @@
[[INPUT in FILE status\] suffering from being missing (in a form)]
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

View file

@ -192,3 +192,36 @@
[[INPUT in NUMBER status\] The value is greater than max(scientific notation)]
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

View file

@ -183,3 +183,39 @@
[[INPUT in NUMBER status\] The value is less than min(scientific notation)]
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

View file

@ -142,3 +142,15 @@
[[INPUT in FILE status\] validity.valid must be false if validity.valueMissing is true]
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

View file

@ -271,3 +271,36 @@
[[INPUT in NUMBER status\] Value is a string that cannot be converted to a number]
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

View file

@ -250,3 +250,15 @@
[[BUTTON in SUBMIT 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 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

View file

@ -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

View file

@ -66,3 +66,6 @@
[text field selection for the input password]
expected: FAIL
[text field selection for the input datetime-local]
expected: FAIL

View file

@ -6,6 +6,3 @@
[canceled activation steps on unchecked checkbox (indeterminate=true in onclick)]
expected: FAIL
[click on mutable checkbox fires a click event, then an input event, then a change event]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -840,3 +840,102 @@
[change state from button to color]
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

View file

@ -90,3 +90,9 @@
[value IDL attribute of input type button with value attribute]
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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
[load-event.html]
type: testharness
[load events should not be fired for inline scripts]
expected: FAIL

View file

@ -15,15 +15,6 @@
[innerHTML <listing> non-context starting with U+000A]
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]
expected: FAIL
@ -33,15 +24,6 @@
[outerHTML <listing> context starting with U+000A]
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]
expected: FAIL
@ -51,15 +33,6 @@
[outerHTML <listing> non-context starting with U+000A]
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]
expected: FAIL

View file

@ -1 +1 @@
2d13178d2930da8668e77de078eeb65438eb502e
d00639c55f9a342765483d347a3c29d4647f7411

View file

@ -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

View file

@ -24,3 +24,60 @@
[The TextMetrics interface object should be exposed.]
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

View file

@ -15,3 +15,30 @@
[The MouseEvent interface object should not be exposed.]
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

View file

@ -1,5 +1,6 @@
[003.html]
type: testharness
expected: ERROR
[available interface objects in shared worker]
expected: FAIL

View file

@ -1,5 +1,6 @@
[004.html]
type: testharness
expected: ERROR
[unavailable interface objects in shared worker]
expected: FAIL

View file

@ -764,32 +764,28 @@
"url": "/_mozilla/css/blur_a.html"
}
],
"css/border_black_groove.html": [
"css/border_black_ridge_a.html": [
{
"path": "css/border_black_groove.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",
"path": "css/border_black_ridge_a.html",
"references": [
[
"/_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",
"!="
]
],
"url": "/_mozilla/css/border_black_ridge.html"
"url": "/_mozilla/css/border_black_ridge_b.html"
}
],
"css/border_code_tag.html": [
@ -2177,7 +2173,7 @@
"path": "css/image_rendering_auto_a.html",
"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"
}
],
"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": [
[
"/_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",
"!="
]
],
"url": "/_mozilla/css/border_black_ridge.html"
"url": "/_mozilla/css/border_black_ridge_b.html"
}
],
"css/border_code_tag.html": [
@ -15807,7 +15811,7 @@
"path": "css/image_rendering_auto_a.html",
"references": [
[
"/_mozilla/css/image_rendering_pixelated_a.html",
"/_mozilla/css/image_rendering_pixelated_ref.html",
"!="
]
],

View file

@ -1,4 +0,0 @@
[tex_image_2d_canvas_no_context.html]
type: reftest
disabled:
if os == "linux": https://github.com/servo/servo/issues/7931

View file

@ -2,7 +2,6 @@
<html>
<head>
<link rel=mismatch href=border_black_groove.html>
<link rel=mismatch href=border_black_solid.html>
<style>
.box {
width: 100px;

View 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>

View file

@ -2,7 +2,7 @@
<html>
<head>
<!-- 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>
img {
position: absolute;

View file

@ -5,4 +5,11 @@ python:
before_install:
- git submodule update --init --recursive
# 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

View file

@ -2,12 +2,14 @@
<html>
<head>
<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="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." />
<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 ctx = canvas.getContext("2d");
@ -16,17 +18,14 @@
ctx.rect(0, 0, 100, 50);
// Ensure that the coordinates passed to isPointInPath are unaffected by the current transformation matrix.
if (ctx.isPointInPath(125, 75) && !ctx.isPointInPath(25, 25))
{
document.getElementById("testresult").firstChild.data = "PASS";
}
}
assert_true(ctx.isPointInPath(125, 75), "isPointInPath(125, 75)");
assert_false(ctx.isPointInPath(25, 25), "!isPointInPath(25, 25)");
}));
}, "isPointInPath unaffected by transformation matrix");
</script>
</head>
<body onload="runTest();">
<body>
<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>
</body>
</html>

View file

@ -2,14 +2,18 @@
<html>
<head>
<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="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." />
<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 ctx = canvas.getContext("2d");
var width = canvas.width;
var height = canvas.height;
// Start by drawing a left to right, green-to-blue linear gradient.
var lingrad = ctx.createLinearGradient(0, 50, 100, 50);
@ -18,16 +22,36 @@
ctx.fillStyle = lingrad;
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.
lingrad = ctx.createLinearGradient(100, 100, 100, 100);
lingrad.addColorStop(0, "rgba(255, 0, 0, 1.0)");
lingrad.addColorStop(1, "rgba(255, 0, 0, 1.0)");
ctx.fillStyle = lingrad;
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>
</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>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>

View file

@ -2,12 +2,14 @@
<html>
<head>
<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="help" href="http://www.w3.org/TR/2dcontext/#shadows" />
<meta name="assert" content="Shadows must be drawn for linear gradients." />
<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 ctx = canvas.getContext("2d");
@ -25,10 +27,32 @@
lingrad.addColorStop(1, "rgba(0, 0, 255, 1.0)");
ctx.fillStyle = lingrad;
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>
</head>
<body onload="runTest()">
<body>
<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>
<canvas id="canvas1" width="300" height="150">Browser does not support HTML5 Canvas.</canvas>

View file

@ -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>

View file

@ -2,6 +2,7 @@
<html>
<head>
<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="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." />
@ -12,21 +13,21 @@
var ctx = canvas.getContext("2d");
// 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.fillText("Test String", 5, 50);
ctx.fillText("Filler", 5, 50);
// Assign a valid font which was used earlier.
ctx.font = "40px Times New Roman";
ctx.fillText("Test String", 5, 100);
ctx.font = "40px Ahem";
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 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>
</body>
</html>

View file

@ -45,15 +45,14 @@ git submodule update --init --recursive
The test environment can then be started using
```
./serve
```
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
ports are randomly-chosen free ports. Tests must be loaded from the
*first* HTTP server in the output. To change the ports, edit the
`config.json` file, for example, replacing the part that reads:
*first* HTTP server in the output. To change the ports, copy the
`config.default.json` file to `config.json` and edit the new file,
replacing the part that reads:
```
"http": [8000, "auto"]
@ -79,7 +78,7 @@ like:
Running wptserve with SSL enabled on Windows typically requires
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
little extra setup.

View file

@ -33,10 +33,7 @@ function run_test() {
Object.keys(derivations[derivedKeySize][saltSize]).forEach(function(hashName) {
Object.keys(derivations[derivedKeySize][saltSize][hashName]).forEach(function(infoSize) {
var testName = derivedKeySize + " derivedKey, " + saltSize + " salt, " + hashName + ", with " + infoSize + " info";
var algorithm = {name: "HKDF", salt: salts[saltSize], hash: hashName};
if (infoSize !== "missing") {
algorithm.info = infos[infoSize];
}
var algorithm = {name: "HKDF", salt: salts[saltSize], info: infos[infoSize], hash: hashName};
// Check for correct deriveBits result
promise_test(function(test) {
@ -121,6 +118,27 @@ function run_test() {
});
// 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)
promise_test(function(test) {
return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], null)

View file

@ -55,14 +55,12 @@ function getTestData() {
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]),
"empty": new Uint8Array([]),
"missing": null
"empty": new Uint8Array([])
};
var infos = {
"normal": new Uint8Array([72, 75, 68, 70, 32, 101, 120, 116, 114, 97, 32, 105, 110, 102, 111]),
"empty": new Uint8Array([]),
"missing": null
"empty": new Uint8Array([])
};
var derivations = {
@ -70,67 +68,37 @@ function getTestData() {
"normal": {
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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": 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": {
"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])
"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])
},
"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])
"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])
},
"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])
"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])
},
"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])
}
},
"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])
"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])
}
}
},
@ -138,67 +106,37 @@ function getTestData() {
"normal": {
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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": 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": {
"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])
"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])
},
"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])
"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])
},
"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])
"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])
},
"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])
}
},
"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])
"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])
}
}
},
@ -206,67 +144,37 @@ function getTestData() {
"normal": {
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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])
"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])
},
"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]),
"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": 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": {
"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])
"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])
},
"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])
"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])
},
"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])
"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])
},
"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])
}
},
"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])
"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])
}
}
}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -98,7 +98,7 @@ dictionary AmbientLightSensorReadingInit {
idl_array.add_objects({
AmbientLightSensor: ['new AmbientLightSensor();'],
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();

View file

@ -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>

View file

@ -5,7 +5,7 @@
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"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)",
"type": "object",
"required": [ "@context" ],

View file

@ -5,7 +5,7 @@
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"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)",
"$ref": "id.json#/definitions/idValueFound"
}

View file

@ -5,7 +5,7 @@
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"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": [
{ "$ref": "annotations.json#/definitions/annotationTypeValueFound"}
]

View file

@ -5,7 +5,7 @@
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"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)",
"type": "object",
"required": ["target" ]

View file

@ -6,7 +6,7 @@
"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.",
"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",
"properties":
{

View file

@ -1,10 +1,10 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationCreatedImplemented.json",
"assertionType": "may",
"assertionType": "should",
"expectedResult": "valid",
"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)",
"description": "True when the Annotation implements exactly one created key value (Section 3.3.1)",
"allOf":

View file

@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.7-annotationviaValidated.json",
"id": "3.3.7-annotationViaValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",

View file

@ -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"
]
}

View file

@ -1,7 +1,8 @@
<!doctype html>
<html>
<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/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
@ -11,26 +12,12 @@
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/compositeDetected.json",
"definitions/processingLanguageDetected.json",
"definitions/textDirectionDetected.json",
"definitions/independentsDetected.json",
"definitions/specificResource.json",
"definitions/stringUri.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/listDetected.json",
"definitions/formatDetected.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/choiceDetected.json",
"definitions/externalWebResource.json",
"definitions/externalWebResourceDetected.json",
"definitions/languageDetected.json",
"definitions/textualBody.json",
"definitions/id.json",
"definitions/itemsDetected.json",
"definitions/specificResourceDetected.json"
"definitions/id.json"
];
var theTestFile="annotationMusts.test";
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -1,9 +1,9 @@
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "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.",
"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: 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",
"ref": "https://www.w3.org/TR/annotation-model/#annotations",
"ref": "https://www.w3.org/TR/annotation-model/",
"assertions": [
"annotations/3.1-annotationContextValidated.json",
"annotations/3.1-annotationIdValidated.json",
@ -18,6 +18,46 @@
"annotations/3.3.1-annotationGeneratedValidated.json",
"annotations/3.3.6-annotationRightsValidated.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"
]
}

View file

@ -2,6 +2,7 @@
<html>
<head>
<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/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
@ -11,26 +12,12 @@
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/compositeDetected.json",
"definitions/processingLanguageDetected.json",
"definitions/textDirectionDetected.json",
"definitions/independentsDetected.json",
"definitions/specificResource.json",
"definitions/stringUri.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/listDetected.json",
"definitions/formatDetected.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/choiceDetected.json",
"definitions/externalWebResource.json",
"definitions/externalWebResourceDetected.json",
"definitions/languageDetected.json",
"definitions/textualBody.json",
"definitions/id.json",
"definitions/itemsDetected.json",
"definitions/specificResourceDetected.json"
"definitions/id.json"
];
var theTestFile="annotationOptionals.test";
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -5,13 +5,10 @@
"testType": "manual",
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
"assertions": [
"annotations/3.1-bodyKeyFound.json",
"annotations/3.3.1-annotationSingleCreatorImplemented.json",
"annotations/3.3.1-annotationCreatedImplemented.json",
"annotations/3.3.5-annotationSingleMotivationImplemented.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-annotationModifiedImplemented.json",
"annotations/3.3.3-annotationAudienceImplemented.json",
@ -19,7 +16,76 @@
"annotations/3.3.6-annotationRightsImplemented.json",
"annotations/3.3.7-annotationCanonicalImplemented.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"
]
}

View file

@ -2,6 +2,7 @@
<html>
<head>
<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/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
@ -11,29 +12,15 @@
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/compositeDetected.json",
"definitions/processingLanguageDetected.json",
"definitions/textDirectionDetected.json",
"definitions/independentsDetected.json",
"definitions/specificResource.json",
"definitions/stringUri.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/listDetected.json",
"definitions/formatDetected.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/choiceDetected.json",
"definitions/externalWebResource.json",
"definitions/externalWebResourceDetected.json",
"definitions/languageDetected.json",
"definitions/textualBody.json",
"definitions/id.json",
"definitions/itemsDetected.json",
"definitions/specificResourceDetected.json"
"definitions/id.json"
];
var theTestFile="annotationAgentOptionals.test";
var theTestFile="annotationsAgentOptionals.test";
var runningTest = new JSONtest( {
"testInput" : "annotation-input",
@ -49,13 +36,13 @@ var runningTest = new JSONtest( {
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -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"
]
}

View 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" } } } }
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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"]
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
]
}
}
]
}
}
}

View file

@ -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" } } } }
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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" }
]
}
]
}
}
]
}
}
}

View file

@ -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" }
]
}
}
}
}
]
}
}
}

View file

@ -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