Fixed feature typo, improved commands, added AutoTest

This commit is contained in:
jvelilla
2013-04-16 17:31:33 -03:00
parent c63e307179
commit ce2ca051f6
9 changed files with 194 additions and 38 deletions

View File

@@ -52,7 +52,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_status)
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -64,10 +64,16 @@ feature -- Commands
do
create Result.make_empty
resp := execute_post (cmd_new_session, capabilities)
if attached resp.header ("Location") as l_location then
resp := http_new_session (l_location).get ("", context_executor)
if not (resp.status >= 400) then
if attached resp.header ("Location") as l_location then
resp := http_new_session (l_location).get ("", context_executor)
if attached resp.body as l_body then
Result := new_response (l_body)
end
end
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -81,7 +87,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_sessions)
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -94,7 +100,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_by_id (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -105,13 +111,13 @@ feature -- Commands
resp: HTTP_CLIENT_RESPONSE
do
create Result.make_empty
resp := execute_delete (cmd_session_by_id (cmd_session_by_id (session_id)))
resp := execute_delete (cmd_session_by_id ( session_id ))
if resp.status = 204 then
Result.set_status (0)
Result.set_session_id (session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -129,7 +135,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -147,7 +153,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -166,7 +172,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -181,7 +187,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_window_handle (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -194,7 +200,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_window_handles (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -207,7 +213,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_url (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -224,7 +230,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -242,7 +248,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -260,7 +266,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -278,7 +284,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -310,7 +316,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_screenshot (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -323,7 +329,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_ime_available (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -336,7 +342,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_ime_active_engine (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -349,7 +355,7 @@ feature -- Commands
create Result.make_empty
resp := execute_get (cmd_session_ime_activated (session_id))
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -366,7 +372,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
end
@@ -384,7 +390,7 @@ feature -- Commands
Result.set_session_id (a_session_id)
else
if attached resp.body as l_body then
Result := build_response (l_body)
Result := new_response (l_body)
end
end
@@ -407,11 +413,10 @@ feature {NONE} -- Implementation
Result := http_session.delete (command_name, context_executor)
end
build_response (a_message: STRING_32): SE_RESPONSE
new_response (a_message: STRING_32): SE_RESPONSE
do
create Result.make_empty
initialize_converters (json)
if attached {SE_RESPONSE} json.object_from_json (a_message, "SE_RESPONSE") as l_response then
if attached json_to_se_response(a_message) as l_response then
Result := l_response
end
Result.set_json_response (a_message)

View File

@@ -31,7 +31,7 @@ feature -- Conversion
if attached {STRING_32} json_to_object (j.item (session_key), Void) as l_item then
Result.set_session_id(l_item)
end
if attached {INTEGER_32} json_to_object (j.item (status_key), Void) as l_item then
if attached {INTEGER_8} json_to_object (j.item (status_key), Void) as l_item then
Result.set_status(l_item)
end
if attached {JSON_VALUE} j.item (value_key) as l_item then

View File

@@ -58,6 +58,19 @@ feature -- Access
end
end
json_to_se_response (post: STRING_32): detachable SE_RESPONSE
local
parser: JSON_PARSER
do
initialize_converters (json)
create parser.make_parser (post)
if attached parser.parse_object as st and parser.is_parsed then
if attached {SE_RESPONSE} json.object (st, "SE_RESPONSE") as l_response then
Result := l_response
end
end
end
initialize_converters (j: like json)
-- Initialize json converters
do

View File

@@ -96,7 +96,7 @@ feature -- Commands
check_response (response)
if not has_error then
if attached response.json_response as r_value then
Result := build_session (r_value, "session")
Result := new_session (r_value, "session")
end
end
end
@@ -127,7 +127,7 @@ feature -- Commands
index > l_json_array.count
loop
if attached {JSON_OBJECT} l_json_array.i_th (index) as json_obj then
if attached build_session (json_obj.representation, "sessions") as l_session then
if attached new_session (json_obj.representation, "sessions") as l_session then
Result.force (l_session)
end
end
@@ -153,7 +153,7 @@ feature -- Commands
check_response (response)
if not has_error then
if attached response.json_response as r_value then
Result := build_session (r_value, "session")
Result := new_session (r_value, "session")
end
end
end
@@ -1602,18 +1602,24 @@ feature {NONE} -- Implementation
commnad_executor: COMMAND_EXECUTOR
build_session (value: STRING_32; to: STRING_32): detachable SE_SESSION
new_session (value: STRING_32; to: STRING_32): detachable SE_SESSION
local
l_rep : STRING_32
do
if to.is_case_insensitive_equal ("session") then
if attached {JSON_OBJECT} string_to_json (value) as l_value then
if attached l_value.item ("sessionId") as ls and then attached l_value.item ("value") as lv and then attached json_to_se_capabilities (lv.representation) as lc then
create Result.make (ls.representation, lc)
l_rep := ls.representation
l_rep.replace_substring_all ("%"", "")
create Result.make (l_rep, lc)
end
end
elseif to.is_case_insensitive_equal ("sessions") then
if attached {JSON_OBJECT} string_to_json (value) as l_value then
if attached l_value.item ("id") as ls and then attached l_value.item ("capabilities") as lv and then attached json_to_se_capabilities (lv.representation) as lc then
create Result.make (ls.representation, lc)
l_rep := ls.representation
l_rep.replace_substring_all ("%"", "")
create Result.make (l_rep, lc)
end
end
end

View File

@@ -7,8 +7,8 @@ note
class
SE_JSON_WIRE_PROTOCOL_COMMANDS
feature
cmd_ping : STRING = ""
--GET / expected a 200 ok
@@ -29,12 +29,14 @@ feature
end
cmd_session_timeouts_tmpl : STRING ="session/$id/timeouts"
cmd_session_timeouts_tmpl : STRING_32 ="[
session/$id/timeouts
]"
cmd_session_timeouts (id: STRING_32): STRING_32
cmd_session_timeouts (id: STRING_32):STRING_32
do
create Result.make_from_string (cmd_session_timeouts_tmpl)
Result.replace_substring_all ("$id", id)
Result.replace_substring_all ("$id",id)
end
cmd_session_timeouts_async_script_tmpl : STRING ="session/$id/timeouts/async_script"