mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-09-21 02:38:20 +03:00
Reorganize/remove redundant tests
This commit is contained in:
parent
ca8dd894d6
commit
0f099f3b8f
@ -1,13 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># Test body response with line ending LF and CRLF.</span>
|
||||
<span class="line"></span><span class="comment"># We receive the text body "line1\nline2\r\nline3\n"</span>
|
||||
<span class="line"></span><span class="comment">#</span>
|
||||
<span class="line"></span><span class="comment"># $ printf "line1\nline2\r\nline3\n" | base64</span>
|
||||
<span class="line"></span><span class="comment"># bGluZTEKbGluZTINCmxpbmUzCg==</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-base64</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">bGluZTEKbGluZTINCmxpbmUzCg==</span>;</span>
|
||||
</span></span><span class="line"></span>
|
||||
</code></pre>
|
@ -1,12 +0,0 @@
|
||||
# Test body response with line ending LF and CRLF.
|
||||
# We receive the text body "line1\nline2\r\nline3\n"
|
||||
#
|
||||
# $ printf "line1\nline2\r\nline3\n" | base64
|
||||
# bGluZTEKbGluZTINCmxpbmUzCg==
|
||||
|
||||
|
||||
GET http://localhost:8000/assert-base64
|
||||
|
||||
HTTP 200
|
||||
base64,bGluZTEKbGluZTINCmxpbmUzCg==;
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-base64"},"response":{"status":200,"body":{"encoding":"base64","value":"bGluZTEKbGluZTINCmxpbmUzCg=="}}}]}
|
@ -1,39 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-header</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">cookie1=value1; Path=/</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">cookie2=value2; Path=/</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Custom"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Content-Type"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Header1"</span> <span class="predicate-type">==</span> <span class="string">"value1"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"ETag"</span> <span class="predicate-type">==</span> <span class="string">"\"33a64df551425fcc55e4d42a148795d9f25f89d4\""</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Expires"</span> <span class="predicate-type">==</span> <span class="string">"Wed, 21 Oct 2015 07:28:00 GMT"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Expires"</span> <span class="filter-type">toDate</span> <span class="string">"%a, %d %b %Y %H:%M:%S GMT"</span> <span class="filter-type">format</span> <span class="string">"%Y"</span> <span class="predicate-type">==</span> <span class="string">"2015"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Expires"</span> <span class="filter-type">toDate</span> <span class="string">"%a, %d %b %Y %H:%M:%S GMT"</span> <span class="filter-type">daysBeforeNow</span> <span class="predicate-type">></span> <span class="number">1000</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="predicate-type">includes</span> <span class="string">"cookie1=value1; Path=/"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="not">not</span> <span class="predicate-type">includes</span> <span class="string">"cookie4=value4; Path=/"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"x-fruit"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"Banana"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"x-fruit"</span> <span class="filter-type">nth</span> <span class="number">1</span> <span class="predicate-type">==</span> <span class="string">"Lemon"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="filter-type">nth</span> <span class="number">2</span> <span class="predicate-type">!=</span> <span class="string">"Lemon"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="filter-type">nth</span> <span class="number">2</span> <span class="predicate-type">==</span> <span class="string">"Grape"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="filter-type">nth</span> <span class="number">3</span> <span class="predicate-type">==</span> <span class="string">"Strawberry"</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="predicate-type">includes</span> <span class="string">"Strawberry"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Same request as previously, but now we check that we can capture the header "X-Fruit" collection as a variable</span>
|
||||
<span class="line"></span><span class="comment"># before asserting it s values.</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-header</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">fruits</span>: <span class="query-type">header</span> <span class="string">"X-fruit"</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"X-Fruit"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"fruits"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"fruits"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"fruits"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"Banana"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"fruits"</span> <span class="filter-type">nth</span> <span class="number">3</span> <span class="predicate-type">==</span> <span class="string">"Strawberry"</span></span>
|
||||
</span></span></code></pre>
|
@ -1,38 +0,0 @@
|
||||
GET http://localhost:8000/assert-header
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=utf-8
|
||||
Set-Cookie: cookie1=value1; Path=/
|
||||
Set-Cookie: cookie2=value2; Path=/
|
||||
[Asserts]
|
||||
header "Custom" not exists
|
||||
header "Content-Type" exists
|
||||
header "Header1" == "value1"
|
||||
header "ETag" == "\"33a64df551425fcc55e4d42a148795d9f25f89d4\""
|
||||
header "Expires" == "Wed, 21 Oct 2015 07:28:00 GMT"
|
||||
header "Expires" toDate "%a, %d %b %Y %H:%M:%S GMT" format "%Y" == "2015"
|
||||
header "Expires" toDate "%a, %d %b %Y %H:%M:%S GMT" daysBeforeNow > 1000
|
||||
header "Set-Cookie" exists
|
||||
header "Set-Cookie" count == 3
|
||||
header "Set-Cookie" includes "cookie1=value1; Path=/"
|
||||
header "Set-Cookie" not includes "cookie4=value4; Path=/"
|
||||
header "X-Fruit" isCollection
|
||||
header "x-fruit" count == 4
|
||||
header "X-Fruit" nth 0 == "Banana"
|
||||
header "x-fruit" nth 1 == "Lemon"
|
||||
header "X-Fruit" nth 2 != "Lemon"
|
||||
header "X-Fruit" nth 2 == "Grape"
|
||||
header "X-Fruit" nth 3 == "Strawberry"
|
||||
header "X-Fruit" includes "Strawberry"
|
||||
|
||||
# Same request as previously, but now we check that we can capture the header "X-Fruit" collection as a variable
|
||||
# before asserting it s values.
|
||||
GET http://localhost:8000/assert-header
|
||||
HTTP 200
|
||||
[Captures]
|
||||
fruits: header "X-fruit"
|
||||
[Asserts]
|
||||
header "X-Fruit" isCollection
|
||||
variable "fruits" isCollection
|
||||
variable "fruits" count == 4
|
||||
variable "fruits" nth 0 == "Banana"
|
||||
variable "fruits" nth 3 == "Strawberry"
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-header"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Set-Cookie","value":"cookie1=value1; Path=/"},{"name":"Set-Cookie","value":"cookie2=value2; Path=/"}],"asserts":[{"query":{"type":"header","name":"Custom"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"header","name":"Content-Type"},"predicate":{"type":"exist"}},{"query":{"type":"header","name":"Header1"},"predicate":{"type":"equal","value":"value1"}},{"query":{"type":"header","name":"ETag"},"predicate":{"type":"equal","value":"\"33a64df551425fcc55e4d42a148795d9f25f89d4\""}},{"query":{"type":"header","name":"Expires"},"predicate":{"type":"equal","value":"Wed, 21 Oct 2015 07:28:00 GMT"}},{"query":{"type":"header","name":"Expires"},"filters":[{"type":"toDate","fmt":"%a, %d %b %Y %H:%M:%S GMT"},{"type":"format","fmt":"%Y"}],"predicate":{"type":"equal","value":"2015"}},{"query":{"type":"header","name":"Expires"},"filters":[{"type":"toDate","fmt":"%a, %d %b %Y %H:%M:%S GMT"},{"type":"daysBeforeNow"}],"predicate":{"type":"greater","value":1000}},{"query":{"type":"header","name":"Set-Cookie"},"predicate":{"type":"exist"}},{"query":{"type":"header","name":"Set-Cookie"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"header","name":"Set-Cookie"},"predicate":{"type":"include","value":"cookie1=value1; Path=/"}},{"query":{"type":"header","name":"Set-Cookie"},"predicate":{"not":true,"type":"include","value":"cookie4=value4; Path=/"}},{"query":{"type":"header","name":"X-Fruit"},"predicate":{"type":"isCollection"}},{"query":{"type":"header","name":"x-fruit"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":4}},{"query":{"type":"header","name":"X-Fruit"},"filters":[{"type":"nth","n":0}],"predicate":{"type":"equal","value":"Banana"}},{"query":{"type":"header","name":"x-fruit"},"filters":[{"type":"nth","n":1}],"predicate":{"type":"equal","value":"Lemon"}},{"query":{"type":"header","name":"X-Fruit"},"filters":[{"type":"nth","n":2}],"predicate":{"type":"not-equal","value":"Lemon"}},{"query":{"type":"header","name":"X-Fruit"},"filters":[{"type":"nth","n":2}],"predicate":{"type":"equal","value":"Grape"}},{"query":{"type":"header","name":"X-Fruit"},"filters":[{"type":"nth","n":3}],"predicate":{"type":"equal","value":"Strawberry"}},{"query":{"type":"header","name":"X-Fruit"},"predicate":{"type":"include","value":"Strawberry"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/assert-header"},"response":{"status":200,"captures":[{"name":"fruits","query":{"type":"header","name":"X-fruit"}}],"asserts":[{"query":{"type":"header","name":"X-Fruit"},"predicate":{"type":"isCollection"}},{"query":{"type":"variable","name":"fruits"},"predicate":{"type":"isCollection"}},{"query":{"type":"variable","name":"fruits"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":4}},{"query":{"type":"variable","name":"fruits"},"filters":[{"type":"nth","n":0}],"predicate":{"type":"equal","value":"Banana"}},{"query":{"type":"variable","name":"fruits"},"filters":[{"type":"nth","n":3}],"predicate":{"type":"equal","value":"Strawberry"}}]}}]}
|
@ -1,139 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">variable</span>: one=<span class="number">1</span></span>
|
||||
<span class="line"><span class="string">variable</span>: two=<span class="number">2</span></span>
|
||||
<span class="line"><span class="string">variable</span>: three=<span class="number">3</span></span>
|
||||
<span class="line"><span class="string">variable</span>: four=<span class="number">4</span></span>
|
||||
<span class="line"><span class="string">variable</span>: five=<span class="number">5</span></span>
|
||||
<span class="line"><span class="string">variable</span>: foo=<span class="string">abc</span></span>
|
||||
<span class="line"><span class="string">insecure</span>: <span class="boolean">false</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">count</span>: <span class="query-type">jsonpath</span> <span class="string">"$.count"</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">==</span> <span class="number">5</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">==</span> <span class="number">5.0</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">==</span> <span class="expr">{{five}}</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">!=</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">!=</span> <span class="expr">{{four}}</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="not">not</span> <span class="predicate-type">==</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">></span> <span class="number">1</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">></span> <span class="expr">{{one}}</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">></span> <span class="number">1.0</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.success"</span> <span class="predicate-type">==</span> <span class="boolean">false</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.success"</span> <span class="predicate-type">!=</span> <span class="null">null</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.success"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.success"</span> <span class="predicate-type">isBoolean</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.failures"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">1</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.failures"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.warnings"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">0</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.warnings"</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.toto"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.failures"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.warnings"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]"</span> <span class="predicate-type">isCollection</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0].id"</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0].id"</span> <span class="predicate-type">isString</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]['id']"</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[*].id"</span> <span class="predicate-type">includes</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0,1].id"</span> <span class="predicate-type">includes</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[:2].id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0:].id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[?(@.id)].id"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[?(@.id=='error1')].id"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.failures[*].id"</span> <span class="predicate-type">includes</span> <span class="string">"failure1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type">==</span> <span class="number">1.5</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type"><=</span> <span class="number">2.0</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type"><</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type"><</span> <span class="expr">{{two}}</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type">isFloat</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="not">not</span> <span class="predicate-type">isInteger</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.nullable"</span> <span class="predicate-type">==</span> <span class="null">null</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags[0]"</span> <span class="predicate-type">==</span> <span class="string">"test"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags[0]"</span> <span class="predicate-type">></span> <span class="string">"te"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags[0]"</span> <span class="predicate-type"><</span> <span class="string">"testabc"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags[0]"</span> <span class="predicate-type"><=</span> <span class="string">"test"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags[0]"</span> <span class="predicate-type">></span> <span class="string">"{{foo}}"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.profile-id"</span> <span class="predicate-type">==</span> <span class="string">"123abc"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$['profile-id']"</span> <span class="predicate-type">==</span> <span class="string">"123abc"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]"</span> <span class="not">not</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.empty"</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.*"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">10</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors..*"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$..id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># FIXME do we accept count filter on object?</span>
|
||||
<span class="line"></span><span class="comment"># jsonpath "$.empty" count == 0</span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
<span class="line"> "count": 5,</span>
|
||||
<span class="line"> "success": false,</span>
|
||||
<span class="line"> "errors": [{"id":"error1"},{"id":"error2"}],</span>
|
||||
<span class="line"> "failures": [{"id":"failure1"}],</span>
|
||||
<span class="line"> "warnings": [],</span>
|
||||
<span class="line"> "duration": 1.5,</span>
|
||||
<span class="line"> "tags": ["test"],</span>
|
||||
<span class="line"> "nullable": null,</span>
|
||||
<span class="line"> "profile-id": "123abc",</span>
|
||||
<span class="line"> "empty": {}</span>
|
||||
<span class="line">}</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json/index</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">index</span>: <span class="query-type">body</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[{{index}}].id"</span> <span class="predicate-type">==</span> <span class="string">"error2"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags"</span> <span class="predicate-type">includes</span> <span class="string">"test"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags"</span> <span class="not">not</span> <span class="predicate-type">includes</span> <span class="string">"prod"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.tags"</span> <span class="not">not</span> <span class="predicate-type">includes</span> <span class="null">null</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json/list</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.[0].name"</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$[0].name"</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.[?(@.id == 1)].name"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$[?(@.id == 1)].name"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json/filter</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.fruit[?(@.price.US==200)].name"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"grape"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.fruit.[?(@.US == 100)]"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">0</span></span> <span class="comment"># To be clarified with spec: the first fruit is return by jsonpath.com</span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
<span class="line"> "fruit": [</span>
|
||||
<span class="line"> {</span>
|
||||
<span class="line"> "name": "apple",</span>
|
||||
<span class="line"> "price": {</span>
|
||||
<span class="line"> "US": 100,</span>
|
||||
<span class="line"> "UN": 110</span>
|
||||
<span class="line"> }</span>
|
||||
<span class="line"> },</span>
|
||||
<span class="line"> {</span>
|
||||
<span class="line"> "name": "grape",</span>
|
||||
<span class="line"> "price": {</span>
|
||||
<span class="line"> "US": 200,</span>
|
||||
<span class="line"> "UN": 150</span>
|
||||
<span class="line"> }</span>
|
||||
<span class="line"> }</span>
|
||||
<span class="line"> ]</span>
|
||||
<span class="line">}</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-json/big-number</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.big_integer"</span> <span class="predicate-type">==</span> <span class="number">1000000000000000000000</span></span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
<span class="line"> "big_integer": 1000000000000000000000</span>
|
||||
<span class="line">}</span></span>
|
||||
</span></span></code></pre>
|
@ -1,138 +0,0 @@
|
||||
GET http://localhost:8000/assert-json
|
||||
[Options]
|
||||
variable: one=1
|
||||
variable: two=2
|
||||
variable: three=3
|
||||
variable: four=4
|
||||
variable: five=5
|
||||
variable: foo=abc
|
||||
insecure: false
|
||||
HTTP 200
|
||||
[Captures]
|
||||
count: jsonpath "$.count"
|
||||
[Asserts]
|
||||
jsonpath "$.count" == 5
|
||||
jsonpath "$.count" == 5.0
|
||||
jsonpath "$.count" == {{five}}
|
||||
jsonpath "$.count" != 4
|
||||
jsonpath "$.count" != {{four}}
|
||||
jsonpath "$.count" not == 4
|
||||
jsonpath "$.count" > 1
|
||||
jsonpath "$.count" > {{one}}
|
||||
jsonpath "$.count" > 1.0
|
||||
jsonpath "$.success" == false
|
||||
jsonpath "$.success" != null
|
||||
jsonpath "$.success" exists
|
||||
jsonpath "$.success" isBoolean
|
||||
jsonpath "$.errors" count == 2
|
||||
jsonpath "$.errors" isCollection
|
||||
jsonpath "$.failures" count == 1
|
||||
jsonpath "$.failures" isCollection
|
||||
jsonpath "$.warnings" count == 0
|
||||
jsonpath "$.warnings" isEmpty
|
||||
jsonpath "$.toto" not exists
|
||||
jsonpath "$.failures" exists
|
||||
jsonpath "$.warnings" exists
|
||||
jsonpath "$.errors[0]" exists
|
||||
jsonpath "$.errors[0]" isCollection
|
||||
jsonpath "$.errors[0].id" == "error1"
|
||||
jsonpath "$.errors[0].id" isString
|
||||
jsonpath "$.errors[0]['id']" == "error1"
|
||||
jsonpath "$.errors[*].id" includes "error1"
|
||||
jsonpath "$.errors[0,1].id" includes "error1"
|
||||
jsonpath "$.errors[:2].id" count == 2
|
||||
jsonpath "$.errors[0:].id" count == 2
|
||||
jsonpath "$.errors[?(@.id)].id" nth 0 == "error1"
|
||||
jsonpath "$.errors[?(@.id=='error1')].id" nth 0 == "error1"
|
||||
jsonpath "$.failures[*].id" includes "failure1"
|
||||
jsonpath "$.duration" == 1.5
|
||||
jsonpath "$.duration" <= 2.0
|
||||
jsonpath "$.duration" < 2
|
||||
jsonpath "$.duration" < {{two}}
|
||||
jsonpath "$.duration" isFloat
|
||||
jsonpath "$.duration" not isInteger
|
||||
jsonpath "$.nullable" == null
|
||||
jsonpath "$.tags[0]" == "test"
|
||||
jsonpath "$.tags[0]" > "te"
|
||||
jsonpath "$.tags[0]" < "testabc"
|
||||
jsonpath "$.tags[0]" <= "test"
|
||||
jsonpath "$.tags[0]" > "{{foo}}"
|
||||
jsonpath "$.profile-id" == "123abc"
|
||||
jsonpath "$['profile-id']" == "123abc"
|
||||
jsonpath "$.errors[0]" not isEmpty
|
||||
jsonpath "$.empty" isEmpty
|
||||
jsonpath "$.*" count == 10
|
||||
jsonpath "$.errors..*" count == 4
|
||||
jsonpath "$..id" count == 3
|
||||
|
||||
# FIXME do we accept count filter on object?
|
||||
# jsonpath "$.empty" count == 0
|
||||
{
|
||||
"count": 5,
|
||||
"success": false,
|
||||
"errors": [{"id":"error1"},{"id":"error2"}],
|
||||
"failures": [{"id":"failure1"}],
|
||||
"warnings": [],
|
||||
"duration": 1.5,
|
||||
"tags": ["test"],
|
||||
"nullable": null,
|
||||
"profile-id": "123abc",
|
||||
"empty": {}
|
||||
}
|
||||
|
||||
|
||||
GET http://localhost:8000/assert-json/index
|
||||
HTTP 200
|
||||
[Captures]
|
||||
index: body
|
||||
|
||||
|
||||
GET http://localhost:8000/assert-json
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$.errors[{{index}}].id" == "error2"
|
||||
jsonpath "$.tags" includes "test"
|
||||
jsonpath "$.tags" not includes "prod"
|
||||
jsonpath "$.tags" not includes null
|
||||
|
||||
|
||||
GET http://localhost:8000/assert-json/list
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$" count == 2
|
||||
jsonpath "$.[0].name" == "Bob"
|
||||
jsonpath "$[0].name" == "Bob"
|
||||
jsonpath "$.[?(@.id == 1)].name" nth 0 == "Bob"
|
||||
jsonpath "$[?(@.id == 1)].name" nth 0 == "Bob"
|
||||
|
||||
GET http://localhost:8000/assert-json/filter
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$.fruit[?(@.price.US==200)].name" nth 0 == "grape"
|
||||
jsonpath "$.fruit.[?(@.US == 100)]" count == 0 # To be clarified with spec: the first fruit is return by jsonpath.com
|
||||
{
|
||||
"fruit": [
|
||||
{
|
||||
"name": "apple",
|
||||
"price": {
|
||||
"US": 100,
|
||||
"UN": 110
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "grape",
|
||||
"price": {
|
||||
"US": 200,
|
||||
"UN": 150
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
GET http://localhost:8000/assert-json/big-number
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$.big_integer" == 1000000000000000000000
|
||||
{
|
||||
"big_integer": 1000000000000000000000
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,11 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-match</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date1"</span> <span class="predicate-type">matches</span> <span class="string">"\\d{4}-\\d{2}-\\d{2}"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date1"</span> <span class="predicate-type">matches</span> <span class="regex">/\d{4}-\d{2}-\d{2}/</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date2"</span> <span class="predicate-type">matches</span> <span class="regex">/\d{4}-\d{2}-\d{2}/</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date1"</span> <span class="predicate-type">matches</span> <span class="regex">/^\d{4}-\d{2}-\d{2}$/</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date2"</span> <span class="not">not</span> <span class="predicate-type">matches</span> <span class="regex">/^\d{4}-\d{2}-\d{2}$/</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.path1"</span> <span class="predicate-type">matches</span> <span class="regex">/aa\/bb/</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.path2"</span> <span class="predicate-type">matches</span> <span class="regex">/aa\\bb/</span></span>
|
||||
</span></span></code></pre>
|
@ -1,10 +0,0 @@
|
||||
GET http://localhost:8000/assert-match
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "$.date1" matches "\\d{4}-\\d{2}-\\d{2}"
|
||||
jsonpath "$.date1" matches /\d{4}-\d{2}-\d{2}/
|
||||
jsonpath "$.date2" matches /\d{4}-\d{2}-\d{2}/
|
||||
jsonpath "$.date1" matches /^\d{4}-\d{2}-\d{2}$/
|
||||
jsonpath "$.date2" not matches /^\d{4}-\d{2}-\d{2}$/
|
||||
jsonpath "$.path1" matches /aa\/bb/
|
||||
jsonpath "$.path2" matches /aa\\bb/
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-match"},"response":{"status":200,"asserts":[{"query":{"type":"jsonpath","expr":"$.date1"},"predicate":{"type":"match","value":"\\d{4}-\\d{2}-\\d{2}"}},{"query":{"type":"jsonpath","expr":"$.date1"},"predicate":{"type":"match","value":"\\d{4}-\\d{2}-\\d{2}","encoding":"regex"}},{"query":{"type":"jsonpath","expr":"$.date2"},"predicate":{"type":"match","value":"\\d{4}-\\d{2}-\\d{2}","encoding":"regex"}},{"query":{"type":"jsonpath","expr":"$.date1"},"predicate":{"type":"match","value":"^\\d{4}-\\d{2}-\\d{2}$","encoding":"regex"}},{"query":{"type":"jsonpath","expr":"$.date2"},"predicate":{"not":true,"type":"match","value":"^\\d{4}-\\d{2}-\\d{2}$","encoding":"regex"}},{"query":{"type":"jsonpath","expr":"$.path1"},"predicate":{"type":"match","value":"aa/bb","encoding":"regex"}},{"query":{"type":"jsonpath","expr":"$.path2"},"predicate":{"type":"match","value":"aa\\\\bb","encoding":"regex"}}]}}]}
|
@ -1,10 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-regex</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">regex</span> <span class="string">"Hello ([0-9]+)!"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">regex</span> <span class="regex">/Hello ([0-9]+)!/</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="filter-type">regex</span> <span class="regex">/Hello ([0-9]+)!/</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">regex</span> <span class="string">"Hello ([a-zA-Z]+)!"</span> <span class="predicate-type">==</span> <span class="string">"World"</span></span>
|
||||
<span class="line"><span class="query-type">regex</span> <span class="regex">/Hello ([a-zA-Z]+)!/</span> <span class="predicate-type">==</span> <span class="string">"World"</span></span>
|
||||
</span></span></code></pre>
|
@ -1,9 +0,0 @@
|
||||
GET http://localhost:8000/assert-regex
|
||||
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
regex "Hello ([0-9]+)!" not exists
|
||||
regex /Hello ([0-9]+)!/ not exists
|
||||
body regex /Hello ([0-9]+)!/ not exists
|
||||
regex "Hello ([a-zA-Z]+)!" == "World"
|
||||
regex /Hello ([a-zA-Z]+)!/ == "World"
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-regex"},"response":{"status":200,"asserts":[{"query":{"type":"regex","expr":"Hello ([0-9]+)!"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"regex","expr":{"type":"regex","value":"Hello ([0-9]+)!"}},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"body"},"filters":[{"type":"regex","expr":{"type":"regex","value":"Hello ([0-9]+)!"}}],"predicate":{"not":true,"type":"exist"}},{"query":{"type":"regex","expr":"Hello ([a-zA-Z]+)!"},"predicate":{"type":"equal","value":"World"}},{"query":{"type":"regex","expr":{"type":"regex","value":"Hello ([a-zA-Z]+)!"}},"predicate":{"type":"equal","value":"World"}}]}}]}
|
@ -1,22 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">201</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Assert HTTP 1.1</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP/1.1</span> <span class="number">201</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Simply check that the status code is not 200</span>
|
||||
<span class="line"></span><span class="comment"># Do not run implicit assert of HTTP response version and code</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">*</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">status</span> <span class="predicate-type">!=</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Simply check that the status code is OK</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">*</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">status</span> <span class="predicate-type">>=</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="query-type">status</span> <span class="predicate-type"><</span> <span class="number">300</span></span>
|
||||
</span></span></code></pre>
|
@ -1,21 +0,0 @@
|
||||
GET http://localhost:8000/assert-status-code
|
||||
HTTP 201
|
||||
|
||||
# Assert HTTP 1.1
|
||||
GET http://localhost:8000/assert-status-code
|
||||
HTTP/1.1 201
|
||||
|
||||
# Simply check that the status code is not 200
|
||||
# Do not run implicit assert of HTTP response version and code
|
||||
GET http://localhost:8000/assert-status-code
|
||||
HTTP *
|
||||
[Asserts]
|
||||
status != 200
|
||||
|
||||
|
||||
# Simply check that the status code is OK
|
||||
GET http://localhost:8000/assert-status-code
|
||||
HTTP *
|
||||
[Asserts]
|
||||
status >= 200
|
||||
status < 300
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-status-code"},"response":{"status":201}},{"request":{"method":"GET","url":"http://localhost:8000/assert-status-code"},"response":{"version":"HTTP/1.1","status":201}},{"request":{"method":"GET","url":"http://localhost:8000/assert-status-code"},"response":{"asserts":[{"query":{"type":"status"},"predicate":{"type":"not-equal","value":200}}]}},{"request":{"method":"GET","url":"http://localhost:8000/assert-status-code"},"response":{"asserts":[{"query":{"type":"status"},"predicate":{"type":"greater-or-equal","value":200}},{"query":{"type":"status"},"predicate":{"type":"less","value":300}}]}}]}
|
@ -1,52 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-xpath</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"normalize-space(//data)"</span> <span class="predicate-type">==</span> <span class="string">"café"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"normalize-space(//data)"</span> <span class="predicate-type">==</span> <span class="string">"caf\u{00e9}"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"normalize-space(//data)"</span> <span class="predicate-type">></span> <span class="string">"CAFÉ"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//toto"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="xml"><span class="line"><data>café</data></span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test XPath assert with XML namespace.</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-xpath-simple-namespaces</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//bk:book/bk:title)"</span> <span class="predicate-type">==</span> <span class="string">"Cheaper by the Dozen"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//*[name()='bk:book']/*[name()='bk:title'])"</span> <span class="predicate-type">==</span> <span class="string">"Cheaper by the Dozen"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//*[local-name()='book']/*[local-name()='title'])"</span> <span class="predicate-type">==</span> <span class="string">"Cheaper by the Dozen"</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//bk:book/isbn:number)"</span> <span class="predicate-type">==</span> <span class="string">"1568491379"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//*[name()='bk:book']/*[name()='isbn:number'])"</span> <span class="predicate-type">==</span> <span class="string">"1568491379"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//*[local-name()='book']/*[local-name()='number'])"</span> <span class="predicate-type">==</span> <span class="string">"1568491379"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test XPath assert with default XML namespace.</span>
|
||||
<span class="line"></span><span class="comment"># _ can be used to target a default namespace.</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-xpath-svg</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//_:svg/_:g/_:circle"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//*[local-name()='svg']/*[local-name()='g']/*[local-name()='circle']"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//*[name()='svg']/*[name()='g']/*[name()='circle']"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test XPath assert with default and prefixed XML namespace.</span>
|
||||
<span class="line"></span><span class="comment"># _ can be used to target a default namespace.</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-xpath-namespaces</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//_:book/_:title)"</span> <span class="predicate-type">==</span> <span class="string">"Cheaper by the Dozen"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//_:book/_:title)"</span> <span class="predicate-type">></span> <span class="string">"Cheaper"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"string(//_:book/isbn:number)"</span> <span class="predicate-type">==</span> <span class="string">"1568491379"</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//*[name()='book']/*[name()='notes']"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">1</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//*[local-name()='book']/*[local-name()='notes']"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">1</span></span>
|
||||
<span class="line"><span class="query-type">xpath</span> <span class="string">"//_:book/_:notes/*[local-name()='p']"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">1</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
</code></pre>
|
@ -1,51 +0,0 @@
|
||||
GET http://localhost:8000/assert-xpath
|
||||
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
xpath "normalize-space(//data)" == "café"
|
||||
xpath "normalize-space(//data)" == "caf\u{00e9}"
|
||||
xpath "normalize-space(//data)" > "CAFÉ"
|
||||
xpath "//toto" not exists
|
||||
|
||||
<data>café</data>
|
||||
|
||||
|
||||
# Test XPath assert with XML namespace.
|
||||
GET http://localhost:8000/assert-xpath-simple-namespaces
|
||||
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
|
||||
xpath "string(//bk:book/bk:title)" == "Cheaper by the Dozen"
|
||||
xpath "string(//*[name()='bk:book']/*[name()='bk:title'])" == "Cheaper by the Dozen"
|
||||
xpath "string(//*[local-name()='book']/*[local-name()='title'])" == "Cheaper by the Dozen"
|
||||
|
||||
xpath "string(//bk:book/isbn:number)" == "1568491379"
|
||||
xpath "string(//*[name()='bk:book']/*[name()='isbn:number'])" == "1568491379"
|
||||
xpath "string(//*[local-name()='book']/*[local-name()='number'])" == "1568491379"
|
||||
|
||||
|
||||
# Test XPath assert with default XML namespace.
|
||||
# _ can be used to target a default namespace.
|
||||
GET http://localhost:8000/assert-xpath-svg
|
||||
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
xpath "//_:svg/_:g/_:circle" count == 3
|
||||
xpath "//*[local-name()='svg']/*[local-name()='g']/*[local-name()='circle']" count == 3
|
||||
xpath "//*[name()='svg']/*[name()='g']/*[name()='circle']" count == 3
|
||||
|
||||
|
||||
# Test XPath assert with default and prefixed XML namespace.
|
||||
# _ can be used to target a default namespace.
|
||||
GET http://localhost:8000/assert-xpath-namespaces
|
||||
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
xpath "string(//_:book/_:title)" == "Cheaper by the Dozen"
|
||||
xpath "string(//_:book/_:title)" > "Cheaper"
|
||||
xpath "string(//_:book/isbn:number)" == "1568491379"
|
||||
xpath "//*[name()='book']/*[name()='notes']" count == 1
|
||||
xpath "//*[local-name()='book']/*[local-name()='notes']" count == 1
|
||||
xpath "//_:book/_:notes/*[local-name()='p']" count == 1
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/assert-xpath"},"response":{"status":200,"asserts":[{"query":{"type":"xpath","expr":"normalize-space(//data)"},"predicate":{"type":"equal","value":"café"}},{"query":{"type":"xpath","expr":"normalize-space(//data)"},"predicate":{"type":"equal","value":"café"}},{"query":{"type":"xpath","expr":"normalize-space(//data)"},"predicate":{"type":"greater","value":"CAFÉ"}},{"query":{"type":"xpath","expr":"//toto"},"predicate":{"not":true,"type":"exist"}}],"body":{"type":"xml","value":"<data>café</data>"}}},{"request":{"method":"GET","url":"http://localhost:8000/assert-xpath-simple-namespaces"},"response":{"status":200,"asserts":[{"query":{"type":"xpath","expr":"string(//bk:book/bk:title)"},"predicate":{"type":"equal","value":"Cheaper by the Dozen"}},{"query":{"type":"xpath","expr":"string(//*[name()='bk:book']/*[name()='bk:title'])"},"predicate":{"type":"equal","value":"Cheaper by the Dozen"}},{"query":{"type":"xpath","expr":"string(//*[local-name()='book']/*[local-name()='title'])"},"predicate":{"type":"equal","value":"Cheaper by the Dozen"}},{"query":{"type":"xpath","expr":"string(//bk:book/isbn:number)"},"predicate":{"type":"equal","value":"1568491379"}},{"query":{"type":"xpath","expr":"string(//*[name()='bk:book']/*[name()='isbn:number'])"},"predicate":{"type":"equal","value":"1568491379"}},{"query":{"type":"xpath","expr":"string(//*[local-name()='book']/*[local-name()='number'])"},"predicate":{"type":"equal","value":"1568491379"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/assert-xpath-svg"},"response":{"status":200,"asserts":[{"query":{"type":"xpath","expr":"//_:svg/_:g/_:circle"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"xpath","expr":"//*[local-name()='svg']/*[local-name()='g']/*[local-name()='circle']"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"xpath","expr":"//*[name()='svg']/*[name()='g']/*[name()='circle']"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}}]}},{"request":{"method":"GET","url":"http://localhost:8000/assert-xpath-namespaces"},"response":{"status":200,"asserts":[{"query":{"type":"xpath","expr":"string(//_:book/_:title)"},"predicate":{"type":"equal","value":"Cheaper by the Dozen"}},{"query":{"type":"xpath","expr":"string(//_:book/_:title)"},"predicate":{"type":"greater","value":"Cheaper"}},{"query":{"type":"xpath","expr":"string(//_:book/isbn:number)"},"predicate":{"type":"equal","value":"1568491379"}},{"query":{"type":"xpath","expr":"//*[name()='book']/*[name()='notes']"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":1}},{"query":{"type":"xpath","expr":"//*[local-name()='book']/*[local-name()='notes']"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":1}},{"query":{"type":"xpath","expr":"//_:book/_:notes/*[local-name()='p']"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":1}}]}}]}
|
@ -1,9 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/aws-sigv4</span></span>
|
||||
<span class="line"><span class="section-header">[FormParams]</span></span>
|
||||
<span class="line"><span class="string">test</span>: <span class="string">test</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">aws-sigv4</span>: <span class="string">aws:amz:eu-central-1:hurltest</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
</code></pre>
|
@ -1,8 +0,0 @@
|
||||
POST http://localhost:8000/aws-sigv4
|
||||
[FormParams]
|
||||
test: test
|
||||
[Options]
|
||||
aws-sigv4: aws:amz:eu-central-1:hurltest
|
||||
|
||||
HTTP 200
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"POST","url":"http://localhost:8000/aws-sigv4","form_params":[{"name":"test","value":"test"}],"options":[{"name":"aws-sigv4","value":"aws:amz:eu-central-1:hurltest"}]},"response":{"status":200}}]}
|
@ -1,6 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/basic-authentication</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`You are authenticated`</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,5 +0,0 @@
|
||||
GET http://localhost:8000/basic-authentication
|
||||
HTTP 200
|
||||
`You are authenticated`
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/basic-authentication"},"response":{"status":200,"body":{"type":"text","value":"You are authenticated"}}}]}
|
@ -1,26 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># Authentication with:</span>
|
||||
<span class="line"></span><span class="comment"># username=bob@email.com</span>
|
||||
<span class="line"></span><span class="comment"># password=secret</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># the '@' must be url-escaped</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://bob%40email.com:secret@localhost:8000/basic-authentication-per-request</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`You are authenticated`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Header value can be computed with `echo -n 'bob@email.com:secret' | base64`</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/basic-authentication-per-request</span></span>
|
||||
<span class="line"><span class="string">Authorization</span>: <span class="string">Basic Ym9iQGVtYWlsLmNvbTpzZWNyZXQ=</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`You are authenticated`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># We can also use a BasicAuth section to specify user and password</span>
|
||||
<span class="line"></span><span class="comment"># without any base64 encoding.</span>
|
||||
<span class="line"></span><span class="comment"># Note that spaces surrounded user and password are trimmed. If you</span>
|
||||
<span class="line"></span><span class="comment"># really want a space in your password (!!), you could use Hurl</span>
|
||||
<span class="line"></span><span class="comment"># unicode literal \u{20}.</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/basic-authentication-per-request</span></span>
|
||||
<span class="line"><span class="section-header">[BasicAuth]</span></span>
|
||||
<span class="line"><span class="string">bob@email.com</span>: <span class="string">secret</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`You are authenticated`</span></span>
|
||||
</span></span></code></pre>
|
@ -1,25 +0,0 @@
|
||||
# Authentication with:
|
||||
# username=bob@email.com
|
||||
# password=secret
|
||||
|
||||
# the '@' must be url-escaped
|
||||
GET http://bob%40email.com:secret@localhost:8000/basic-authentication-per-request
|
||||
HTTP 200
|
||||
`You are authenticated`
|
||||
|
||||
# Header value can be computed with `echo -n 'bob@email.com:secret' | base64`
|
||||
GET http://localhost:8000/basic-authentication-per-request
|
||||
Authorization: Basic Ym9iQGVtYWlsLmNvbTpzZWNyZXQ=
|
||||
HTTP 200
|
||||
`You are authenticated`
|
||||
|
||||
# We can also use a BasicAuth section to specify user and password
|
||||
# without any base64 encoding.
|
||||
# Note that spaces surrounded user and password are trimmed. If you
|
||||
# really want a space in your password (!!), you could use Hurl
|
||||
# unicode literal \u{20}.
|
||||
GET http://localhost:8000/basic-authentication-per-request
|
||||
[BasicAuth]
|
||||
bob@email.com: secret
|
||||
HTTP 200
|
||||
`You are authenticated`
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://bob%40email.com:secret@localhost:8000/basic-authentication-per-request"},"response":{"status":200,"body":{"type":"text","value":"You are authenticated"}}},{"request":{"method":"GET","url":"http://localhost:8000/basic-authentication-per-request","headers":[{"name":"Authorization","value":"Basic Ym9iQGVtYWlsLmNvbTpzZWNyZXQ="}]},"response":{"status":200,"body":{"type":"text","value":"You are authenticated"}}},{"request":{"method":"GET","url":"http://localhost:8000/basic-authentication-per-request"},"response":{"status":200,"body":{"type":"text","value":"You are authenticated"}}}]}
|
@ -1,6 +1,17 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/json</span></span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
<span class="line"> "message": "Hello"</span>
|
||||
<span class="line"> "message": "Hello",</span>
|
||||
<span class="line"> "count": 5,</span>
|
||||
<span class="line"> "success": false,</span>
|
||||
<span class="line"> "errors": [{"id":"error1"},{"id":"error2"}],</span>
|
||||
<span class="line"> "failures": [{"id":"failure1"}],</span>
|
||||
<span class="line"> "warnings": [],</span>
|
||||
<span class="line"> "duration": 1.5,</span>
|
||||
<span class="line"> "tags": ["test"],</span>
|
||||
<span class="line"> "nullable": null,</span>
|
||||
<span class="line"> "profile-id": "123abc",</span>
|
||||
<span class="line"> "empty": {},</span>
|
||||
<span class="line"> "name": {{name}}</span>
|
||||
<span class="line">}</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/xml</span></span>
|
||||
|
@ -1,6 +1,17 @@
|
||||
POST http://localhost:8000/json
|
||||
{
|
||||
"message": "Hello"
|
||||
"message": "Hello",
|
||||
"count": 5,
|
||||
"success": false,
|
||||
"errors": [{"id":"error1"},{"id":"error2"}],
|
||||
"failures": [{"id":"failure1"}],
|
||||
"warnings": [],
|
||||
"duration": 1.5,
|
||||
"tags": ["test"],
|
||||
"nullable": null,
|
||||
"profile-id": "123abc",
|
||||
"empty": {},
|
||||
"name": {{name}}
|
||||
}
|
||||
|
||||
POST http://localhost:8000/xml
|
||||
|
@ -1 +1 @@
|
||||
{"entries":[{"request":{"method":"POST","url":"http://localhost:8000/json","body":{"type":"json","value":{"message":"Hello"}}}},{"request":{"method":"POST","url":"http://localhost:8000/xml","body":{"type":"xml","value":"<message>Hello</message>"}}},{"request":{"method":"POST","url":"http://localhost:8000/multiline-string","body":{"type":"text","value":"Hello\n"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-string","body":{"type":"text","value":"Hello"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-base64","body":{"encoding":"base64","value":"bGluZTEKbGluZTINCmxpbmUzCg=="}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-file","body":{"type":"file","filename":"data.bin"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-hex","body":{"encoding":"base64","value":"AQID"}}}]}
|
||||
{"entries":[{"request":{"method":"POST","url":"http://localhost:8000/json","body":{"type":"json","value":{"message":"Hello","count":5,"success":false,"errors":[{"id":"error1"},{"id":"error2"}],"failures":[{"id":"failure1"}],"warnings":[],"duration":1.5,"tags":["test"],"nullable":null,"profile-id":"123abc","empty":{},"name":"{{name}}"}}}},{"request":{"method":"POST","url":"http://localhost:8000/xml","body":{"type":"xml","value":"<message>Hello</message>"}}},{"request":{"method":"POST","url":"http://localhost:8000/multiline-string","body":{"type":"text","value":"Hello\n"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-string","body":{"type":"text","value":"Hello"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-base64","body":{"encoding":"base64","value":"bGluZTEKbGluZTINCmxpbmUzCg=="}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-file","body":{"type":"file","filename":"data.bin"}}},{"request":{"method":"POST","url":"http://localhost:8000/oneline-hex","body":{"encoding":"base64","value":"AQID"}}}]}
|
||||
|
@ -1,14 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/bytes</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">application/octet-stream</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">==</span> hex,<span class="hex">010203</span>;</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">==</span> base64,<span class="base64">AQID</span>;</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">==</span> file,<span class="filename">bytes.bin</span>;</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">01</span>;</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">endsWith</span> hex,<span class="hex">03</span>;</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">contains</span> hex,<span class="hex">02</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">5289df737df57326fcdd22597afb1fac</span>;</span>
|
||||
</span></span></code></pre>
|
@ -1,13 +0,0 @@
|
||||
GET http://localhost:8000/bytes
|
||||
HTTP 200
|
||||
Content-Type: application/octet-stream
|
||||
[Asserts]
|
||||
bytes == hex,010203;
|
||||
bytes == base64,AQID;
|
||||
bytes == file,bytes.bin;
|
||||
bytes count == 3
|
||||
bytes startsWith hex,01;
|
||||
bytes endsWith hex,03;
|
||||
bytes contains hex,02;
|
||||
sha256 == hex,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81;
|
||||
md5 == hex,5289df737df57326fcdd22597afb1fac;
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/bytes"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"application/octet-stream"}],"asserts":[{"query":{"type":"bytes"},"predicate":{"type":"equal","value":"AQID","encoding":"base64"}},{"query":{"type":"bytes"},"predicate":{"type":"equal","value":"AQID","encoding":"base64"}},{"query":{"type":"bytes"},"predicate":{"type":"equal","value":{"type":"file","filename":"bytes.bin"}}},{"query":{"type":"bytes"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"bytes"},"predicate":{"type":"start-with","value":"AQ==","encoding":"base64"}},{"query":{"type":"bytes"},"predicate":{"type":"end-with","value":"Aw==","encoding":"base64"}},{"query":{"type":"bytes"},"predicate":{"type":"contain","value":"Ag==","encoding":"base64"}},{"query":{"type":"sha256"},"predicate":{"type":"equal","value":"A5BYxvLAy0ksUzsKTRTvd8wPeKvMztUofYShogEc+4E=","encoding":"base64"}},{"query":{"type":"md5"},"predicate":{"type":"equal","value":"Uonfc331cyb83SJZevsfrA==","encoding":"base64"}}]}}]}
|
@ -1,7 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/empty_bytes</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">application/octet-stream</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">0</span></span>
|
||||
</span></span></code></pre>
|
@ -1,6 +0,0 @@
|
||||
GET http://localhost:8000/empty_bytes
|
||||
HTTP 200
|
||||
Content-Type: application/octet-stream
|
||||
[Asserts]
|
||||
bytes isEmpty
|
||||
bytes count == 0
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/empty_bytes"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"application/octet-stream"}],"asserts":[{"query":{"type":"bytes"},"predicate":{"type":"isEmpty"}},{"query":{"type":"bytes"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":0}}]}}]}
|
@ -1,9 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/capture-and-assert</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">content_type</span>: <span class="query-type">header</span> <span class="string">"content-type"</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"content-type"</span> <span class="predicate-type">==</span> <span class="string">"{{content_type}}"</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,8 +0,0 @@
|
||||
GET http://localhost:8000/capture-and-assert
|
||||
HTTP 200
|
||||
[Captures]
|
||||
content_type: header "content-type"
|
||||
[Asserts]
|
||||
header "content-type" == "{{content_type}}"
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/capture-and-assert"},"response":{"status":200,"captures":[{"name":"content_type","query":{"type":"header","name":"content-type"}}],"asserts":[{"query":{"type":"header","name":"content-type"},"predicate":{"type":"equal","value":"{{content_type}}"}}]}}]}
|
@ -1,50 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/captures</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">param1</span>: <span class="query-type">header</span> <span class="string">"header1"</span></span>
|
||||
<span class="line"><span class="string">param2</span>: <span class="query-type">header</span> <span class="string">"header2"</span> <span class="filter-type">regex</span> <span class="string">"Hello (.*)!"</span></span>
|
||||
<span class="line"><span class="string">param3</span>: <span class="query-type">header</span> <span class="string">"header2"</span> <span class="filter-type">regex</span> <span class="regex">/Hello (.*)!/</span></span>
|
||||
<span class="line"></span><span class="comment"># With the next captures, we test that the captured variable</span>
|
||||
<span class="line"></span><span class="comment"># can be immediately used in the next captures + asserts</span>
|
||||
<span class="line"><span class="string">data1</span>: <span class="query-type">body</span></span>
|
||||
<span class="line"><span class="string">data2</span>: <span class="query-type">variable</span> <span class="string">"data1"</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"param1"</span> <span class="predicate-type">==</span> <span class="string">"value1"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"param2"</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"param3"</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"data2"</span> <span class="predicate-type">==</span> <span class="string">"Hello world!"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/captures-check</span></span>
|
||||
<span class="line"><span class="section-header">[QueryStringParams]</span></span>
|
||||
<span class="line"><span class="string">param1</span>: <span class="string">{{param1}}</span></span>
|
||||
<span class="line"><span class="string">param2</span>: <span class="string">{{param2}}</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/captures-json</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">an_object</span>: <span class="query-type">jsonpath</span> <span class="string">"$['an_object']"</span></span>
|
||||
<span class="line"><span class="string">a_list</span>: <span class="query-type">jsonpath</span> <span class="string">"$['a_list']"</span></span>
|
||||
<span class="line"><span class="string">a_null</span>: <span class="query-type">jsonpath</span> <span class="string">"$['a_null']"</span></span>
|
||||
<span class="line"><span class="string">an_integer</span>: <span class="query-type">jsonpath</span> <span class="string">"$['an_integer']"</span></span>
|
||||
<span class="line"><span class="string">a_float</span>: <span class="query-type">jsonpath</span> <span class="string">"$['a_float']"</span></span>
|
||||
<span class="line"><span class="string">a_bool</span>: <span class="query-type">jsonpath</span> <span class="string">"$['a_bool']"</span></span>
|
||||
<span class="line"><span class="string">a_string</span>: <span class="query-type">jsonpath</span> <span class="string">"$['a_string']"</span></span>
|
||||
<span class="line"><span class="string">all</span>: <span class="query-type">jsonpath</span> <span class="string">"$"</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_null"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"undefined"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_null"</span> <span class="predicate-type">==</span> <span class="expr">{{a_null}}</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"an_integer"</span> <span class="predicate-type">==</span> <span class="expr">{{an_integer}}</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_float"</span> <span class="predicate-type">==</span> <span class="expr">{{a_float}}</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_bool"</span> <span class="predicate-type">==</span> <span class="expr">{{a_bool}}</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_string"</span> <span class="predicate-type">==</span> <span class="expr">{{a_string}}</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_string"</span> <span class="predicate-type">==</span> <span class="string">"{{a_string}}"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"a_list"</span> <span class="predicate-type">==</span> <span class="expr">{{a_list}}</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,49 +0,0 @@
|
||||
GET http://localhost:8000/captures
|
||||
|
||||
HTTP 200
|
||||
[Captures]
|
||||
param1: header "header1"
|
||||
param2: header "header2" regex "Hello (.*)!"
|
||||
param3: header "header2" regex /Hello (.*)!/
|
||||
# With the next captures, we test that the captured variable
|
||||
# can be immediately used in the next captures + asserts
|
||||
data1: body
|
||||
data2: variable "data1"
|
||||
[Asserts]
|
||||
variable "param1" == "value1"
|
||||
variable "param2" == "Bob"
|
||||
variable "param3" == "Bob"
|
||||
variable "data2" == "Hello world!"
|
||||
|
||||
|
||||
GET http://localhost:8000/captures-check
|
||||
[QueryStringParams]
|
||||
param1: {{param1}}
|
||||
param2: {{param2}}
|
||||
HTTP 200
|
||||
|
||||
|
||||
GET http://localhost:8000/captures-json
|
||||
|
||||
HTTP 200
|
||||
[Captures]
|
||||
an_object: jsonpath "$['an_object']"
|
||||
a_list: jsonpath "$['a_list']"
|
||||
a_null: jsonpath "$['a_null']"
|
||||
an_integer: jsonpath "$['an_integer']"
|
||||
a_float: jsonpath "$['a_float']"
|
||||
a_bool: jsonpath "$['a_bool']"
|
||||
a_string: jsonpath "$['a_string']"
|
||||
all: jsonpath "$"
|
||||
[Asserts]
|
||||
variable "a_null" exists
|
||||
variable "undefined" not exists
|
||||
variable "a_null" == {{a_null}}
|
||||
variable "an_integer" == {{an_integer}}
|
||||
variable "a_float" == {{a_float}}
|
||||
variable "a_bool" == {{a_bool}}
|
||||
variable "a_string" == {{a_string}}
|
||||
variable "a_string" == "{{a_string}}"
|
||||
variable "a_list" == {{a_list}}
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/captures"},"response":{"status":200,"captures":[{"name":"param1","query":{"type":"header","name":"header1"}},{"name":"param2","query":{"type":"header","name":"header2"},"filters":[{"type":"regex","expr":"Hello (.*)!"}]},{"name":"param3","query":{"type":"header","name":"header2"},"filters":[{"type":"regex","expr":{"type":"regex","value":"Hello (.*)!"}}]},{"name":"data1","query":{"type":"body"}},{"name":"data2","query":{"type":"variable","name":"data1"}}],"asserts":[{"query":{"type":"variable","name":"param1"},"predicate":{"type":"equal","value":"value1"}},{"query":{"type":"variable","name":"param2"},"predicate":{"type":"equal","value":"Bob"}},{"query":{"type":"variable","name":"param3"},"predicate":{"type":"equal","value":"Bob"}},{"query":{"type":"variable","name":"data2"},"predicate":{"type":"equal","value":"Hello world!"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/captures-check","query_string_params":[{"name":"param1","value":"{{param1}}"},{"name":"param2","value":"{{param2}}"}]},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/captures-json"},"response":{"status":200,"captures":[{"name":"an_object","query":{"type":"jsonpath","expr":"$['an_object']"}},{"name":"a_list","query":{"type":"jsonpath","expr":"$['a_list']"}},{"name":"a_null","query":{"type":"jsonpath","expr":"$['a_null']"}},{"name":"an_integer","query":{"type":"jsonpath","expr":"$['an_integer']"}},{"name":"a_float","query":{"type":"jsonpath","expr":"$['a_float']"}},{"name":"a_bool","query":{"type":"jsonpath","expr":"$['a_bool']"}},{"name":"a_string","query":{"type":"jsonpath","expr":"$['a_string']"}},{"name":"all","query":{"type":"jsonpath","expr":"$"}}],"asserts":[{"query":{"type":"variable","name":"a_null"},"predicate":{"type":"exist"}},{"query":{"type":"variable","name":"undefined"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"variable","name":"a_null"},"predicate":{"type":"equal","value":"a_null"}},{"query":{"type":"variable","name":"an_integer"},"predicate":{"type":"equal","value":"an_integer"}},{"query":{"type":"variable","name":"a_float"},"predicate":{"type":"equal","value":"a_float"}},{"query":{"type":"variable","name":"a_bool"},"predicate":{"type":"equal","value":"a_bool"}},{"query":{"type":"variable","name":"a_string"},"predicate":{"type":"equal","value":"a_string"}},{"query":{"type":"variable","name":"a_string"},"predicate":{"type":"equal","value":"{{a_string}}"}},{"query":{"type":"variable","name":"a_list"},"predicate":{"type":"equal","value":"a_list"}}]}}]}
|
@ -1,33 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/charset/default</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="string">`<p>Hello World!</p>`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/charset/latin1</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=latin1</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"<p>café</p>"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/charset/gb2312</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=gb2312</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"<p>你好世界</p>"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/charset/cp1256</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=cp1256</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"<p>مرحبا بالعالم</p>"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/charset/uppercase</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=UTF-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"<p>Hello World!</p>"</span></span>
|
||||
</span></span></code></pre>
|
@ -1,32 +0,0 @@
|
||||
GET http://localhost:8000/charset/default
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=utf-8
|
||||
`<p>Hello World!</p>`
|
||||
|
||||
|
||||
GET http://localhost:8000/charset/latin1
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=latin1
|
||||
[Asserts]
|
||||
body == "<p>café</p>"
|
||||
|
||||
|
||||
GET http://localhost:8000/charset/gb2312
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=gb2312
|
||||
[Asserts]
|
||||
body == "<p>你好世界</p>"
|
||||
|
||||
|
||||
GET http://localhost:8000/charset/cp1256
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=cp1256
|
||||
[Asserts]
|
||||
body == "<p>مرحبا بالعالم</p>"
|
||||
|
||||
|
||||
GET http://localhost:8000/charset/uppercase
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
[Asserts]
|
||||
body == "<p>Hello World!</p>"
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/charset/default"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=utf-8"}],"body":{"type":"text","value":"<p>Hello World!</p>"}}},{"request":{"method":"GET","url":"http://localhost:8000/charset/latin1"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=latin1"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"<p>café</p>"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/charset/gb2312"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=gb2312"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"<p>你好世界</p>"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/charset/cp1256"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=cp1256"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"<p>مرحبا بالعالم</p>"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/charset/uppercase"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=UTF-8"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"<p>Hello World!</p>"}}]}}]}
|
@ -1,3 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,2 +0,0 @@
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[]}
|
@ -1,144 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># Uncompressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span><span class="comment"># --compressed has no effect on non compressed.</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">12</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># GZip compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">32</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">gzip</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># ZLib compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">20</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">deflate</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Brotli compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">17</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test a large brotli compressed body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli_large</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">image/jpeg</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">ffd8ffe0</span>;</span> <span class="comment"># JPEG magic number</span>
|
||||
<span class="line">file,<span class="filename">cat.jpg</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli_identity</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">17</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br, identity</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span></code></pre>
|
@ -1,143 +0,0 @@
|
||||
# Uncompressed body tests:
|
||||
# ---------------------------
|
||||
# --compressed has no effect on non compressed.
|
||||
|
||||
GET http://localhost:8000/compressed/none
|
||||
HTTP 200
|
||||
Content-Length: 12
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# GZip compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
HTTP 200
|
||||
Content-Length: 32
|
||||
Content-Encoding: gzip
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# ZLib compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
HTTP 200
|
||||
Content-Length: 20
|
||||
Content-Encoding: deflate
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# Brotli compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
HTTP 200
|
||||
Content-Length: 17
|
||||
Content-Encoding: br
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
# Test a large brotli compressed body:
|
||||
GET http://localhost:8000/compressed/brotli_large
|
||||
HTTP 200
|
||||
Content-Encoding: br
|
||||
Content-Type: image/jpeg
|
||||
[Asserts]
|
||||
bytes startsWith hex,ffd8ffe0; # JPEG magic number
|
||||
file,cat.jpg;
|
||||
|
||||
GET http://localhost:8000/compressed/brotli_identity
|
||||
HTTP 200
|
||||
Content-Length: 17
|
||||
Content-Encoding: br, identity
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
File diff suppressed because one or more lines are too long
@ -1,213 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># Uncompressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span><span class="comment"># --compressed has no effect on non compressed.</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">12</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">false</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">12</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># GZip compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">32</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">gzip</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># ZLib compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">20</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">deflate</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Brotli compressed body tests:</span>
|
||||
<span class="line"></span><span class="comment"># ---------------------------</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">17</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="multiline"><span class="line">```Hello World!```</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test base64 implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">base64,<span class="base64">SGVsbG8gV29ybGQh</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test hex implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">hex,<span class="hex">48656c6c6f20576f726c6421</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test file implicit body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line">file,<span class="filename">hello.txt</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Test a large brotli compressed body:</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli_large</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">image/jpeg</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">ffd8ffe0</span>;</span> <span class="comment"># JPEG magic number</span>
|
||||
<span class="line">file,<span class="filename">cat.jpg</span>;</span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli_identity</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">compressed</span>: <span class="boolean">true</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Length</span>: <span class="string">17</span></span>
|
||||
<span class="line"><span class="string">Content-Encoding</span>: <span class="string">br, identity</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="predicate-type">startsWith</span> hex,<span class="hex">48656c6c6f</span>;</span>
|
||||
<span class="line"><span class="query-type">sha256</span> <span class="predicate-type">==</span> hex,<span class="hex">7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069</span>;</span>
|
||||
<span class="line"><span class="query-type">md5</span> <span class="predicate-type">==</span> hex,<span class="hex">ed076287532e86365e841e92bfc50d8c</span>;</span>
|
||||
<span class="multiline"><span class="line">```Hello World!```</span></span>
|
||||
</span></span></code></pre>
|
@ -1,212 +0,0 @@
|
||||
# Uncompressed body tests:
|
||||
# ---------------------------
|
||||
# --compressed has no effect on non compressed.
|
||||
|
||||
GET http://localhost:8000/compressed/none
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 12
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
GET http://localhost:8000/compressed/none
|
||||
[Options]
|
||||
compressed: false
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 12
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/none
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# GZip compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 32
|
||||
Content-Encoding: gzip
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/gzip
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# ZLib compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 20
|
||||
Content-Encoding: deflate
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
`Hello World!`
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/zlib
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
|
||||
# Brotli compressed body tests:
|
||||
# ---------------------------
|
||||
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 17
|
||||
Content-Encoding: br
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
```Hello World!```
|
||||
|
||||
# Test base64 implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
base64,SGVsbG8gV29ybGQh;
|
||||
|
||||
# Test hex implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
hex,48656c6c6f20576f726c6421;
|
||||
|
||||
# Test file implicit body:
|
||||
GET http://localhost:8000/compressed/brotli
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
file,hello.txt;
|
||||
|
||||
# Test a large brotli compressed body:
|
||||
GET http://localhost:8000/compressed/brotli_large
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Encoding: br
|
||||
Content-Type: image/jpeg
|
||||
[Asserts]
|
||||
bytes startsWith hex,ffd8ffe0; # JPEG magic number
|
||||
file,cat.jpg;
|
||||
|
||||
GET http://localhost:8000/compressed/brotli_identity
|
||||
[Options]
|
||||
compressed: true
|
||||
|
||||
HTTP 200
|
||||
Content-Length: 17
|
||||
Content-Encoding: br, identity
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body startsWith "Hello"
|
||||
bytes startsWith hex,48656c6c6f;
|
||||
sha256 == hex,7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069;
|
||||
md5 == hex,ed076287532e86365e841e92bfc50d8c;
|
||||
```Hello World!```
|
File diff suppressed because one or more lines are too long
@ -1,14 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://foo.com/connect-to</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://bar.com/connect-to</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://baz.com/connect-to</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span></code></pre>
|
@ -1,13 +0,0 @@
|
||||
GET http://foo.com/connect-to
|
||||
HTTP 200
|
||||
`Hello World!`
|
||||
|
||||
|
||||
GET http://bar.com/connect-to
|
||||
HTTP 200
|
||||
`Hello World!`
|
||||
|
||||
|
||||
GET http://baz.com/connect-to
|
||||
HTTP 200
|
||||
`Hello World!`
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://foo.com/connect-to"},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}},{"request":{"method":"GET","url":"http://bar.com/connect-to"},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}},{"request":{"method":"GET","url":"http://baz.com/connect-to"},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}}]}
|
@ -1,25 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://foo.com/connect-to</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">foo.com:80:localhost:8000</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://bar.com/connect-to</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"></span><span class="comment"># We test that we can define multiple connect-to options.</span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">foo.com:80:localhost:8000</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">bar.com:80:localhost:8000</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">baz.com:80:localhost:8000</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://baz.com/connect-to</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">foo.com:80:localhost:8000</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">bar.com:80:localhost:8000</span></span>
|
||||
<span class="line"><span class="string">connect-to</span>: <span class="string">baz.com:80:localhost:8000</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span></code></pre>
|
@ -1,24 +0,0 @@
|
||||
GET http://foo.com/connect-to
|
||||
[Options]
|
||||
connect-to: foo.com:80:localhost:8000
|
||||
HTTP 200
|
||||
`Hello World!`
|
||||
|
||||
|
||||
GET http://bar.com/connect-to
|
||||
[Options]
|
||||
# We test that we can define multiple connect-to options.
|
||||
connect-to: foo.com:80:localhost:8000
|
||||
connect-to: bar.com:80:localhost:8000
|
||||
connect-to: baz.com:80:localhost:8000
|
||||
HTTP 200
|
||||
`Hello World!`
|
||||
|
||||
|
||||
GET http://baz.com/connect-to
|
||||
[Options]
|
||||
connect-to: foo.com:80:localhost:8000
|
||||
connect-to: bar.com:80:localhost:8000
|
||||
connect-to: baz.com:80:localhost:8000
|
||||
HTTP 200
|
||||
`Hello World!`
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://foo.com/connect-to","options":[{"name":"connect-to","value":"foo.com:80:localhost:8000"}]},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}},{"request":{"method":"GET","url":"http://bar.com/connect-to","options":[{"name":"connect-to","value":"foo.com:80:localhost:8000"},{"name":"connect-to","value":"bar.com:80:localhost:8000"},{"name":"connect-to","value":"baz.com:80:localhost:8000"}]},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}},{"request":{"method":"GET","url":"http://baz.com/connect-to","options":[{"name":"connect-to","value":"foo.com:80:localhost:8000"},{"name":"connect-to","value":"bar.com:80:localhost:8000"},{"name":"connect-to","value":"baz.com:80:localhost:8000"}]},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}}]}
|
@ -1,3 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookie_file</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span></code></pre>
|
@ -1,2 +0,0 @@
|
||||
GET http://localhost:8000/cookie_file
|
||||
HTTP 200
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/cookie_file"},"response":{"status":200}}]}
|
@ -1,23 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># We test the [`--cookie-jar`](https://hurl.dev/docs/manual.html#cookie-jar) option</span>
|
||||
<span class="line"></span><span class="comment"># that dumps the cookie storage to a file. Due to various support level among</span>
|
||||
<span class="line"></span><span class="comment"># libcurl implementation for cookie secure export, we limit this test to non secure cookie.</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookie-jar</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">LSID=DQAAAKEaem_vYg; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/accounts</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">HSID=AYQEVnDKrdst; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">SSID=Ap4PGTEq; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID"</span> <span class="predicate-type">==</span> <span class="string">"DQAAAKEaem_vYg"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Value]"</span> <span class="predicate-type">==</span> <span class="string">"DQAAAKEaem_vYg"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Expires]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Expires]"</span> <span class="filter-type">format</span> <span class="string">"%a, %d %b %Y %H:%M:%S"</span> <span class="predicate-type">==</span> <span class="string">"Thu, 13 Jan 2078 22:23:01"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Max-Age]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Domain]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Path]"</span> <span class="predicate-type">==</span> <span class="string">"/accounts"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Secure]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[HttpOnly]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[SameSite]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
</span></span></code></pre>
|
@ -1,22 +0,0 @@
|
||||
# We test the [`--cookie-jar`](https://hurl.dev/docs/manual.html#cookie-jar) option
|
||||
# that dumps the cookie storage to a file. Due to various support level among
|
||||
# libcurl implementation for cookie secure export, we limit this test to non secure cookie.
|
||||
|
||||
GET http://localhost:8000/cookie-jar
|
||||
|
||||
HTTP 200
|
||||
Set-Cookie: LSID=DQAAAKEaem_vYg; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/accounts
|
||||
Set-Cookie: HSID=AYQEVnDKrdst; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/
|
||||
Set-Cookie: SSID=Ap4PGTEq; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/
|
||||
[Asserts]
|
||||
header "Set-Cookie" count == 3
|
||||
cookie "LSID" == "DQAAAKEaem_vYg"
|
||||
cookie "LSID[Value]" == "DQAAAKEaem_vYg"
|
||||
cookie "LSID[Expires]" exists
|
||||
cookie "LSID[Expires]" format "%a, %d %b %Y %H:%M:%S" == "Thu, 13 Jan 2078 22:23:01"
|
||||
cookie "LSID[Max-Age]" not exists
|
||||
cookie "LSID[Domain]" not exists
|
||||
cookie "LSID[Path]" == "/accounts"
|
||||
cookie "LSID[Secure]" not exists
|
||||
cookie "LSID[HttpOnly]" exists
|
||||
cookie "LSID[SameSite]" not exists
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/cookie-jar"},"response":{"status":200,"headers":[{"name":"Set-Cookie","value":"LSID=DQAAAKEaem_vYg; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/accounts"},{"name":"Set-Cookie","value":"HSID=AYQEVnDKrdst; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/"},{"name":"Set-Cookie","value":"SSID=Ap4PGTEq; Domain=localhost; Expires=Thu, 13 Jan 2078 22:23:01 GMT; HttpOnly; Path=/"}],"asserts":[{"query":{"type":"header","name":"Set-Cookie"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"cookie","expr":"LSID"},"predicate":{"type":"equal","value":"DQAAAKEaem_vYg"}},{"query":{"type":"cookie","expr":"LSID[Value]"},"predicate":{"type":"equal","value":"DQAAAKEaem_vYg"}},{"query":{"type":"cookie","expr":"LSID[Expires]"},"predicate":{"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Expires]"},"filters":[{"type":"format","fmt":"%a, %d %b %Y %H:%M:%S"}],"predicate":{"type":"equal","value":"Thu, 13 Jan 2078 22:23:01"}},{"query":{"type":"cookie","expr":"LSID[Max-Age]"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Domain]"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Path]"},"predicate":{"type":"equal","value":"/accounts"}},{"query":{"type":"cookie","expr":"LSID[Secure]"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[HttpOnly]"},"predicate":{"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[SameSite]"},"predicate":{"not":true,"type":"exist"}}]}}]}
|
@ -1,15 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment">#</span>
|
||||
<span class="line"></span><span class="comment"># experimental feature</span>
|
||||
<span class="line"></span><span class="comment"># manage cookie store</span>
|
||||
<span class="line"></span><span class="comment">#</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># @cookie_storage_set: localhost FALSE / FALSE 0 cookie1 valueA</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookie-storage/assert-that-cookie1-is-valueA</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># @cookie_storage_clear</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookie-storage/assert-that-cookie1-is-not-in-session</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,14 +0,0 @@
|
||||
#
|
||||
# experimental feature
|
||||
# manage cookie store
|
||||
#
|
||||
|
||||
# @cookie_storage_set: localhost FALSE / FALSE 0 cookie1 valueA
|
||||
GET http://localhost:8000/cookie-storage/assert-that-cookie1-is-valueA
|
||||
HTTP 200
|
||||
|
||||
# @cookie_storage_clear
|
||||
GET http://localhost:8000/cookie-storage/assert-that-cookie1-is-not-in-session
|
||||
HTTP 200
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/cookie-storage/assert-that-cookie1-is-valueA"},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookie-storage/assert-that-cookie1-is-not-in-session"},"response":{"status":200}}]}
|
@ -1,66 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># Request Cookie</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/set-request-cookie1-valueA</span></span>
|
||||
<span class="line"><span class="section-header">[Cookies]</span></span>
|
||||
<span class="line"><span class="string">cookie1</span>: <span class="string">valueA</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># The cookie is not added in the cookie storage</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/assert-that-cookie1-is-not-in-session</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/set-multiple-request-cookies</span></span>
|
||||
<span class="line"><span class="section-header">[Cookies]</span></span>
|
||||
<span class="line"><span class="string">user1</span>: <span class="string">Bob</span></span>
|
||||
<span class="line"><span class="string">user2</span>: <span class="string">Bill</span></span>
|
||||
<span class="line"><span class="string">user3</span>: <span class="string">{{name}}</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># Session Cookie</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/set-session-cookie2-valueA</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2"</span> <span class="predicate-type">==</span> <span class="string">"valueA"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/assert-that-cookie2-is-valueA</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/assert-that-cookie2-is-valueA-and-valueB</span></span>
|
||||
<span class="line"><span class="section-header">[Cookies]</span></span>
|
||||
<span class="line"><span class="string">cookie2</span>: <span class="string">valueB</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/delete-cookie2</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2"</span> <span class="predicate-type">==</span> <span class="string">""</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2[Max-Age]"</span> <span class="predicate-type">==</span> <span class="number">0</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/assert-that-cookie2-is-not-in-session</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookies/set</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">LSID=DQAAAKEaem_vYg; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/accounts</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">HSID=AYQEVnDKrdst; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnly; Path=/</span></span>
|
||||
<span class="line"><span class="string">Set-Cookie</span>: <span class="string">SSID=Ap4PGTEq; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Set-Cookie"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID"</span> <span class="predicate-type">==</span> <span class="string">"DQAAAKEaem_vYg"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Value]"</span> <span class="predicate-type">==</span> <span class="string">"DQAAAKEaem_vYg"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Expires]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Expires]"</span> <span class="filter-type">format</span> <span class="string">"%a, %d %b %Y %H:%M:%S"</span> <span class="predicate-type">==</span> <span class="string">"Wed, 13 Jan 2021 22:23:01"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Max-Age]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Domain]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Path]"</span> <span class="predicate-type">==</span> <span class="string">"/accounts"</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Secure]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[HttpOnly]"</span> <span class="predicate-type">exists</span></span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[SameSite]"</span> <span class="not">not</span> <span class="predicate-type">exists</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,65 +0,0 @@
|
||||
# Request Cookie
|
||||
|
||||
GET http://localhost:8000/cookies/set-request-cookie1-valueA
|
||||
[Cookies]
|
||||
cookie1: valueA
|
||||
HTTP 200
|
||||
|
||||
# The cookie is not added in the cookie storage
|
||||
GET http://localhost:8000/cookies/assert-that-cookie1-is-not-in-session
|
||||
HTTP 200
|
||||
|
||||
GET http://localhost:8000/cookies/set-multiple-request-cookies
|
||||
[Cookies]
|
||||
user1: Bob
|
||||
user2: Bill
|
||||
user3: {{name}}
|
||||
HTTP 200
|
||||
|
||||
|
||||
# Session Cookie
|
||||
|
||||
GET http://localhost:8000/cookies/set-session-cookie2-valueA
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
cookie "cookie2" == "valueA"
|
||||
|
||||
GET http://localhost:8000/cookies/assert-that-cookie2-is-valueA
|
||||
HTTP 200
|
||||
|
||||
GET http://localhost:8000/cookies/assert-that-cookie2-is-valueA-and-valueB
|
||||
[Cookies]
|
||||
cookie2: valueB
|
||||
HTTP 200
|
||||
|
||||
|
||||
GET http://localhost:8000/cookies/delete-cookie2
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
cookie "cookie2" == ""
|
||||
cookie "cookie2[Max-Age]" == 0
|
||||
|
||||
GET http://localhost:8000/cookies/assert-that-cookie2-is-not-in-session
|
||||
HTTP 200
|
||||
|
||||
|
||||
GET http://localhost:8000/cookies/set
|
||||
|
||||
HTTP 200
|
||||
Set-Cookie: LSID=DQAAAKEaem_vYg; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/accounts
|
||||
Set-Cookie: HSID=AYQEVnDKrdst; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnly; Path=/
|
||||
Set-Cookie: SSID=Ap4PGTEq; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/
|
||||
[Asserts]
|
||||
header "Set-Cookie" count == 3
|
||||
cookie "LSID" == "DQAAAKEaem_vYg"
|
||||
cookie "LSID[Value]" == "DQAAAKEaem_vYg"
|
||||
cookie "LSID[Expires]" exists
|
||||
cookie "LSID[Expires]" format "%a, %d %b %Y %H:%M:%S" == "Wed, 13 Jan 2021 22:23:01"
|
||||
cookie "LSID[Max-Age]" not exists
|
||||
cookie "LSID[Domain]" not exists
|
||||
cookie "LSID[Path]" == "/accounts"
|
||||
cookie "LSID[Secure]" exists
|
||||
cookie "LSID[HttpOnly]" exists
|
||||
cookie "LSID[SameSite]" not exists
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/cookies/set-request-cookie1-valueA","cookies":[{"name":"cookie1","value":"valueA"}]},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/assert-that-cookie1-is-not-in-session"},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/set-multiple-request-cookies","cookies":[{"name":"user1","value":"Bob"},{"name":"user2","value":"Bill"},{"name":"user3","value":"{{name}}"}]},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/set-session-cookie2-valueA"},"response":{"status":200,"asserts":[{"query":{"type":"cookie","expr":"cookie2"},"predicate":{"type":"equal","value":"valueA"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/assert-that-cookie2-is-valueA"},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/assert-that-cookie2-is-valueA-and-valueB","cookies":[{"name":"cookie2","value":"valueB"}]},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/delete-cookie2"},"response":{"status":200,"asserts":[{"query":{"type":"cookie","expr":"cookie2"},"predicate":{"type":"equal","value":""}},{"query":{"type":"cookie","expr":"cookie2[Max-Age]"},"predicate":{"type":"equal","value":0}}]}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/assert-that-cookie2-is-not-in-session"},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/cookies/set"},"response":{"status":200,"headers":[{"name":"Set-Cookie","value":"LSID=DQAAAKEaem_vYg; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/accounts"},{"name":"Set-Cookie","value":"HSID=AYQEVnDKrdst; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnly; Path=/"},{"name":"Set-Cookie","value":"SSID=Ap4PGTEq; Domain=localhost; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; Path=/"}],"asserts":[{"query":{"type":"header","name":"Set-Cookie"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"cookie","expr":"LSID"},"predicate":{"type":"equal","value":"DQAAAKEaem_vYg"}},{"query":{"type":"cookie","expr":"LSID[Value]"},"predicate":{"type":"equal","value":"DQAAAKEaem_vYg"}},{"query":{"type":"cookie","expr":"LSID[Expires]"},"predicate":{"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Expires]"},"filters":[{"type":"format","fmt":"%a, %d %b %Y %H:%M:%S"}],"predicate":{"type":"equal","value":"Wed, 13 Jan 2021 22:23:01"}},{"query":{"type":"cookie","expr":"LSID[Max-Age]"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Domain]"},"predicate":{"not":true,"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[Path]"},"predicate":{"type":"equal","value":"/accounts"}},{"query":{"type":"cookie","expr":"LSID[Secure]"},"predicate":{"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[HttpOnly]"},"predicate":{"type":"exist"}},{"query":{"type":"cookie","expr":"LSID[SameSite]"},"predicate":{"not":true,"type":"exist"}}]}}]}
|
@ -1,56 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
|
||||
dy {
|
||||
counter-reset: line;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
span.line {
|
||||
display: block;
|
||||
line-height: 1.2rem;
|
||||
}
|
||||
|
||||
span.line:before {
|
||||
counter-increment: line;
|
||||
content: counter(line);
|
||||
display: inline-block;
|
||||
border-right: 1px solid #ddd;
|
||||
padding: 0 1em;
|
||||
margin-right: .5em;
|
||||
color: #888;
|
||||
width: 2.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.method {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
color: darkmagenta;
|
||||
}
|
||||
|
||||
.query-type {
|
||||
color: teal;
|
||||
}
|
||||
|
||||
.predicate-type {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.string {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.comment {
|
||||
color: dimgray;
|
||||
}
|
||||
|
||||
</style></head><body>
|
||||
<div class="hurl-file"><div class="hurl-entry"><div class="request"><span class="line"><span class="method">GET</span> <span class="string">http://localhost:8000/default-headers</span></span></div><div class="response"><span class="line"><span class="version">HTTP</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="method">GET</span> <span class="string">http://localhost:8000/default-headers</span></span></div><span class="line"><span class="string">"User-Agent"</span>: <span class="string">hurl/1.0</span></span><span class="line"><span class="string">"Host"</span>: <span class="string">localhost</span> <span class="comment"># comment</span></span><span class="line"><span class="string">"Content-Length"</span>: <span class="string">0</span></span><div class="response"><span class="line"><span class="version">HTTP</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
@ -1,11 +0,0 @@
|
||||
# First, start a timer
|
||||
GET http://localhost:8000/delay-init
|
||||
HTTP 200
|
||||
|
||||
# This request must reach the server at least 1000ms after the previous request
|
||||
GET http://localhost:8000/delay
|
||||
HTTP 200
|
||||
|
||||
# This request must reach the server at least 1000ms after the previous request
|
||||
GET http://localhost:8000/delay
|
||||
HTTP 200
|
@ -1,9 +0,0 @@
|
||||
# First, start a timer
|
||||
GET http://localhost:8000/delay-init
|
||||
HTTP 200
|
||||
|
||||
# This request must reach the server at least 1000ms after the first request
|
||||
GET http://localhost:8000/delay
|
||||
[Options]
|
||||
delay: 1000
|
||||
HTTP 200
|
@ -1,4 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">DELETE</span> <span class="url">http://localhost:8000/delete</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
</code></pre>
|
@ -1,3 +0,0 @@
|
||||
DELETE http://localhost:8000/delete
|
||||
HTTP 200
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"DELETE","url":"http://localhost:8000/delete"},"response":{"status":200}}]}
|
@ -1,9 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># HTTP/* is deprecated, use HTTP instead</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/hello</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP/*</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># ```Hello World!``` is deprecated, use `Hello World!` instead</span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/hello</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP/*</span> <span class="number">200</span></span>
|
||||
<span class="multiline"><span class="line">```Hello World!```</span></span>
|
||||
</span></span></code></pre>
|
@ -1,8 +0,0 @@
|
||||
# HTTP/* is deprecated, use HTTP instead
|
||||
GET http://localhost:8000/hello
|
||||
HTTP/* 200
|
||||
|
||||
# ```Hello World!``` is deprecated, use `Hello World!` instead
|
||||
GET http://localhost:8000/hello
|
||||
HTTP/* 200
|
||||
```Hello World!```
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/hello"},"response":{"status":200}},{"request":{"method":"GET","url":"http://localhost:8000/hello"},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}}]}
|
@ -1,11 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/hello</span></span>
|
||||
<span class="line"><span class="section-header">[QueryStringParams]</span></span>
|
||||
<span class="line"></span><span class="comment"># FIXME: [BasicAuth] section can't be empty</span>
|
||||
<span class="line"></span><span class="comment">#[BasicAuth]</span>
|
||||
<span class="line"><span class="section-header">[FormParams]</span></span>
|
||||
<span class="line"><span class="section-header">[MultipartFormData]</span></span>
|
||||
<span class="line"><span class="section-header">[Cookies]</span></span>
|
||||
<span class="line"><span class="section-header">[Options]</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Hello World!`</span></span>
|
||||
</span></span></code></pre>
|
@ -1,10 +0,0 @@
|
||||
GET http://localhost:8000/hello
|
||||
[QueryStringParams]
|
||||
# FIXME: [BasicAuth] section can't be empty
|
||||
#[BasicAuth]
|
||||
[FormParams]
|
||||
[MultipartFormData]
|
||||
[Cookies]
|
||||
[Options]
|
||||
HTTP 200
|
||||
`Hello World!`
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/hello"},"response":{"status":200,"body":{"type":"text","value":"Hello World!"}}}]}
|
@ -1,15 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/encoding/utf8</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=utf-8</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"caf\u{e9}"</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/encoding/latin1</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">Content-Type</span>: <span class="string">text/html; charset=ISO-8859-1</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="predicate-type">==</span> <span class="string">"caf\u{e9}"</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,14 +0,0 @@
|
||||
GET http://localhost:8000/encoding/utf8
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=utf-8
|
||||
[Asserts]
|
||||
body == "caf\u{e9}"
|
||||
|
||||
|
||||
GET http://localhost:8000/encoding/latin1
|
||||
HTTP 200
|
||||
Content-Type: text/html; charset=ISO-8859-1
|
||||
[Asserts]
|
||||
body == "caf\u{e9}"
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/encoding/utf8"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=utf-8"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"café"}}]}},{"request":{"method":"GET","url":"http://localhost:8000/encoding/latin1"},"response":{"status":200,"headers":[{"name":"Content-Type","value":"text/html; charset=ISO-8859-1"}],"asserts":[{"query":{"type":"body"},"predicate":{"type":"equal","value":"café"}}]}}]}
|
@ -1,6 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/env-var</span></span>
|
||||
<span class="line"><span class="section-header">[QueryStringParams]</span></span>
|
||||
<span class="line"><span class="string">name</span>: <span class="string">{{name}}</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
</code></pre>
|
@ -1,5 +0,0 @@
|
||||
GET http://localhost:8000/env-var
|
||||
[QueryStringParams]
|
||||
name: {{name}}
|
||||
HTTP 200
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/env-var","query_string_params":[{"name":"name","value":"{{name}}"}]},"response":{"status":200}}]}
|
@ -1,9 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/expect</span></span>
|
||||
<span class="line"><span class="string">Expect</span>: <span class="string">100-continue</span></span>
|
||||
<span class="line"><span class="string">`data`</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span>
|
||||
</code></pre>
|
@ -1,8 +0,0 @@
|
||||
POST http://localhost:8000/expect
|
||||
Expect: 100-continue
|
||||
`data`
|
||||
|
||||
HTTP 200
|
||||
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"POST","url":"http://localhost:8000/expect","headers":[{"name":"Expect","value":"100-continue"}],"body":{"type":"text","value":"data"}},"response":{"status":200}}]}
|
@ -1,44 +1,24 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/filter</span></span>
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/dummy</span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Captures]</span></span>
|
||||
<span class="line"><span class="string">url</span>: <span class="query-type">jsonpath</span> <span class="string">"$.url"</span></span>
|
||||
<span class="line"><span class="string">text</span>: <span class="query-type">jsonpath</span> <span class="string">"$.text"</span></span>
|
||||
<span class="line"><span class="string">count</span>: <span class="query-type">jsonpath</span> <span class="string">"$.books"</span> <span class="filter-type">count</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.list"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.list"</span> <span class="filter-type">nth</span> <span class="number">1</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="filter-type">regex</span> <span class="regex">/Hello (.*)!/</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.url"</span> <span class="predicate-type">==</span> <span class="string">"https://mozilla.org/?x=шеллы"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.url"</span> <span class="filter-type">urlEncode</span> <span class="predicate-type">==</span> <span class="string">"https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.encoded_url"</span> <span class="filter-type">urlDecode</span> <span class="predicate-type">==</span> <span class="string">"https://mozilla.org/?x=шеллы"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"url"</span> <span class="filter-type">urlEncode</span> <span class="filter-type">urlDecode</span> <span class="predicate-type">==</span> <span class="string">"{{url}}"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.text"</span> <span class="predicate-type">==</span> <span class="string">"a > b && a < c"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.text"</span> <span class="filter-type">htmlEscape</span> <span class="predicate-type">==</span> <span class="string">"a &gt; b &amp;&amp; a &lt; c"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.escaped_html[0]"</span> <span class="filter-type">htmlUnescape</span> <span class="predicate-type">==</span> <span class="string">"a > b && a < c"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.escaped_html[1]"</span> <span class="filter-type">htmlUnescape</span> <span class="predicate-type">==</span> <span class="string">"Foo © bar 𝌆 baz ☃ qux"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.escaped_html[2]"</span> <span class="filter-type">htmlUnescape</span> <span class="predicate-type">==</span> <span class="string">"A foo"</span></span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"text"</span> <span class="filter-type">htmlEscape</span> <span class="filter-type">htmlUnescape</span> <span class="predicate-type">==</span> <span class="string">"{{text}}"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.id"</span> <span class="filter-type">toInt</span> <span class="predicate-type">==</span> <span class="number">123</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.score"</span> <span class="filter-type">toInt</span> <span class="predicate-type">==</span> <span class="number">1</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.ips"</span> <span class="filter-type">split</span> <span class="string">", "</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.ips"</span> <span class="filter-type">replace</span> <span class="string">", "</span> <span class="string">"|"</span> <span class="predicate-type">==</span> <span class="string">"192.168.2.1|10.0.0.20|10.0.0.10"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.json"</span> <span class="filter-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">==</span> <span class="string">"Hello"</span></span>
|
||||
<span class="line"><span class="query-type">certificate</span> <span class="string">"Expire-Date"</span> <span class="filter-type">daysAfterNow</span> <span class="predicate-type">></span> <span class="number">15</span></span>
|
||||
<span class="line"><span class="query-type">certificate</span> <span class="string">"Expire-Date"</span> <span class="filter-type">daysBeforeNow</span> <span class="predicate-type">></span> <span class="number">15</span></span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
<span class="line"> "list": [1,2,3],</span>
|
||||
<span class="line"> "message": "Hello Bob!",</span>
|
||||
<span class="line"> "url": "https://mozilla.org/?x=шеллы",</span>
|
||||
<span class="line"> "encoded_url": "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",</span>
|
||||
<span class="line"> "text": "a > b && a < c",</span>
|
||||
<span class="line"> "escaped_html": [</span>
|
||||
<span class="line"> "a &gt; b &amp;&amp; a &lt; c",</span>
|
||||
<span class="line"> "Foo &#xA9; bar &#x1D306; baz &#x2603; qux",</span>
|
||||
<span class="line"> "&#65 foo"</span>
|
||||
<span class="line"> ],</span>
|
||||
<span class="line"> "id": "123",</span>
|
||||
<span class="line"> "score": 1.6,</span>
|
||||
<span class="line"> "ips": "192.168.2.1, 10.0.0.20, 10.0.0.10",</span>
|
||||
<span class="line"> "json": "{\"message\": \"Hello\"}"</span>
|
||||
<span class="line">}</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.books"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">12</span></span> <span class="comment"># count</span>
|
||||
<span class="line"><span class="query-type">certificate</span> <span class="string">"Expire-Date"</span> <span class="filter-type">daysAfterNow</span> <span class="predicate-type">></span> <span class="number">15</span></span> <span class="comment"># daysAfterNow</span>
|
||||
<span class="line"><span class="query-type">certificate</span> <span class="string">"Start-Date"</span> <span class="filter-type">daysBeforeNow</span> <span class="predicate-type"><</span> <span class="number">100</span></span> <span class="comment"># daysBeforeNow</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="filter-type">decode</span> <span class="string">"iso-8859-1"</span> <span class="predicate-type">==</span> <span class="string">"café"</span></span> <span class="comment"># decode</span>
|
||||
<span class="line"><span class="query-type">cookie</span> <span class="string">"LSID[Expires]"</span> <span class="filter-type">format</span> <span class="string">"%a, %d %b %Y %H:%M:%S"</span> <span class="predicate-type">==</span> <span class="string">"Wed, 13 Jan 2021 22:23:01"</span></span> <span class="comment"># format</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.text"</span> <span class="filter-type">htmlEscape</span> <span class="predicate-type">==</span> <span class="string">"a &gt; b"</span></span> <span class="comment"># htmlEscape</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.escaped_html[1]"</span> <span class="filter-type">htmlUnescape</span> <span class="predicate-type">==</span> <span class="string">"<p>Hello</p>"</span></span> <span class="comment"># htmlUnescape</span>
|
||||
<span class="line"><span class="query-type">variable</span> <span class="string">"books"</span> <span class="filter-type">jsonpath</span> <span class="string">"$[0].name"</span> <span class="predicate-type">==</span> <span class="string">"Dune"</span></span> <span class="comment"># jsonpath</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.books"</span> <span class="filter-type">nth</span> <span class="number">2</span> <span class="predicate-type">==</span> <span class="string">"Children of Dune"</span></span> <span class="comment"># nth</span>
|
||||
<span class="line"><span class="query-type">body</span> <span class="filter-type">regex</span> <span class="regex">/Hello ([0-9]+)!/</span> <span class="predicate-type">==</span> <span class="string">"Bob"</span></span> <span class="comment"># regex</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.ips"</span> <span class="filter-type">replace</span> <span class="string">", "</span> <span class="string">"|"</span> <span class="predicate-type">==</span> <span class="string">"192.168.2.1|10.0.0.20|10.0.0.10"</span></span> <span class="comment"># replace</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.ips"</span> <span class="filter-type">split</span> <span class="string">", "</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span> <span class="comment"># split</span>
|
||||
<span class="line"><span class="query-type">header</span> <span class="string">"Expires"</span> <span class="filter-type">toDate</span> <span class="string">"%a, %d %b %Y %H:%M:%S GMT"</span> <span class="filter-type">daysBeforeNow</span> <span class="predicate-type">></span> <span class="number">1000</span></span> <span class="comment"># toDate</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.id"</span> <span class="filter-type">toInt</span> <span class="predicate-type">==</span> <span class="number">123</span></span> <span class="comment"># toInt</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.encoded_url"</span> <span class="filter-type">urlDecode</span> <span class="predicate-type">==</span> <span class="string">"https://mozilla.org/?x=шеллы"</span></span> <span class="comment"># urlDecode</span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.url"</span> <span class="filter-type">urlEncode</span> <span class="predicate-type">==</span> <span class="string">"https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"</span></span> <span class="comment"># urlEncode</span>
|
||||
<span class="line"><span class="query-type">bytes</span> <span class="filter-type">decode</span> <span class="string">"iso-8859-1"</span> <span class="filter-type">xpath</span> <span class="string">"string(//p)"</span> <span class="predicate-type">==</span> <span class="string">"Hello"</span></span> <span class="comment"># xpath</span>
|
||||
</span></span></code></pre>
|
||||
|
@ -1,43 +1,23 @@
|
||||
GET http://localhost:8000/filter
|
||||
GET http://localhost:8000/dummy
|
||||
|
||||
HTTP 200
|
||||
[Captures]
|
||||
url: jsonpath "$.url"
|
||||
text: jsonpath "$.text"
|
||||
count: jsonpath "$.books" count
|
||||
[Asserts]
|
||||
jsonpath "$.list" count == 3
|
||||
jsonpath "$.list" nth 1 == 2
|
||||
jsonpath "$.message" regex /Hello (.*)!/ == "Bob"
|
||||
jsonpath "$.url" == "https://mozilla.org/?x=шеллы"
|
||||
jsonpath "$.url" urlEncode == "https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
|
||||
jsonpath "$.encoded_url" urlDecode == "https://mozilla.org/?x=шеллы"
|
||||
variable "url" urlEncode urlDecode == "{{url}}"
|
||||
jsonpath "$.text" == "a > b && a < c"
|
||||
jsonpath "$.text" htmlEscape == "a > b && a < c"
|
||||
jsonpath "$.escaped_html[0]" htmlUnescape == "a > b && a < c"
|
||||
jsonpath "$.escaped_html[1]" htmlUnescape == "Foo © bar 𝌆 baz ☃ qux"
|
||||
jsonpath "$.escaped_html[2]" htmlUnescape == "A foo"
|
||||
variable "text" htmlEscape htmlUnescape == "{{text}}"
|
||||
jsonpath "$.id" toInt == 123
|
||||
jsonpath "$.score" toInt == 1
|
||||
jsonpath "$.ips" split ", " count == 3
|
||||
jsonpath "$.ips" replace ", " "|" == "192.168.2.1|10.0.0.20|10.0.0.10"
|
||||
jsonpath "$.json" jsonpath "$.message" == "Hello"
|
||||
certificate "Expire-Date" daysAfterNow > 15
|
||||
certificate "Expire-Date" daysBeforeNow > 15
|
||||
{
|
||||
"list": [1,2,3],
|
||||
"message": "Hello Bob!",
|
||||
"url": "https://mozilla.org/?x=шеллы",
|
||||
"encoded_url": "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",
|
||||
"text": "a > b && a < c",
|
||||
"escaped_html": [
|
||||
"a > b && a < c",
|
||||
"Foo © bar 𝌆 baz ☃ qux",
|
||||
"A foo"
|
||||
],
|
||||
"id": "123",
|
||||
"score": 1.6,
|
||||
"ips": "192.168.2.1, 10.0.0.20, 10.0.0.10",
|
||||
"json": "{\"message\": \"Hello\"}"
|
||||
}
|
||||
jsonpath "$.books" count == 12 # count
|
||||
certificate "Expire-Date" daysAfterNow > 15 # daysAfterNow
|
||||
certificate "Start-Date" daysBeforeNow < 100 # daysBeforeNow
|
||||
bytes decode "iso-8859-1" == "café" # decode
|
||||
cookie "LSID[Expires]" format "%a, %d %b %Y %H:%M:%S" == "Wed, 13 Jan 2021 22:23:01" # format
|
||||
jsonpath "$.text" htmlEscape == "a > b" # htmlEscape
|
||||
jsonpath "$.escaped_html[1]" htmlUnescape == "<p>Hello</p>" # htmlUnescape
|
||||
variable "books" jsonpath "$[0].name" == "Dune" # jsonpath
|
||||
jsonpath "$.books" nth 2 == "Children of Dune" # nth
|
||||
body regex /Hello ([0-9]+)!/ == "Bob" # regex
|
||||
jsonpath "$.ips" replace ", " "|" == "192.168.2.1|10.0.0.20|10.0.0.10" # replace
|
||||
jsonpath "$.ips" split ", " count == 3 # split
|
||||
header "Expires" toDate "%a, %d %b %Y %H:%M:%S GMT" daysBeforeNow > 1000 # toDate
|
||||
jsonpath "$.id" toInt == 123 # toInt
|
||||
jsonpath "$.encoded_url" urlDecode == "https://mozilla.org/?x=шеллы" # urlDecode
|
||||
jsonpath "$.url" urlEncode == "https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B" # urlEncode
|
||||
bytes decode "iso-8859-1" xpath "string(//p)" == "Hello" # xpath
|
||||
|
@ -1 +1 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/filter"},"response":{"status":200,"captures":[{"name":"url","query":{"type":"jsonpath","expr":"$.url"}},{"name":"text","query":{"type":"jsonpath","expr":"$.text"}}],"asserts":[{"query":{"type":"jsonpath","expr":"$.list"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"jsonpath","expr":"$.list"},"filters":[{"type":"nth","n":1}],"predicate":{"type":"equal","value":2}},{"query":{"type":"jsonpath","expr":"$.message"},"filters":[{"type":"regex","expr":{"type":"regex","value":"Hello (.*)!"}}],"predicate":{"type":"equal","value":"Bob"}},{"query":{"type":"jsonpath","expr":"$.url"},"predicate":{"type":"equal","value":"https://mozilla.org/?x=шеллы"}},{"query":{"type":"jsonpath","expr":"$.url"},"filters":[{"type":"urlEncode"}],"predicate":{"type":"equal","value":"https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"}},{"query":{"type":"jsonpath","expr":"$.encoded_url"},"filters":[{"type":"urlDecode"}],"predicate":{"type":"equal","value":"https://mozilla.org/?x=шеллы"}},{"query":{"type":"variable","name":"url"},"filters":[{"type":"urlEncode"},{"type":"urlDecode"}],"predicate":{"type":"equal","value":"{{url}}"}},{"query":{"type":"jsonpath","expr":"$.text"},"predicate":{"type":"equal","value":"a > b && a < c"}},{"query":{"type":"jsonpath","expr":"$.text"},"filters":[{"type":"htmlEscape"}],"predicate":{"type":"equal","value":"a > b && a < c"}},{"query":{"type":"jsonpath","expr":"$.escaped_html[0]"},"filters":[{"type":"htmlUnescape"}],"predicate":{"type":"equal","value":"a > b && a < c"}},{"query":{"type":"jsonpath","expr":"$.escaped_html[1]"},"filters":[{"type":"htmlUnescape"}],"predicate":{"type":"equal","value":"Foo © bar 𝌆 baz ☃ qux"}},{"query":{"type":"jsonpath","expr":"$.escaped_html[2]"},"filters":[{"type":"htmlUnescape"}],"predicate":{"type":"equal","value":"A foo"}},{"query":{"type":"variable","name":"text"},"filters":[{"type":"htmlEscape"},{"type":"htmlUnescape"}],"predicate":{"type":"equal","value":"{{text}}"}},{"query":{"type":"jsonpath","expr":"$.id"},"filters":[{"type":"toInt"}],"predicate":{"type":"equal","value":123}},{"query":{"type":"jsonpath","expr":"$.score"},"filters":[{"type":"toInt"}],"predicate":{"type":"equal","value":1}},{"query":{"type":"jsonpath","expr":"$.ips"},"filters":[{"type":"split","sep":", "},{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"jsonpath","expr":"$.ips"},"filters":[{"type":"replace","old_value":", ","new_value":"|"}],"predicate":{"type":"equal","value":"192.168.2.1|10.0.0.20|10.0.0.10"}},{"query":{"type":"jsonpath","expr":"$.json"},"filters":[{"type":"jsonpath","expr":"$.message"}],"predicate":{"type":"equal","value":"Hello"}},{"query":{"type":"certificate","expr":"Expire-Date"},"filters":[{"type":"daysAfterNow"}],"predicate":{"type":"greater","value":15}},{"query":{"type":"certificate","expr":"Expire-Date"},"filters":[{"type":"daysBeforeNow"}],"predicate":{"type":"greater","value":15}}],"body":{"type":"json","value":{"list":[1,2,3],"message":"Hello Bob!","url":"https://mozilla.org/?x=шеллы","encoded_url":"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B","text":"a > b && a < c","escaped_html":["a > b && a < c","Foo © bar 𝌆 baz ☃ qux","A foo"],"id":"123","score":1.6,"ips":"192.168.2.1, 10.0.0.20, 10.0.0.10","json":"{\"message\": \"Hello\"}"}}}}]}
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/dummy"},"response":{"status":200,"captures":[{"name":"count","query":{"type":"jsonpath","expr":"$.books"},"filters":[{"type":"count"}]}],"asserts":[{"query":{"type":"jsonpath","expr":"$.books"},"filters":[{"type":"count"}],"predicate":{"type":"equal","value":12}},{"query":{"type":"certificate","expr":"Expire-Date"},"filters":[{"type":"daysAfterNow"}],"predicate":{"type":"greater","value":15}},{"query":{"type":"certificate","expr":"Start-Date"},"filters":[{"type":"daysBeforeNow"}],"predicate":{"type":"less","value":100}},{"query":{"type":"bytes"},"filters":[{"type":"decode","encoding":"iso-8859-1"}],"predicate":{"type":"equal","value":"café"}},{"query":{"type":"cookie","expr":"LSID[Expires]"},"filters":[{"type":"format","fmt":"%a, %d %b %Y %H:%M:%S"}],"predicate":{"type":"equal","value":"Wed, 13 Jan 2021 22:23:01"}},{"query":{"type":"jsonpath","expr":"$.text"},"filters":[{"type":"htmlEscape"}],"predicate":{"type":"equal","value":"a > b"}},{"query":{"type":"jsonpath","expr":"$.escaped_html[1]"},"filters":[{"type":"htmlUnescape"}],"predicate":{"type":"equal","value":"<p>Hello</p>"}},{"query":{"type":"variable","name":"books"},"filters":[{"type":"jsonpath","expr":"$[0].name"}],"predicate":{"type":"equal","value":"Dune"}},{"query":{"type":"jsonpath","expr":"$.books"},"filters":[{"type":"nth","n":2}],"predicate":{"type":"equal","value":"Children of Dune"}},{"query":{"type":"body"},"filters":[{"type":"regex","expr":{"type":"regex","value":"Hello ([0-9]+)!"}}],"predicate":{"type":"equal","value":"Bob"}},{"query":{"type":"jsonpath","expr":"$.ips"},"filters":[{"type":"replace","old_value":", ","new_value":"|"}],"predicate":{"type":"equal","value":"192.168.2.1|10.0.0.20|10.0.0.10"}},{"query":{"type":"jsonpath","expr":"$.ips"},"filters":[{"type":"split","sep":", "},{"type":"count"}],"predicate":{"type":"equal","value":3}},{"query":{"type":"header","name":"Expires"},"filters":[{"type":"toDate","fmt":"%a, %d %b %Y %H:%M:%S GMT"},{"type":"daysBeforeNow"}],"predicate":{"type":"greater","value":1000}},{"query":{"type":"jsonpath","expr":"$.id"},"filters":[{"type":"toInt"}],"predicate":{"type":"equal","value":123}},{"query":{"type":"jsonpath","expr":"$.encoded_url"},"filters":[{"type":"urlDecode"}],"predicate":{"type":"equal","value":"https://mozilla.org/?x=шеллы"}},{"query":{"type":"jsonpath","expr":"$.url"},"filters":[{"type":"urlEncode"}],"predicate":{"type":"equal","value":"https%3A//mozilla.org/%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"}},{"query":{"type":"bytes"},"filters":[{"type":"decode","encoding":"iso-8859-1"},{"type":"xpath","expr":"string(//p)"}],"predicate":{"type":"equal","value":"Hello"}}]}}]}
|
||||
|
@ -1,14 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/follow-redirect</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Followed redirect!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># On 301, 302, 303, redirected request switch to GET.</span>
|
||||
<span class="line"></span><span class="comment"># Otherwise, method are untouched.</span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/follow-redirect</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Followed redirect!`</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/follow-redirect-308</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="string">`Followed redirect POST!`</span></span>
|
||||
</span></span></code></pre>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user