Refactor tests for better reporting

This commit is contained in:
Dimitri Lozeve 2023-10-02 21:18:10 +02:00
parent 3c42890e15
commit d30021db16

347
tests.bqn
View file

@ -7,179 +7,182 @@
•Import"curl.bqn"
httpbinURL"http://localhost:8080"
r0
## Simple API
RunTest{•term.OutRaw (4' ')"Test "𝕨 𝕏 @ •Out ((69-𝕨)'.')"OK"}
RunSuite{•Out 𝕨':' RunTest´¨𝕩 •Out " All "(•Fmt 𝕩)" tests passed."}
RunAll{RunSuite´¨𝕩 •Out "All "(•Fmt +´¨´¨𝕩)" tests passed."}
•Out " Test GET"
rGet httpbinURL"/get"
! 200=r.code
! 0=r.redirectCount
! 1="HTTP/"r.headers
! 1=+´"Content-Type: "r.headers
! 1=+´"Content-Length: "r.headers
! 1=+´"""Host"": ""localhost:8080"""r.content
! 1=+´"""User-Agent"": ""curl/bqn"""r.content
! 0=+´"""Hello"": ""World"""r.content
•Out "OK"
simpleAPI_testsuite
"simple GET"{𝕊𝕩:
rGet httpbinURL"/get"
! 200=r.code
! 0=r.redirectCount
! 1="HTTP/"r.headers
! 1=+´"Content-Type: "r.headers
! 1=+´"Content-Length: "r.headers
! 1=+´"""Host"": ""localhost:8080"""r.content
! 1=+´"""User-Agent"": ""curl/bqn"""r.content
! 0=+´"""Hello"": ""World"""r.content
},
"simple GET with headers"{𝕊𝕩:
headers"User-Agent: toto","Content-Type: application/json","Hello: World"
rheaders Get httpbinURL"/get"
! 200=r.code
! 0=r.redirectCount
! 1=+´"""Host"": ""localhost:8080"""r.content
! 1=+´"""User-Agent"": ""toto"""r.content
! 1=+´"""Content-Type"": ""application/json"""r.content
! 1=+´"""Hello"": ""World"""r.content
},
"simple POST with headers"{𝕊𝕩:
headers"Content-Type: application/json"
rheaders Post httpbinURL"/post","{""key"": ""value""}"
! 200=r.code
! 0=r.redirectCount
! 1="HTTP/"r.headers
! 1=+´"Content-Type: "r.headers
! 1=+´"Content-Length: "r.headers
! 1=+´"""Content-Type"": ""application/json"""r.content
! 1=+´"""data"": ""{\""key\"": \""value\""}"""r.content
}
•Out " Test GET with headers"
r"User-Agent: toto","Content-Type: application/json","Hello: World"Get httpbinURL"/get"
! 200=r.code
! 0=r.redirectCount
! 1=+´"""Host"": ""localhost:8080"""r.content
! 1=+´"""User-Agent"": ""toto"""r.content
! 1=+´"""Content-Type"": ""application/json"""r.content
! 1=+´"""Hello"": ""World"""r.content
•Out "OK"
advancedAPI_testsuite
"open session"{𝕊𝕩:
sessionOpenSession @
! 8=session.sessionPtr
! (80)session.headersSlist
CloseSession session
},
"GET"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/get") SetURL session
! 200=r.code
! 0=r.redirectCount
! 10r.content
CloseSession session
},
"POST"{𝕊𝕩:
sessionOpenSession @
rPerform "toto"SetData (httpbinURL"/post") SetURL session
! 200=r.code
! 0=r.redirectCount
! 1=+´"toto"r.content
CloseSession session
},
"basic auth fail"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform session
! 401=r.code
CloseSession session
},
"basic auth with header"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform "Authorization: Basic dXNlcm5hbWU6czNjcjN0cGE1NXdvcmQ=" SetHeaders session
! 200=r.code
CloseSession session
},
"basic auth with URL"{𝕊𝕩:
sessionOpenSession @
session("http://username:s3cr3tpa55word@localhost:8080/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform session
! 200=r.code
CloseSession session
},
"bearer auth fail"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/bearer") SetURL session
rPerform session
! 401=r.code
CloseSession session
},
"bearer auth"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/bearer") SetURL session
rPerform "Authorization: Bearer hey!" SetHeaders session
! 200=r.code
CloseSession session
},
"status GET"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/status/418") SetURL session
! 418=r.code
CloseSession session
},
"status POST"{𝕊𝕩:
sessionOpenSession @
rPerform ""SetData (httpbinURL"/status/418") SetURL session
! 418=r.code
CloseSession session
},
"set headers"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/headers") SetURL session
rPerform "Hello: World" SetHeaders session
! 1=+´"""Hello"": ""World"""r.content
CloseSession session
},
"default user-agent"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/user-agent") SetURL session
rPerform session
! 1=+´"curl/bqn"r.content
CloseSession session
},
"custom user-agent"{𝕊𝕩:
sessionOpenSession @
session(httpbinURL"/user-agent") SetURL session
rPerform "User-Agent: hello/world" SetHeaders session
! 0=+´"curl/bqn"r.content
! 1=+´"hello/world"r.content
CloseSession session
},
"timeout with fast request"{𝕊𝕩:
sessionOpenSession @
session1010 SetTimeoutms (httpbinURL"/delay/1") SetURL session
rPerform session
! 200=r.code
CloseSession session
},
"request timeout"{𝕊𝕩:
sessionOpenSession @
session100 SetTimeoutms (httpbinURL"/delay/1") SetURL session
! Perform1 session
CloseSession session
},
"follow redirects"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
CloseSession session
},
"follow absolute redirects"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/absolute-redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
CloseSession session
},
"follow relative redirects"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/relative-redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
CloseSession session
},
"parameters"{𝕊𝕩:
sessionOpenSession @
rPerform (httpbinURL"/anything?hello=world&zig=zag") SetURL session
! 1=+´"""hello"": ""world"""r.content
! 1=+´"""zig"": ""zag"""r.content
CloseSession session
},
•Out " Test POST with headers"
r"Content-Type: application/json"PosthttpbinURL"/post","{""key"": ""value""}"
! 200=r.code
! 0=r.redirectCount
! 1="HTTP/"r.headers
! 1=+´"Content-Type: "r.headers
! 1=+´"Content-Length: "r.headers
! 1=+´"""Content-Type"": ""application/json"""r.content
! 1=+´"""data"": ""{\""key\"": \""value\""}"""r.content
•Out "OK"
## Advanced API
•Out " Test open session"
sessionOpenSession @
! 8=session.sessionPtr
! (80)session.headersSlist
•Out "OK"
•Out " Test GET"
sessionResetSession session
rPerform (httpbinURL"/get") SetURL session
! 200=r.code
! 0=r.redirectCount
! 10r.content
•Out "OK"
•Out " Test POST"
sessionResetSession session
rPerform "toto"SetData (httpbinURL"/post") SetURL session
! 200=r.code
! 0=r.redirectCount
! 1=+´"toto"r.content
•Out "OK"
•Out " Test basic auth fail"
sessionResetSession session
session(httpbinURL"/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform session
! 401=r.code
•Out "OK"
•Out " Test basic auth with header"
sessionResetSession session
session(httpbinURL"/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform "Authorization: Basic dXNlcm5hbWU6czNjcjN0cGE1NXdvcmQ=" SetHeaders session
! 200=r.code
•Out "OK"
•Out " Test basic auth with URL"
sessionResetSession session
session("http://username:s3cr3tpa55word@localhost:8080/basic-auth/username/s3cr3tpa55word") SetURL session
rPerform session
! 200=r.code
•Out "OK"
•Out " Test bearer auth fail"
sessionResetSession session
session(httpbinURL"/bearer") SetURL session
rPerform session
! 401=r.code
•Out "OK"
•Out " Test bearer auth"
sessionResetSession session
session(httpbinURL"/bearer") SetURL session
rPerform "Authorization: Bearer hey!" SetHeaders session
! 200=r.code
•Out "OK"
•Out " Test status GET"
sessionResetSession session
rPerform (httpbinURL"/status/418") SetURL session
! 418=r.code
•Out "OK"
•Out " Test status POST"
sessionResetSession session
rPerform ""SetData (httpbinURL"/status/418") SetURL session
! 418=r.code
•Out "OK"
•Out " Test set headers"
sessionResetSession session
session(httpbinURL"/headers") SetURL session
rPerform "Hello: World" SetHeaders session
! 1=+´"""Hello"": ""World"""r.content
•Out "OK"
•Out " Test default user-agent"
sessionResetSession session
session(httpbinURL"/user-agent") SetURL session
rPerform session
! 1=+´"curl/bqn"r.content
•Out "OK"
•Out " Test custom user-agent"
sessionResetSession session
session(httpbinURL"/user-agent") SetURL session
rPerform "User-Agent: hello/world" SetHeaders session
! 0=+´"curl/bqn"r.content
! 1=+´"hello/world"r.content
•Out "OK"
•Out " Test timeout with fast request"
sessionResetSession session
session1010 SetTimeoutms (httpbinURL"/delay/1") SetURL session
rPerform session
! 200=r.code
•Out "OK"
•Out " Test request timeout"
sessionResetSession session
session100 SetTimeoutms (httpbinURL"/delay/1") SetURL session
! Perform1 session
•Out "OK"
•Out " Test follow redirects"
sessionResetSession session
rPerform (httpbinURL"/redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
•Out "OK"
•Out " Test follow absolute redirects"
sessionResetSession session
rPerform (httpbinURL"/absolute-redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
•Out "OK"
•Out " Test follow relative redirects"
sessionResetSession session
rPerform (httpbinURL"/relative-redirect/5") SetURL session
! 200=r.code
! 5=r.redirectCount
•Out "OK"
•Out " Test parameters"
sessionResetSession session
rPerform (httpbinURL"/anything?hello=world&zig=zag") SetURL session
! 1=+´"""hello"": ""world"""r.content
! 1=+´"""zig"": ""zag"""r.content
•Out "OK"
•Out " Test close session"
CloseSession session
•Out "OK"
•Out "All tests passed."
RunAll
"Simple API"simpleAPI_testsuite,
"Advanced API"advancedAPI_testsuite,