--- a/Test Cases/LDP Test Cases.html Thu Apr 25 16:07:10 2013 +0200
+++ b/Test Cases/LDP Test Cases.html Thu Apr 25 16:44:31 2013 +0200
@@ -1,19 +1,19 @@
<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html
+ xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>LDP Test Cases</title>
<link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"
- charset="utf-8" />
+ charset="utf-8" />
</head>
<body>
- <p>
- <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a>
- </p>
-
- <h1>Linked Data Platform 1.0 Test Cases</h1>
-
+ <p> <a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
+ alt="W3C"
+ height="48"
+ width="72" /></a>
+ </p>
+ <h1>Linked Data Platform 1.0 Test Cases</h1>
<h2>Table of Contents</h2>
<p><a href="#Tests-LDPRs"><strong>Tests for L</strong><strong>DP</strong></a><strong><a
href="#Tests-LDPRs">Rs</a>:</strong></p>
@@ -122,11 +122,11 @@
<ul>
<li>Assert <Response 1 GET> (GET correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx</li>
- <li>[response-header].ETag exists</li>
- <li>[entity-header].Content-Type = text/turtle</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[entity-header].Content-Type = text/turtle</li>
+ </ul>
</li>
</ul>
<hr />
@@ -158,11 +158,11 @@
<ul>
<li>Assert <Response 1 GET> (GET correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx</li>
- <li>[response-header].ETag exists</li>
- <li>[entity-header].Content-Type = text/turtle</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[entity-header].Content-Type = text/turtle</li>
+ </ul>
</li>
</ul>
<hr />
@@ -200,9 +200,9 @@
<ul>
<li>Assert <Response 1 GET> (GET incorrect): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 404 or 410</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 404 or 410</li>
+ </ul>
</li>
</ul>
<hr />
@@ -376,15 +376,14 @@
<li>Assert <Response 1 DELETE> <Response 2 GET> (DELETE
correct): </li>
<li>
- <ul>
- <li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and
- <Response 2 GET>.[Status-Line].Status-Code = 404 or 410<strong>
- </strong></li>
- <li>or </li>
- <li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except
- 200 and 204)
- </li>
- </ul>
+ <ul>
+ <li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204
+ and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410<strong>
+ </strong></li>
+ <li>or </li>
+ <li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except
+ 200 and 204) </li>
+ </ul>
</li>
</ul>
<hr />
@@ -424,11 +423,11 @@
<ul>
<li>Assert <Response 1 HEAD> (HEAD correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
- <li>[entity-header].Allow exists</li>
- <li>[message-body] not exists</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
+ <li>[entity-header].Allow exists</li>
+ <li>[message-body] not exists</li>
+ </ul>
</li>
</ul>
<hr />
@@ -471,17 +470,17 @@
<ul>
<li>Assert <Response 1 GET> (GET resource correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx</li>
- <li>[response-header].ETag exists</li>
- <li>[entity-header].Content-Type = text/turtle</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[entity-header].Content-Type = text/turtle</li>
+ </ul>
</li>
<li>Assert <Response 1 GET> (GET container correct):</li>
<li>
- <ul>
- <li>[message-body] contains rdf:type ldp:Container</li>
- </ul>
+ <ul>
+ <li>[message-body] contains rdf:type ldp:Container</li>
+ </ul>
</li>
</ul>
<hr />
@@ -513,17 +512,17 @@
<ul>
<li>Assert <Response 1 GET> (GET resource correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx</li>
- <li>[response-header].ETag exists</li>
- <li>[entity-header].Content-Type = text/turtle</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[entity-header].Content-Type = text/turtle</li>
+ </ul>
</li>
<li>Assert <Response 1 GET> (GET container correct):</li>
<li>
- <ul>
- <li>[message-body] contains rdf:type ldp:Container</li>
- </ul>
+ <ul>
+ <li>[message-body] contains rdf:type ldp:Container</li>
+ </ul>
</li>
</ul>
<hr />
@@ -561,9 +560,9 @@
<ul>
<li>Assert <Response 1 GET> (GET incorrect): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 404 or 410</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 404 or 410</li>
+ </ul>
</li>
</ul>
<hr />
@@ -752,15 +751,14 @@
<li>Assert <Response 1 DELETE> <Response 2 GET> (DELETE
correct): </li>
<li>
- <ul>
- <li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204 and
- <Response 2 GET>.[Status-Line].Status-Code = 404 or 410<strong>
- </strong></li>
- <li>or </li>
- <li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except
- 200 and 204)
- </li>
- </ul>
+ <ul>
+ <li><Response 1 DELETE>.[Status-Line].Status-Code = 200 or 204
+ and <Response 2 GET>.[Status-Line].Status-Code = 404 or 410<strong>
+ </strong></li>
+ <li>or </li>
+ <li><Response 1 DELETE>.[Status-Line].Status-Code = 2xx (except
+ 200 and 204) </li>
+ </ul>
</li>
</ul>
<hr />
@@ -879,11 +877,11 @@
<ul>
<li>Assert <Response 1 HEAD> (HEAD correct): </li>
<li>
- <ul>
- <li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
- <li>[entity-header].Allow exists</li>
- <li>[message-body] not exists</li>
- </ul>
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx<strong> </strong></li>
+ <li>[entity-header].Allow exists</li>
+ <li>[message-body] not exists</li>
+ </ul>
</li>
</ul>
<hr />
@@ -923,6 +921,11 @@
</ul>
<h4>Process</h4>
<ol>
+ <li>GET <LDPC URI>
+ <ul>
+ <li>[request-header].Accept = text/turtle</li>
+ </ul>
+ </li>
<li>POST <LDPC URI>
<ul>
<li>[entity-header].Content-type = text/turtle</li>
@@ -934,7 +937,7 @@
<li>[request-header].Accept = text/turtle</li>
</ul>
</li>
- <li>GET <Response POST>.[response-header].Location
+ <li>GET <Response 2 POST>.[response-header].Location
<ul>
<li>[request-header].Accept = text/turtle</li>
</ul>
@@ -942,37 +945,56 @@
</ol>
<h4>Output</h4>
<ul>
- <li> <em> <Response 1 POST></em></li>
- <li> <em> <Response 2 GET></em></li>
+ <li> <em><em> <Response 1 GET></em></em></li>
+ <li><em><em></em><Response 2 POST></em></li>
<li> <em> <Response 3 GET></em></li>
+ <li> <em> <Response 4 GET></em></li>
</ul>
<h4>Expected result</h4>
<ul>
- <li>Assert <Response 1 POST> (POST correct):
- <ul>
- <li>[Status-Line].Status-Code = 201</li>
- <li>[response-header].Location exists</li>
- </ul>
- </li>
- <li>Assert <Response 2 GET> (GET resource correct):
+ <li>Assert <Response 1 GET> (GET resource correct):
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
<li>[entity-header].Content-Type = text/turtle</li>
</ul>
</li>
- <li>Assert <Response 2 GET> (GET container correct):
+ <li>Assert <Response 1 GET> (GET container correct):
<ul>
<li>[message-body] contains rdf:type ldp:Container</li>
</ul>
</li>
- <li>Assert <Response 2 GET> (container has new member):
+ <li>Assert <Response 1 GET> (container does not have member):
<ul>
- <li>[message-body] contains a new member identified by <Response 1
+ <li>[message-body] does not contain a member identified by
+ <Response 2 POST>.[response-header].Location</li>
+ </ul>
+ </li>
+ <li>Assert <Response 2 POST> (POST correct):
+ <ul>
+ <li>[Status-Line].Status-Code = 201</li>
+ <li>[response-header].Location exists</li>
+ </ul>
+ </li>
+ <li>Assert <Response 3 GET> (GET resource correct):
+ <ul>
+ <li>[Status-Line].Status-Code = 2xx</li>
+ <li>[response-header].ETag exists</li>
+ <li>[entity-header].Content-Type = text/turtle</li>
+ </ul>
+ </li>
+ <li>Assert <Response 3 GET> (GET container correct):
+ <ul>
+ <li>[message-body] contains rdf:type ldp:Container</li>
+ </ul>
+ </li>
+ <li>Assert <Response 3 GET> (container has member):
+ <ul>
+ <li>[message-body] contains a member identified by <Response 2
POST>.[response-header].Location</li>
</ul>
</li>
- <li>Assert <Response 3 GET> (GET resource correct):
+ <li>Assert <Response 4 GET> (GET resource correct):
<ul>
<li>[Status-Line].Status-Code = 2xx</li>
<li>[response-header].ETag exists</li>
@@ -997,23 +1019,25 @@
properties in the client representation are ignored and the server
representation includes only server managed properties (i.e., the
specification does not restrict this).</li>
- <li><p>Miguel: Requiring the complete replacement of a resource state
- with the input representation included on the body of the PUT
- request implies that all the properties exposed for an LDPR can be
- freely modified by the client. </p>
- <p>While this can be the case for vanilla LDP servers, which don’t take
- into account the contents of the resources, it does not hold for
- domain-dependent LDP servers that expose data for whom specific
- restrictions apply, i.e., certain properties are not under the
- control of the client. </p>
- <p>At the same time, this MUST clause does not align with what is said
- in the next MAY clause on the same point, which asserts that LDP
- servers can ignore server managed properties. </p>
- <p>My proposal would be to rewrite the clause making clear that only
- the part of the LDPR state that is under the control of the client
- will be updated with the contents of the representation, and that it
- is the responsibility of the LDP Server to define which parts of the
- representation are under its control. </p></li>
+ <li>
+ Miguel: Requiring the complete replacement of a resource state
+ with the input representation included on the body of the PUT
+ request implies that all the properties exposed for an LDPR can be
+ freely modified by the client. <br />
+ While this can be the case for vanilla LDP servers, which don’t
+ take into account the contents of the resources, it does not hold
+ for domain-dependent LDP servers that expose data for whom
+ specific restrictions apply, i.e., certain properties are not
+ under the control of the client. <br />
+ At the same time, this MUST clause does not align with what is
+ said in the next MAY clause on the same point, which asserts that
+ LDP servers can ignore server managed properties. <br />
+ My proposal would be to rewrite the clause making clear that only
+ the part of the LDPR state that is under the control of the client
+ will be updated with the contents of the representation, and that
+ it is the responsibility of the LDP Server to define which parts
+ of the representation are under its control.
+ </li>
</ul>
</li>
<li>LDP 1.0. 4.4.2 [...] LDPR servers MUST respond with status code 412
@@ -1046,24 +1070,24 @@
</li>
<li>LDP 1.0. 4.6.1 LDPR servers MUST support the HTTP HEAD method.
<ul>
- <li>Miguel: The HEAD method has been confused with the OPTIONS one. <p>
- According to section 9.4 in the HTTP/1.1 specification, the HEAD
- method “is identical to GET except that the server MUST NOT return a
- message-body in the response. The metainformation contained in the
- HTTP headers in response to a HEAD request SHOULD be identical to
- the information sent in response to a GET request. This method can
- be used for obtaining metainformation about the entity implied by
- the request without transferring the entity-body itself. This method
- is often used for testing hypertext links for validity,
- accessibility, and recent modification”. </p>
- <p>
- In contrast, according to section 9.2 of the same specification, the
- OPTIONS method “represents a request for information about the
- communication options available on the request/response chain
- identified by the Request-URI. This method allows the client to
- determine the options and/or requirements associated with a
- resource, or the capabilities of a server, without implying a
- resource action or initiating a resource retrieval”. </p></li>
+ <li>Miguel: The HEAD method has been confused with the OPTIONS one.
+ <br /> According to section 9.4 in the HTTP/1.1 specification, the HEAD
+ method “is identical to GET except that the server MUST NOT return
+ a message-body in the response. The metainformation contained in
+ the HTTP headers in response to a HEAD request SHOULD be identical
+ to the information sent in response to a GET request. This method
+ can be used for obtaining metainformation about the entity implied
+ by the request without transferring the entity-body itself. This
+ method is often used for testing hypertext links for validity,
+ accessibility, and recent modification”. <br />
+ In contrast, according to section 9.2 of the same specification,
+ the OPTIONS method “represents a request for information about the
+ communication options available on the request/response chain
+ identified by the Request-URI. This method allows the client to
+ determine the options and/or requirements associated with a
+ resource, or the capabilities of a server, without implying a
+ resource action or initiating a resource retrieval”.
+ </li>
<li>Miguel: Given the point before, point 4.6.2 should be also updated
accordingly.</li>
</ul>
@@ -1100,5 +1124,6 @@
<li>Include a section describing how to describe results</li>
<li>Format document as a specification</li>
</ul>
+
</body>
</html>