diff --git a/integration/report/html/index.html b/integration/report/html/index.html index 707ac5628..bf4934aaf 100644 --- a/integration/report/html/index.html +++ b/integration/report/html/index.html @@ -1,2 +1,2 @@ -Hurl Report

Hurl Report

Thu, 15 Oct 2020 08:23:41 +0200
filenameduration
tests/assert_base64.hurl0.005s
tests/assert_header.hurl0.006s
tests/assert_json.hurl0.011s
tests/assert_match.hurl0.02s
tests/assert_regex.hurl0.008s
tests/assert_xpath.hurl0.006s
tests/bytes.hurl0.005s
tests/capture_and_assert.hurl0.005s
tests/captures.hurl0.011s
tests/compressed.hurl0.011s
tests/cookies.hurl0.018s
tests/cookie_storage.hurl0.007s
tests/delete.hurl0.005s
tests/empty.hurl0s
tests/encoding.hurl0.008s
tests/error_assert_base64.hurl0.005s
tests/error_assert_decompress.hurl0.006s
tests/error_assert_file.hurl0.005s
tests/error_assert_header_not_found.hurl0.006s
tests/error_assert_header_value.hurl0.006s
tests/error_assert_http_version.hurl0.005s
tests/error_assert_invalid_predicate_type.hurl0.007s
tests/error_assert_match_utf8.hurl0.005s
tests/error_assert_query_cookie.hurl0.009s
tests/error_assert_query_invalid_regex.hurl0.006s
tests/error_assert_query_invalid_xpath.hurl0.006s
tests/error_assert_status.hurl0.005s
tests/error_assert_template_variable_not_found.hurl0.006s
tests/error_assert_value_error.hurl0.009s
tests/error_assert_variable.hurl0.008s
tests/error_file_read_access.hurl0s
tests/error_http_connection.hurl0.012s
tests/error_invalid_jsonpath.hurl0.006s
tests/error_invalid_url.hurl0s
tests/error_invalid_xml.hurl0.005s
tests/error_multipart_form_data.hurl0s
tests/error_output_decompress.hurl0.005s
tests/error_predicate.hurl0.018s
tests/error_query_header_not_found.hurl0.005s
tests/error_query_invalid_json.hurl0.006s
tests/error_query_invalid_utf8.hurl0.005s
tests/error_template_variable_not_found.hurl0s
tests/error_template_variable_not_renderable.hurl0.006s
tests/error_timeout.hurl2.007s
tests/follow_redirect.hurl0.006s
tests/form_params.hurl0.008s
tests/headers.hurl0.014s
tests/hello.hurl0.007s
tests/multipart_form_data.hurl0.006s
tests/no_entry.hurl0s
tests/output.hurl0.008s
tests/patch.hurl0.006s
tests/post_base64.hurl0.006s
tests/post_file.hurl0.005s
tests/post_json.hurl0.017s
tests/post_multilines.hurl0.009s
tests/post_xml.hurl0.007s
tests/predicates-string.hurl0.008s
tests/put.hurl0.005s
tests/querystring_params.hurl0.011s
tests/redirect.hurl0.007s
tests/utf8.hurl0.006s
\ No newline at end of file +Hurl Report

Hurl Report

Mon, 19 Oct 2020 14:29:31 +0200
filenameduration
tests/assert_base64.hurl0.005s
tests/assert_header.hurl0.006s
tests/assert_json.hurl0.012s
tests/assert_match.hurl0.02s
tests/assert_regex.hurl0.008s
tests/assert_xpath.hurl0.006s
tests/bytes.hurl0.005s
tests/capture_and_assert.hurl0.006s
tests/captures.hurl0.012s
tests/compressed.hurl0.011s
tests/cookies.hurl0.019s
tests/cookie_storage.hurl0.007s
tests/delete.hurl0.005s
tests/empty.hurl0s
tests/encoding.hurl0.007s
tests/error_assert_base64.hurl0.006s
tests/error_assert_decompress.hurl0.006s
tests/error_assert_file.hurl0.005s
tests/error_assert_header_not_found.hurl0.005s
tests/error_assert_header_value.hurl0.005s
tests/error_assert_http_version.hurl0.006s
tests/error_assert_invalid_predicate_type.hurl0.006s
tests/error_assert_match_utf8.hurl0.005s
tests/error_assert_query_cookie.hurl0.009s
tests/error_assert_query_invalid_regex.hurl0.006s
tests/error_assert_query_invalid_xpath.hurl0.006s
tests/error_assert_status.hurl0.01s
tests/error_assert_template_variable_not_found.hurl0.006s
tests/error_assert_value_error.hurl0.01s
tests/error_assert_variable.hurl0.009s
tests/error_file_read_access.hurl0s
tests/error_http_connection.hurl0.06s
tests/error_invalid_jsonpath.hurl0.005s
tests/error_invalid_url.hurl0s
tests/error_invalid_xml.hurl0.005s
tests/error_multipart_form_data.hurl0s
tests/error_output_decompress.hurl0.005s
tests/error_predicate.hurl0.017s
tests/error_query_header_not_found.hurl0.005s
tests/error_query_invalid_json.hurl0.005s
tests/error_query_invalid_utf8.hurl0.006s
tests/error_template_variable_not_found.hurl0s
tests/error_template_variable_not_renderable.hurl0.006s
tests/error_timeout.hurl2.006s
tests/follow_redirect.hurl0.006s
tests/form_params.hurl0.008s
tests/headers.hurl0.014s
tests/hello.hurl0.007s
tests/multipart_form_data.hurl0.006s
tests/no_entry.hurl0s
tests/output.hurl0.007s
tests/patch.hurl0.006s
tests/post_base64.hurl0.005s
tests/post_file.hurl0.005s
tests/post_json.hurl0.018s
tests/post_multilines.hurl0.009s
tests/post_xml.hurl0.007s
tests/predicates-string.hurl0.008s
tests/put.hurl0.005s
tests/querystring_params.hurl0.011s
tests/redirect.hurl0.007s
tests/utf8.hurl0.006s
\ No newline at end of file diff --git a/integration/report/tests.json b/integration/report/tests.json index b2340680c..bf6f94491 100644 --- a/integration/report/tests.json +++ b/integration/report/tests.json @@ -30,7 +30,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -113,7 +113,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -135,7 +135,7 @@ {}, {} ], - "time": 5 + "time": 6 } ], "success": true, @@ -201,7 +201,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -224,6 +224,7 @@ {}, {}, {}, + {}, {} ], "time": 5 @@ -256,7 +257,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -303,7 +304,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -323,7 +324,7 @@ } ], "success": true, - "time": 11, + "time": 12, "cookies": [] }, { @@ -357,7 +358,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -411,7 +412,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -463,7 +464,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -517,7 +518,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -568,7 +569,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -590,7 +591,7 @@ } ], "success": true, - "time": 5, + "time": 6, "cookies": [] }, { @@ -632,7 +633,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -655,7 +656,7 @@ {}, {} ], - "time": 5 + "time": 6 }, { "request": { @@ -694,7 +695,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -736,7 +737,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -813,7 +814,7 @@ } ], "success": true, - "time": 11, + "time": 12, "cookies": [] }, { @@ -847,7 +848,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -896,7 +897,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -946,7 +947,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -996,7 +997,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1055,7 +1056,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1097,7 +1098,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1149,7 +1150,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1192,7 +1193,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1239,7 +1240,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1269,7 +1270,7 @@ { "name": "cookie2", "value": "", - "expires": "Thu, 15-Oct-2020 06:23:38 GMT", + "expires": "Mon, 19-Oct-2020 12:29:28 GMT", "max_age": 0, "path": "/" } @@ -1281,7 +1282,7 @@ }, { "name": "Set-Cookie", - "value": "cookie2=; Expires=Thu, 15-Oct-2020 06:23:38 GMT; Max-Age=0; Path=/" + "value": "cookie2=; Expires=Mon, 19-Oct-2020 12:29:28 GMT; Max-Age=0; Path=/" }, { "name": "Content-Length", @@ -1293,7 +1294,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1337,7 +1338,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1417,7 +1418,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1447,14 +1448,14 @@ } ], "success": true, - "time": 18, + "time": 19, "cookies": [ { "domain": "localhost", "include_subdomain": "FALSE", "path": "/", "https": "FALSE", - "expires": "1602743018", + "expires": "1603110568", "name": "cookie2", "value": "" }, @@ -1500,7 +1501,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1542,7 +1543,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1592,7 +1593,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1649,7 +1650,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1693,7 +1694,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1711,7 +1712,7 @@ } ], "success": true, - "time": 8, + "time": 7, "cookies": [] }, { @@ -1745,7 +1746,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1758,11 +1759,11 @@ {}, {} ], - "time": 5 + "time": 6 } ], "success": false, - "time": 5, + "time": 6, "cookies": [] }, { @@ -1800,7 +1801,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1851,7 +1852,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1902,7 +1903,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1919,7 +1920,7 @@ } ], "success": false, - "time": 6, + "time": 5, "cookies": [] }, { @@ -1953,7 +1954,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -1970,7 +1971,7 @@ } ], "success": false, - "time": 6, + "time": 5, "cookies": [] }, { @@ -2004,7 +2005,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2020,7 +2021,7 @@ } ], "success": false, - "time": 5, + "time": 6, "cookies": [] }, { @@ -2054,7 +2055,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2071,7 +2072,7 @@ } ], "success": false, - "time": 7, + "time": 6, "cookies": [] }, { @@ -2105,7 +2106,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2176,7 +2177,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2190,6 +2191,8 @@ {}, {}, {}, + {}, + {}, {} ], "time": 5 @@ -2249,7 +2252,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2300,7 +2303,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:28 GMT" } ] }, @@ -2351,7 +2354,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2363,11 +2366,11 @@ }, {} ], - "time": 5 + "time": 10 } ], "success": false, - "time": 5, + "time": 10, "cookies": [] }, { @@ -2401,7 +2404,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2452,7 +2455,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2465,13 +2468,14 @@ {}, {}, {}, + {}, {} ], "time": 5 } ], "success": false, - "time": 9, + "time": 10, "cookies": [] }, { @@ -2505,7 +2509,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2538,7 +2542,7 @@ } ], "success": false, - "time": 8, + "time": 9, "cookies": [] }, { @@ -2572,7 +2576,7 @@ } ], "success": false, - "time": 12, + "time": 60, "cookies": [] }, { @@ -2606,7 +2610,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2623,7 +2627,7 @@ } ], "success": false, - "time": 6, + "time": 5, "cookies": [] }, { @@ -2678,7 +2682,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2746,7 +2750,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2796,7 +2800,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2823,7 +2827,7 @@ } ], "success": false, - "time": 18, + "time": 17, "cookies": [] }, { @@ -2857,7 +2861,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2908,7 +2912,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2925,7 +2929,7 @@ } ], "success": false, - "time": 6, + "time": 5, "cookies": [] }, { @@ -2959,7 +2963,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -2976,7 +2980,7 @@ } ], "success": false, - "time": 5, + "time": 6, "cookies": [] }, { @@ -3023,7 +3027,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:38 GMT" + "value": "Mon, 19 Oct 2020 12:29:29 GMT" } ] }, @@ -3087,17 +3091,17 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, "captures": [], "asserts": [], - "time": 2007 + "time": 2006 } ], "success": true, - "time": 2007, + "time": 2006, "cookies": [] }, { @@ -3135,7 +3139,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3204,7 +3208,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3216,7 +3220,7 @@ }, {} ], - "time": 6 + "time": 5 }, { "request": { @@ -3251,7 +3255,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3301,7 +3305,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3352,7 +3356,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3403,7 +3407,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3466,7 +3470,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3513,7 +3517,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3559,7 +3563,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3610,7 +3614,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3653,7 +3657,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3704,7 +3708,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3773,7 +3777,7 @@ }, {} ], - "time": 6 + "time": 5 }, { "request": { @@ -3819,7 +3823,7 @@ } ], "success": true, - "time": 8, + "time": 7, "cookies": [] }, { @@ -3870,7 +3874,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3922,7 +3926,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -3938,7 +3942,7 @@ } ], "success": true, - "time": 6, + "time": 5, "cookies": [] }, { @@ -3972,7 +3976,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4022,7 +4026,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4064,7 +4068,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4106,7 +4110,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4148,7 +4152,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4190,7 +4194,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4232,7 +4236,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4274,7 +4278,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4321,7 +4325,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4331,7 +4335,7 @@ } ], "success": true, - "time": 17, + "time": 18, "cookies": [] }, { @@ -4365,7 +4369,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4407,7 +4411,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4454,7 +4458,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4504,7 +4508,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4546,7 +4550,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:40 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4596,7 +4600,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4642,7 +4646,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4694,7 +4698,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4761,7 +4765,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4773,7 +4777,7 @@ }, {} ], - "time": 5 + "time": 6 }, { "request": { @@ -4803,7 +4807,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4858,7 +4862,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4905,7 +4909,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -4959,7 +4963,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -5002,7 +5006,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, @@ -5052,7 +5056,7 @@ }, { "name": "Date", - "value": "Thu, 15 Oct 2020 06:23:41 GMT" + "value": "Mon, 19 Oct 2020 12:29:31 GMT" } ] }, diff --git a/integration/tests/assert_json.hurl b/integration/tests/assert_json.hurl index 33a4ccbdf..cf5519558 100644 --- a/integration/tests/assert_json.hurl +++ b/integration/tests/assert_json.hurl @@ -2,7 +2,8 @@ GET http://localhost:8000/assert-json HTTP/1.0 200 [Asserts] jsonpath "$.success" equals false -jsonpath "$.success" equals false +jsonpath "$.success" not equals null +jsonpath "$.success" exists jsonpath "$.errors" countEquals 2 jsonpath "$.warnings" countEquals 0 jsonpath "$.toto" not exists diff --git a/integration/tests/error_assert_query_cookie.err b/integration/tests/error_assert_query_cookie.err index 712c78ea4..5f2c2c94a 100644 --- a/integration/tests/error_assert_query_cookie.err +++ b/integration/tests/error_assert_query_cookie.err @@ -1,16 +1,26 @@ error: Assert Failure - --> tests/error_assert_query_cookie.hurl:4:0 + --> tests/error_assert_query_cookie.hurl:7:0 | - 4 | cookie "cookie1[Secure]" equals false # This is not valid, Secure attribute exists or not but does have a value + 7 | cookie "cookie1[Secure]" equals false # This is not valid, Secure attribute exists or not but does have a value | actual: none | expected: bool | error: Assert Failure - --> tests/error_assert_query_cookie.hurl:6:0 + --> tests/error_assert_query_cookie.hurl:11:0 | - 6 | cookie "cookie2[Secure]" equals true # This is not valid, Secure attribute exists or not but does have a value +11 | cookie "cookie2[Secure]" equals true # This is not valid, Secure attribute exists or not but does have a value | actual: unit | expected: bool + | >>> types between actual and expected are not consistent + | + +error: Assert Failure + --> tests/error_assert_query_cookie.hurl:12:0 + | +12 | cookie "cookie2[Secure]" not equals true # This is not valid, Secure attribute exists or not but does have a value + | actual: unit + | expected: not bool + | >>> types between actual and expected are not consistent | diff --git a/integration/tests/error_assert_query_cookie.hurl b/integration/tests/error_assert_query_cookie.hurl index debaa443e..2cf7cb7c3 100644 --- a/integration/tests/error_assert_query_cookie.hurl +++ b/integration/tests/error_assert_query_cookie.hurl @@ -1,8 +1,15 @@ GET http://localhost:8000/error-assert-query-cookie HTTP/1.0 200 -[Asserts] -cookie "cookie1[Secure]" equals false # This is not valid, Secure attribute exists or not but does have a value -cookie "cookie1[Secure]" not exists -cookie "cookie2[Secure]" equals true # This is not valid, Secure attribute exists or not but does have a value -cookie "cookie2[Secure]" exists + +[Asserts] + +cookie "cookie1[Secure]" not exists +cookie "cookie1[Secure]" equals false # This is not valid, Secure attribute exists or not but does have a value +cookie "cookie1[Secure]" not equals true + +cookie "cookie2[Secure]" exists +cookie "cookie2[Secure]" equals true # This is not valid, Secure attribute exists or not but does have a value +cookie "cookie2[Secure]" not equals true # This is not valid, Secure attribute exists or not but does have a value + + diff --git a/integration/tests/error_assert_value_error.err b/integration/tests/error_assert_value_error.err index 57c5fa622..68e646dff 100644 --- a/integration/tests/error_assert_value_error.err +++ b/integration/tests/error_assert_value_error.err @@ -22,3 +22,12 @@ error: Assert Failure | expected: includes int <100> | +error: Assert Failure + --> tests/error_assert_value_error.hurl:7:0 + | + 7 | jsonpath "$.values" not contains "Hello" + | actual: [int <1>, int <2>, int <3>] + | expected: not contains string + | >>> types between actual and expected are not consistent + | + diff --git a/integration/tests/error_assert_value_error.hurl b/integration/tests/error_assert_value_error.hurl index df2af6425..bc9ecbd0a 100644 --- a/integration/tests/error_assert_value_error.hurl +++ b/integration/tests/error_assert_value_error.hurl @@ -4,4 +4,4 @@ HTTP/1.0 200 header "content-type" equals "XXX" jsonpath "$.id" equals "000001" jsonpath "$.values" includes 100 - +jsonpath "$.values" not contains "Hello" diff --git a/integration/tests/error_predicate.err b/integration/tests/error_predicate.err index cd2851f0a..a5bbd900b 100644 --- a/integration/tests/error_predicate.err +++ b/integration/tests/error_predicate.err @@ -68,6 +68,7 @@ error: Assert Failure 13 | jsonpath "$.message" countEquals 1 | actual: string <0> | expected: count equals to <1> + | >>> types between actual and expected are not consistent | error: Assert Failure diff --git a/src/cli/error.rs b/src/cli/error.rs index e2a614312..df7554711 100644 --- a/src/cli/error.rs +++ b/src/cli/error.rs @@ -189,8 +189,18 @@ impl Error for runner::Error { format!("The charset '{}' is not valid", charset) } RunnerError::AssertFailure { - actual, expected, .. - } => format!("actual: {}\nexpected: {}", actual, expected), + actual, + expected, + type_mismatch, + .. + } => { + let additional = if *type_mismatch { + "\n>>> types between actual and expected are not consistent" + } else { + "" + }; + format!("actual: {}\nexpected: {}{}", actual, expected, additional) + } RunnerError::VariableNotDefined { name } => { format!("You must set the variable {}", name) } diff --git a/src/runner/predicate.rs b/src/runner/predicate.rs index 3a038c832..516571c68 100644 --- a/src/runner/predicate.rs +++ b/src/runner/predicate.rs @@ -38,11 +38,13 @@ impl Predicate { }, }; if assert_result.type_mismatch { + let not = if self.not { "not " } else { "" }; + let expected = format!("{}{}", not, assert_result.expected); Err(Error { source_info, inner: RunnerError::AssertFailure { actual: assert_result.actual, - expected: assert_result.expected, + expected, type_mismatch: true, }, assert: true, @@ -112,12 +114,12 @@ impl PredicateFunc { ) -> Result { match optional_value { None => { - let type_mismatch = !matches!(self.value, PredicateFuncValue::Exist {}); + //let type_mismatch = !matches!(self.value, PredicateFuncValue::Exist {}); Ok(AssertResult { success: false, actual: "none".to_string(), expected: self.expected(variables)?, - type_mismatch, + type_mismatch: false, }) } Some(value) => self.eval_something(variables, value), @@ -454,12 +456,18 @@ fn assert_values_equal(actual: Value, expected: Value) -> Result Ok(AssertResult { + (Value::Unit, _) => Ok(AssertResult { success: false, actual: actual.display(), expected: expected.display(), type_mismatch: true, }), + _ => Ok(AssertResult { + success: false, + actual: actual.display(), + expected: expected.display(), + type_mismatch: false, + }), } } @@ -495,6 +503,13 @@ fn assert_include(value: Value, element: Value) -> Result { mod tests { use super::*; + fn whitespace() -> Whitespace { + Whitespace { + value: String::from(" "), + source_info: SourceInfo::init(0, 0, 0, 0), + } + } + #[test] fn test_invalid_xpath() {} @@ -502,7 +517,7 @@ mod tests { fn test_predicate() { // not equals 10 with value 1 OK // not equals 10 with value 10 ValueError - // not equals 10 with value true TypeError + // not equals 10 with value true => this is now valid let variables = HashMap::new(); let whitespace = Whitespace { value: String::from(" "), @@ -521,20 +536,10 @@ mod tests { }, }; - let error = predicate + assert!(predicate .clone() .eval(&variables, Some(Value::Bool(true))) - .err() - .unwrap(); - assert_eq!( - error.inner, - RunnerError::AssertFailure { - actual: "bool ".to_string(), - expected: "int <10>".to_string(), - type_mismatch: true, - } - ); - assert_eq!(error.source_info, SourceInfo::init(1, 0, 1, 0)); + .is_ok()); let error = predicate .clone() @@ -571,7 +576,7 @@ mod tests { .eval(&variables, Some(Value::Bool(true))) .unwrap(); assert_eq!(assert_result.success, false); - assert_eq!(assert_result.type_mismatch, true); + assert_eq!(assert_result.type_mismatch, false); assert_eq!(assert_result.actual.as_str(), "bool "); assert_eq!(assert_result.expected.as_str(), "int <10>"); } @@ -597,6 +602,7 @@ mod tests { assert_eq!(assert_result.actual.as_str(), "unit"); assert_eq!(assert_result.expected.as_str(), "int <10>"); } + #[test] fn test_predicate_value_error() { let variables = HashMap::new(); @@ -908,4 +914,94 @@ mod tests { assert_eq!(assert_result.actual.as_str(), "nodeset of size <1>"); assert_eq!(assert_result.expected.as_str(), "count equals to <1>"); } + + #[test] + fn test_predicate_not_with_different_types() { + // equals predicate does not generate a type error with an integer value + let predicate = Predicate { + not: true, + space0: whitespace(), + predicate_func: PredicateFunc { + source_info: SourceInfo::init(0, 0, 0, 0), + value: PredicateFuncValue::EqualNull { + space0: whitespace(), + }, + }, + }; + + let variables = HashMap::new(); + assert!(predicate.eval(&variables, Some(Value::Integer(1))).is_ok()); + //assert!(predicate.eval(&variables, None).is_ok()); + + // startswith predicate generates a type error with an integer value + let predicate = Predicate { + not: true, + space0: whitespace(), + predicate_func: PredicateFunc { + source_info: SourceInfo::init(0, 0, 0, 0), + value: PredicateFuncValue::StartWith { + space0: whitespace(), + value: Template { + quotes: false, + elements: vec![TemplateElement::String { + value: "toto".to_string(), + encoded: "toto".to_string(), + }], + source_info: SourceInfo::init(0, 0, 0, 0), + }, + }, + }, + }; + let error = predicate + .eval(&variables, Some(Value::Integer(1))) + .err() + .unwrap(); + assert_eq!( + error.inner, + RunnerError::AssertFailure { + actual: "int <1>".to_string(), + expected: "not starts with string ".to_string(), + type_mismatch: true + } + ); + } + + #[test] + fn test_no_type_mismatch_with_none_value() { + let predicate = Predicate { + not: false, + space0: whitespace(), + predicate_func: PredicateFunc { + source_info: SourceInfo::init(0, 0, 0, 0), + value: PredicateFuncValue::EqualNull { + space0: whitespace(), + }, + }, + }; + + let variables = HashMap::new(); + let error = predicate.eval(&variables, None).err().unwrap(); + assert_eq!( + error.inner, + RunnerError::AssertFailure { + actual: "none".to_string(), + expected: "null".to_string(), + type_mismatch: false + } + ); + + let predicate = Predicate { + not: true, + space0: whitespace(), + predicate_func: PredicateFunc { + source_info: SourceInfo::init(0, 0, 0, 0), + value: PredicateFuncValue::EqualNull { + space0: whitespace(), + }, + }, + }; + + let variables = HashMap::new(); + assert!(predicate.eval(&variables, None).is_ok()); + } }