Completed first pass for HTTP 1.1 conformace contracts
This commit is contained in:
@@ -19,7 +19,7 @@ feature -- Method
|
||||
ensure
|
||||
valid_response_for_http_1_0: is_1_0 (a_req.server_protocol) implies
|
||||
valid_response_for_http_1_0 (a_res.status_code)
|
||||
empty_body_for_no_content_response: is_no_content_response(a_res.status_code) implies a_res.transfered_content_length = 0 -- Is that the right measure?
|
||||
empty_body_for_no_content_response: is_no_content_response (a_res.status_code) implies is_empty_content (a_res)
|
||||
end
|
||||
|
||||
feature -- Contract support
|
||||
@@ -60,5 +60,13 @@ feature -- Contract support
|
||||
end
|
||||
end
|
||||
|
||||
is_empty_content (a_res: WSF_RESPONSE): BOOLEAN
|
||||
-- Does `a_res' not contain an entity?
|
||||
require
|
||||
a_res_not_void: a_res /= Void
|
||||
do
|
||||
Result := a_res.transfered_content_length = 0 -- Is that the right measure?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -49,7 +49,30 @@ inherit
|
||||
|
||||
feature -- Method
|
||||
|
||||
|
||||
do_head (a_req: WSF_REQUEST; a_res: WSF_RESPONSE)
|
||||
-- Respond to `a_req' using `a_res'.
|
||||
deferred
|
||||
ensure then
|
||||
empty_body: is_empty_content (a_res)
|
||||
end
|
||||
|
||||
do_post (a_req: WSF_REQUEST; a_res: WSF_RESPONSE)
|
||||
-- Respond to `a_req' using `a_res'.
|
||||
deferred
|
||||
ensure then
|
||||
non_empty_body: a_res.status_code = {HTTP_STATUS_CODE}.created implies
|
||||
not is_empty_content (a_res)
|
||||
location_header: a_res.status_code = {HTTP_STATUS_CODE}.created implies True -- WSF_RESPONSE needs enhancing
|
||||
end
|
||||
|
||||
do_trace (a_req: WSF_REQUEST; a_res: WSF_RESPONSE)
|
||||
-- Respond to `a_req' using `a_res'.
|
||||
deferred
|
||||
ensure then
|
||||
non_empty_body: a_res.status_code = {HTTP_STATUS_CODE}.ok implies
|
||||
not is_empty_content (a_res)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -178,6 +178,7 @@ feature -- Method OPTIONS
|
||||
|
||||
do_options (req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||
do
|
||||
-- TODO - implement a default method that lists the accepted methods for the resource.
|
||||
handle_not_implemented ("Method OPTIONS not implemented", req, res)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user