mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-11-24 12:46:01 +03:00
Merge pull request #196 from Orange-OpenSource/feature/improve-hurl-report
Improve HTML report
This commit is contained in:
commit
f3a8aa7c49
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -356,6 +356,7 @@ name = "hurl_core"
|
||||
version = "1.3.0"
|
||||
dependencies = [
|
||||
"float-cmp",
|
||||
"regex",
|
||||
"sxd-document",
|
||||
]
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -6,11 +6,18 @@ thead {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.success {
|
||||
td {
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.summary {
|
||||
padding: 10px;
|
||||
}
|
||||
.success, .success a {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.failure {
|
||||
.failure, .failure a {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
60
integration/report/html/tests/assert_base64.hurl.html
Normal file
60
integration/report/html/tests/assert_base64.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Test body response with line ending LF and CRLF.</span></span><span class="line"><span class="comment"># We receive the text body "line1\nline2\r\nline3\n"</span></span><span class="line"><span class="comment">#</span></span><span class="line"><span class="comment"># $ printf "line1\nline2\r\nline3\n" | base64</span></span><span class="line"><span class="comment"># bGluZTEKbGluZTINCmxpbmUzCg==</span></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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">base64,bGluZTEKbGluZTINCmxpbmUzCg==;</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/assert_header.hurl.html
Normal file
60
integration/report/html/tests/assert_header.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/assert-header</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line"><span class="string">Set-Cookie</span><span>:</span> <span class="string">cookie1=value1; Path=/</span></span><span class="line"><span class="string">Set-Cookie</span><span>:</span> <span class="string">cookie2=value2; Path=/</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">header</span> <span class="string">"Custom"</span> not <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">equals</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">equals</span> <span class="string">""33a64df551425fcc55e4d42a148795d9f25f89d4""</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="predicate-type">equals</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> not <span class="predicate-type">includes</span> <span class="string">"cookie4=value4; Path=/"</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/assert_json.hurl.html
Normal file
60
integration/report/html/tests/assert_json.hurl.html
Normal file
File diff suppressed because one or more lines are too long
60
integration/report/html/tests/assert_match.hurl.html
Normal file
60
integration/report/html/tests/assert_match.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/assert-match</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line 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">"$.date2"</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="string">"^\d{4}-\d{2}-\d{2}$"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.date2"</span> not <span class="predicate-type">matches</span> <span class="string">"^\d{4}-\d{2}-\d{2}$"</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/assert_regex.hurl.html
Normal file
60
integration/report/html/tests/assert_regex.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/assert-regex</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">regex</span> <span class="string">"Hello ([0-9]+)!"</span> not <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">equals</span> <span class="string">"World"</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/assert_status_code.hurl.html
Normal file
60
integration/report/html/tests/assert_status_code.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/assert-status-code</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">201</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="comment"># simply check that the status code is not 200</span></span><span class="line"><span class="comment"># do not run implicit assert of http response version and code</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span></div><div class="response"><span class="line"><span class="version">HTTP/*</span> <span class="status">*</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> not <span class="predicate-type">equals</span> <span class="number">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="comment"># simply check that the status code is OK</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/assert-status-code</span></span></div><div class="response"><span class="line"><span class="version">HTTP/*</span> <span class="status">*</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">greaterThanOrEquals</span> <span class="number">200</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">lessThan</span> <span class="number">300</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/assert_xpath.hurl.html
Normal file
60
integration/report/html/tests/assert_xpath.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/assert-xpath</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line 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">equals</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">equals</span> <span class="string">"café"</span></span><span class="line"><span class="query-type">xpath</span> <span class="string">"//toto"</span> not <span class="predicate-type">exists</span></span><span class="line"></span><span class="line">&lt;data&gt;café&lt;/data&gt;</div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/basic_authentication.hurl.html
Normal file
60
integration/report/html/tests/basic_authentication.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/basic-authentication</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```You are authenticated```</span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/bom.hurl.html
Normal file
60
integration/report/html/tests/bom.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/utf8_bom</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Hello World!```</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/bytes.hurl.html
Normal file
60
integration/report/html/tests/bytes.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/bytes</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">application/octet-stream</span></span><span class="line section-header">[Asserts]</span></span></div></div><span class="line"><span class="comment">#TODO create a bytes query to get e byte array</span></span><span class="line"><span class="comment">#body countEquals 1</span></span><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/capture_and_assert.hurl.html
Normal file
60
integration/report/html/tests/capture_and_assert.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/capture-and-assert</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">content_type<span>:</span> <span class="query-type">header</span> <span class="string">"content-type"</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">header</span> <span class="string">"content-type"</span> <span class="predicate-type">equals</span> <span class="string">"{{content_type}}"</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/captures.hurl.html
Normal file
60
integration/report/html/tests/captures.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/captures</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">param1<span>:</span> <span class="query-type">header</span> <span class="string">"header1"</span></span><span class="line">param2<span>:</span> <span class="query-type">header</span> <span class="string">"header2"</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"param1"</span> <span class="predicate-type">equals</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">equals</span> <span class="string">"Bob"</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="url">http://localhost:8000/captures-check</span></span></div><span class="line section-header">[QueryStringParams]</span></span><span class="line"><span class="string">param1</span><span>:</span> <span class="string">{{param1}}</span></span><span class="line"><span class="string">param2</span><span>:</span> <span class="string">{{param2}}</span></span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div 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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">an_object<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['an_object']"</span></span><span class="line">a_list<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['a_list']"</span></span><span class="line">a_null<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['a_null']"</span></span><span class="line">an_integer<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['an_integer']"</span></span><span class="line">a_float<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['a_float']"</span></span><span class="line">a_bool<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['a_bool']"</span></span><span class="line">a_string<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$['a_string']"</span></span><span class="line">all<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$"</span></span><span class="line 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> not <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">equals</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">equals</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">equals</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">equals</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">equals</span> <span class="expr">{{a_string}}</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"a_list"</span> <span class="predicate-type">equals</span> <span class="expr">{{a_list}}</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/color.hurl.html
Normal file
60
integration/report/html/tests/color.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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>
|
||||
</body></html>
|
60
integration/report/html/tests/compressed.hurl.html
Normal file
60
integration/report/html/tests/compressed.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># -- COMPRESSED HAS NO EFFECT ON NON-COMPRESSED</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/none</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">12</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line">```Hello World!```</span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/gzip</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">32</span></span><span class="line"><span class="string">Content-Encoding</span><span>:</span> <span class="string">gzip</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line">```Hello World!```</span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/zlib</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">20</span></span><span class="line"><span class="string">Content-Encoding</span><span>:</span> <span class="string">deflate</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line">```Hello World!```</span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/compressed/brotli</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">17</span></span><span class="line"><span class="string">Content-Encoding</span><span>:</span> <span class="string">br</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line">```Hello World!```</span></div></div><div class="hurl-entry"><div 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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">17</span></span><span class="line"><span class="string">Content-Encoding</span><span>:</span> <span class="string">br, identity</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line">```Hello World!```</span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/cookie_file.hurl.html
Normal file
60
integration/report/html/tests/cookie_file.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/cookie_file</span></span></div><div class="response"><span class="line"><span class="version">HTTP/*</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/cookie_storage.hurl.html
Normal file
60
integration/report/html/tests/cookie_storage.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment">#</span></span><span class="line"><span class="comment"># experimental feature</span></span><span class="line"><span class="comment"># manage cookie store</span></span><span class="line"><span class="comment">#</span></span><span class="line"></span><span class="line"><span class="comment"># @cookie_storage_set: localhost FALSE / FALSE 0 cookie1 valueA</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/cookie-storage/assert-that-cookie1-is-valueA</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</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="comment"># @cookie_storage_clear</span></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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/cookies.hurl.html
Normal file
60
integration/report/html/tests/cookies.hurl.html
Normal file
File diff suppressed because one or more lines are too long
60
integration/report/html/tests/delete.hurl.html
Normal file
60
integration/report/html/tests/delete.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">DELETE</span> <span class="url">http://localhost:8000/delete</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/empty.hurl.html
Normal file
60
integration/report/html/tests/empty.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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>
|
||||
</body></html>
|
60
integration/report/html/tests/encoding.hurl.html
Normal file
60
integration/report/html/tests/encoding.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/encoding/utf8</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=utf-8</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">equals</span> <span class="string">"café"</span></span></div></div><div class="hurl-entry"><div 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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">text/html; charset=ISO-8859-1</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">equals</span> <span class="string">"café"</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_assert_base64.hurl.html
Normal file
60
integration/report/html/tests/error_assert_base64.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Test body response with line ending LF and CRLF.</span></span><span class="line"><span class="comment"># We receive the text body "line1\nline2\r\nline3\n"</span></span><span class="line"><span class="comment"># and not "line1\nline2\nline3\n"</span></span><span class="line"></span><span class="line"><span class="comment">#</span></span><span class="line"><span class="comment"># $ printf "line1\nline2\nline3\n" | base64</span></span><span class="line"><span class="comment"># bGluZTEKbGluZTIKbGluZTMK</span></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></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">base64,bGluZTEKbGluZTIKbGluZTMK;</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Return an unsupported content encoding</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/error/content-encoding</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Hello World!```</span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-decompress</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Hello World!```</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_assert_file.hurl.html
Normal file
60
integration/report/html/tests/error_assert_file.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Test body response with file assertion.</span></span><span class="line"><span class="comment"># We receive the body "Hello" and not "Hello World!"</span></span><span class="line"></span><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/error-assert-file</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">files,data.txt;</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-header-not-found</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Custom</span><span>:</span> <span class="string">???</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-header-value</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">???</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="url">http://localhost:8000/error-assert-header-value</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">???</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert/http-version</span></span></div><div class="response"><span class="line"><span class="version">HTTP/2</span> <span class="status">200</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-invalid-predicate-type</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">header</span> <span class="string">"content-type"</span> <span class="predicate-type">equals</span> <span class="number">1</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert/match-utf8</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">matches</span> <span class="string">".*"</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-query-cookie</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"></span><span class="line section-header">[Asserts]</span></span><span class="line"></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie1[Secure]"</span> not <span class="predicate-type">exists</span></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie1[Secure]"</span> <span class="predicate-type">equals</span> <span class="boolean">false</span></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie1[Secure]"</span> not <span class="predicate-type">equals</span> <span class="boolean">true</span></span><span class="line"></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2[Secure]"</span> <span class="predicate-type">exists</span></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2[Secure]"</span> <span class="predicate-type">equals</span> <span class="boolean">true</span></span><span class="line"><span class="query-type">cookie</span> <span class="string">"cookie2[Secure]"</span> not <span class="predicate-type">equals</span> <span class="boolean">true</span></span></div></div><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-query-invalid-regex</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">regex</span> <span class="string">"[x"</span> <span class="predicate-type">exists</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/utf8</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">xpath</span> <span class="string">"//"</span> <span class="predicate-type">equals</span> <span class="number">1</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_assert_status.hurl.html
Normal file
60
integration/report/html/tests/error_assert_status.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/not_found</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-template-variable-not-found</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">header</span> <span class="string">"content-type"</span> <span class="predicate-type">equals</span> <span class="string">"{{content_type}}"</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-value</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">header</span> <span class="string">"content-type"</span> <span class="predicate-type">equals</span> <span class="string">"XXX"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.id"</span> <span class="predicate-type">equals</span> <span class="string">"000001"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.values"</span> <span class="predicate-type">includes</span> <span class="number">100</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.values"</span> not <span class="predicate-type">contains</span> <span class="string">"Hello"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">greaterThan</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">isFloat</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-variable</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">status<span>:</span> <span class="query-type">status</span></span><span class="line">length<span>:</span> <span class="query-type">header</span> <span class="string">"content-length"</span></span><span class="line">type<span>:</span> <span class="query-type">header</span> <span class="string">"content-type"</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"toto"</span> <span class="predicate-type">equals</span> <span class="string">"tata"</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"status"</span> <span class="predicate-type">equals</span> <span class="expr">{{unknown}}</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"status"</span> <span class="predicate-type">equals</span> <span class="expr">{{type}}</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"status"</span> <span class="predicate-type">equals</span> <span class="expr">{{length}}</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_assert_xpath.hurl.html
Normal file
60
integration/report/html/tests/error_assert_xpath.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-assert-xpath</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">xpath</span> <span class="string">"strong(//head/title)"</span> <span class="predicate-type">equals</span> <span class="string">"Welcome to Quiz!"</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_body_json.hurl.html
Normal file
60
integration/report/html/tests/error_body_json.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">unused</span></span></div><span class="line">{<span class="line"> "success": {{success}}</span><span class="line">}</span></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://10.0.0.0</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/error-file-read-access</span></span></div><span class="line">files,does_not_exist;</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.1</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://unknown</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-invalid-jsonpath</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">""</span> <span class="predicate-type">equals</span> <span class="boolean">false</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_invalid_url.hurl.html
Normal file
60
integration/report/html/tests/error_invalid_url.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">???</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_invalid_xml.hurl.html
Normal file
60
integration/report/html/tests/error_invalid_xml.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-invalid-xml</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">xpath</span> <span class="string">"xx"</span> <span class="predicate-type">equals</span> <span class="number">1</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_max_redirect.hurl.html
Normal file
60
integration/report/html/tests/error_max_redirect.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/redirect/7</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/unused</span></span></div><span class="line section-header">[MultipartFormData]</span></span><span class="line"><span class="string">key1</span><span>:</span> <span class="string">value1</span></span><span class="line"><span class="string"><span class="string">upload1</span></span>: file,<span class="string">unknown</span>;</span></div><span class="line"></span><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_predicate.hurl.html
Normal file
60
integration/report/html/tests/error_predicate.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/predicate/error/type</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.status"</span> <span class="predicate-type">equals</span> <span class="string">"true"</span></span><span class="line"><span class="comment">#jsonpath "$.count" equals "0"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.count"</span> <span class="predicate-type">equals</span> <span class="number">0</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">equals</span> <span class="number">0</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.empty"</span> <span class="predicate-type">equals</span> <span class="number">0</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.number"</span> <span class="predicate-type">equals</span> <span class="number">1.1</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">startsWith</span> <span class="string">"hi"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">contains</span> <span class="string">"hi"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">matches</span> <span class="string">"hi"</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> <span class="predicate-type">equals</span> <span class="number">1</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.toto"</span> <span class="predicate-type">exists</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.message"</span> not <span class="predicate-type">exists</span></span></div></div></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-query-header-not-found</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Custom</span><span>:</span> <span class="string">XXX</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-query-invalid-json</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors"</span> <span class="predicate-type">equals</span> <span class="number">2</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/error-query-invalid-utf8</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors"</span> <span class="predicate-type">equals</span> <span class="number">2</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">{{url}}</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/get-list</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">list<span>:</span> <span class="query-type">jsonpath</span> <span class="string">"$.values"</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="url">http://localhost:8000/undefined</span></span></div><span class="line section-header">[QueryStringParams]</span></span><span class="line"><span class="string">param1</span><span>:</span> <span class="string">{{list}}</span></span><div class="response"><span class="line"><span class="version">HTTP/1.1</span> <span class="status">200</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/error_timeout.hurl.html
Normal file
60
integration/report/html/tests/error_timeout.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/timeout</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/expect.hurl.html
Normal file
60
integration/report/html/tests/expect.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/expect</span></span></div><span class="line"><span class="string">Expect</span><span>:</span> <span class="string">100-continue</span></span><span class="line">```data```</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/follow_redirect.hurl.html
Normal file
60
integration/report/html/tests/follow_redirect.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/follow-redirect</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Followed redirect!```</span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/form_params.hurl.html
Normal file
60
integration/report/html/tests/form_params.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/form-params</span></span></div><span class="line section-header">[FormParams]</span></span><span class="line"><span class="string">param1</span><span>:</span> <span class="string">value1</span></span><span class="line"><span class="string">param2</span><span>:</span><span class="string"></span></span><span class="line"><span class="string">param3</span><span>:</span> <span class="string">a=b</span></span><span class="line"><span class="string">param4</span><span>:</span> <span class="string">a%3db</span></span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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="comment"># same version as raw</span></span><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/form-params</span></span></div><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">application/x-www-form-urlencoded</span></span><span class="line">```param1=value1&param2=&param3=a%3db&param4=a%253db```</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/headers.hurl.html
Normal file
60
integration/report/html/tests/headers.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/default-headers</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</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="url">http://localhost:8000/default-headers</span></span></div><span class="line"><span class="string">User-Agent</span><span>:</span> <span class="string">hurl/1.0</span></span><span class="line"><span class="string">Host</span><span>:</span> <span class="string">localhost:8000</span> <span class="comment"># comment</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/default-headers</span></span></div><span class="line"><span class="string">User-Agent</span><span>:</span> <span class="string">hurl/1.0</span></span><span class="line"><span class="string">Host</span><span>:</span> <span class="string">localhost:8000</span> <span class="comment"># comment</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</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="url">http://localhost:8000/custom-headers</span></span></div><span class="line"><span class="string">Fruit</span><span>:</span> <span class="string">Raspberry</span></span><span class="line"><span class="string">Fruit</span><span>:</span> <span class="string">Apple</span></span><span class="line"><span class="string">Fruit</span><span>:</span> <span class="string">Banana</span></span><span class="line"><span class="string">Fruit</span><span>:</span> <span class="string">Grape</span></span><span class="line"><span class="string">Color</span><span>:</span> <span class="string">Green</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</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="url">http://localhost:8000/custom-headers-utf8</span></span></div><span class="line"><span class="string">Beverage</span><span>:</span> <span class="string">café</span> <span class="comment"># send the utf8 string - expected to be decoded as ascii in the server side</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</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="url">http://localhost:8000/custom-headers-quote</span></span></div><span class="line"><span class="string">Header1</span><span>:</span> <span class="string">'</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</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="url">http://localhost:8000/response-headers</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Beverage</span><span>:</span> <span class="string">cafe</span> <span class="comment"># TBC send utf8</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/hello.hurl.html
Normal file
60
integration/report/html/tests/hello.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/hello</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Hello World!```</span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/hello</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">files, data.txt;</span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/include.hurl.html
Normal file
60
integration/report/html/tests/include.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/include</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```Hello```</span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/large.hurl.html
Normal file
60
integration/report/html/tests/large.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/large</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">application/octet-stream</span></span><span class="line"><span class="string">Content-Length</span><span>:</span> <span class="string">536870912</span></span><span class="line"></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">duration</span> <span class="predicate-type">lessThanOrEquals</span> <span class="number">10000</span></span></div></div><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/multipart_form_data.hurl.html
Normal file
60
integration/report/html/tests/multipart_form_data.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/multipart-form-data</span></span></div><span class="line section-header">[MultipartFormData]</span></span><span class="line"><span class="string">key1</span><span>:</span> <span class="string">value1</span></span><span class="line"><span class="string"><span class="string">upload1</span></span>: file,<span class="string">data.txt</span>;</span><span class="line"><span class="string"><span class="string">upload2</span></span>: file,<span class="string">data.html</span>;</span><span class="line"><span class="string"><span class="string">upload3</span></span>: file,<span class="string">data.txt</span>; <span class="string">text/html</span></span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/no_entry.hurl.html
Normal file
60
integration/report/html/tests/no_entry.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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"><span class="line"><span class="comment"># all the entries</span></span><span class="line"><span class="comment"># have been commented</span></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/output.hurl.html
Normal file
60
integration/report/html/tests/output.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/output/endpoint1</span></span></div><span class="line">{ "user": "bob" }<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/output/endpoint2</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/patch.hurl.html
Normal file
60
integration/report/html/tests/patch.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Sample from https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH</span></span><span class="line"><span class="method">PATCH</span> <span class="url">http://localhost:8000/patch/file.txt</span></span></div><span class="line"><span class="string">Host</span><span>:</span> <span class="string">www.example.com</span></span><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">application/example</span></span><span class="line"><span class="string">If-Match</span><span>:</span> <span class="string">"e0023aa4e"</span></span><div class="response"><span class="line"></span><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">204</span></span><span class="line"><span class="string">Content-Location</span><span>:</span> <span class="string">/file.txt</span></span><span class="line"><span class="string">ETag</span><span>:</span> <span class="string">"e0023aa4f"</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_base64.hurl.html
Normal file
60
integration/report/html/tests/post_base64.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-base64</span></span></div><span class="line">base64, SGVsbG8gV29ybGQh;</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_bytes.hurl.html
Normal file
60
integration/report/html/tests/post_bytes.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-bytes</span></span></div><span class="line"><span class="string">Content-Type</span><span>:</span> <span class="string">application/octet-stream</span></span><span class="line">base64, AQID;</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_file.hurl.html
Normal file
60
integration/report/html/tests/post_file.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-file</span></span></div><span class="line">files,data.bin;</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_json.hurl.html
Normal file
60
integration/report/html/tests/post_json.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-json</span></span></div><span class="line"></span><span class="line">{<span class="line"> "name": "Bob",</span><span class="line"> "password": "secret",</span><span class="line"> "age": 30,</span><span class="line"> "strict": true</span><span class="line">}</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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">POST</span> <span class="url">http://localhost:8000/post-json-array</span></span></div><span class="line">[1,2,3]<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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">POST</span> <span class="url">http://localhost:8000/post-json-string</span></span></div><span class="line">"Hello"<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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">POST</span> <span class="url">http://localhost:8000/post-json-number</span></span></div><span class="line">100<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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">POST</span> <span class="url">http://localhost:8000/post-json-numbers</span></span></div><span class="line">{<span class="line"> "natural": 100,</span><span class="line"> "negative": -1,</span><span class="line"> "float": "3.333333333333333",</span><span class="line"> "exponent": 100e100</span><span class="line">}</span><div class="response"><span class="line"></span><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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">POST</span> <span class="url">http://localhost:8000/post-json-boolean</span></span></div><span class="line">true<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</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="comment">#</span></span><span class="line"><span class="comment"># Use variable in your input json</span></span><span class="line"><span class="comment">#</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/get-name</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">name<span>:</span> <span class="query-type">status</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-json</span></span></div><span class="line"></span><span class="line">{<span class="line"> "name": "{{name}}",</span><span class="line"> "password": "secret",</span><span class="line"> "age": {{age}},</span><span class="line"> "strict": {{strict}}</span><span class="line">}</span></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_multilines.hurl.html
Normal file
60
integration/report/html/tests/post_multilines.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-multilines</span></span></div><span class="line">```</span><span class="line">name,age</span><span class="line">bob,10</span><span class="line">bill,22</span><span class="line">```</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/get-bob-age</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Captures]</span></span><span class="line">bob_age<span>:</span> <span class="query-type">status</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-multilines</span></span></div><span class="line">```</span><span class="line">name,age</span><span class="line">bob,{{bob_age}}</span><span class="line">bill,22</span><span class="line">```</span><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/post_xml.hurl.html
Normal file
60
integration/report/html/tests/post_xml.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/post-xml</span></span></div><span class="line">&lt;?xml version="1.0"?&gt;<span class="line">&lt;drink&gt;café&lt;/drink&gt;</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-xml-no-prolog</span></span></div><span class="line">&lt;drink&gt;café&lt;/drink&gt;<div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/predicates-string.hurl.html
Normal file
60
integration/report/html/tests/predicates-string.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/predicates-string</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">equals</span> <span class="string">"Hello World!"</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">startsWith</span> <span class="string">"Hello"</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">contains</span> <span class="string">"llo"</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">matches</span> <span class="string">"Hello [a-zA-Z]+!"</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/predicates-string-empty</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">equals</span> <span class="string">""</span></span><span class="line"><span class="query-type">status</span> <span class="predicate-type">exists</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/proxy.hurl.html
Normal file
60
integration/report/html/tests/proxy.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="comment"># Go through proxy</span></span><span class="line"><span class="comment"># The proxy adds header "From-Proxy:Hello" for both request and response</span></span><span class="line"><span class="comment"># mitmproxy -p 8888 --setheader ":~q:From-Proxy:Hello" --setheader ":~s:From-Proxy:Hello"</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/proxy</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line"><span class="string">From-Proxy</span><span>:</span> <span class="string">Hello</span></span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/put.hurl.html
Normal file
60
integration/report/html/tests/put.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">PUT</span> <span class="url">http://localhost:8000/put</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/querystring_params.hurl.html
Normal file
60
integration/report/html/tests/querystring_params.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/querystring-params</span></span></div><span class="line section-header">[QueryStringParams]</span></span><span class="line"><span class="string">param1</span><span>:</span> <span class="string">value1</span></span><span class="line"><span class="string">param2</span><span>:</span><span class="string"></span></span><span class="line"><span class="string">param3</span><span>:</span> <span class="string">a=b</span></span><span class="line"><span class="string">param4</span><span>:</span> <span class="string">1,2,3</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="comment"># same version as raw</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/querystring-params?param1=value1&param2=&param3=a%3db&param4=1,2,3</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="comment"># combine version</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/querystring-params?param1=value1</span></span></div><span class="line section-header">[QueryStringParams]</span></span><span class="line"><span class="string">param2</span><span>:</span><span class="string"></span></span><span class="line"><span class="string">param3</span><span>:</span> <span class="string">a=b</span></span><span class="line"><span class="string">param4</span><span>:</span> <span class="string">1,2,3</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><div class="hurl-entry"><div class="request"><span class="line"></span><span class="line"></span><span class="line"><span class="comment"># encoding slash</span></span><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/querystring-params-encoded?value1=/&value2=%2F</span></span></div><span class="line section-header">[QueryStringParams]</span></span><span class="line"><span class="string">value3</span><span>:</span><span class="string">/</span></span><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/redirect.hurl.html
Normal file
60
integration/report/html/tests/redirect.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/redirect</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">302</span></span><span class="line"><span class="string">Location</span><span>:</span> <span class="string">http://localhost:8000/redirected</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="url">http://localhost:8000/redirected</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span></div></div><span class="line"></span><span class="line"></span><span class="line"></span><span class="line"></span><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/user_in_url.hurl.html
Normal file
60
integration/report/html/tests/user_in_url.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://bob:secret@localhost:8000/basic-authentication</span></span></div><div class="response"><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line">```You are authenticated```</span></div></div><span class="line"></span><span class="line"></span></div>
|
||||
</body></html>
|
60
integration/report/html/tests/utf8.hurl.html
Normal file
60
integration/report/html/tests/utf8.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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="url">http://localhost:8000/utf8</span></span></div><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/1.0</span> <span class="status">200</span></span><span class="line 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">equals</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">equals</span> <span class="string">"café"</span></span></div></div></div>
|
||||
</body></html>
|
60
integration/report/html/tests/variables.hurl.html
Normal file
60
integration/report/html/tests/variables.hurl.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>Hurl File</title><style>
|
||||
body {
|
||||
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;
|
||||
}
|
||||
|
||||
.url {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
.version {
|
||||
color: black;
|
||||
}
|
||||
.status {
|
||||
color: blue;
|
||||
}
|
||||
.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">POST</span> <span class="url">http://localhost:8000/variables</span></span></div><span class="line">{<span class="line"> "name": "{{name}}",</span><span class="line"> "age": {{age}},</span><span class="line"> "height": {{height}},</span><span class="line"> "female": {{female}},</span><span class="line"> "id": "{{id}}",</span><span class="line"> "a_null": {{a_null}}</span><span class="line">}</span><div class="response"><span class="line"></span><span class="line"><span class="version">HTTP/*</span> <span class="status">200</span></span><span class="line section-header">[Asserts]</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"name"</span> <span class="predicate-type">equals</span> <span class="string">"Jennifer"</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"female"</span> <span class="predicate-type">equals</span> <span class="boolean">true</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"age"</span> <span class="predicate-type">equals</span> <span class="number">30</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"height"</span> <span class="predicate-type">equals</span> <span class="number">1.70</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"a_null"</span> <span class="predicate-type">equals</span> <span class="null">null</span></span><span class="line"><span class="query-type">variable</span> <span class="string">"id"</span> <span class="predicate-type">equals</span> <span class="string">"123"</span></span></div></div></div>
|
||||
</body></html>
|
File diff suppressed because it is too large
Load Diff
@ -30,7 +30,19 @@ fn strip_bom(bytes: &mut Vec<u8>) {
|
||||
|
||||
/// Similar to the standard read_to_string()
|
||||
/// But remove any existing BOM
|
||||
/// Support also input stream when filename = '-'
|
||||
pub fn read_to_string(filename: &str) -> Result<String, CliError> {
|
||||
if filename == "-" {
|
||||
let mut contents = String::new();
|
||||
return if let Err(e) = std::io::stdin().read_to_string(&mut contents) {
|
||||
Err(CliError {
|
||||
message: format!("Input stream can not be read - {}", e.to_string()),
|
||||
})
|
||||
} else {
|
||||
return Ok(contents);
|
||||
};
|
||||
}
|
||||
|
||||
let mut f = match File::open(&filename) {
|
||||
Ok(f) => f,
|
||||
Err(e) => {
|
||||
|
@ -21,7 +21,7 @@
|
||||
extern crate float_cmp;
|
||||
|
||||
pub mod cli;
|
||||
pub mod html;
|
||||
pub mod http;
|
||||
pub mod jsonpath;
|
||||
pub mod report;
|
||||
pub mod runner;
|
||||
|
@ -19,20 +19,19 @@
|
||||
use std::collections::HashMap;
|
||||
use std::env;
|
||||
use std::io::prelude::*;
|
||||
use std::io::{self, BufReader, Read};
|
||||
use std::io::{self, BufReader};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::time::Duration;
|
||||
|
||||
use atty::Stream;
|
||||
use chrono::{DateTime, Local};
|
||||
use clap::{AppSettings, ArgMatches};
|
||||
|
||||
use hurl::cli;
|
||||
use hurl::cli::interactive;
|
||||
use hurl::cli::CliError;
|
||||
use hurl::html;
|
||||
use hurl::http;
|
||||
use hurl::http::ClientOptions;
|
||||
use hurl::report;
|
||||
use hurl::runner;
|
||||
use hurl::runner::{HurlResult, RunnerOptions, Value};
|
||||
use hurl_core::ast::{Pos, SourceInfo};
|
||||
@ -65,6 +64,13 @@ pub fn init_colored() {
|
||||
colored::control::set_override(true);
|
||||
}
|
||||
|
||||
const EXIT_OK: i32 = 0;
|
||||
const EXIT_ERROR_COMMANDLINE: i32 = 1;
|
||||
const EXIT_ERROR_PARSING: i32 = 2;
|
||||
const EXIT_ERROR_RUNTIME: i32 = 3;
|
||||
const EXIT_ERROR_ASSERT: i32 = 4;
|
||||
const EXIT_ERROR_UNDEFINED: i32 = 127;
|
||||
|
||||
#[cfg(target_family = "windows")]
|
||||
pub fn init_colored() {
|
||||
colored::control::set_override(true);
|
||||
@ -99,7 +105,7 @@ fn execute(
|
||||
match parser::parse_hurl_file(contents.as_str()) {
|
||||
Err(e) => {
|
||||
log_parser_error(&e, false);
|
||||
std::process::exit(2);
|
||||
std::process::exit(EXIT_ERROR_PARSING);
|
||||
}
|
||||
Ok(hurl_file) => {
|
||||
log_verbose(format!("fail fast: {}", cli_options.fail_fast).as_str());
|
||||
@ -517,7 +523,7 @@ pub fn unwrap_or_exit<T>(
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
log_error_message(false, e.message.as_str());
|
||||
std::process::exit(127);
|
||||
std::process::exit(EXIT_ERROR_UNDEFINED);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -608,7 +614,7 @@ fn main() {
|
||||
panic!("panic during printing help");
|
||||
}
|
||||
println!();
|
||||
std::process::exit(1);
|
||||
std::process::exit(EXIT_ERROR_COMMANDLINE);
|
||||
} else if filenames.is_empty() {
|
||||
filenames.push("-");
|
||||
}
|
||||
@ -637,27 +643,12 @@ fn main() {
|
||||
}
|
||||
};
|
||||
|
||||
for filename in filenames {
|
||||
let contents = if filename == "-" {
|
||||
let mut contents = String::new();
|
||||
if let Err(e) = io::stdin().read_to_string(&mut contents) {
|
||||
log_error_message(
|
||||
false,
|
||||
format!("Input stream can not be read - {}", e.to_string()).as_str(),
|
||||
);
|
||||
std::process::exit(2);
|
||||
}
|
||||
contents
|
||||
} else {
|
||||
match cli::read_to_string(&filename) {
|
||||
Ok(s) => s,
|
||||
Err(e) => {
|
||||
log_error_message(
|
||||
false,
|
||||
format!("Input stream can not be read - {}", e.message).as_str(),
|
||||
);
|
||||
std::process::exit(2);
|
||||
}
|
||||
for filename in filenames.clone() {
|
||||
let contents = match cli::read_to_string(filename) {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
log_error_message(false, e.message.as_str());
|
||||
std::process::exit(EXIT_ERROR_PARSING);
|
||||
}
|
||||
};
|
||||
|
||||
@ -707,7 +698,7 @@ fn main() {
|
||||
.fixme()
|
||||
.as_str(),
|
||||
);
|
||||
std::process::exit(3);
|
||||
std::process::exit(EXIT_ERROR_RUNTIME);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -744,7 +735,7 @@ fn main() {
|
||||
false,
|
||||
format!("Issue writing to {}: {:?}", file_path.display(), why).as_str(),
|
||||
);
|
||||
std::process::exit(127)
|
||||
std::process::exit(EXIT_ERROR_UNDEFINED)
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
@ -754,7 +745,7 @@ fn main() {
|
||||
false,
|
||||
format!("Issue writing to {}: {:?}", file_path.display(), why).as_str(),
|
||||
);
|
||||
std::process::exit(127)
|
||||
std::process::exit(EXIT_ERROR_UNDEFINED)
|
||||
}
|
||||
}
|
||||
|
||||
@ -762,8 +753,12 @@ fn main() {
|
||||
log_verbose(format!("Writing html report to {}", dir_path.display()).as_str());
|
||||
unwrap_or_exit(
|
||||
&log_error_message,
|
||||
write_html_report(dir_path, hurl_results.clone()),
|
||||
report::write_html_report(dir_path.clone(), hurl_results.clone()),
|
||||
);
|
||||
|
||||
for filename in filenames {
|
||||
unwrap_or_exit(&log_error_message, format_html(filename, dir_path.clone()));
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(file_path) = cookies_output_file {
|
||||
@ -797,14 +792,44 @@ fn exit_code(hurl_results: Vec<HurlResult>) -> i32 {
|
||||
}
|
||||
}
|
||||
if count_errors_runner > 0 {
|
||||
3
|
||||
EXIT_ERROR_RUNTIME
|
||||
} else if count_errors_assert > 0 {
|
||||
4
|
||||
EXIT_ERROR_ASSERT
|
||||
} else {
|
||||
0
|
||||
EXIT_OK
|
||||
}
|
||||
}
|
||||
|
||||
fn format_html(input_file: &str, dir_path: PathBuf) -> Result<(), CliError> {
|
||||
eprintln!("copy/format to html {}", input_file);
|
||||
let file_path = dir_path.join(format!("{}.html", input_file));
|
||||
eprintln!("file_path= {:?}", file_path);
|
||||
let parent = file_path.parent().expect("a parent");
|
||||
eprintln!("parent={:?}", parent);
|
||||
std::fs::create_dir_all(parent).unwrap();
|
||||
|
||||
eprintln!("create dir all ok");
|
||||
let mut file = match std::fs::File::create(&file_path) {
|
||||
Err(why) => {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
let content = cli::read_to_string(input_file).expect("readable hurl file");
|
||||
let hurl_file = parser::parse_hurl_file(content.as_str()).expect("valid hurl file");
|
||||
|
||||
let s = hurl_core::format::format_html(hurl_file, true);
|
||||
|
||||
if let Err(why) = file.write_all(s.as_bytes()) {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_output(bytes: Vec<u8>, filename: Option<&str>) -> Result<(), CliError> {
|
||||
match filename {
|
||||
None => {
|
||||
@ -879,135 +904,3 @@ fn write_cookies_file(file_path: PathBuf, hurl_results: Vec<HurlResult>) -> Resu
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_html_report(dir_path: PathBuf, hurl_results: Vec<HurlResult>) -> Result<(), CliError> {
|
||||
//let now: DateTime<Utc> = Utc::now();
|
||||
let now: DateTime<Local> = Local::now();
|
||||
let html = create_html_index(now.to_rfc2822(), hurl_results);
|
||||
let s = html.render();
|
||||
|
||||
let file_path = dir_path.join("index.html");
|
||||
let mut file = match std::fs::File::create(&file_path) {
|
||||
Err(why) => {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
if let Err(why) = file.write_all(s.as_bytes()) {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
|
||||
let file_path = dir_path.join("report.css");
|
||||
let mut file = match std::fs::File::create(&file_path) {
|
||||
Err(why) => {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
if let Err(why) = file.write_all(include_bytes!("report.css")) {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn create_html_index(now: String, hurl_results: Vec<HurlResult>) -> html::Html {
|
||||
let head = html::Head {
|
||||
title: "Hurl Report".to_string(),
|
||||
stylesheet: Some("report.css".to_string()),
|
||||
};
|
||||
|
||||
let body = html::Body {
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "h2".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("Hurl Report".to_string())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("date".to_string())],
|
||||
children: vec![html::Element::TextElement(now)],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "table".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![
|
||||
create_html_table_header(),
|
||||
create_html_table_body(hurl_results),
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
html::Html { head, body }
|
||||
}
|
||||
|
||||
fn create_html_table_header() -> html::Element {
|
||||
html::Element::NodeElement {
|
||||
name: "thead".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::NodeElement {
|
||||
name: "tr".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("filename".to_string())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("duration".to_string())],
|
||||
},
|
||||
],
|
||||
}],
|
||||
}
|
||||
}
|
||||
|
||||
fn create_html_table_body(hurl_results: Vec<HurlResult>) -> html::Element {
|
||||
let children = hurl_results
|
||||
.iter()
|
||||
.map(|result| create_html_result(result.clone()))
|
||||
.collect();
|
||||
|
||||
html::Element::NodeElement {
|
||||
name: "tbody".to_string(),
|
||||
attributes: vec![],
|
||||
children,
|
||||
}
|
||||
}
|
||||
|
||||
fn create_html_result(result: HurlResult) -> html::Element {
|
||||
let status = if result.success {
|
||||
"success".to_string()
|
||||
} else {
|
||||
"failure".to_string()
|
||||
};
|
||||
html::Element::NodeElement {
|
||||
name: "tr".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![html::Attribute::Class(status)],
|
||||
children: vec![html::Element::TextElement(result.filename.clone())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement(format!(
|
||||
"{}s",
|
||||
result.time_in_ms as f64 / 1000.0
|
||||
))],
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
|
@ -46,5 +46,6 @@ pub enum Element {
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub enum Attribute {
|
||||
Class(String),
|
||||
Id(String),
|
||||
//Id(String),
|
||||
Href(String),
|
||||
}
|
@ -83,7 +83,8 @@ impl Attribute {
|
||||
fn render(self) -> String {
|
||||
match self {
|
||||
Attribute::Class(s) => format!("class=\"{}\"", s),
|
||||
Attribute::Id(s) => format!("id=\"{}\"", s),
|
||||
//Attribute::Id(s) => format!("id=\"{}\"", s),
|
||||
Attribute::Href(s) => format!("href=\"{}\"", s),
|
||||
}
|
||||
}
|
||||
}
|
224
packages/hurl/src/report/mod.rs
Normal file
224
packages/hurl/src/report/mod.rs
Normal file
@ -0,0 +1,224 @@
|
||||
/*
|
||||
* hurl (https://hurl.dev)
|
||||
* Copyright (C) 2020 Orange
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
use std::io::prelude::*;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use chrono::{DateTime, Local};
|
||||
|
||||
use super::cli::CliError;
|
||||
use super::runner::HurlResult;
|
||||
|
||||
mod html;
|
||||
|
||||
pub fn write_html_report(dir_path: PathBuf, hurl_results: Vec<HurlResult>) -> Result<(), CliError> {
|
||||
//let now: DateTime<Utc> = Utc::now();
|
||||
let now: DateTime<Local> = Local::now();
|
||||
let html = create_html_index(now.to_rfc2822(), hurl_results);
|
||||
let s = html.render();
|
||||
|
||||
let file_path = dir_path.join("index.html");
|
||||
let mut file = match std::fs::File::create(&file_path) {
|
||||
Err(why) => {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
if let Err(why) = file.write_all(s.as_bytes()) {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
|
||||
let file_path = dir_path.join("report.css");
|
||||
let mut file = match std::fs::File::create(&file_path) {
|
||||
Err(why) => {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(file) => file,
|
||||
};
|
||||
if let Err(why) = file.write_all(include_bytes!("report.css")) {
|
||||
return Err(CliError {
|
||||
message: format!("Issue writing to {}: {:?}", file_path.display(), why),
|
||||
});
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn percentage(count: usize, total: usize) -> String {
|
||||
format!("{:.1}%", (count as f32 * 100.0) / total as f32)
|
||||
}
|
||||
|
||||
fn create_html_index(now: String, hurl_results: Vec<HurlResult>) -> html::Html {
|
||||
let head = html::Head {
|
||||
title: "Hurl Report".to_string(),
|
||||
stylesheet: Some("report.css".to_string()),
|
||||
};
|
||||
|
||||
let count_total = hurl_results.len();
|
||||
let count_failure = hurl_results.iter().filter(|result| !result.success).count();
|
||||
let count_success = hurl_results.iter().filter(|result| result.success).count();
|
||||
|
||||
let body = html::Body {
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "h2".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("Hurl Report".to_string())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("summary".to_string())],
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("date".to_string())],
|
||||
children: vec![html::Element::TextElement(now)],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("count".to_string())],
|
||||
children: vec![html::Element::TextElement(format!(
|
||||
"total: {} (100%)",
|
||||
count_total
|
||||
))],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("count".to_string())],
|
||||
children: vec![html::Element::TextElement(format!(
|
||||
"failure: {} ({})",
|
||||
count_failure,
|
||||
percentage(count_failure, count_total)
|
||||
))],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "div".to_string(),
|
||||
attributes: vec![html::Attribute::Class("count".to_string())],
|
||||
children: vec![html::Element::TextElement(format!(
|
||||
"success: {} ({})",
|
||||
count_success,
|
||||
percentage(count_success, count_total)
|
||||
))],
|
||||
},
|
||||
],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "table".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![
|
||||
create_html_table_header(),
|
||||
create_html_table_body(hurl_results),
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
html::Html { head, body }
|
||||
}
|
||||
|
||||
fn create_html_table_header() -> html::Element {
|
||||
html::Element::NodeElement {
|
||||
name: "thead".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::NodeElement {
|
||||
name: "tr".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("filename".to_string())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("status".to_string())],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement("duration".to_string())],
|
||||
},
|
||||
],
|
||||
}],
|
||||
}
|
||||
}
|
||||
|
||||
fn create_html_table_body(hurl_results: Vec<HurlResult>) -> html::Element {
|
||||
let children = hurl_results
|
||||
.iter()
|
||||
.map(|result| create_html_result(result.clone()))
|
||||
.collect();
|
||||
|
||||
html::Element::NodeElement {
|
||||
name: "tbody".to_string(),
|
||||
attributes: vec![],
|
||||
children,
|
||||
}
|
||||
}
|
||||
|
||||
fn create_html_result(result: HurlResult) -> html::Element {
|
||||
let status = if result.success {
|
||||
"success".to_string()
|
||||
} else {
|
||||
"failure".to_string()
|
||||
};
|
||||
html::Element::NodeElement {
|
||||
name: "tr".to_string(),
|
||||
attributes: vec![html::Attribute::Class(status.clone())],
|
||||
children: vec![
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::NodeElement {
|
||||
name: "a".to_string(),
|
||||
attributes: vec![html::Attribute::Href(format!("{}.html", result.filename))],
|
||||
children: vec![html::Element::TextElement(result.filename.clone())],
|
||||
}],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement(status)],
|
||||
},
|
||||
html::Element::NodeElement {
|
||||
name: "td".to_string(),
|
||||
attributes: vec![],
|
||||
children: vec![html::Element::TextElement(format!(
|
||||
"{}s",
|
||||
result.time_in_ms as f64 / 1000.0
|
||||
))],
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_percentage() {
|
||||
assert_eq!(percentage(100, 100), "100.0%".to_string());
|
||||
assert_eq!(percentage(66, 99), "66.7%".to_string());
|
||||
assert_eq!(percentage(33, 99), "33.3%".to_string());
|
||||
}
|
||||
}
|
@ -6,11 +6,18 @@ thead {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.success {
|
||||
td {
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.summary {
|
||||
padding: 10px;
|
||||
}
|
||||
.success, .success a {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.failure {
|
||||
.failure, .failure a {
|
||||
color: red;
|
||||
}
|
||||
|
@ -17,5 +17,5 @@ strict = []
|
||||
[dependencies]
|
||||
float-cmp = "0.6.0"
|
||||
sxd-document = "0.3.2"
|
||||
|
||||
regex = "1.1.0"
|
||||
|
||||
|
@ -16,7 +16,8 @@
|
||||
*
|
||||
*/
|
||||
use super::core::Template;
|
||||
use crate::ast::Expr;
|
||||
use crate::ast::{Expr, JsonValue};
|
||||
use core::fmt;
|
||||
|
||||
///
|
||||
/// This the AST for the JSON used within hurl
|
||||
@ -24,7 +25,6 @@ use crate::ast::Expr;
|
||||
/// It is a superset of the standard json spec.
|
||||
/// Strings have been replaced by hurl template.
|
||||
///
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub enum Value {
|
||||
Expression(Expr),
|
||||
@ -72,3 +72,163 @@ pub struct ObjectElement {
|
||||
pub value: Value,
|
||||
pub space3: String,
|
||||
}
|
||||
|
||||
impl fmt::Display for JsonValue {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let s = match self {
|
||||
Value::Expression(expr) => format!("{{{{{}}}}}", expr.to_string()),
|
||||
Value::Number(s) => s.to_string(),
|
||||
Value::String(template) => format!("\"{}\"", template.to_string()),
|
||||
Value::Boolean(value) => {
|
||||
if *value {
|
||||
"true".to_string()
|
||||
} else {
|
||||
"false".to_string()
|
||||
}
|
||||
}
|
||||
Value::List { space0, elements } => {
|
||||
let elements = elements
|
||||
.iter()
|
||||
.map(|e| e.to_string())
|
||||
.collect::<Vec<String>>();
|
||||
format!("[{}{}]", space0, elements.join(","))
|
||||
}
|
||||
Value::Object { space0, elements } => {
|
||||
let elements = elements
|
||||
.iter()
|
||||
.map(|e| e.to_string())
|
||||
.collect::<Vec<String>>();
|
||||
format!("{{{}{}}}", space0, elements.join(","))
|
||||
}
|
||||
Value::Null { .. } => "null".to_string(),
|
||||
};
|
||||
write!(f, "{}", s)
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for ListElement {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let mut s = "".to_string();
|
||||
s.push_str(self.space0.as_str());
|
||||
s.push_str(self.value.to_string().as_str());
|
||||
s.push_str(self.space1.as_str());
|
||||
write!(f, "{}", s)
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for ObjectElement {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
let mut s = "".to_string();
|
||||
s.push_str(self.space0.as_str());
|
||||
s.push('"');
|
||||
s.push_str(self.name.as_str());
|
||||
s.push('"');
|
||||
s.push_str(self.space1.as_str());
|
||||
s.push(':');
|
||||
s.push_str(self.space2.as_str());
|
||||
s.push_str(self.value.to_string().as_str());
|
||||
s.push_str(self.space3.as_str());
|
||||
write!(f, "{}", s)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::ast::{SourceInfo, TemplateElement, Variable, Whitespace};
|
||||
|
||||
#[test]
|
||||
fn test_to_string() {
|
||||
assert_eq!(
|
||||
"{{x}}".to_string(),
|
||||
JsonValue::Expression(Expr {
|
||||
space0: Whitespace {
|
||||
value: "".to_string(),
|
||||
source_info: SourceInfo::init(0, 0, 0, 0)
|
||||
},
|
||||
variable: Variable {
|
||||
name: "x".to_string(),
|
||||
source_info: SourceInfo::init(0, 0, 0, 0)
|
||||
},
|
||||
space1: Whitespace {
|
||||
value: "".to_string(),
|
||||
source_info: SourceInfo::init(0, 0, 0, 0)
|
||||
}
|
||||
})
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
"1".to_string(),
|
||||
JsonValue::Number("1".to_string()).to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
"\"hello\"".to_string(),
|
||||
JsonValue::String(Template {
|
||||
quotes: false,
|
||||
elements: vec![TemplateElement::String {
|
||||
value: "hello".to_string(),
|
||||
encoded: "hello".to_string(),
|
||||
}],
|
||||
source_info: SourceInfo::init(0, 0, 0, 0),
|
||||
})
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!("true".to_string(), JsonValue::Boolean(true).to_string());
|
||||
assert_eq!(
|
||||
"[]".to_string(),
|
||||
JsonValue::List {
|
||||
space0: "".to_string(),
|
||||
elements: vec![]
|
||||
}
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
"[1, 2, 3]".to_string(),
|
||||
JsonValue::List {
|
||||
space0: "".to_string(),
|
||||
elements: vec![
|
||||
ListElement {
|
||||
space0: "".to_string(),
|
||||
value: JsonValue::Number("1".to_string()),
|
||||
space1: "".to_string(),
|
||||
},
|
||||
ListElement {
|
||||
space0: " ".to_string(),
|
||||
value: JsonValue::Number("2".to_string()),
|
||||
space1: "".to_string(),
|
||||
},
|
||||
ListElement {
|
||||
space0: " ".to_string(),
|
||||
value: JsonValue::Number("3".to_string()),
|
||||
space1: "".to_string(),
|
||||
}
|
||||
],
|
||||
}
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
"{}".to_string(),
|
||||
JsonValue::Object {
|
||||
space0: "".to_string(),
|
||||
elements: vec![]
|
||||
}
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!(
|
||||
"{ \"id\": 123 }".to_string(),
|
||||
JsonValue::Object {
|
||||
space0: "".to_string(),
|
||||
elements: vec![ObjectElement {
|
||||
space0: " ".to_string(),
|
||||
name: "id".to_string(),
|
||||
space1: "".to_string(),
|
||||
space2: " ".to_string(),
|
||||
value: JsonValue::Number("123".to_string()),
|
||||
space3: " ".to_string()
|
||||
}]
|
||||
}
|
||||
.to_string()
|
||||
);
|
||||
assert_eq!("null".to_string(), JsonValue::Null {}.to_string());
|
||||
}
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
use super::text::format_token;
|
||||
use super::Tokenizable;
|
||||
use hurl_core::ast::*;
|
||||
//use hurlfmt::format::text::format_token;
|
||||
//use hurlfmt::format::token::Tokenizable;
|
||||
use crate::ast::*;
|
||||
|
||||
pub trait Htmlable {
|
||||
fn to_html(&self) -> String;
|
||||
@ -704,12 +704,9 @@ fn xml_escape(s: String) -> String {
|
||||
.replace('&', "&")
|
||||
}
|
||||
|
||||
impl Htmlable for hurl_core::ast::JsonValue {
|
||||
impl Htmlable for JsonValue {
|
||||
fn to_html(&self) -> String {
|
||||
let mut s = String::from("");
|
||||
for token in self.tokenize() {
|
||||
s.push_str(format_token(token, false).as_str());
|
||||
}
|
||||
let s = self.to_string();
|
||||
let mut lines: Vec<String> = regex::Regex::new(r"\n|\r\n")
|
||||
.unwrap()
|
||||
.split(s.as_str())
|
21
packages/hurl_core/src/format/mod.rs
Normal file
21
packages/hurl_core/src/format/mod.rs
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* hurl (https://hurl.dev)
|
||||
* Copyright (C) 2020 Orange
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
pub use self::html::format as format_html;
|
||||
|
||||
mod html;
|
@ -21,4 +21,5 @@ extern crate float_cmp;
|
||||
|
||||
pub mod ast;
|
||||
pub mod error;
|
||||
pub mod format;
|
||||
pub mod parser;
|
||||
|
@ -16,12 +16,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
pub use self::html::format as format_html;
|
||||
pub use self::json::format as format_json;
|
||||
pub use self::text::format as format_text;
|
||||
pub use self::token::{Token, Tokenizable};
|
||||
|
||||
mod html;
|
||||
mod json;
|
||||
mod serialize_json;
|
||||
mod text;
|
||||
|
@ -221,7 +221,7 @@ fn main() {
|
||||
"json" => format::format_json(hurl_file),
|
||||
"html" => {
|
||||
let standalone = matches.is_present("standalone");
|
||||
format::format_html(hurl_file, standalone)
|
||||
hurl_core::format::format_html(hurl_file, standalone)
|
||||
}
|
||||
"ast" => format!("{:#?}", hurl_file),
|
||||
_ => {
|
||||
|
Loading…
Reference in New Issue
Block a user