Test Suite Name | Revision | Report Date | Skipped Tests | MUST Requirements | SHOULD Requirements | MAY Requirements |
---|---|---|---|---|---|---|
LDP Test Suite | a127cef | Tue Sep 02 14:28:26 PDT 2014 | (47/94) of the total tests. | 26/62 Passed 1/62 Failed 35/62 Skipped | 9/27 Passed 7/27 Failed 11/27 Skipped | 3/5 Passed 1/5 Failed 1/5 Skipped |
Failed Test Cases | Groups | Description of Test Method |
---|---|---|
DirectContainer-UseMemberPredicate | [ldpMember, SHOULD] | LDP Direct Containers SHOULD use the ldp:member predicate as an LDPC's membership predicate if there is no obvious predicate from an application vocabulary to use. |
DirectContainer-RejectPutModifyingContainmentTriples | [SHOULD] | LDP servers SHOULD NOT allow HTTP PUT to update an LDPC’s containment triples; if the server receives such a request, it SHOULD respond with a 409 (Conflict) status code. |
DirectContainer-PreferMembershipTriples WG Approval Pending | [SHOULD] | LDP servers SHOULD respect all of a client's LDP-defined hints, for example which subsets of LDP-defined state the client is interested in processing, to influence the set of triples returned in representations of an LDPC, particularly for large LDPCs. See also [LDP-PAGING]. |
DirectContainer-RestrictUriReUseSlug | [SHOULD] | LDP servers that allow member creation via POST SHOULD NOT re-use URIs. |
DirectContainer-RestrictPutReUseUri | [SHOULD] | LDP servers that allow LDPR creation via PUT SHOULD NOT re-use URIs. For RDF representations (LDP-RSs),the created resource can be thought of as an RDF named graph [rdf11-concepts]. |
DirectContainer-PreferContainmentTriples WG Approval Pending | [SHOULD] | LDP servers SHOULD respect all of a client's LDP-defined hints, for example which subsets of LDP-defined state the client is interested in processing, to influence the set of triples returned in representations of an LDPC, particularly for large LDPCs. See also [LDP-PAGING]. |
DirectContainer-PutRequiresIfMatch | [SHOULD] | LDP clients SHOULD use the HTTP If-Match header and HTTP ETags to ensure it isn’t modifying a resource that has changed since the client last retrieved its representation. LDP servers SHOULD require the HTTP If-Match header and HTTP ETags to detect collisions. |
DirectContainer-RelativeUriResolutionPost WG Approval Pending | [MUST] | LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource. |
DirectContainer-TypeRdfSource WG Approval Pending | [MAY] | The representation of a LDP-RS MAY have an rdf:type of ldp:RDFSource for Linked Data Platform RDF Source. |
Skipped Test Cases | Groups | Description of Test Method |
---|---|---|
MemberResource-ContainsRdfType | [SHOULD] | LDP-RSs representations SHOULD have at least one rdf:type set explicitly. This makes the representations much more useful to client applications that don’t support inferencing. |
DirectContainer-PublishConstraintsReadOnlyProp WG Approval Pending | [MUST] | LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints. |
MemberResource-PutRequiresIfMatch | [SHOULD] | LDP clients SHOULD use the HTTP If-Match header and HTTP ETags to ensure it isn’t modifying a resource that has changed since the client last retrieved its representation. LDP servers SHOULD require the HTTP If-Match header and HTTP ETags to detect collisions. |
MemberResource-ETagHeadersGet WG Approval Pending | [MUST] | LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values. |
DirectContainer-UseStandardVocabularies | [MANUAL, SHOULD] | LDP-RSs predicates SHOULD use standard vocabularies such as Dublin Core [DC-TERMS], RDF [rdf11-concepts] and RDF Schema [rdf-schema], whenever possible. |
MemberResource-AcceptPatchHeader | [MUST] | LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server. |
MemberResource-RestrictClientInference | [MANUAL, MUST] | LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP. Other specifications built on top of LDP may require clients to implement inferencing [rdf11-concepts]. The practical implication is that all content defined by LDP must be explicitly represented, unless noted otherwise within this document. |
MemberResource-PutSimpleUpdate WG Approval Pending | [MUST] | LDP servers SHOULD allow clients to update resources without requiring detailed knowledge of server-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs. |
DirectContainer-PutSimpleUpdate WG Approval Pending | [MUST] | LDP servers SHOULD allow clients to update resources without requiring detailed knowledge of server-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs. |
MemberResource-Head | [MUST] | LDP servers MUST support the HTTP HEAD method. |
MemberResource-PutReadOnlyProperties4xxStatus WG Approval Pending | [MUST] | If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict) |
MemberResource-PutPropertiesNotPersisted WG Approval Pending | [MUST] | If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11]. |
DirectContainer-ResponsePropertiesNotPersisted WG Approval Pending | [SHOULD] | LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. LDP servers expose these application-specific constraints as described in section 4.2.1 General. |
DirectContainer-RequestedInteractionModelCreateNotAllowed WG Approval Pending | [MUST] | LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). The created resource can be thought of as an RDF named graph [rdf11-concepts]. If any model cannot be honored, the server MUST fail the request. |
MemberResource-TypeRdfSource WG Approval Pending | [MAY] | The representation of a LDP-RS MAY have an rdf:type of ldp:RDFSource for Linked Data Platform RDF Source. |
MemberResource-UseStandardVocabularies | [MANUAL, SHOULD] | LDP-RSs predicates SHOULD use standard vocabularies such as Dublin Core [DC-TERMS], RDF [rdf11-concepts] and RDF Schema [rdf-schema], whenever possible. |
DirectContainer-PreconditionRequiredStatusCode | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
MemberResource-ReUseVocabularies | [MANUAL, SHOULD] | LDP-RSs SHOULD reuse existing vocabularies instead of creating their own duplicate vocabulary terms. In addition to this general rule, some specific cases are covered by other conformance rules. |
MemberResource-PublishConstraintsReadOnlyProp WG Approval Pending | [MUST] | LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints. |
MemberResource-ETagHeadersHead | [MUST] | LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values. |
MemberResource-ConditionFailedStatusCode | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
MemberResource-PutReplacesResource | [MUST] | If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request. |
MemberResource-OptionsAllowHeader | [MUST] | LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow. |
MemberResource-PreconditionRequiredStatusCode | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
DirectContainer-RequestedInteractionModelHeaders WG Approval Pending | [MUST] | LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). The created resource can be thought of as an RDF named graph [rdf11-concepts]. If any model cannot be honored, the server MUST fail the request. |
MemberResource-GetResource | [MUST] | LDP servers MUST provide an RDF representation for LDP-RSs. The HTTP Request-URI of the LDP-RS is typically the subject of most triples in the response. |
MemberResource-JsonLdRepresentation WG Approval Pending | [SHOULD] | LDP servers SHOULD offer a application/ld+json representation of the requested LDP-RS [JSON-LD]. |
MemberResource-Options | [MUST] | LDP servers MUST support the HTTP OPTIONS method. |
DirectContainer-ReUseVocabularies | [MANUAL, SHOULD] | LDP-RSs SHOULD reuse existing vocabularies instead of creating their own duplicate vocabulary terms. In addition to this general rule, some specific cases are covered by other conformance rules. |
MemberResource-RelativeUriResolutionPut WG Approval Pending | [MUST] | LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource. |
DirectContainer-PublishConstraintsUnknownProp WG Approval Pending | [MUST] | LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints. |
MemberResource-PutBadETag | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
MemberResource-PublishConstraintsUnknownProp WG Approval Pending | [MUST] | LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints. |
MemberResource-GetResourceAcceptTurtle | [MUST] | LDP servers must provide a text/turtle representation of the requested LDP-RS whenever HTTP content negotiation does not force another outcome [turtle]. In other words, if the server receives a GET request whose Request-URI identifies a LDP-RS, and either text/turtle has the highest relative quality factor (q= value) in the Accept request header or that header is absent, then an LDP server has to respond with Turtle. |
MemberResource-4xxErrorHasResponseBody WG Approval Pending | [SHOULD] | LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. |
MemberResource-LdpLinkHeader | [MUST] | LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI. |
MemberResource-GetResponseHeaders | [MUST] | LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS. |
DirectContainer-PutPropertiesNotPersisted WG Approval Pending | [MUST] | If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11]. |
DirectContainer-RelativeUriResolutionPut WG Approval Pending | [MUST] | LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource. |
DirectContainer-PutReplacesResource | [MUST] | If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request. |
DirectContainer-RestrictClientInference | [MANUAL, MUST] | LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP. Other specifications built on top of LDP may require clients to implement inferencing [rdf11-concepts]. The practical implication is that all content defined by LDP must be explicitly represented, unless noted otherwise within this document. |
DirectContainer-IsHttp11Manual | [MANUAL, MUST] | LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11]. |
MemberResource-ResponsePropertiesNotPersisted WG Approval Pending | [SHOULD] | LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. LDP servers expose these application-specific constraints as described in section 4.2.1 General. |
DirectContainer-4xxErrorHasResponseBody WG Approval Pending | [SHOULD] | LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. |
MemberResource-IsHttp11Manual | [MANUAL, MUST] | LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11]. |
DirectContainer-PutReadOnlyProperties4xxStatus WG Approval Pending | [MUST] | If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict) |
Passed Test Cases | Groups | Description of Test Method |
---|---|---|
DirectContainer-Head | [MUST] | LDP servers MUST support the HTTP HEAD method. |
DirectContainer-ContentTypeHeader WG Approval Pending | [SHOULD] | LDP servers SHOULD use the Content-Type request header to determine the representation format when the request has an entity body. |
DirectContainer-NullRelativeUriPost | [MUST] | In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body. Commonly, that entity is the model for the “to be created” LDPR, so triples whose subject is the null relative URI will usually result in triples in the created resource whose subject is the created resource. |
DirectContainer-PatchMethod | [SHOULD] | LDP servers are RECOMMENDED to support HTTP PATCH as the preferred method for updating an LDPC's empty-container triples. |
DirectContainer-Options | [MUST] | LDP servers MUST support the HTTP OPTIONS method. |
DirectContainer-LdpLinkHeader | [MUST] | LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI. |
DirectContainer-GetResourceAcceptTurtle | [MUST] | LDP servers must provide a text/turtle representation of the requested LDP-RS whenever HTTP content negotiation does not force another outcome [turtle]. In other words, if the server receives a GET request whose Request-URI identifies a LDP-RS, and either text/turtle has the highest relative quality factor (q= value) in the Accept request header or that header is absent, then an LDP server has to respond with Turtle. |
DirectContainer-GetResponseHeaders | [MUST] | LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS. |
DirectContainer-GetResource | [MUST] | LDP servers MUST provide an RDF representation for LDP-RSs. The HTTP Request-URI of the LDP-RS is typically the subject of most triples in the response. |
DirectContainer-PutBadETag | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
DirectContainer-ETagHeadersHead | [MUST] | LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values. |
DirectContainer-MemberRelationOrIsMemberOfRelationTripleExists | [MUST] | Each LDP Direct Container representation must contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation. The object of the triple is constrained by other sections, such as ldp:hasMemberRelation or ldp:isMemberOfRelation, based on the membership triple pattern used by the container. |
DirectContainer-MemberResourceTriple | [MUST] | Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI. Commonly the LDPC's URI is the membership-constant-URI, but LDP does not require this. |
DirectContainer-PutToCreate | [MAY] | LDP servers MAY choose to allow the creation of new resources using HTTP PUT. |
DirectContainer-RdfTypeLdpContainer WG Approval Pending | [MAY] | The representation of a LDPC MAY have an rdf:type of ldp:Container for Linked Data Platform Container. Non-normative note: LDPCs might have additional types, like any LDP-RS. |
DirectContainer-PostJsonLd WG Approval Pending | [SHOULD] | LDP servers SHOULD accept a request entity body with a request header of Content-Type with value of application/ld+json [JSON-LD]. |
DirectContainer-DeleteResourceUpdatesTriples | [MUST] | When an LDPR identified by the object of a membership triple which was originally created by the LDP-DC is deleted, the LDPC server MUST also remove the corresponding membership triple. |
DirectContainer-ETagHeadersGet WG Approval Pending | [MUST] | LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values. |
DirectContainer-AcceptPatchHeader | [MUST] | LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server. |
DirectContainer-PostNoSlug WG Approval Pending | [SHOULD] | LDP servers SHOULD assign the URI for the resource to be created using server application specific rules in the absence of a client hint. |
DirectContainer-AcceptTurtle | [MUST] | LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle]. |
DirectContainer-DeleteRemovesContainmentTriple | [MUST] | When an LDPR identified by the object of a containment triple is deleted, the LDPC server MUST also remove the LDPR from the containing LDPC by removing the corresponding containment triple. |
DirectContainer-OptionsAllowHeader | [MUST] | LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow. |
DirectContainer-PostResponseStatusAndLocation | [MUST] | If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. Clients shall not expect any representation in the response entity body on a 201 (Created) response. |
DirectContainer-ConditionFailedStatusCode | [MUST] | LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585]. |
DirectContainer-ServerHonorsSlug WG Approval Pending | [MAY] | LDP servers MAY allow clients to suggest the URI for a resource created through POST, using the HTTP Slug header as defined in [RFC5023]. LDP adds no new requirements to this usage, so its presence functions as a client hint to the server providing a desired string to be incorporated into the server's final choice of resource URI. |
DirectContainer-ContainsRdfType | [SHOULD] | LDP-RSs representations SHOULD have at least one rdf:type set explicitly. This makes the representations much more useful to client applications that don’t support inferencing. |
DirectContainer-PostContainer | [MUST] | When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC. |
DirectContainer-PostResourceUpdatesTriples | [MUST] | When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes. |
DirectContainer-RestrictUriReUseNoSlug | [SHOULD] | LDP servers that allow member creation via POST SHOULD NOT re-use URIs. |
DirectContainer-NoRdfBagSeqOrList | [SHOULD] | LDPC representations SHOULD NOT use RDF container types rdf:Bag, rdf:Seq or rdf:List. |
DirectContainer-AcceptPostResponseHeader | [MUST] | LDP servers that support POST MUST include an Accept-Post response header on HTTP OPTIONS responses, listing post document media type(s) supported by the server. |
DirectContainer-JsonLdRepresentation WG Approval Pending | [SHOULD] | LDP servers SHOULD offer a application/ld+json representation of the requested LDP-RS [JSON-LD]. |
DirectContainer-CreateWithoutConstraints | [SHOULD] | LDP servers SHOULD allow clients to create new resources without requiring detailed knowledge of application-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs. LDP servers expose these application-specific constraints as described in section 4.2.1 General. |
DirectContainer-HttpLinkHeader | [MUST] | LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container (see below) the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP Request-URI. |
Indirectly Tested Test Cases | Overall Test Result | Description of Test Method |
---|---|---|
MemberResource-ConformsRdfSourceLdpResource | Passed | Each LDP RDF Source MUST also be a conforming LDP Resource as defined in section 4.2 Resource, along with the restrictions in this section. |
DirectContainer-ConformsContainerRdfResource | Passed | Each Linked Data Platform Container MUST also be a conforming Linked Data Platform RDF Source. |
DirectContainer-ConformsRdfSourceLdpResource | Passed | Each LDP RDF Source MUST also be a conforming LDP Resource as defined in section 4.2 Resource, along with the restrictions in this section. |
DirectContainer-ConformsDcLdpContainer | Failed | Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions. |
[FAILED TEST] |
---|
java.lang.AssertionError: LDP Direct Containers should use the ldp:member predicate if there is no obvious predicate from the application vocabulary. You can disable this test using the 'testLdpMember' parameter in testng.xml. expected [http://fedora.info/definitions/v4/repository#hasChild] but found [http://www.w3.org/ns/ldp#member] at org.w3.ldp.testsuite.test.DirectContainerTest.testUseMemberPredicate(DirectContainerTest.java:99) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 25 stack frames |
Reference URI: http://www.w3.org/TR/ldp#ldpdc-mbrpred
Description: LDP Direct Containers SHOULD use the ldp:member predicate as an LDPC's membership predicate if there is no obvious predicate from an application vocabulary to use.
Requirement Level: ldpMember SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: 1 expectation failed. Expected status code not between 200 and 209 doesn't match actual status code <204>. at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:81) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:577) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeFilterChain(RequestSpecificationImpl.groovy:927) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1347) at com.jayway.restassured.internal.RequestSpecificationImpl.this$2$applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy:159) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy:274) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy) at org.w3.ldp.testsuite.test.CommonContainerTest.testRejectPutModifyingContainmentTriples(CommonContainerTest.java:627) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 40 stack frames |
Reference URI: http://www.w3.org/TR/ldp#ldpc-put-mbrprops
Description: LDP servers SHOULD NOT allow HTTP PUT to update an LDPC’s containment triples; if the server receives such a request, it SHOULD respond with a 409 (Conflict) status code.
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: Server responded with a Preference-Applied header, but it did not contain return=representation expected [true] but found [false] at org.w3.ldp.testsuite.test.LdpTest.checkPreferenceAppliedHeader(LdpTest.java:372) at org.w3.ldp.testsuite.test.DirectContainerTest.testPreferMembershipTriples(DirectContainerTest.java:361) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 24 stack frames |
NOTE: Covers only part of the specification requirement.
Reference URI: http://www.w3.org/TR/ldp#ldpc-prefer
Description: LDP servers SHOULD respect all of a client's LDP-defined hints, for example which subsets of LDP-defined state the client is interested in processing, to influence the set of triples returned in representations of an LDPC, particularly for large LDPCs. See also [LDP-PAGING].
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: Server reused URIs for POSTed resources. at org.w3.ldp.testsuite.test.CommonContainerTest.testRestrictUriReUse(CommonContainerTest.java:881) at org.w3.ldp.testsuite.test.CommonContainerTest.testRestrictUriReUseSlug(CommonContainerTest.java:561) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 23 stack frames |
NOTE: Covers only part of the specification requirement. testRestrictUriReUseNoSlug covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-dontreuseuris
Description: LDP servers that allow member creation via POST SHOULD NOT re-use URIs.
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: 1 expectation failed. Expected status code not between 200 and 209 doesn't match actual status code <201>. at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:81) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:577) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeFilterChain(RequestSpecificationImpl.groovy:927) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1347) at com.jayway.restassured.internal.RequestSpecificationImpl.this$2$applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy:159) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy:274) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy) at org.w3.ldp.testsuite.test.CommonContainerTest.testRestrictPutReUseUri(CommonContainerTest.java:654) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 40 stack frames |
Reference URI: http://www.w3.org/TR/ldp#ldpc-put-create
Description: LDP servers that allow LDPR creation via PUT SHOULD NOT re-use URIs. For RDF representations (LDP-RSs),the created resource can be thought of as an RDF named graph [rdf11-concepts].
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: Server responded with a Preference-Applied header, but it did not contain return=representation expected [true] but found [false] at org.w3.ldp.testsuite.test.LdpTest.checkPreferenceAppliedHeader(LdpTest.java:372) at org.w3.ldp.testsuite.test.CommonContainerTest.testPreferContainmentTriples(CommonContainerTest.java:175) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 24 stack frames |
Reference URI: http://www.w3.org/TR/ldp#ldpc-prefer
Description: LDP servers SHOULD respect all of a client's LDP-defined hints, for example which subsets of LDP-defined state the client is interested in processing, to influence the set of triples returned in representations of an LDPC, particularly for large LDPCs. See also [LDP-PAGING].
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: 1 expectation failed. Expected status code not between 200 and 209 doesn't match actual status code <204>. at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:81) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:577) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeFilterChain(RequestSpecificationImpl.groovy:927) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1347) at com.jayway.restassured.internal.RequestSpecificationImpl.this$2$applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy:159) at com.jayway.restassured.internal.RequestSpecificationImpl.put(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy:274) at com.jayway.restassured.internal.ResponseSpecificationImpl.put(ResponseSpecificationImpl.groovy) at org.w3.ldp.testsuite.test.CommonResourceTest.testPutRequiresIfMatch(CommonResourceTest.java:265) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 40 stack frames |
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPreconditionRequiredStatusCode and testPutBadETag covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP clients SHOULD use the HTTP If-Match header and HTTP ETags to ensure it isn’t modifying a resource that has changed since the client last retrieved its representation. LDP servers SHOULD require the HTTP If-Match header and HTTP ETags to detect collisions.
Requirement Level: SHOULD
[FAILED TEST] |
---|
java.lang.AssertionError: 2 expectations failed. Expected status code <201> doesn't match actual status code <404>. Expected header "Location" was not set, was "null". Headers are: Content-Type=text/html;charset=ISO-8859-1 Cache-Control=must-revalidate,no-cache,no-store Content-Length=1371 Server=Jetty(8.1.11.v20130520) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:81) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:577) at com.jayway.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeFilterChain(RequestSpecificationImpl.groovy:927) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1347) at com.jayway.restassured.internal.RequestSpecificationImpl.this$2$applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at com.jayway.restassured.internal.RequestSpecificationImpl.post(RequestSpecificationImpl.groovy:155) at com.jayway.restassured.internal.RequestSpecificationImpl.post(RequestSpecificationImpl.groovy) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:807) at com.jayway.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy) at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at com.jayway.restassured.internal.ResponseSpecificationImpl.post(ResponseSpecificationImpl.groovy:270) at com.jayway.restassured.internal.ResponseSpecificationImpl.post(ResponseSpecificationImpl.groovy) at org.w3.ldp.testsuite.test.CommonContainerTest.testRelativeUriResolutionPost(CommonContainerTest.java:94) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 40 stack frames |
NOTE: Covers only part of the specification requirement.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-defbaseuri
Description: LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource.
Requirement Level: MUST
[FAILED TEST] |
---|
java.lang.AssertionError: LDP-RS representation does not have rdf:type ldp:RDFSource expected [true] but found [false] at org.w3.ldp.testsuite.test.RdfSourceTest.testTypeRdfSource(RdfSourceTest.java:200) at org.w3.ldp.testsuite.LdpTestSuite.run(LdpTestSuite.java:307) at org.w3.ldp.testsuite.LdpTestSuite.executeTestSuite(LdpTestSuite.java:336) at org.w3.ldp.testsuite.RunLdpTestSuite.main(RunLdpTestSuite.java:53) ... Removed 24 stack frames |
Reference URI: http://www.w3.org/TR/ldp#ldprs-rdftype
Description: The representation of a LDP-RS MAY have an rdf:type of ldp:RDFSource for Linked Data Platform RDF Source.
Requirement Level: MAY
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-atleast1rdftype
Description: LDP-RSs representations SHOULD have at least one rdf:type set explicitly. This makes the representations much more useful to client applications that don’t support inferencing.
Requirement Level: SHOULD
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. testPublishConstraintsUnknownProp covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-pubclireqs
Description: LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPreconditionRequiredStatusCode and testPutBadETag covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP clients SHOULD use the HTTP If-Match header and HTTP ETags to ensure it isn’t modifying a resource that has changed since the client last retrieved its representation. LDP servers SHOULD require the HTTP If-Match header and HTTP ETags to detect collisions.
Requirement Level: SHOULD
NOTE: Covers only part of the specification requirement. testETagHeadersHead covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-etags
Description: LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.
Requirement Level: MUST
[SKIPPED TEST] |
---|
This requirement or recommendation must be tested manually. It is difficult or impossible to write automated tests for and is not part of the testsuite. |
How to Run testUseStandardVocabularies
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-reusevocabsuchas
Description: LDP-RSs predicates SHOULD use standard vocabularies such as Dublin Core [DC-TERMS], RDF [rdf11-concepts] and RDF Schema [rdf-schema], whenever possible.
Requirement Level: MANUAL SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpr-patch-acceptpatch
Description: LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server.
Requirement Level: MUST
How to Run testRestrictClientInference
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-noinferencing
Description: LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP. Other specifications built on top of LDP may require clients to implement inferencing [rdf11-concepts]. The practical implication is that all content defined by LDP must be explicitly represented, unless noted otherwise within this document.
Requirement Level: MANUAL MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-simpleupdate
Description: LDP servers SHOULD allow clients to update resources without requiring detailed knowledge of server-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs.
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because there are restrictions on PUT content for this resource. The requirement needs to be tested manually. |
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-simpleupdate
Description: LDP servers SHOULD allow clients to update resources without requiring detailed knowledge of server-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-head-must
Description: LDP servers MUST support the HTTP HEAD method.
Requirement Level: MUST
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. test4xxErrorHasResponseBody covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-servermanagedprops
Description: If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict)
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testResponsePropertiesNotPersisted covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-failed
Description: If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11].
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
NOTE: Covers only part of the specification requirement. testPutPropertiesNotPersisted covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-failed
Description: LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. LDP servers expose these application-specific constraints as described in section 4.2.1 General.
Requirement Level: SHOULD
[SKIPPED TEST] |
---|
containerAsResource is null |
Parameters:
NOTE: Covers only part of the specification requirement. testRequestedInteractionModelHeaders covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-createrdf
Description: LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). The created resource can be thought of as an RDF named graph [rdf11-concepts]. If any model cannot be honored, the server MUST fail the request.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-rdftype
Description: The representation of a LDP-RS MAY have an rdf:type of ldp:RDFSource for Linked Data Platform RDF Source.
Requirement Level: MAY
How to Run testUseStandardVocabularies
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-reusevocabsuchas
Description: LDP-RSs predicates SHOULD use standard vocabularies such as Dublin Core [DC-TERMS], RDF [rdf11-concepts] and RDF Schema [rdf-schema], whenever possible.
Requirement Level: MANUAL SHOULD
[SKIPPED TEST] |
---|
Server does not require If-Match header. |
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPutBadETagand testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
How to Run testReUseVocabularies
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-reusevocab
Description: LDP-RSs SHOULD reuse existing vocabularies instead of creating their own duplicate vocabulary terms. In addition to this general rule, some specific cases are covered by other conformance rules.
Requirement Level: MANUAL SHOULD
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. testPublishConstraintsUnknownProp covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-pubclireqs
Description: LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testETagHeadersGet covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-etags
Description: LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testPutBadETag, testPreconditionRequiredStatusCode and testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-replaceall
Description: If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-options-allow
Description: LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPutBadETagand testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
[SKIPPED TEST] |
---|
containerAsResource is null |
Parameters:
NOTE: Covers only part of the specification requirement. testRequestedInteractionModelCreateNotAllowed covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-createrdf
Description: LDP servers that successfully create a resource from a RDF representation in the request entity body MUST honor the client's requested interaction model(s). The created resource can be thought of as an RDF named graph [rdf11-concepts]. If any model cannot be honored, the server MUST fail the request.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-rdf
Description: LDP servers MUST provide an RDF representation for LDP-RSs. The HTTP Request-URI of the LDP-RS is typically the subject of most triples in the response.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-get-jsonld
Description: LDP servers SHOULD offer a application/ld+json representation of the requested LDP-RS [JSON-LD].
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpr-options-must
Description: LDP servers MUST support the HTTP OPTIONS method.
Requirement Level: MUST
[SKIPPED TEST] |
---|
This requirement or recommendation must be tested manually. It is difficult or impossible to write automated tests for and is not part of the testsuite. |
How to Run testReUseVocabularies
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-reusevocab
Description: LDP-RSs SHOULD reuse existing vocabularies instead of creating their own duplicate vocabulary terms. In addition to this general rule, some specific cases are covered by other conformance rules.
Requirement Level: MANUAL SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-defbaseuri
Description: LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource.
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
NOTE: Covers only part of the specification requirement. testPublishConstraintsReadOnlyProp covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-pubclireqs
Description: LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPreconditionRequiredStatusCode and testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testPublishConstraintsReadOnlyProp covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-pubclireqs
Description: LDP servers MUST publish any constraints on LDP clients’ ability to create or update LDPRs, by adding a Link header with rel='describedby' [RFC5988] to all responses to requests which fail due to violation of those constraints.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-get-turtle
Description: LDP servers must provide a text/turtle representation of the requested LDP-RS whenever HTTP content negotiation does not force another outcome [turtle]. In other words, if the server receives a GET request whose Request-URI identifies a LDP-RS, and either text/turtle has the highest relative quality factor (q= value) in the Accept request header or that header is absent, then an LDP server has to respond with Turtle.
Requirement Level: MUST
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. testPutReadOnlyProperties4xxStatus covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-servermanagedprops
Description: LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-linktypehdr
Description: LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-get-options
Description: LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS.
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
NOTE: Covers only part of the specification requirement. testResponsePropertiesNotPersisted covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-failed
Description: If an otherwise valid HTTP PUT request is received that contains properties the server chooses not to persist, e.g. unknown content, LDP servers MUST respond with an appropriate 4xx range status code [HTTP11].
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because there are restrictions on PUT content for this resource. The requirement needs to be tested manually. |
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-defbaseuri
Description: LDP servers MUST assign the default base-URI for [RFC3987] relative-URI resolution to be the HTTP Request-URI when the resource already exists, and to the URI of the created resource when the request results in the creation of a new resource.
Requirement Level: MUST
Test Case is covered Indirectly by the following:
Reference URI: http://www.w3.org/TR/ldp#ldprs-are-ldpr
Description: Each LDP RDF Source MUST also be a conforming LDP Resource as defined in section 4.2 Resource, along with the restrictions in this section.
Requirement Level: MUST
[SKIPPED TEST] |
---|
Skipping test because there are restrictions on PUT content for this resource. The requirement needs to be tested manually. |
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-replaceall
Description: If a HTTP PUT is accepted on an existing resource, LDP servers MUST replace the entire persistent state of the identified resource with the entity representation in the body of the request.
Requirement Level: MUST
[SKIPPED TEST] |
---|
This requirement or recommendation must be tested manually. It is difficult or impossible to write automated tests for and is not part of the testsuite. |
How to Run testRestrictClientInference
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-noinferencing
Description: LDP servers MUST NOT require LDP clients to implement inferencing in order to recognize the subset of content defined by LDP. Other specifications built on top of LDP may require clients to implement inferencing [rdf11-concepts]. The practical implication is that all content defined by LDP must be explicitly represented, unless noted otherwise within this document.
Requirement Level: MANUAL MUST
[SKIPPED TEST] |
---|
This requirement or recommendation must be tested manually. It is difficult or impossible to write automated tests for and is not part of the testsuite. |
NOTE: Covers only part of the specification requirement. testIsHttp11Server covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-http
Description: LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11].
Requirement Level: MANUAL MUST
NOTE: Covers only part of the specification requirement. testPutPropertiesNotPersisted covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-failed
Description: LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP. LDP servers expose these application-specific constraints as described in section 4.2.1 General.
Requirement Level: SHOULD
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. testPutReadOnlyProperties4xxStatus covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-servermanagedprops
Description: LDP servers SHOULD provide a corresponding response body containing information about which properties could not be persisted. The format of the 4xx response body is not constrained by LDP.
Requirement Level: SHOULD
NOTE: Covers only part of the specification requirement. testIsHttp11Server covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-http
Description: LDP servers MUST at least be HTTP/1.1 conformant servers [HTTP11].
Requirement Level: MANUAL MUST
[SKIPPED TEST] |
---|
Skipping test because PUT request was successful. |
Parameters: http://fedora.info/definitions/v4/repository#uuid
NOTE: Covers only part of the specification requirement. test4xxErrorHasResponseBody covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldprs-put-servermanagedprops
Description: If an otherwise valid HTTP PUT request is received that attempts to change properties the server does not allow clients to modify, LDP servers MUST respond with a 4xx range status code (typically 409 Conflict)
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-head-must
Description: LDP servers MUST support the HTTP HEAD method.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-contenttype
Description: LDP servers SHOULD use the Content-Type request header to determine the representation format when the request has an entity body.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-rdfnullrel
Description: In RDF representations, LDP servers MUST interpret the null relative URI for the subject of triples in the LDPR representation in the request entity body as referring to the entity in the request body. Commonly, that entity is the model for the “to be created” LDPR, so triples whose subject is the null relative URI will usually result in triples in the created resource whose subject is the created resource.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-patch-req
Description: LDP servers are RECOMMENDED to support HTTP PATCH as the preferred method for updating an LDPC's empty-container triples.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpr-options-must
Description: LDP servers MUST support the HTTP OPTIONS method.
Requirement Level: MUST
Test Case is covered Indirectly by the following:
Reference URI: http://www.w3.org/TR/ldp#ldpc-isldpr
Description: Each Linked Data Platform Container MUST also be a conforming Linked Data Platform RDF Source.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-linktypehdr
Description: LDP servers exposing LDPRs MUST advertise their LDP support by exposing a HTTP Link header with a target URI of http://www.w3.org/ns/ldp#Resource, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPR's HTTP Request-URI.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-get-turtle
Description: LDP servers must provide a text/turtle representation of the requested LDP-RS whenever HTTP content negotiation does not force another outcome [turtle]. In other words, if the server receives a GET request whose Request-URI identifies a LDP-RS, and either text/turtle has the highest relative quality factor (q= value) in the Accept request header or that header is absent, then an LDP server has to respond with Turtle.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-get-options
Description: LDP servers MUST support the HTTP response headers defined in section 4.2.8 HTTP OPTIONS.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-rdf
Description: LDP servers MUST provide an RDF representation for LDP-RSs. The HTTP Request-URI of the LDP-RS is typically the subject of most triples in the response.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testConditionFailedStatusCode, testPreconditionRequiredStatusCode and testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testETagHeadersGet covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-etags
Description: LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpdc-containtriples
Description: Each LDP Direct Container representation must contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:hasMemberRelation or ldp:isMemberOfRelation. The object of the triple is constrained by other sections, such as ldp:hasMemberRelation or ldp:isMemberOfRelation, based on the membership triple pattern used by the container.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpdc-containres
Description: Each LDP Direct Container representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipResource, and whose object is the LDPC's membership-constant-URI. Commonly the LDPC's URI is the membership-constant-URI, but LDP does not require this.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-create
Description: LDP servers MAY choose to allow the creation of new resources using HTTP PUT.
Requirement Level: MAY
Reference URI: http://www.w3.org/TR/ldp#ldpc-typecontainer
Description: The representation of a LDPC MAY have an rdf:type of ldp:Container for Linked Data Platform Container. Non-normative note: LDPCs might have additional types, like any LDP-RS.
Requirement Level: MAY
Test Case is covered Indirectly by the following:
Reference URI: http://www.w3.org/TR/ldp#ldprs-are-ldpr
Description: Each LDP RDF Source MUST also be a conforming LDP Resource as defined in section 4.2 Resource, along with the restrictions in this section.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-jsonld
Description: LDP servers SHOULD accept a request entity body with a request header of Content-Type with value of application/ld+json [JSON-LD].
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpdc-del-contremovesmbrtriple
Description: When an LDPR identified by the object of a membership triple which was originally created by the LDP-DC is deleted, the LDPC server MUST also remove the corresponding membership triple.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testETagHeadersHead covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-gen-etags
Description: LDP server responses MUST use entity tags (either weak or strong ones) as response ETag header values.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-patch-acceptpatch
Description: LDP servers that support PATCH MUST include an Accept-Patch HTTP response header [RFC5789] on HTTP OPTIONS requests, listing patch document media type(s) supported by the server.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-serverassignuri
Description: LDP servers SHOULD assign the URI for the resource to be created using server application specific rules in the absence of a client hint.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-turtle
Description: LDP servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle [turtle].
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-del-contremovesconttriple
Description: When an LDPR identified by the object of a containment triple is deleted, the LDPC server MUST also remove the LDPR from the containing LDPC by removing the corresponding containment triple.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpr-options-allow
Description: LDP servers MUST indicate their support for HTTP Methods by responding to a HTTP OPTIONS request on the LDPR’s URL with the HTTP Method tokens in the HTTP response header Allow.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-created201
Description: If the resource was created successfully, LDP servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. Clients shall not expect any representation in the response entity body on a 201 (Created) response.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testPutBadETag, testPreconditionRequiredStatusCode and testPutRequiresIfMatch covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpr-put-precond
Description: LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request [HTTP11]. LDP servers that require conditional requests MUST respond with status code 428 (Precondition Required) when the absence of a precondition is the only reason for rejecting the request [RFC6585].
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-slug
Description: LDP servers MAY allow clients to suggest the URI for a resource created through POST, using the HTTP Slug header as defined in [RFC5023]. LDP adds no new requirements to this usage, so its presence functions as a client hint to the server providing a desired string to be incorporated into the server's final choice of resource URI.
Requirement Level: MAY
Reference URI: http://www.w3.org/TR/ldp#ldprs-gen-atleast1rdftype
Description: LDP-RSs representations SHOULD have at least one rdf:type set explicitly. This makes the representations much more useful to client applications that don’t support inferencing.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-createdmbr-contains
Description: When a successful HTTP POST request to an LDPC results in the creation of an LDPR, a containment triple MUST be added to the state of LDPC.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpdc-post-createdmbr-member
Description: When a successful HTTP POST request to an LDPC results in the creation of an LDPR, the LDPC MUST update its membership triples to reflect that addition, and the resulting membership triple MUST be consistent with any LDP-defined predicates it exposes.
Requirement Level: MUST
NOTE: Covers only part of the specification requirement. testRestrictUriReUseSlug covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-dontreuseuris
Description: LDP servers that allow member creation via POST SHOULD NOT re-use URIs.
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpc-nordfcontainertypes
Description: LDPC representations SHOULD NOT use RDF container types rdf:Bag, rdf:Seq or rdf:List.
Requirement Level: SHOULD
Test Case is covered Indirectly by the following:
Reference URI: http://www.w3.org/TR/ldp#ldpdc-are-ldpcs
Description: Each LDP Direct Container MUST also be a conforming LDP Container in section 5.2 Container along the following restrictions.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-acceptposthdr
Description: LDP servers that support POST MUST include an Accept-Post response header on HTTP OPTIONS responses, listing post document media type(s) supported by the server.
Requirement Level: MUST
Reference URI: http://www.w3.org/TR/ldp#ldprs-get-jsonld
Description: LDP servers SHOULD offer a application/ld+json representation of the requested LDP-RS [JSON-LD].
Requirement Level: SHOULD
Reference URI: http://www.w3.org/TR/ldp#ldpc-post-mincontraints
Description: LDP servers SHOULD allow clients to create new resources without requiring detailed knowledge of application-specific constraints. This is a consequence of the requirement to enable simple creation and modification of LDPRs. LDP servers expose these application-specific constraints as described in section 4.2.1 General.
Requirement Level: SHOULD
NOTE: Covers only part of the specification requirement. IndirectContainerTest.testContainerSupportsHttpLinkHeader and BasicContainerTest.testContainerSupportsHttpLinkHeader covers the rest.
Reference URI: http://www.w3.org/TR/ldp#ldpc-linktypehdr
Description: LDP servers exposing LDPCs MUST advertise their LDP support by exposing a HTTP Link header with a target URI matching the type of container (see below) the server supports, and a link relation type of type (that is, rel='type') in all responses to requests made to the LDPC's HTTP Request-URI.
Requirement Level: MUST