summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/annotation-model/collections/pages
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/annotation-model/collections/pages')
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json30
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json28
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json29
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json35
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json35
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json35
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json36
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json35
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json38
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json35
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json24
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageContextValidated.json20
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json18
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstValidated.json15
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageIdValidated.json24
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageItemsValidated.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelValidated.json15
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastImplemented.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastValidated.json15
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextImplemented.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextValidated.json23
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json23
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevValidated.json23
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json23
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json16
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalValidated.json15
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTypeValidated.json19
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/pageMusts-manual.html48
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/pageMusts.test24
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/pageOptionals-manual.html48
-rw-r--r--testing/web-platform/tests/annotation-model/collections/pages/pageOptionals.test29
38 files changed, 933 insertions, 0 deletions
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json
new file mode 100644
index 0000000000..3979744c91
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json
@@ -0,0 +1,30 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.1-pageCreatedImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Valid Annotation Page-level created key (i.e., in description of Collection included using partOf key) not found. Annotation Page may have exactly one created key value inherited from Collection.",
+ "title": "Implements Annotation Page-level **_created_ key** (i.e., in description of Collection included using partOf 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 Page implements exactly one created key value (i.e., in description of Collection included using partOf key) (Sections 3.3.1 and 5.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/createdImplemented" }
+ },
+ "required": [ "partOf" ],
+ "definitions":
+ {
+ "createdImplemented":
+ {
+ "allOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/createdValidIfPresent"},
+ { "type": "object",
+ "required" : [ "created" ]
+ }
+ ]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json
new file mode 100644
index 0000000000..96218084ad
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.1-pageCreatedValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation page has multiple created key values or a single created key value that is not of format date-time.",
+ "title": "If present the Annotation page-level **_created_ key** (i.e., in description of Collection included using partOf key) has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
+ "description": "True when no Annotation page created key present (i.e., in description of Collection included using partOf key) or when created key has a single value that is of format date-time (Section 3.3.1)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json
new file mode 100644
index 0000000000..6ae95413e2
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json
@@ -0,0 +1,28 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.1-pageCreatorImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Valid Annotation Page-level creator key (i.e., in description of Collection included using partOf key) not found. Annotation Page may have zero or more creators inherited from Collection.",
+ "title": "Implements **Annotation Page-level _creator_ key** (i.e., in description of Collection included using partOf key) which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorImplemented" }
+ },
+ "required": [ "partOf" ],
+ "definitions":
+ {
+ "creatorImplemented":
+ {
+ "allOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/creatorValidIfPresent"},
+ { "type": "object",
+ "required": [ "creator" ] }
+ ]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json
new file mode 100644
index 0000000000..68d22370af
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json
@@ -0,0 +1,29 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.1-pageModifiedImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Valid Annotation Page-level modified key (i.e., in description of Collection included using partOf key) not found. Annotation Page may have zero or exactly one modified key value inherited from Collection.",
+ "title": "Implements Annotation Page-level **_modified_ key** (i.e., in description of Collection included using partOf 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 Page implements exactly one modified key value (i.e., in description of Collection included using partOf key) (Section 3.3.1, 5.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/modifiedImplemented" }
+ },
+ "required": [ "partOf" ],
+ "definitions":
+ {
+ "modifiedImplemented":
+ {
+ "allOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent"},
+ { "type": "object",
+ "required": [ "modified" ] }
+ ]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json
new file mode 100644
index 0000000000..e7c1a55837
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.1-pageModifiedValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation page has multiple modified key values or a single modified key value that is not of format date-time.",
+ "title": "If present the Annotation page-level **_modified_ key** (i.e., in description of Collection included using partOf key) has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
+ "description": "True when no Annotation page modified key present (i.e., in description of Collection included using partOf key) or when modified key has a single value that is of format date-time (Section 3.3.1)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json
new file mode 100644
index 0000000000..541a32deb6
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentEmailImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Email for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found. Agents may have one or more email values.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when one or more email values for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) is implemented (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentEmailFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentEmailFound":
+ { "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentEmailFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmailFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json
new file mode 100644
index 0000000000..ba7d38eac1
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentEmail_sha1Implemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Email_sha1 for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found. Agents may have one or more email_sha1 values.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when one or more email_sha1 values for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) is implemented (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentEmail_sha1Found" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentEmail_sha1Found":
+ { "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json
new file mode 100644
index 0000000000..7b8c9d7e2a
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentHomepageImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Homepage for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found. Agents may have one or more homepage values.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when one or more homepage values for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) is implemented (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentHomePageFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentHomePageFound":
+ { "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentHomepageFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentHomepageFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json
new file mode 100644
index 0000000000..2a280ead8d
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json
@@ -0,0 +1,36 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentIdImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Single id for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found for any Creator. Agents should have exactly one id of format uri.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when at least one Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) has exactly one id (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentIdFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentIdFound":
+ {
+ "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "id.json#/definitions/idValueFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json
new file mode 100644
index 0000000000..50f811021e
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentNameImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Name for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found. Agents may have one or more name values.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when one or more name values for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) is implemented (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentNameFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentNameFound":
+ { "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentNameFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json
new file mode 100644
index 0000000000..7829deafcb
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json
@@ -0,0 +1,38 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentNicknameImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Single nickname for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found for any Creator. Agents should have exactly one id of format uri.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_nickname_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when at least one Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) has exactly one nickname (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentNicknameFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentNicknameFound":
+ {
+ "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
+
+
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json
new file mode 100644
index 0000000000..20b40d0104
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.2-pageCreatorAgentTypeImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Type (Person, Organization, Software) for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) not found. Agents should have one or more type values.",
+ "title": "Implements Annotation Page-level creator (Agent) (i.e., in description of Collection included using partOf key) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
+ "description": "True when type for Annotation Page Creator (Agent) (i.e., in description of Collection included using partOf key) is implemented (Section 3.3.2)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "#/definitions/creatorAgentTypeFound" }
+ },
+ "required": [ "partOf" ],
+ "definitions": {
+ "creatorAgentTypeFound":
+ { "properties":
+ { "creator":
+ { "oneOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/agentTypeFound" },
+ { "type": "array",
+ "minItems": 1,
+ "not":
+ { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentTypeFound" } } }
+ }
+ ]
+ }
+ },
+ "required": ["creator"]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json
new file mode 100644
index 0000000000..7a3fa5c460
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.6-pageRightsImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page rights key (i.e., in description of Collection included using partOf key) having string value(s) of format uri not found. Annotation Page may may have zero or more rights key values.",
+ "title": "Implements Annotation Page **_rights_** key (i.e., in description of Collection included using partOf key) which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)",
+ "description": "True when the Annotation Page implements collection rights key (i.e., in description of Collection included using partOf key) with with string(s) of format uri value(s) (Sections 5.1 and 3.3.6)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "allOf":
+ [
+ { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" },
+ { "type": "object",
+ "required": [ "rights" ] }
+ ]
+ }
+ },
+ "required": [ "partOf" ]
+
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json
new file mode 100644
index 0000000000..99f0e7c7a7
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "3.3.6-pageRightsValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation page page has one or more values for the rights key (i.e., in description of Collection included using partOf key) that are not strings of format uri.",
+ "title": "If present the Annotation page page-level **_rights_ key** (i.e., in description of Collection included using partOf key)has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)",
+ "description": "True when no Annotation page collection rights key present or when all values of rights key are strings of format uri (Section 3.3.6)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageContextValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageContextValidated.json
new file mode 100644
index 0000000000..66cbe0779f
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageContextValidated.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageContextValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page/Collection is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.",
+ "title": "Implements **Annotation Page** (or Annotation Collection for embedded Page) **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "description": "True when the Annotation Page/Collection has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 5.2)",
+ "type": "object",
+ "required": [ "@context" ],
+ "properties": {
+ "@context": {
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/contextValueFound" },
+ { "$ref": "collections.json#/definitions/contextValueInArrayFound" }
+ ]
+ }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json
new file mode 100644
index 0000000000..5e0934e14f
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageFirstImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no first key (i.e., in description of Collection included using partOf key).",
+ "title": "Implements **Annotation Page _first_ key** (i.e., in description of Collection included using partOf key) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/firstFound" }
+ },
+ "required": [ "partOf" ]
+}
+
+
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstValidated.json
new file mode 100644
index 0000000000..bffe4e889f
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageFirstValidated.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageFirstValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has invalid first key (i.e., in description of Collection included using partOf key).",
+ "title": "**Annotation Page _first_ key** (i.e., in description of Collection included using partOf key), if present, has value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/firstValidIfPresent" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageIdValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageIdValidated.json
new file mode 100644
index 0000000000..bafa019c46
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageIdValidated.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageIdValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page is missing id key or value of id key is not a single string of format uri.",
+ "title": "Implements **Annotation Page _id_ key** which has a **single value** that is a **string of format uri** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "description": "True when the Annotation Page has a single id that is a string of format uri (Section 5.2)",
+ "oneOf": [
+ { "allOf": [
+ { "$ref": "id.json#/definitions/idValueFound" },
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ ]
+ },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "id.json#/definitions/idValueFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageItemsValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageItemsValidated.json
new file mode 100644
index 0000000000..57bedba850
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageItemsValidated.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageItemsValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page is missing items key or value of items key is not an array of strings of format uri and/or objects of type Annotation.",
+ "title": "Implements **Annotation Page _items_ key** such that value of items key is an array of strings of format uri and/or objects of type Annotation - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/itemsFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/itemsFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json
new file mode 100644
index 0000000000..19b82f3ba9
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageLabelImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no label key (i.e., in description of Collection included using partOf key).",
+ "title": "Implements **Annotation Page _label_ key** (i.e., in description of Collection included using partOf key) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/labelFound" }
+ },
+ "required": [ "partOf" ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelValidated.json
new file mode 100644
index 0000000000..50749f4489
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLabelValidated.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageLabelValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has label key (i.e., in description of Collection included using partOf key) with non-string value or an array as value containing non-string value.",
+ "title": "**Annotation Page _label_ key**, if present (i.e., in description of Collection included using partOf key), is **a value of type string** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/labelDefinition" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastImplemented.json
new file mode 100644
index 0000000000..4978fedf61
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastImplemented.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageLastImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no last key (i.e., in description of Collection included using partOf key).",
+ "title": "Implements **Annotation Page _last_ key** (i.e., in description of Collection included using partOf key) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/lastFound" }
+ },
+ "required": [ "partOf" ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastValidated.json
new file mode 100644
index 0000000000..d80c37c4c6
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageLastValidated.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageLastValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has last key (i.e., in description of Collection included using partOf key) with non-uri value or array as value containing more than one item.",
+ "title": "**Annotation Page _last_ key** (i.e., in description of Collection included using partOf key), if present, is **a single value of format uri** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/lastValidIfPresent" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextImplemented.json
new file mode 100644
index 0000000000..fb05711759
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextImplemented.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageNextImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no next key.",
+ "title": "Implements **Annotation Page _next_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/nextFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/nextFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextValidated.json
new file mode 100644
index 0000000000..ab9198cc20
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageNextValidated.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageNextValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has an invalid next value.",
+ "title": "True when **Annotation Page has no _next_ key** or has **_next_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "allOf": [
+ { "$ref": "collections.json#/definitions/nextValidIfPresent" },
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ ]
+ },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/nextValidIfPresent" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json
new file mode 100644
index 0000000000..a23e27ea68
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pagePartOfImplemented.json",
+ "assertionType": "should",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no partOf key.",
+ "title": "Implements **Annotation Page _partOf_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/partOfFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/partOfFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json
new file mode 100644
index 0000000000..d073c63050
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pagePartOfValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has an invalid partOf value.",
+ "title": "True when **Annotation Page has no _partOf_ key** or has **_partOf_ key** with valid value oof string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "allOf": [
+ { "$ref": "collections.json#/definitions/partOfValidIfPresent" },
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ ]
+ },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/partOfValidIfPresent" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json
new file mode 100644
index 0000000000..0ba0e8792e
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pagePrevImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no prev key.",
+ "title": "Implements **Annotation Page _prev_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/prevFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/prevFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevValidated.json
new file mode 100644
index 0000000000..a9fbc71e6d
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pagePrevValidated.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pagePrevValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has an invalid prev value.",
+ "title": "True when **Annotation Page has no _prev_ key** or has **_prev_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "allOf": [
+ { "$ref": "collections.json#/definitions/prevValidIfPresent" },
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ ]
+ },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/prevValidIfPresent" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json
new file mode 100644
index 0000000000..00a1eddd28
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageStartIndexImplemented.json",
+ "assertionType": "should",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has has no valid startIndex value.",
+ "title": "Implements **Annotation Page _startIndex_ key** with valid value of _type_ integer >= 0 - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/startIndexFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/startIndexFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json
new file mode 100644
index 0000000000..2177193770
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageStartIndexValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has an invalid startIndex value.",
+ "title": "True when **Annotation Page has no _startIndex_ key** or has **_startIndex_ key** with valid value of _type_ integer >= 0 - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "allOf": [
+ { "$ref": "collections.json#/definitions/startIndexDefinition" },
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ ]
+ },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/startIndexDefinition" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json
new file mode 100644
index 0000000000..fe1f21edae
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageTotalImplemented.json",
+ "assertionType": "may",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "passAndContinue",
+ "errorMessage": "Annotation Page has no total key (i.e., in description of Collection included using partOf key).",
+ "title": "Implements **Annotation Page _total_ key** (i.e., in description of Collection included using partOf key) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/totalFound" }
+ },
+ "required": [ "partOf" ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalValidated.json
new file mode 100644
index 0000000000..ca57e286ed
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTotalValidated.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageTotalValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page has total key (i.e., in description of Collection included using partOf key) with non-numeric value, a negative numeric value, or more than one value.",
+ "title": "**Annotation Page _total_ key**, if present (i.e., in description of Collection included using partOf key), is **a non-negative integer value** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "type": "object",
+ "properties":
+ {
+ "partOf":
+ { "$ref": "collections.json#/definitions/totalDefinition" }
+ }
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTypeValidated.json b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTypeValidated.json
new file mode 100644
index 0000000000..cb0e2f362d
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/5.2-pageTypeValidated.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "5.2-pageTypeValidated.json",
+ "assertionType": "must",
+ "expectedResult": "valid",
+ "onUnexpectedResult" : "failAndContinue",
+ "errorMessage": "ERROR: Annotation Page is missing type key or 'AnnotationPage' is not a value of type.",
+ "title": "Implements **Annotation Page _type_ key** such that '**AnnotationPage**' is **a value of _type_** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)",
+ "oneOf": [
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" },
+ { "type": "object",
+ "properties":
+ {"first":
+ { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }
+ },
+ "required": [ "first" ]
+ }
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/pageMusts-manual.html b/testing/web-platform/tests/annotation-model/collections/pages/pageMusts-manual.html
new file mode 100644
index 0000000000..4422bbae35
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/pageMusts-manual.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html>
+<head>
+<title>A single Annotation Page has all required keys and all page keys present meet required value constraints</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/annotation-model/scripts/ajv.min.js"></script>
+<script src="/annotation-model/scripts/showdown.min.js"></script>
+<script src="/annotation-model/scripts/JSONtest.js"></script>
+<script>
+setup({explicit_timeout: true, explicit_done: true });
+
+var theDefinitions=[
+ "definitions/choiceSet.json",
+ "definitions/id.json",
+ "definitions/bodyTarget.json",
+ "definitions/annotations.json",
+ "definitions/specificResource.json",
+ "definitions/otherProperties.json",
+ "definitions/collections.json"
+];
+
+var theTestFile="pageMusts.test";
+
+var runningTest = new JSONtest( {
+ "testInput" : "annotation-input",
+ "runTest" : "annotation-run",
+ "closeWindow" : "annotation-close",
+ "schemaDefs" : theDefinitions,
+ "testFile" : theTestFile
+} ) ;
+
+</script>
+</head>
+<body>
+<p>Fill the textarea below with JSON output from your annotation client
+implementation that supports the following criteria:</p>
+<div id="testDescription"></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>
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/pageMusts.test b/testing/web-platform/tests/annotation-model/collections/pages/pageMusts.test
new file mode 100644
index 0000000000..38722d75d2
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/pageMusts.test
@@ -0,0 +1,24 @@
+{
+ "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
+ "name": "A single Annotation Page has all required keys and all page keys present meet required value constraints",
+ "description": "Pages of Web Annotations: <ul> <li>MUST include certain properties (keys)</li> <li>MUST satisfy model constraints on values of required and any optional Annotation keys used</li> </ul> Note: Implementation of optional Annotation Collection keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation Collection checked by other tests.<br/><b>Please fill textarea with json-ld serialization of a single Annotation Page or an Annotation Collection with an embedded Page</b>",
+ "testType": "manual",
+ "ref": "https://www.w3.org/TR/annotation-model/",
+ "assertions": [
+ "collections/pages/5.2-pageContextValidated.json",
+ "collections/pages/5.2-pageIdValidated.json",
+ "collections/pages/5.2-pageTypeValidated.json",
+ "collections/pages/5.2-pageItemsValidated.json",
+ "collections/pages/5.2-pageStartIndexValidated.json",
+ "collections/pages/5.2-pagePartOfValidated.json",
+ "collections/pages/5.2-pageNextValidated.json",
+ "collections/pages/5.2-pagePrevValidated.json",
+ "collections/pages/5.2-pageTotalValidated.json",
+ "collections/pages/5.2-pageLabelValidated.json",
+ "collections/pages/5.2-pageFirstValidated.json",
+ "collections/pages/5.2-pageLastValidated.json",
+ "collections/pages/3.3.1-pageCreatedValidated.json",
+ "collections/pages/3.3.1-pageModifiedValidated.json",
+ "collections/pages/3.3.6-pageRightsValidated.json"
+ ]
+}
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals-manual.html b/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals-manual.html
new file mode 100644
index 0000000000..95f66bb7f7
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals-manual.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html>
+<head>
+<title>A single Annotation Page implements optional keys and meets optional key value constraints</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/annotation-model/scripts/ajv.min.js"></script>
+<script src="/annotation-model/scripts/showdown.min.js"></script>
+<script src="/annotation-model/scripts/JSONtest.js"></script>
+<script>
+setup({explicit_timeout: true, explicit_done: true });
+
+var theDefinitions=[
+ "definitions/choiceSet.json",
+ "definitions/id.json",
+ "definitions/bodyTarget.json",
+ "definitions/annotations.json",
+ "definitions/specificResource.json",
+ "definitions/otherProperties.json",
+ "definitions/collections.json"
+];
+
+var theTestFile="pageOptionals.test";
+
+var runningTest = new JSONtest( {
+ "testInput" : "annotation-input",
+ "runTest" : "annotation-run",
+ "closeWindow" : "annotation-close",
+ "schemaDefs" : theDefinitions,
+ "testFile" : theTestFile
+} ) ;
+
+</script>
+</head>
+<body>
+<p>Fill the textarea below with JSON output from your annotation client
+implementation that supports the following criteria:</p>
+<div id="testDescription"></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>
diff --git a/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals.test b/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals.test
new file mode 100644
index 0000000000..39fac8f93c
--- /dev/null
+++ b/testing/web-platform/tests/annotation-model/collections/pages/pageOptionals.test
@@ -0,0 +1,29 @@
+{
+ "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
+ "name": "A single Annotation Page implements optional keys and meets optional key value constraints",
+ "description": "Pages of Web Annotations: <ul> <li>MUST include certain properties (keys)</li> <li>MUST satisfy model constraints on values of required and any optional Annotation keys used</li> </ul> Note: Implementation of optional Annotation Collection keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation Collection checked by other tests.<br/><b>Please fill textarea with json-ld serialization of a single Annotation Page or an Annotation Collection with an embedded Page</b>",
+ "testType": "manual",
+ "skipFailures": [ "should", "may" ],
+ "ref": "https://www.w3.org/TR/annotation-model/",
+ "assertions": [
+ "collections/pages/5.2-pagePartOfImplemented.json",
+ "collections/pages/5.2-pageStartIndexImplemented.json",
+ "collections/pages/5.2-pageNextImplemented.json",
+ "collections/pages/5.2-pagePrevImplemented.json",
+ "collections/pages/5.2-pageLabelImplemented.json",
+ "collections/pages/5.2-pageLastImplemented.json",
+ "collections/pages/5.2-pageTotalImplemented.json",
+ "collections/pages/5.2-pageFirstImplemented.json",
+ "collections/pages/3.3.1-pageModifiedImplemented.json",
+ "collections/pages/3.3.1-pageCreatorImplemented.json",
+ "collections/pages/3.3.1-pageCreatedImplemented.json",
+ "collections/pages/3.3.6-pageRightsImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentIdImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentNameImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json",
+ "collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json"
+ ]
+}