diff options
author | Harald Welte <laforge@osmocom.org> | 2021-02-19 13:16:28 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2021-02-22 10:41:29 +0000 |
commit | 55e879c647bc55a1e3b79f6cf4c90daf86a9992f (patch) | |
tree | 30c7f79a33f90527de6045dca1416bd441b2130d /remsim/RemsimServer_Tests.ttcn | |
parent | 37f3333fcf37c7496148fa442f50557c45f232fc (diff) |
remsim: factor-out HTTP_Adapter.ttcn
There are other test suites (like osmo-cbc) which can reuse some of
the HTTP utility code that was developed within the remsim test suite
Change-Id: I87a728272d47649e4faa628fad44d6f8673c8169
Diffstat (limited to 'remsim/RemsimServer_Tests.ttcn')
-rw-r--r-- | remsim/RemsimServer_Tests.ttcn | 83 |
1 files changed, 1 insertions, 82 deletions
diff --git a/remsim/RemsimServer_Tests.ttcn b/remsim/RemsimServer_Tests.ttcn index 1ca5ce95..fd7a1a47 100644 --- a/remsim/RemsimServer_Tests.ttcn +++ b/remsim/RemsimServer_Tests.ttcn @@ -24,90 +24,9 @@ import from IPA_Emulation all; import from HTTPmsg_Types all; import from HTTPmsg_PortType all; +import from HTTP_Adapter all; import from JSON_Types all; -type component http_CT { - port HTTPmsg_PT HTTP; - var charstring g_http_host; - var integer g_http_port; -}; - -function f_http_init(charstring host, integer http_port) runs on http_CT { - map(self:HTTP, system:HTTP); - g_http_host := host; - g_http_port := http_port; -} - -template (value) Connect ts_HTTP_Connect(template (value) charstring hostname, - template (value) integer http_port := 80, - template (value) boolean use_ssl := false) := { - hostname := hostname, - portnumber := http_port, - use_ssl := use_ssl -} -template (value) Close ts_HTTP_Close := { client_id := omit }; - -template (value) HeaderLines ts_HTTP_Header(charstring body) := { - { header_name := "Content-Type", header_value := "application/json" }, - { header_name := "Content-Length", header_value := int2str(lengthof(body)) } -} - -template (value) HTTPMessage ts_HTTP_Req(charstring url, - charstring method := "GET", - charstring body := "", - integer v_maj := 1, integer v_min := 1) := { - request := { - client_id := omit, - method := method, - uri := url, - version_major := v_maj, - version_minor := v_min, - header := ts_HTTP_Header(body), - body := body - } -} - -template HTTPMessage tr_HTTP_Resp(template integer sts := ?) := { - response := { - client_id := ?, - version_major := ?, - version_minor := ?, - statuscode := sts, - statustext := ?, - header := ?, - body := ? - } -}; - -template HTTPMessage tr_HTTP_Resp2xx := tr_HTTP_Resp((200..299)); - -/* run a HTTP request and return the response */ -function f_http_transact(charstring url, charstring method := "GET", - charstring body := "", template HTTPMessage exp := tr_HTTP_Resp2xx) -runs on http_CT return HTTPMessage { - var HTTPMessage resp; - timer T := 2.0; - - HTTP.send(ts_HTTP_Connect(g_http_host, g_http_port)); - //HTTP.receive(Connect_result:?); - HTTP.send(ts_HTTP_Req(url, method, body)); - T.start; - alt { - [] HTTP.receive(exp) -> value resp { - setverdict(pass); - } - [] HTTP.receive(tr_HTTP_Resp) -> value resp { - setverdict(fail, "Unexpected HTTP response ", resp); - } - [] T.timeout { - setverdict(fail, "Timeout waiting for HTTP response"); - self.stop; - } - } - HTTP.send(ts_HTTP_Close); - return resp; -} - /* run a HTTP GET on specified URL expecting json in RSRES format as response */ function f_rsres_get(charstring url, template integer exp_sts := 200) runs on http_CT return JsRoot { |