diff --git a/integration/hurl/tests_ok/compressed.ps1 b/integration/hurl/tests_ok/compressed.ps1 index 271e0742e..8324b1df7 100644 --- a/integration/hurl/tests_ok/compressed.ps1 +++ b/integration/hurl/tests_ok/compressed.ps1 @@ -1,3 +1,4 @@ Set-StrictMode -Version latest $ErrorActionPreference = 'Stop' -hurl tests_ok/compressed.hurl --compressed --verbose + +hurl --compressed tests_ok/compressed.hurl diff --git a/integration/hurl/tests_ok/compressed.sh b/integration/hurl/tests_ok/compressed.sh index 6927bc3a7..421739e9a 100755 --- a/integration/hurl/tests_ok/compressed.sh +++ b/integration/hurl/tests_ok/compressed.sh @@ -1,3 +1,4 @@ #!/bin/bash set -Eeuo pipefail -hurl tests_ok/compressed.hurl --compressed --verbose + +hurl --compressed tests_ok/compressed.hurl diff --git a/integration/hurl/tests_ok/query_cache.html.gz b/integration/hurl/tests_ok/query_cache.html.gz new file mode 100644 index 000000000..e03734b21 Binary files /dev/null and b/integration/hurl/tests_ok/query_cache.html.gz differ diff --git a/integration/hurl/tests_ok/query_cache.hurl b/integration/hurl/tests_ok/query_cache.hurl new file mode 100644 index 000000000..5b71aa277 --- /dev/null +++ b/integration/hurl/tests_ok/query_cache.hurl @@ -0,0 +1,210 @@ +# This file test that response are parsed only once even if there +# is multiple XPath asserts. +GET http://localhost:8000/large/html +HTTP 200 +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 +[Asserts] +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + + +# Captures query should be cached also +GET http://localhost:8000/large/html +HTTP 200 +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 +[Captures] +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + + +# Captures and asserts should share their query cache. +GET http://localhost:8000/large/html +HTTP 200 +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 +[Captures] +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +var1: xpath "//h1" count +var2: xpath "//h2" count +var3: xpath "//h3" count +var4: xpath "//h4" count +var5: xpath "//p" count +var6: xpath "//a" count + +[Asserts] +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + +xpath "//h1" count == 1 +xpath "//h2" count == 6 +xpath "//h3" count == 10 +xpath "//h4" count == 0 +xpath "//p" count == 397 +xpath "//a" count == 3364 + + +# A call without explicit asserts to give a comparison for the first call. +GET http://localhost:8000/large/html +HTTP 200 +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 diff --git a/integration/hurl/tests_ok/query_cache.json.gz b/integration/hurl/tests_ok/query_cache.json.gz new file mode 100644 index 000000000..deb53a42f Binary files /dev/null and b/integration/hurl/tests_ok/query_cache.json.gz differ diff --git a/integration/hurl/tests_ok/query_cache.ps1 b/integration/hurl/tests_ok/query_cache.ps1 new file mode 100644 index 000000000..8ea5e1f73 --- /dev/null +++ b/integration/hurl/tests_ok/query_cache.ps1 @@ -0,0 +1,4 @@ +Set-StrictMode -Version latest +$ErrorActionPreference = 'Stop' + +hurl --no-output tests_ok/query_cache.hurl diff --git a/integration/hurl/tests_ok/query_cache.py b/integration/hurl/tests_ok/query_cache.py new file mode 100644 index 000000000..3793936a7 --- /dev/null +++ b/integration/hurl/tests_ok/query_cache.py @@ -0,0 +1,10 @@ +from app import app +from flask import Response, make_response + + +@app.route("/large/html") +def large_html(): + data = open("tests_ok/query_cache.html.gz", "rb") + resp = make_response(data) + resp.headers["Content-Encoding"] = "gzip" + return resp diff --git a/integration/hurl/tests_ok/query_cache.sh b/integration/hurl/tests_ok/query_cache.sh new file mode 100755 index 000000000..bbec41ffc --- /dev/null +++ b/integration/hurl/tests_ok/query_cache.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -Eeuo pipefail + +hurl --no-output tests_ok/query_cache.hurl diff --git a/integration/hurl/tests_ok/querystring_params.ps1 b/integration/hurl/tests_ok/querystring_params.ps1 index c6b29470c..0d71ac40a 100644 --- a/integration/hurl/tests_ok/querystring_params.ps1 +++ b/integration/hurl/tests_ok/querystring_params.ps1 @@ -1,3 +1,4 @@ Set-StrictMode -Version latest $ErrorActionPreference = 'Stop' -hurl tests_ok/querystring_params.hurl --verbose + +hurl tests_ok/querystring_params.hurl diff --git a/integration/hurl/tests_ok/querystring_params.sh b/integration/hurl/tests_ok/querystring_params.sh index db8cda2f8..479928fe0 100755 --- a/integration/hurl/tests_ok/querystring_params.sh +++ b/integration/hurl/tests_ok/querystring_params.sh @@ -1,3 +1,3 @@ #!/bin/bash set -Eeuo pipefail -hurl tests_ok/querystring_params.hurl --verbose +hurl tests_ok/querystring_params.hurl