--- a/Test Cases/LDP Test Cases.html Thu Jan 02 13:59:20 2014 -0500
+++ b/Test Cases/LDP Test Cases.html Wed Jan 22 20:16:26 2014 -0500
@@ -4,4 +4,354 @@
</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.8 LDPR server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.1 LDPR servers MUST support the HTTP GET Method for LDPRs.</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR1-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR1-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description"> GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR1-I1-LDPR-URI"> </span></li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"> <em property="dc:title"><Response
1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span> <span property="tn:fromStep" resource="#TCR1-RQ1-GET-LDPR-URI"></span></li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR1-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted"
resource="TCR1-O1-Response-1-GET">Assert
<Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.3.4 is no longer an absolute requirement
<section resource="#TCR2" typeof="td:TestCase">
<h3><a id="TC-R2"><span property="rdfs:label">TC-R2</span>. <span property="dc:title">GET on an LDPR without content type</span></a></h3>
<p property="dc:description">Tests making a GET request on an existing LDPR without indicating a content type.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl
- García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.4 [...] If the client does not indicate a preference, text/turtle SHOULD be returned.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR2-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR2-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR2-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span> <span property="tn:fromStep"
resource="#TCR2-RQ1-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR2-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[entity-header].Content-Type = text/turtle</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCR3" typeof="td:TestCase">
<h3><a id="TC-R3"><span property="rdfs:label">TC-R3</span>. <span property="dc:title">GET on a non-existing LDPR</span></a></h3>
<p property="dc:description">Tests making a GET request on a non-existing LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR3-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of a non-existing LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server does not contain an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR3-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR3-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR3-RQ1-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR3-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR3-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 404 or 410</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCR4" typeof="td:TestCase">
<h3><a id="TC-R4"><span property="rdfs:label">TC-R4</span>. <span property="dc:title">PUT on an LDPR</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPR.</p> <p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">3.11 [...] An entity tag MUST be unique across all versions of all entities associated with a particular resource.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCR4-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPR the current representation at <LDPR URI></li>
<li property="td:precondition">The LDP server does not desire that the request be applied to a different URI</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ2-PUT-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPR URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ3-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR4-RQ1-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR4-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCR4-RQ2-PUT-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCR4-RQ3-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR4-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A2-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A3-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">LDPR updated</span>):
<div property="dc:description">
<ul>
<li>[response-header].ETag != <Response 1 GET>.[response-header].ETag</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCR5" typeof="td:TestCase">
<h3><a id="TC-R5"><span property="rdfs:label">TC-R5</span>. <span property="dc:title">PUT on an LDPR without matching ETags</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPR without matching ETags.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.5.2 [...] LDPR servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCR5-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPR the current representation at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR5-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR5-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR5-RQ2-PUT-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPR URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag + 'M'</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCR5-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR5-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR5-RQ1-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR5-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCR5-RQ2-PUT-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR5-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR5-A2-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR5-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 412</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCR6" typeof="td:TestCase">
<h3><a id="TC-R6"><span property="rdfs:label">TC-R6</span>. <span property="dc:title">DELETE on an LDPR</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR6-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows DELETE</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR6-RQ1-DELETE-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR6-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR6-RQ2-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR6-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR6-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCR6-RQ1-DELETE-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR6-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCR6-RQ2-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR6-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR6-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR6-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR6-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204) </li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCR7" typeof="td:TestCase">
<h3><a id="TC-R7"><span property="rdfs:label">TC-R7</span>. <span property="dc:title">HEAD on an LDPR</span></a></h3>
<p property="dc:description">Tests making a HEAD request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.7.1 LDPR servers MUST support the HTTP HEAD method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR7-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR7-RQ1-HEAD-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">HEAD <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR7-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR7-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 HEAD></em>. <span property="dc:description">The response of the HEAD request in step 1.</span>
<span property="tn:fromStep" resource="#TCR7-RQ1-HEAD-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR7-A1-Response-1-HEAD" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR7-O1-Response-1-HEAD">Assert <Response 1 HEAD> (<span property="dc:title">HEAD correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
<li>[message-body] not exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCR8" typeof="td:TestCase">
<h3><a id="TC-R8"><span property="rdfs:label">TC-R8</span>. <span property="dc:title">OPTIONS on an LDPR</span></a></h3>
<p property="dc:description">Tests making an OPTIONS request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.1 LDPR servers MUST support the HTTP OPTIONS method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.2 LDPR 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.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR8-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR8-RQ1-OPTIONS-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">OPTIONS <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR8-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR8-RP1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 OPTIONS></em>. <span property="dc:description">The response of the OPTIONS request in step 1.</span>
<span property="tn:fromStep" resource="#TCR8-RQ1-OPTIONS-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR8-A1-Response-1-OPTIONS" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR8-O1-Response-1-OPTIONS">Assert <Response 1 OPTIONS> (<span property="dc:title">OPTIONS correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
<li>[entity-header].Allow exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
</section>
<section>
<h2><a id="Tests-LDPCs"></a>Tests for LDPCs</h2>
<p>These tests involve LDPCs and LDPRs.</p>
<section resource="#TCC1" typeof="td:TestCase">
<h3><a id="TC-C1"><span property="rdfs:label">TC-C1</span>. <span property="dc:title">GET on an LDPC</span></a></h3>
<p property="dc:description">Tests making a GET request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.8 LDPR server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.1 LDPR servers MUST support the HTTP GET Method for LDPRs.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.7 The representation of a LDPC MUST have rdf:type of ldp:Container, [...].</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.4 An LDPC representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipSubject, and whose object is the LDPC's membership subject URI.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5 An LDPC representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:membershipPredicate or ldp:membershipPredicateInverse. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5.1 For a given triple T with a subject C of the LDPC and predicate of ldp:membershipPredicate, the object MUST be the URI of the membership predicate P used to indicate membership to the linked to LDPC, [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5.2 For a given triple T with a subject C of the LDPC and predicate of ldp:membershipPredicateInverse, the object MUST be the URI of the membership predicate P used to indicate membership to the linked to LDPC, [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC1-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC1-I2-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC1-I3-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC1-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC1-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC1-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC1-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC1-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC1-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.3.4 is no longer an absolute requirement
<section resource="#TCC2" typeof="td:TestCase">
<h3><a id="TC-C2"><span property="rdfs:label">TC-C2</span>. <span property="dc:title">GET on an LDPC without content type</span></a></h3>
<p property="dc:description">Tests making a GET request on an LDPC without content type.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.4 [...] If the client does not indicate a preference, text/turtle SHOULD be returned.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC2-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC2-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC2-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC2-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[entity-header].Content-Type = text/turtle</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC2-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCC3" typeof="td:TestCase">
<h3><a id="TC-C3"><span property="rdfs:label">TC-C3</span>. <span property="dc:title">GET on a non-existing LDPC</span></a></h3>
<p property="dc:description">Tests making a GET request on an non-existing LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC3-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of a non-existing LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server does not contain an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC3-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC3-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC3-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC3-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 404 or 410</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCC4" typeof="td:TestCase">
<h3><a id="TC-C4"><span property="rdfs:label">TC-C4</span>. <span property="dc:title">PUT on an LDPC</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">3.11 [...] An entity tag MUST be unique across all versions of all entities associated with a particular resource.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCC4-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPC the current representation at <LDPC URI></li>
<li property="td:precondition">The LDP server does not desire that the request be applied to a different URI</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ2-PUT-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPC URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC4-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC4-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCC4-RQ2-PUT-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC4-RQ3-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC4-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A3-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A6-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">LDPC updated</span>):
<div property="dc:description">
<ul>
<li>[response-header].ETag != <Response 1 GET>.[response-header].ETag</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCC5" typeof="td:TestCase">
<h3><a id="TC-C5"><span property="rdfs:label">TC-C5</span>. <span property="dc:title">PUT on an LDPC without matching ETags</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPC without matching ETags.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.5.2 [...] LDPR servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC5-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPC the current representation at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC5-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC5-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC5-RQ2-PUT-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPC URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag + 'M'</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC5-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC5-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC5-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC5-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCC5-RQ2-PUT-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC5-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC5-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC5-A3-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 412</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCC6" typeof="td:TestCase">
<h3><a id="TC-C6"><span property="rdfs:label">TC-C6</span>. <span property="dc:title">DELETE on an LDPC</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC6-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows DELETE</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC6-RQ1-DELETE-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC6-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC6-RQ2-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC6-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC6-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCC6-RQ1-DELETE-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC6-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCC6-RQ2-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC6-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC6-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC6-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC6-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204)</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC7" typeof="td:TestCase">
<h3><a id="TC-C7"><span property="rdfs:label">TC-C7</span>. <span property="dc:title">DELETE on an LDPR in an LDPC</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPR in an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.6.2 When the LDPC server successfully completes the DELETE request on a LDPC, it MUST remove any membership triples associated with the LDPC as indicated by the canonical Request-URI. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC7-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC7-I2-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR that is a member of the LDPC.</span></li>
<li property="td:input" resource="#TCC7-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC7-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR is a member of the LDPC</li>
<li property="td:precondition">The LDPR at <LDPR URI> allows DELETE</li>
<li property="td:precondition">The LDPR was originally created by the LDPC</li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ1-DELETE-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCC7-I2-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ2-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCC7-I2-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC7-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC7-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCC7-RQ1-DELETE-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCC7-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCC7-RQ2-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCC7-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC7-RQ3-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC7-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204)</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A3-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">member removed from container</span>)
<div property="dc:description">
<ul>
<li>[message-body] does not contain <S URI> <P URI> <LDPR URI> .</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC8" typeof="td:TestCase">
<h3><a id="TC-C8"><span property="rdfs:label">TC-C8</span>. <span property="dc:title">HEAD on an LDPC</span></a></h3>
<p property="dc:description">Tests making a HEAD request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.7.1 LDPR servers MUST support the HTTP HEAD method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso"><em>Hypertext Transfer Protocol - HTTP/1.1</em></a>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC8-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC8-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">HEAD <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC8-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC8-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 HEAD></em>. <span property="dc:description">The response of the HEAD request in step 1.</span>
<span property="tn:fromStep" resource="#TCC8-RQ1-HEAD-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC8-A1-Response-1-HEAD" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC8-O1-Response-1-HEAD">Assert <Response 1 HEAD> (<span property="dc:title">HEAD correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
<li>[message-body] not exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC9" typeof="td:TestCase">
<h3><a id="TC-C9"><span property="rdfs:label">TC-C9</span>. <span property="dc:title">POST an LDPR on an LDPC</a></h3>
<p property="dc:description">Tests making a POST request of an LDPR on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.1 [...] If the resource was created successfully, LDPC servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.2 After a successful HTTP POST request to a LDPC, the new resource MUST appear as a member of the LDPC until the new resource is deleted or removed by other methods. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.4 For servers that support create, LDPC servers MUST create an LDPR from a RDF representation in the request entity body. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.5 LDPC servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle. </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC9-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC9-I2-LDPR-REP" typeof="tn:TestInput"><em property="dc:title"><LDPR representation></em>. <span property="dc:description">The representation of the LDPR to be created</span></li>
<li property="td:input" resource="#TCC9-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC9-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows POST</li>
<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource</li>
<li property="td:precondition"><LDPR representation> is in text/turtle</li>
<li property="td:precondition"><LDPR representation> is a valid representation for a resource to be created in the LDPC</li>
<li property="td:precondition"><LDPR representation> uses null relative URI as the entity in the request body</li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">POST <LDPC URI>
<ul>
<li>[entity-header].Content-type = text/turtle</li>
<li>[message-body] = <LDPR representation></li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
<span property="tn:usesInput" resource="#TCC9-I2-LDPR-REP"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <Response 2 POST>.[response-header].Location</div>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC9-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC9-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O2-Response-2-POST" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 POST></em>. <span property="dc:description">The response of the POST request in step 2.</span>
<span property="tn:fromStep" resource="#TCC9-RQ2-POST-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC9-RQ3-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O4-Response-4-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 4 GET></em>. <span property="dc:description">The response of the GET request in step 4.</span>
<span property="tn:fromStep" resource="#TCC9-RQ4-GET-LOC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC9-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A3-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">container does not have member</span>):
<div property="dc:description">
<ul>
<li>[message-body] does not contain <S URI> <P URI> <Response 2
POST>.[response-header].Location .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A4-Response-2-POST" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O2-Response-2-POST">Assert <Response 2 POST> (<span property="dc:title">POST correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 201</li>
<li>[response-header].Location exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A6-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A7-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">container has member</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A8-Response-4-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O4-Response-4-GET">Assert <Response 4 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC10" typeof="td:TestCase">
<h3><a id="TC-C10"><span property="rdfs:label">TC-C10</span>. <span property="dc:title">OPTIONS on an LDPC</span></a></h3>
<p property="dc:description">Tests making an OPTIONS request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.1 LDPR servers MUST support the HTTP OPTIONS method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.2 LDPR 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.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC10-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC10-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">OPTIONS <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC10-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC10-RP1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 OPTIONS></em>. <span property="dc:description">The response of the OPTIONS request in step 1.</span>
<span property="tn:fromStep" resource="#TCC10-RQ1-OPTIONS-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC10-A1-Response-1-OPTIONS" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC10-O1-Response-1-OPTIONS">Assert <Response 1 OPTIONS> (<span property="dc:title">OPTIONS correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
<li>[entity-header].Allow exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
</section>
<section class="appendix">
<h2><a id="ChangeHistory">Change history</a></h2>
<ul>
<li>2013-08-27 Updated according to Last Call Working Draft from 30 July 2013 (RGC)</li>
<li>2013-06-03 Updated to use ReSpec (RGC)</li>
<li>2013-06-03 Implemented <a href="http://lists.w3.org/Archives/Public/public-ldp-wg/2013May/0153.html">changes suggested by Eric Prud'hommeaux</a> (RGC)</li>
</ul>
</section>
<section class="appendix">
<h2><a id="EditorNotes">Editor TODOs and notes</a></h2>
<ul>
<li>Define the type of document: Working Draft, Note, etc.</li>
<li>Choose a URI for the test cases (this) document</li>
<li>Choose a namespace for the new vocabulary terms and for the test cases</li>
<li>Include the RDF description of the test suite</li>
</ul>
</section>
</body>
</html>
\ No newline at end of file
+ García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.4 [...] If the client does not indicate a preference, text/turtle SHOULD be returned.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR2-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR2-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR2-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span> <span property="tn:fromStep"
resource="#TCR2-RQ1-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR2-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[entity-header].Content-Type = text/turtle</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCR3" typeof="td:TestCase">
<h3><a id="TC-R3"><span property="rdfs:label">TC-R3</span>. <span property="dc:title">GET on a non-existing LDPR</span></a></h3>
<p property="dc:description">Tests making a GET request on a non-existing LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR3-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of a non-existing LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server does not contain an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR3-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR3-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR3-RQ1-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR3-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR3-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 404 or 410</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCR4" typeof="td:TestCase">
<h3><a id="TC-R4"><span property="rdfs:label">TC-R4</span>. <span property="dc:title">PUT on an LDPR</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPR.</p> <p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">3.11 [...] An entity tag MUST be unique across all versions of all entities associated with a particular resource.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCR4-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPR the current representation at <LDPR URI></li>
<li property="td:precondition">The LDP server does not desire that the request be applied to a different URI</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ2-PUT-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPR URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR4-RQ3-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR4-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR4-RQ1-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR4-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCR4-RQ2-PUT-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCR4-RQ3-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR4-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A2-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A3-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR4-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">LDPR updated</span>):
<div property="dc:description">
<ul>
<li>[response-header].ETag != <Response 1 GET>.[response-header].ETag</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCR5" typeof="td:TestCase">
<h3><a id="TC-R5"><span property="rdfs:label">TC-R5</span>. <span property="dc:title">PUT on an LDPR without matching ETags</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPR without matching ETags.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.5.2 [...] LDPR servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCR5-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPR the current representation at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR5-RQ1-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR5-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR5-RQ2-PUT-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPR URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag + 'M'</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCR5-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR5-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCR5-RQ1-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR5-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCR5-RQ2-PUT-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR5-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR5-A2-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR5-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 412</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCR6" typeof="td:TestCase">
<h3><a id="TC-R6"><span property="rdfs:label">TC-R6</span>. <span property="dc:title">DELETE on an LDPR</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR6-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR at <LDPR URI> allows DELETE</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR6-RQ1-DELETE-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR6-I1-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCR6-RQ2-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCR6-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR6-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCR6-RQ1-DELETE-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCR6-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCR6-RQ2-GET-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR6-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR6-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCR6-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR6-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204) </li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCR7" typeof="td:TestCase">
<h3><a id="TC-R7"><span property="rdfs:label">TC-R7</span>. <span property="dc:title">HEAD on an LDPR</span></a></h3>
<p property="dc:description">Tests making a HEAD request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.7.1 LDPR servers MUST support the HTTP HEAD method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR7-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR7-RQ1-HEAD-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">HEAD <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR7-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR7-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 HEAD></em>. <span property="dc:description">The response of the HEAD request in step 1.</span>
<span property="tn:fromStep" resource="#TCR7-RQ1-HEAD-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR7-A1-Response-1-HEAD" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR7-O1-Response-1-HEAD">Assert <Response 1 HEAD> (<span property="dc:title">HEAD correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
<li>[message-body] not exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCR8" typeof="td:TestCase">
<h3><a id="TC-R8"><span property="rdfs:label">TC-R8</span>. <span property="dc:title">OPTIONS on an LDPR</span></a></h3>
<p property="dc:description">Tests making an OPTIONS request on an LDPR.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.1 LDPR servers MUST support the HTTP OPTIONS method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.2 LDPR 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.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCR8-I1-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCR8-RQ1-OPTIONS-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">OPTIONS <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCR8-I1-LDPR-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCR8-RP1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 OPTIONS></em>. <span property="dc:description">The response of the OPTIONS request in step 1.</span>
<span property="tn:fromStep" resource="#TCR8-RQ1-OPTIONS-LDPR-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCR8-A1-Response-1-OPTIONS" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCR8-O1-Response-1-OPTIONS">Assert <Response 1 OPTIONS> (<span property="dc:title">OPTIONS correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
<li>[entity-header].Allow exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
</section>
<section>
<h2><a id="Tests-LDPCs"></a>Tests for LDPCs</h2>
<p>These tests involve LDPCs and LDPRs.</p>
<section resource="#TCC1" typeof="td:TestCase">
<h3><a id="TC-C1"><span property="rdfs:label">TC-C1</span>. <span property="dc:title">GET on an LDPC</span></a></h3>
<p property="dc:description">Tests making a GET request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.8 LDPR server responses MUST use entity tags (either weak or strong ones) as response ETag header values.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.1 LDPR servers MUST support the HTTP GET Method for LDPRs.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.7 The representation of a LDPC MUST have rdf:type of ldp:Container, [...].</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.4 An LDPC representation MUST contain exactly one triple whose subject is the LDPC URI, whose predicate is the ldp:membershipSubject, and whose object is the LDPC's membership subject URI.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5 An LDPC representation MUST contain exactly one triple whose subject is the LDPC URI, and whose predicate is either ldp:membershipPredicate or ldp:membershipPredicateInverse. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5.1 For a given triple T with a subject C of the LDPC and predicate of ldp:membershipPredicate, the object MUST be the URI of the membership predicate P used to indicate membership to the linked to LDPC, [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.2.5.2 For a given triple T with a subject C of the LDPC and predicate of ldp:membershipPredicateInverse, the object MUST be the URI of the membership predicate P used to indicate membership to the linked to LDPC, [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC1-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC1-I2-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC1-I3-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC1-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC1-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC1-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC1-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC1-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC1-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC1-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC1-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.3.4 is no longer an absolute requirement
<section resource="#TCC2" typeof="td:TestCase">
<h3><a id="TC-C2"><span property="rdfs:label">TC-C2</span>. <span property="dc:title">GET on an LDPC without content type</span></a></h3>
<p property="dc:description">Tests making a GET request on an LDPC without content type.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.3.4 [...] If the client does not indicate a preference, text/turtle SHOULD be returned.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC2-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC2-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC2-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC2-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC2-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC2-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[entity-header].Content-Type = text/turtle</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC2-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC2-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCC3" typeof="td:TestCase">
<h3><a id="TC-C3"><span property="rdfs:label">TC-C3</span>. <span property="dc:title">GET on a non-existing LDPC</span></a></h3>
<p property="dc:description">Tests making a GET request on an non-existing LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC3-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of a non-existing LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server does not contain an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC3-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC3-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC3-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC3-RQ1-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC3-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC3-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET incorrect</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 404 or 410</li>
</ul>
</div>
</div></li>
</ul>
</section>
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCC4" typeof="td:TestCase">
<h3><a id="TC-C4"><span property="rdfs:label">TC-C4</span>. <span property="dc:title">PUT on an LDPC</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><em><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso">Hypertext Transfer Protocol - HTTP/1.1</a>:</em></p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">3.11 [...] An entity tag MUST be unique across all versions of all entities associated with a particular resource.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input </h4>
<ul>
<li property="td:input" resource="#TCC4-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPC the current representation at <LDPC URI></li>
<li property="td:precondition">The LDP server does not desire that the request be applied to a different URI</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ2-PUT-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPC URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC4-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC4-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC4-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC4-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC4-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCC4-RQ2-PUT-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC4-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC4-RQ3-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC4-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A3-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC4-A6-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC4-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">LDPC updated</span>):
<div property="dc:description">
<ul>
<li>[response-header].ETag != <Response 1 GET>.[response-header].ETag</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<!-- RGC: Test removed since 4.5.2 is not an absolute requirement
<section resource="#TCC5" typeof="td:TestCase">
<h3><a id="TC-C5"><span property="rdfs:label">TC-C5</span>. <span property="dc:title">PUT on an LDPC without matching ETags</span></a></h3>
<p property="dc:description">Tests making a PUT request on an LDPC without matching ETags.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.5.2 [...] LDPR servers MUST respond with status code 412 (Condition Failed) if ETags fail to match when there are no other errors with the request. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC5-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows PUT</li>
<li property="td:precondition">The LDP server allows updating in the LDPC the current representation at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC5-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC5-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC5-RQ2-PUT-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">PUT <LDPC URI>
<ul>
<li>[request-header].If-Match = <Response GET 1>.[response-header].ETag + 'M'</li>
<li>[message-body] = <Response GET 1>.[message-body]</li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC5-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC5-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC5-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC5-O2-Response-2-PUT" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 PUT></em>. <span property="dc:description">The response of the PUT request in step 2.</span>
<span property="tn:fromStep" resource="#TCC5-RQ2-PUT-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC5-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC5-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC5-A3-Response-2-PUT" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC5-O2-Response-2-PUT">Assert <Response 2 PUT> (<span property="dc:title">PUT correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 412</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
-->
<section resource="#TCC6" typeof="td:TestCase">
<h3><a id="TC-C6"><span property="rdfs:label">TC-C6</span>. <span property="dc:title">DELETE on an LDPC</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.6.1 LDPR servers MUST remove the resource identified by the Request-URI. After a successful HTTP DELETE, a subsequent HTTP GET on the same Request-URI MUST result in a 404 (Not found) or 410 (Gone) status code.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC6-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows DELETE</li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC6-RQ1-DELETE-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC6-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC6-RQ2-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC6-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC6-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCC6-RQ1-DELETE-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC6-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCC6-RQ2-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC6-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC6-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC6-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC6-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204)</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC7" typeof="td:TestCase">
<h3><a id="TC-C7"><span property="rdfs:label">TC-C7</span>. <span property="dc:title">DELETE on an LDPR in an LDPC</span></a></h3>
<p property="dc:description">Tests making a DELETE request on an LDPR in an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.6.2 When the LDPC server successfully completes the DELETE request on a LDPC, it MUST remove any membership triples associated with the LDPC as indicated by the canonical Request-URI. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC7-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC7-I2-LDPR-URI" typeof="tn:TestInput"><em property="dc:title"><LDPR URI></em>. <span property="dc:description">The URI of an LDPR that is a member of the LDPC.</span></li>
<li property="td:input" resource="#TCC7-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC7-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDP server contains an LDPR at <LDPR URI></li>
<li property="td:precondition">The LDPR is a member of the LDPC</li>
<li property="td:precondition">The LDPR at <LDPR URI> allows DELETE</li>
<li property="td:precondition">The LDPR was originally created by the LDPC</li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ1-DELETE-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">DELETE <LDPR URI>
</div>
<span property="tn:usesInput" resource="#TCC7-I2-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ2-GET-LDPR-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPR URI></div>
<span property="tn:usesInput" resource="#TCC7-I2-LDPR-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC7-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC7-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC7-O1-Response-1-DELETE" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 DELETE></em>. <span property="dc:description">The response of the DELETE request in step 1.</span>
<span property="tn:fromStep" resource="#TCC7-RQ1-DELETE-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCC7-O2-Response-2-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 GET></em>. <span property="dc:description">The response of the GET request in step 2.</span>
<span property="tn:fromStep" resource="#TCC7-RQ2-GET-LDPR-URI">
</span>
</li>
<li property="td:output" resource="#TCC7-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC7-RQ3-GET-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC7-A1-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O1-Response-1-DELETE">Assert <Response 1 DELETE> (<span property="dc:title">DELETE correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A2-Response-1-DELETE" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O1-Response-1-DELETE">Assert <Response 1 DELETE> <Response 2 GET> (<span property="dc:title">DELETE resource correct</span>):
<div property="dc:description">
<ul>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410</li>
<li>or </li>
<li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except 200 and 204)</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A3-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A4-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC7-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC7-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">member removed from container</span>)
<div property="dc:description">
<ul>
<li>[message-body] does not contain <S URI> <P URI> <LDPR URI> .</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC8" typeof="td:TestCase">
<h3><a id="TC-C8"><span property="rdfs:label">TC-C8</span>. <span property="dc:title">HEAD on an LDPC</span></a></h3>
<p property="dc:description">Tests making a HEAD request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.7.1 LDPR servers MUST support the HTTP HEAD method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<p><a target="_blank" href="http://tools.ietf.org/html/rfc2616" property="rdfs:seeAlso"><em>Hypertext Transfer Protocol - HTTP/1.1</em></a>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">9.4 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.</span><span property="rdfs:seeAlso" href="http://tools.ietf.org/html/rfc2616"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC8-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC8-RQ1-HEAD-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">HEAD <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC8-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC8-O1-Response-1-HEAD" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 HEAD></em>. <span property="dc:description">The response of the HEAD request in step 1.</span>
<span property="tn:fromStep" resource="#TCC8-RQ1-HEAD-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC8-A1-Response-1-HEAD" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC8-O1-Response-1-HEAD">Assert <Response 1 HEAD> (<span property="dc:title">HEAD correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
<li>[message-body] not exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC9" typeof="td:TestCase">
<h3><a id="TC-C9"><span property="rdfs:label">TC-C9</span>. <span property="dc:title">POST an LDPR on an LDPC</a></h3>
<p property="dc:description">Tests making a POST request of an LDPR on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span
property="rdfs:seeAlso"
href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.1 [...] If the resource was created successfully, LDPC servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.2 After a successful HTTP POST request to a LDPC, the new resource MUST appear as a member of the LDPC until the new resource is deleted or removed by other methods. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.4 For servers that support create, LDPC servers MUST create an LDPR from a RDF representation in the request entity body. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">5.4.5 LDPC servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle. </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC9-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
<li property="td:input" resource="#TCC9-I2-LDPR-REP" typeof="tn:TestInput"><em property="dc:title"><LDPR representation></em>. <span property="dc:description">The representation of the LDPR to be created</span></li>
<li property="td:input" resource="#TCC9-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
<li property="td:input" resource="#TCC9-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
<li property="td:precondition">The LDPC at <LDPC URI> allows POST</li>
<li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource</li>
<li property="td:precondition"><LDPR representation> is in text/turtle</li>
<li property="td:precondition"><LDPR representation> is a valid representation for a resource to be created in the LDPC</li>
<li property="td:precondition"><LDPR representation> uses null relative URI as the entity in the request body</li>
<li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
<li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">POST <LDPC URI>
<ul>
<li>[entity-header].Content-type = text/turtle</li>
<li>[message-body] = <LDPR representation></li>
</ul>
</div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
<span property="tn:usesInput" resource="#TCC9-I2-LDPR-REP"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <LDPC URI></div>
<span property="tn:usesInput" resource="#TCC9-I1-LDPC-URI"> </span>
</li>
<li inlist="" property="tn:testProcess" resource="#TCC9-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">GET <Response 2 POST>.[response-header].Location</div>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC9-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
<span property="tn:fromStep" resource="#TCC9-RQ1-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O2-Response-2-POST" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 POST></em>. <span property="dc:description">The response of the POST request in step 2.</span>
<span property="tn:fromStep" resource="#TCC9-RQ2-POST-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
<span property="tn:fromStep" resource="#TCC9-RQ3-GET-LDPC-URI">
</span>
</li>
<li property="td:output" resource="#TCC9-O4-Response-4-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 4 GET></em>. <span property="dc:description">The response of the GET request in step 4.</span>
<span property="tn:fromStep" resource="#TCC9-RQ4-GET-LOC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC9-A1-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A2-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A3-Response-1-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">container does not have member</span>):
<div property="dc:description">
<ul>
<li>[message-body] does not contain <S URI> <P URI> <Response 2
POST>.[response-header].Location .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A4-Response-2-POST" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O2-Response-2-POST">Assert <Response 2 POST> (<span property="dc:title">POST correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 201</li>
<li>[response-header].Location exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A5-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A6-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
<li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A7-Response-3-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">container has member</span>):
<div property="dc:description">
<ul>
<li>[message-body] contains <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
</ul>
</div>
</div></li>
<li property="tn:testAssertion" resource="#TCC9-A8-Response-4-GET" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC9-O4-Response-4-GET">Assert <Response 4 GET> (<span property="dc:title">GET resource correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[response-header].Link = ldp:Resource; rel="type"</li>
</ul>
</div>
</div></li>
</ul>
</section>
<section resource="#TCC10" typeof="td:TestCase">
<h3><a id="TC-C10"><span property="rdfs:label">TC-C10</span>. <span property="dc:title">OPTIONS on an LDPC</span></a></h3>
<p property="dc:description">Tests making an OPTIONS request on an LDPC.</p>
<p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Raúl García-Castro</span> <span property="owl:sameAs" href="http://delicias.dia.fi.upm.es/%7Ergarcia/#me"></span></p>
<p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
<h4>Related specification</h4>
<p><em><a target="_blank" href="http://www.w3.org/TR/ldp/" property="rdfs:seeAlso">Linked Data Platform 1.0</a></em>:</p>
<ul>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.1 LDPR servers MUST support the HTTP OPTIONS method.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
<li property="td:specificationReference" typeof="tn:Excerpt">
<div><span property="tn:includesText">4.9.2 LDPR 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.</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
</li>
</ul>
<h4>Input</h4>
<ul>
<li property="td:input" resource="#TCC10-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
</ul>
<h4>Preconditions</h4>
<ul>
<li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
</ul>
<h4>Process</h4>
<ol>
<li inlist="" property="tn:testProcess" resource="#TCC10-RQ1-OPTIONS-LDPC-URI" typeof="tn:Step ht:Request">
<div property="dc:description">OPTIONS <LDPC URI>
</div>
<span property="tn:usesInput" resource="#TCC10-I1-LDPC-URI"> </span>
</li>
</ol>
<h4>Output</h4>
<ul>
<li property="td:output" resource="#TCC10-RP1-Response-1-OPTIONS" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 OPTIONS></em>. <span property="dc:description">The response of the OPTIONS request in step 1.</span>
<span property="tn:fromStep" resource="#TCC10-RQ1-OPTIONS-LDPC-URI">
</span>
</li>
</ul>
<h4>Assertions</h4>
<ul>
<li property="tn:testAssertion" resource="#TCC10-A1-Response-1-OPTIONS" typeof="tn:TestAssertion"><div property="tn:outputAsserted" resource="TCC10-O1-Response-1-OPTIONS">Assert <Response 1 OPTIONS> (<span property="dc:title">OPTIONS correct</span>):
<div property="dc:description">
<ul>
<li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
<li>[entity-header].Allow exists</li>
</ul>
</div>
</div></li>
</ul>
</section>
+
+ <section resource="#TCC11" typeof="td:TestCase">
+ <h3><a id="TC-C11"><span property="rdfs:label">TC-C11</span>. <span property="dc:title">POST an LDPC on an LDPC as a sub-container</span></a></h3>
+ <p property="dc:description">Tests making a POST request of an LDPC on an LDPC as a sub-container.</p>
+ <p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Eric Prud'hommeaux</span> <span property="owl:sameAs" href="http://www.w3.org/People/Eric/ericP-foaf#ericP"></span></p>
+ <p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
+ <h4>Related specification</h4>
+ <p>see <a href="#TC-C9">TC-C9</a></p>
+ <!-- ul>
+ <li property="td:specificationReference" typeof="tn:Excerpt">
+ <div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
+ </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.1 [...] If the resource was created successfully, LDPC servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.2 After a successful HTTP POST request to a LDPC, the new resource MUST appear as a member of the LDPC until the new resource is deleted or removed by other methods. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.4 For servers that support create, LDPC servers MUST create an LDPR from a RDF representation in the request entity body. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.5 LDPC servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle. </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ </ul -->
+ <h4>Input</h4>
+ <ul>
+ <li property="td:input" resource="#TCC11-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
+ <li property="td:input" resource="#TCC11-I2-LDPC2-REP" typeof="tn:TestInput"><em property="dc:title"><LDPC2 representation></em>. <span property="dc:description">The representation of the nested LDPC to be created</span></li>
+ <li property="td:input" resource="#TCC11-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
+ <li property="td:input" resource="#TCC11-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
+ </ul>
+ <h4>Preconditions</h4>
+ <ul>
+ <li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
+ <li property="td:precondition">The LDPC at <LDPC URI> allows POST</li>
+ <li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource <span class="issue">Would this be cachable?</span></li>
+ <li property="td:precondition"><LDPC2 representation> is in text/turtle</li>
+ <li property="td:precondition"><span style="background-color: #cff;"><LDPC2 representation> is a valid representation for a sub-container to be created in the LDPC</span></li>
+ <li property="td:precondition"><LDPC2 representation> uses null relative URI as the entity in the request body</li>
+ <li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
+ <li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
+ </ul>
+ <h4>Process</h4>
+ <ol>
+ <li inlist="" property="tn:testProcess" resource="#TCC11-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <LDPC URI></div>
+ <span property="tn:usesInput" resource="#TCC11-I1-LDPC-URI">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC11-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">POST <LDPC URI>
+ <ul>
+ <li>[entity-header].Content-type = text/turtle</li>
+ <li><span style="background-color: #cff;">[entity-header].Link-type = LDP:Container</span></li>
+ <li>[message-body] = <LDPC2 representation></li>
+ </ul>
+ </div>
+ <span property="tn:usesInput" resource="#TCC11-I1-LDPC-URI">
+ </span>
+ <span property="tn:usesInput" resource="#TCC11-I2-LDPC2-REP">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC11-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <LDPC URI></div>
+ <span property="tn:usesInput" resource="#TCC11-I1-LDPC-URI">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC11-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <Response 2 POST>.[response-header].Location <span style="color: #f30;">(location of created sub-container)</span></div>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC11-RQ4-TEST-CONTAINER" typeof="tn:Step ht:Group">
+ <div property="dc:description"><span style="background-color: #cff;">Pass <a href="#TC-C9">TC-C9</a> <span style="color: #f30;">(test created sub-container)</span></span></div>
+ </li>
+ </ol>
+ <h4>Output</h4>
+ <ul>
+ <li property="td:output" resource="#TCC11-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
+ <span property="tn:fromStep" resource="#TCC11-RQ1-GET-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC11-O2-Response-2-POST" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 POST></em>. <span property="dc:description">The response of the POST request in step 2.</span>
+ <span property="tn:fromStep" resource="#TCC11-RQ2-POST-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC11-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
+ <span property="tn:fromStep" resource="#TCC11-RQ3-GET-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC11-O4-Response-4-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 4 GET></em>. <span property="dc:description">The response of the GET request in step 4.</span>
+ <span property="tn:fromStep" resource="#TCC11-RQ4-GET-LOC-URI">
+ </span>
+ </li>
+ </ul>
+ <h4>Assertions</h4>
+ <ul>
+ <li property="tn:testAssertion" resource="#TCC11-A1-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[response-header].Link = ldp:Resource; rel="type"</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A2-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A3-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">container does not have <span style="color: #f30;">the to-be-created</span> member</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] does not contain <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A4-Response-2-POST" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O2-Response-2-POST">Assert <Response 2 POST> (<span property="dc:title">POST correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 201</li>
+ <li>[response-header].Location exists</li>
+ <li><span style="background-color: #cff;">[response-header].Link<span style="color: #f30;">:</span> <span style="color: #f30;">val=</span>ldp:Container; rel="type"</span></li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A5-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li><span style="background-color: #cff;">[response-header].Link: val=ldp:Container; rel="type"</span></li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A6-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A7-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">container has member</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC11-A8-Response-4-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC11-O4-Response-4-GET">Assert <Response 4 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[response-header].Link = ldp:Resource; rel="type"</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </section>
+
+ <section resource="#TCC12" typeof="td:TestCase">
+ <h3><a id="TC-C12"><span property="rdfs:label">TC-C12</span>. <span property="dc:title">POST an LDPC on an LDPC as a sub-container</span></a></h3>
+ <p property="dc:description">Tests making a POST request of an LDPC on an LDPC as a sub-container.</p>
+ <p property="dc:contributor" resource="#RaulGarciaCastro" typeof="foaf:Person"><strong>Contributor: </strong> <span property="rdfs:label">Eric Prud'hommeaux</span> <span property="owl:sameAs" href="http://www.w3.org/People/Eric/ericP-foaf#ericP"></span></p>
+ <p property="td:reviewStatus" resource="td:unreviewed" typeof="td:ReviewStatus"><strong>Status: </strong>Unreviewed</p>
+ <h4>Related specification</h4>
+ <p>see <a href="#TC-C9">TC-C9</a></p>
+ <!-- ul>
+ <li property="td:specificationReference" typeof="tn:Excerpt">
+ <div><span property="tn:includesText">4.2.10 LDPR servers 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 resource's HTTP Request-URI. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div>
+ </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.1 [...] If the resource was created successfully, LDPC servers MUST respond with status code 201 (Created) and the Location header set to the new resource’s URL. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.2 After a successful HTTP POST request to a LDPC, the new resource MUST appear as a member of the LDPC until the new resource is deleted or removed by other methods. [...] </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.4 For servers that support create, LDPC servers MUST create an LDPR from a RDF representation in the request entity body. [...]</span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ <li property="td:specificationReference" typeof="tn:Excerpt"> <div><span property="tn:includesText">5.4.5 LDPC servers MUST accept a request entity body with a request header of Content-Type with value of text/turtle. </span><span property="rdfs:seeAlso" href="http://www.w3.org/TR/ldp/"></span></div> </li>
+ </ul -->
+ <h4>Input</h4>
+ <ul>
+ <li property="td:input" resource="#TCC12-I1-LDPC-URI" typeof="tn:TestInput"><em property="dc:title"><LDPC URI></em>. <span property="dc:description">The URI of an LDPC.</span></li>
+ <li property="td:input" resource="#TCC12-I2-LDPC2-REP" typeof="tn:TestInput"><em property="dc:title"><LDPC2 representation></em>. <span property="dc:description">The representation of the nested LDPC to be created</span></li>
+ <li property="td:input" resource="#TCC12-I3-S-URI" typeof="tn:TestInput"><em property="dc:title"><S URI></em>. <span property="dc:description">The URI of an RDF resource.</span></li>
+ <li property="td:input" resource="#TCC12-I4-P-URI" typeof="tn:TestInput"><em property="dc:title"><P URI></em>. <span property="dc:description">The URI of an RDF property.</span></li>
+ </ul>
+ <h4>Preconditions</h4>
+ <ul>
+ <li property="td:precondition">The LDP server contains an LDPC at <LDPC URI></li>
+ <li property="td:precondition">The LDPC at <LDPC URI> allows POST</li>
+ <li property="td:precondition">The LDP server does not desire to direct the user agent to retrieve a cacheable resource <span class="issue">Would this be cachable?</span></li>
+ <li property="td:precondition"><LDPC2 representation> is in text/turtle</li>
+ <li property="td:precondition"><span style="background-color: #cff;"><LDPC2 representation> is a valid representation for a sub-container to be stored in the LDPC</span></li>
+ <li property="td:precondition"><LDPC2 representation> uses null relative URI as the entity in the request body</li>
+ <li property="td:precondition">The membership subject used by the LDPC is identified by <S URI></li>
+ <li property="td:precondition">The membership predicate used by the LDPC is identified by <P URI></li>
+ </ul>
+ <h4>Process</h4>
+ <ol>
+ <li inlist="" property="tn:testProcess" resource="#TCC12-RQ1-GET-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <LDPC URI></div>
+ <span property="tn:usesInput" resource="#TCC12-I1-LDPC-URI">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC12-RQ2-POST-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">POST <LDPC URI>
+ <ul>
+ <li>[entity-header].Content-type = text/turtle</li>
+ <li><span style="background-color: #cff;">[entity-header].Link-type = LDP:Resource</span></li>
+ <li>[message-body] = <LDPC2 representation></li>
+ </ul>
+ </div>
+ <span property="tn:usesInput" resource="#TCC12-I1-LDPC-URI">
+ </span>
+ <span property="tn:usesInput" resource="#TCC12-I2-LDPC2-REP">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC12-RQ3-GET-LDPC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <LDPC URI></div>
+ <span property="tn:usesInput" resource="#TCC12-I1-LDPC-URI">
+ </span>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC12-RQ4-GET-LOC-URI" typeof="tn:Step ht:Request">
+ <div property="dc:description">GET <Response 2 POST>.[response-header].Location <span style="color: #f30;">(location of archived container)</span></div>
+ </li>
+ <li inlist="" property="tn:testProcess" resource="#TCC12-RQ4-TEST-CONTAINER" typeof="tn:Step ht:Group">
+ <div property="dc:description"><span style="background-color: #cff;">Fail <a href="#TC-C9">TC-C9</a> step 2 <span style="color: #f30;">(test that created object is NOT a container)</span></span></div>
+ </li>
+ </ol>
+ <h4>Output</h4>
+ <ul>
+ <li property="td:output" resource="#TCC12-O1-Response-1-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 1 GET></em>. <span property="dc:description">The response of the GET request in step 1.</span>
+ <span property="tn:fromStep" resource="#TCC12-RQ1-GET-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC12-O2-Response-2-POST" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 2 POST></em>. <span property="dc:description">The response of the POST request in step 2.</span>
+ <span property="tn:fromStep" resource="#TCC12-RQ2-POST-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC12-O3-Response-3-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 3 GET></em>. <span property="dc:description">The response of the GET request in step 3.</span>
+ <span property="tn:fromStep" resource="#TCC12-RQ3-GET-LDPC-URI">
+ </span>
+ </li>
+ <li property="td:output" resource="#TCC12-O4-Response-4-GET" typeof="tn:TestOutput ht:Response"><em property="dc:title"><Response 4 GET></em>. <span property="dc:description">The response of the GET request in step 4.</span>
+ <span property="tn:fromStep" resource="#TCC12-RQ4-GET-LOC-URI">
+ </span>
+ </li>
+ </ul>
+ <h4>Assertions</h4>
+ <ul>
+ <li property="tn:testAssertion" resource="#TCC12-A1-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[response-header].Link = ldp:Resource; rel="type"</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A2-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">GET container correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A3-Response-1-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O1-Response-1-GET">Assert <Response 1 GET> (<span property="dc:title">container does not have <span style="color: #f30;">the to-be-created</span> member</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] does not contain <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A4-Response-2-POST" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O2-Response-2-POST">Assert <Response 2 POST> (<span property="dc:title">POST correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 201</li>
+ <li>[response-header].Location exists</li>
+ <li><span style="background-color: #cff;">[response-header].Link<span style="color: #f30;">:</span> <span style="color: #f30;">val=</span>ldp:Resource; rel="type"</span></li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A5-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li><span style="background-color: #cff;">[response-header].Link: val=ldp:Resource; rel="type"</span></li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A6-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">GET container correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <LDPC URI> rdf:type ldp:Container .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipSubject <S URI> .</li>
+ <li>[message-body] contains <LDPC URI> ldp:membershipPredicate <P URI> . or <LDPC URI> ldp:membershipPredicateInverse <P URI> .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A7-Response-3-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O3-Response-3-GET">Assert <Response 3 GET> (<span property="dc:title">container has member</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[message-body] contains <S URI> <P URI> <Response 2 POST>.[response-header].Location .</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li property="tn:testAssertion" resource="#TCC12-A8-Response-4-GET" typeof="tn:TestAssertion">
+ <div property="tn:outputAsserted" resource="TCC12-O4-Response-4-GET">Assert <Response 4 GET> (<span property="dc:title">GET resource correct</span>):
+ <div property="dc:description">
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[response-header].Link = ldp:Resource; rel="type"</li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </section>
+
+</section>
<section class="appendix">
<h2><a id="ChangeHistory">Change history</a></h2>
<ul>
<li>2013-08-27 Updated according to Last Call Working Draft from 30 July 2013 (RGC)</li>
<li>2013-06-03 Updated to use ReSpec (RGC)</li>
<li>2013-06-03 Implemented <a href="http://lists.w3.org/Archives/Public/public-ldp-wg/2013May/0153.html">changes suggested by Eric Prud'hommeaux</a> (RGC)</li>
</ul>
</section>
<section class="appendix">
<h2><a id="EditorNotes">Editor TODOs and notes</a></h2>
<ul>
<li>Define the type of document: Working Draft, Note, etc.</li>
<li>Choose a URI for the test cases (this) document</li>
<li>Choose a namespace for the new vocabulary terms and for the test cases</li>
<li>Include the RDF description of the test suite</li>
</ul>
</section>
</body>
</html>
\ No newline at end of file