Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libs/zbxsysinfo/common/web_page_get.yaml')
-rw-r--r--tests/libs/zbxsysinfo/common/web_page_get.yaml1012
1 files changed, 1012 insertions, 0 deletions
diff --git a/tests/libs/zbxsysinfo/common/web_page_get.yaml b/tests/libs/zbxsysinfo/common/web_page_get.yaml
new file mode 100644
index 00000000000..82be2c9ff5b
--- /dev/null
+++ b/tests/libs/zbxsysinfo/common/web_page_get.yaml
@@ -0,0 +1,1012 @@
+---
+test case: 'Regular 127.0.0.1'
+in:
+ key: 'web.page.get[127.0.0.1]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'Regular 127.0.0.1,'
+in:
+ key: 'web.page.get[127.0.0.1, ]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'Regular 127.0.0.1, ,80'
+in:
+ key: 'web.page.get[127.0.0.1, ,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'Regular 127.0.0.1, /,80'
+in:
+ key: 'web.page.get[127.0.0.1, /,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'Regular 127.0.0.1, zabbix,80'
+in:
+ key: 'web.page.get[127.0.0.1, zabbix,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /zabbix HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/zabbix"
+---
+test case: 'Regular 127.0.0.1,zabbix'
+in:
+ key: 'web.page.get[127.0.0.1,zabbix ]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /zabbix HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/zabbix "
+---
+test case: 'Regular 127.0.0.1,/zabbix'
+in:
+ key: 'web.page.get[127.0.0.1,/zabbix ]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /zabbix HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/zabbix "
+---
+test case: 'Regular 127.0.0.1,zabbix,80'
+in:
+ key: 'web.page.get[127.0.0.1,/zabbix ,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /zabbix HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/zabbix "
+---
+test case: 'Injection 127.0\r\n.0.1'
+in:
+ key: "web.page.get[127.0\r\n.0.1]"
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Incorrect hostname expression. Check hostname part after: 127.0.'
+---
+test case: 'Injection \r\n127.0\r\n.0.1'
+in:
+ key: "web.page.get[\r\n127.0\r\n.0.1]"
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Incorrect hostname expression. Check hostname part after: .'
+---
+test case: 'Injection 127.0.0.1,zabbi\r\n\r\n\r\nx'
+in:
+ key: "web.page.get[127.0.0.1,zabbi\r\n\r\n\r\nx]"
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Incorrect path expression. Check path part after: zabbi.'
+---
+test case: 'Injection 127.0.0.1,\r\n\r\n/zabbi\r\n\r\n\r\nx,80'
+in:
+ key: "web.page.get[127.0.0.1,\r\n\r\n/zabbi\r\n\r\n\r\nx,80]"
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Incorrect path expression. Check path part after: .'
+---
+test case: 'HTTPS URL [https://www.example.com:443/some_path]'
+in:
+ key: 'web.page.get[https://www.example.com:443/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "https://www.example.com:443/some_path"
+---
+test case: 'HTTPS URL [https://www.example.com:443/some_path]; legacy'
+in:
+ key: 'web.page.get[https://www.example.com:443/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: https.'
+---
+test case: 'HTTPS URL, "path" parameter is set [https://www.example.com:443/some_path,some_path]'
+in:
+ key: 'web.page.get[https://www.example.com:443/some_path,some_path]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Parameters "path" and "port" must be empty if URL is specified in "host".'
+---
+test case: 'HTTPS URL, "port" parameter is set [https://www.example.com/some_path,,80]'
+in:
+ key: 'web.page.get[https://www.example.com/some_path,,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Parameters "path" and "port" must be empty if URL is specified in "host".'
+---
+test case: 'Domain name [www.example.com]'
+in:
+ key: 'web.page.get[www.example.com]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80/"
+---
+test case: 'Domain name, "path" and "port" parameters are set [www.example.com,/some_path,80]'
+in:
+ key: 'web.page.get[www.example.com,/some_path,80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /some_path HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80/some_path"
+---
+test case: 'Domain name, "path" parameter is set [www.example.com,some_path]'
+in:
+ key: 'web.page.get[www.example.com,some_path]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /some_path HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80/some_path"
+---
+test case: 'URL with userinfo [user@example.com]'
+in:
+ key: 'web.page.get[user@example.com]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://user@example.com"
+---
+test case: 'URL with userinfo [user@example.com]; legacy'
+in:
+ key: 'web.page.get[user@example.com]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported URL format.'
+---
+test case: 'HTTPS URL with userinfo [https://user@example.com]'
+in:
+ key: 'web.page.get[https://user@example.com]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "https://user@example.com"
+---
+test case: 'HTTPS URL with userinfo [https://user@example.com]; legacy'
+in:
+ key: 'web.page.get[https://user@example.com]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: https.'
+---
+test case: 'Invalid URL [http:/www.example.com]'
+in:
+ key: 'web.page.get[http:/www.example.com]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://http:/www.example.com"
+---
+test case: 'Invalid URL [http:/www.example.com]; legacy'
+in:
+ key: 'web.page.get[http:/www.example.com]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'HTTP URL ["http://[ff00::ff00:ff00:ff00:ff00]:80/trunk"]'
+in:
+ key: 'web.page.get["http://[ff00::ff00:ff00:ff00:ff00]:80/trunk"]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /trunk HTTP/1.1\r\nHost: [ff00::ff00:ff00:ff00:ff00]\r\nConnection: close\r\n\r\n"
+ url: "http://[ff00::ff00:ff00:ff00:ff00]:80/trunk"
+---
+test case: 'HTTP URL ["http://[::1]:80/trunk"]'
+in:
+ key: 'web.page.get["http://[::1]:80/trunk"]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /trunk HTTP/1.1\r\nHost: [::1]\r\nConnection: close\r\n\r\n"
+ url: "http://[::1]:80/trunk"
+---
+test case: 'FTP URL [ftp://www.example.com:443/some_path]'
+in:
+ key: 'web.page.get[ftp://www.example.com:443/some_path]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: ftp.'
+---
+test case: 'Domain name, "port" parameter is set [www.example.com,,443]'
+in:
+ key: 'web.page.get[www.example.com,,443]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:443/"
+---
+test case: 'HTTPS URL [https://www.example.com:80]'
+in:
+ key: 'web.page.get[https://www.example.com:80]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "https://www.example.com:80"
+---
+test case: 'HTTPS URL [https://www.example.com:80]; legacy'
+in:
+ key: 'web.page.get[https://www.example.com:80]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: https.'
+---
+test case: 'HTTP URL [http://www.example.com]'
+in:
+ key: 'web.page.get[http://www.example.com]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com"
+---
+test case: 'IPv4 host [127.0.0.1]'
+in:
+ key: 'web.page.get[127.0.0.1]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'URL [127.0.0.1:80/]'
+in:
+ key: 'web.page.get[127.0.0.1:80/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80/"
+---
+test case: 'IPv6 host [ff00::ff00:ff00:ff00:ff00]'
+in:
+ key: 'web.page.get[ff00::ff00:ff00:ff00:ff00]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: [ff00::ff00:ff00:ff00:ff00]\r\nConnection: close\r\n\r\n"
+ url: "http://[ff00::ff00:ff00:ff00:ff00]:80/"
+---
+test case: 'IPv6 host [::1]'
+in:
+ key: 'web.page.get[::1]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: [::1]\r\nConnection: close\r\n\r\n"
+ url: "http://[::1]:80/"
+---
+test case: 'Invalid IPv6 host [::1:80]'
+in:
+ key: 'web.page.get[::1:80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: [::1:80]\r\nConnection: close\r\n\r\n"
+ url: "http://[::1:80]:80/"
+---
+test case: 'URL ["[::1]:80"]'
+in:
+ key: 'web.page.get["[::1]:80"]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: [::1]\r\nConnection: close\r\n\r\n"
+ url: "http://[::1]:80"
+---
+test case: 'URL [127.0.0.1:80]'
+in:
+ key: 'web.page.get[127.0.0.1:80]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
+ url: "http://127.0.0.1:80"
+---
+test case: 'HTTPS URL [https://user:pass@www.example.com:443/some_path]'
+in:
+ key: 'web.page.get[https://user:pass@www.example.com:443/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "https://user:pass@www.example.com:443/some_path"
+---
+test case: 'HTTPS URL [https://user:pass@www.example.com:443/some_path]; legacy'
+in:
+ key: 'web.page.get[https://user:pass@www.example.com:443/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: https.'
+---
+test case: 'Hostname [localhost]'
+in:
+ key: 'web.page.get[localhost]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n"
+ url: "http://localhost:80/"
+---
+test case: 'HTTPS URL [ hTtPS://www.example.com]'
+in:
+ key: 'web.page.get[ hTtPS://www.example.com]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "hTtPS://www.example.com"
+---
+test case: 'HTTPS URL [ hTtPS://www.example.com]; legacy'
+in:
+ key: 'web.page.get[ hTtPS://www.example.com]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: hTtPS.'
+---
+test case: 'Domain name [пример.рус]'
+in:
+ key: 'web.page.get[пример.рус]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf:80/"
+---
+test case: 'Domain name, "path" parameter is set [пример.рус,#opp]'
+in:
+ key: 'web.page.get[пример.рус,#opp]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /#opp HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf:80/#opp"
+---
+test case: 'HTTP URL [http://пример.рус]'
+in:
+ key: 'web.page.get[http://пример.рус]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf"
+---
+test case: 'HTTP URL [http://пример.рус:80/#opp]'
+in:
+ key: 'web.page.get[http://пример.рус:80/#opp]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf:80/"
+---
+test case: 'HTTP URL [http://пример.рус:80#opp]'
+in:
+ key: 'web.page.get[http://пример.рус:80#opp]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf:80"
+---
+test case: 'Invalid HTTP URL [http://www.example.com:/some_path]'
+in:
+ key: 'web.page.get[http://www.example.com:/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://www.example.com:/some_path"
+---
+test case: 'Invalid HTTP URL [http://www.example.com:/some_path]; legacy'
+in:
+ key: 'web.page.get[http://www.example.com:/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'Invalid HTTP URL [http://www.example.com:999999/some_path]'
+in:
+ key: 'web.page.get[http://www.example.com:999999/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://www.example.com:999999/some_path"
+---
+test case: 'Invalid HTTP URL [http://www.example.com:999999/some_path]; legacy'
+in:
+ key: 'web.page.get[http://www.example.com:999999/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'Invalid HTTP URL [http://www.example.com:abc/some_path]'
+in:
+ key: 'web.page.get[http://www.example.com:abc/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://www.example.com:abc/some_path"
+---
+test case: 'Invalid HTTP URL [http://www.example.com:abc/some_path]; legacy'
+in:
+ key: 'web.page.get[http://www.example.com:abc/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'Domain name, "port" parameter is set [www.example.com,,999999]'
+in:
+ key: 'web.page.get[www.example.com,,999999]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid third parameter.'
+---
+test case: 'Domain name, "port" parameter is set [www.example.com,,abc]'
+in:
+ key: 'web.page.get[www.example.com,,abc]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid third parameter.'
+---
+test case: 'HTTPS URL [https://www.example.com]'
+in:
+ key: 'web.page.get[https://www.example.com]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "https://www.example.com"
+---
+test case: 'HTTPS URL [https://www.example.com]; legacy'
+in:
+ key: 'web.page.get[https://www.example.com]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: https.'
+---
+test case: 'Invalid URL [www.example.com:/some_path]'
+in:
+ key: 'web.page.get[www.example.com:/some_path]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://www.example.com:/some_path"
+---
+test case: 'Invalid URL [www.example.com:/some_path]; legacy'
+in:
+ key: 'web.page.get[www.example.com:/some_path]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'HTTP URL [http://www.example.com:80/some_path]'
+in:
+ key: 'web.page.get[http://www.example.com:80/some_path]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /some_path HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80/some_path"
+---
+test case: 'HTTP URL [ hTtP://www.example.com]'
+in:
+ key: 'web.page.get[ hTtP://www.example.com]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "hTtP://www.example.com"
+---
+test case: 'Invalid HTTP URL ["http://::1]:80/trunk"]'
+in:
+ key: 'web.page.get["http://::1]:80/trunk"]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://::1]:80/trunk"
+---
+test case: 'Invalid HTTP URL ["http://::1]:80/trunk"]; legacy'
+in:
+ key: 'web.page.get["http://::1]:80/trunk"]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'URL [www.example.com#some_fragment]'
+in:
+ key: 'web.page.get[www.example.com#some_fragment]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com"
+---
+test case: 'URL [www.example.com/some_path#some_fragment]'
+in:
+ key: 'web.page.get[www.example.com/some_path#some_fragment]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /some_path HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com/some_path"
+---
+test case: 'URL [www.example.com/#]'
+in:
+ key: 'web.page.get[www.example.com/#]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com/"
+---
+test case: 'URL [www.example.com#]'
+in:
+ key: 'web.page.get[www.example.com#]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com"
+---
+test case: 'URL [www.example.com/doodle:443#some_:443fragment:443]'
+in:
+ key: 'web.page.get[www.example.com/doodle:443#some_:443fragment:443]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /doodle:443 HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com/doodle:443"
+---
+test case: 'URL [http://пример.рус/files/docs/]'
+in:
+ key: 'web.page.get[http://пример.рус/files/docs/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /files/docs/ HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf/files/docs/"
+---
+test case: 'Domain, "path" parameter is set [пример.рус,/files/docs/]'
+in:
+ key: 'web.page.get[пример.рус,/files/docs/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /files/docs/ HTTP/1.1\r\nHost: xn--e1afmkfd.xn--p1acf\r\nConnection: close\r\n\r\n"
+ url: "http://xn--e1afmkfd.xn--p1acf:80/files/docs/"
+---
+test case: 'Invalid HTTP URL [http://#fragment]'
+in:
+ key: 'web.page.get[http://#fragment]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://"
+---
+test case: 'Invalid HTTP URL [http://#fragment]; legacy'
+in:
+ key: 'web.page.get[http://#fragment]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'URL ["[::1]/server-status"]'
+in:
+ key: 'web.page.get["[::1]/server-status"]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /server-status HTTP/1.1\r\nHost: [::1]\r\nConnection: close\r\n\r\n"
+ url: "http://[::1]/server-status"
+---
+test case: 'URL [scheme:path:without:authority]'
+in:
+ key: 'web.page.get[scheme:path:without:authority]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: [scheme:path:without:authority]\r\nConnection: close\r\n\r\n"
+ url: "http://[scheme:path:without:authority]:80/"
+---
+test case: 'URL [www.example.com:80#fragmentftp://www.example.com/]'
+in:
+ key: 'web.page.get[www.example.com:80#fragmentftp://www.example.com/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80"
+---
+test case: 'URL [www.example.com#ftp://www.example.com/]'
+in:
+ key: 'web.page.get[www.example.com#ftp://www.example.com/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com"
+---
+test case: 'URL [www.example.com:80?fragmentftp://www.example.com/]'
+in:
+ key: 'web.page.get[www.example.com:80?fragmentftp://www.example.com/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /?fragmentftp://www.example.com/ HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com:80?fragmentftp://www.example.com/"
+---
+test case: 'URL [www.example.com?ftp://www.example.com/]'
+in:
+ key: 'web.page.get[www.example.com?ftp://www.example.com/]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /?ftp://www.example.com/ HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com?ftp://www.example.com/"
+---
+test case: 'HTTP URL [ http://localhost?a=b]'
+in:
+ key: 'web.page.get[ http://localhost?a=b]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /?a=b HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n"
+ url: "http://localhost?a=b"
+---
+test case: 'Hostname, "path" parameter is set [ localhost,?a=b]'
+in:
+ key: 'web.page.get[ localhost,?a=b]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /?a=b HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n"
+ url: "http://localhost:80/?a=b"
+---
+test case: 'Invalid URL [@user:pass/index.html]'
+in:
+ key: 'web.page.get[@user:pass/index.html]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: 'http://@user:pass/index.html'
+---
+test case: 'Invalid URL [@user:pass/index.html]; legacy'
+in:
+ key: 'web.page.get[@user:pass/index.html]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported URL format.'
+---
+test case: 'Invalid HTTP URL [http://user:pass@]'
+in:
+ key: 'web.page.get[http://user:pass@]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: 'http://user:pass@'
+---
+test case: 'Invalid HTTP URL [http://user:pass@]; legacy'
+in:
+ key: 'web.page.get[http://user:pass@]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported URL format.'
+---
+test case: 'Invalid HTTP URL [http://user:pass@/index.html]'
+in:
+ key: 'web.page.get[http://user:pass@/index.html]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: 'http://user:pass@/index.html'
+---
+test case: 'Invalid HTTP URL [http://user:pass@/index.html]; legacy'
+in:
+ key: 'web.page.get[http://user:pass@/index.html]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported URL format.'
+---
+test case: 'Invalid URL [www.example.com://]'
+in:
+ key: 'web.page.get[www.example.com://]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: www.example.com.'
+---
+test case: 'Invalid URL [://www.example.com]'
+in:
+ key: 'web.page.get[://www.example.com]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: .'
+---
+test case: 'Invalid URL [www.example.com:]'
+in:
+ key: 'web.page.get[www.example.com:]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://www.example.com:"
+---
+test case: 'Invalid URL [www.example.com:]; legacy'
+in:
+ key: 'web.page.get[www.example.com:]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'HTTP URL [http://www.example.com?]'
+in:
+ key: 'web.page.get[http://www.example.com?]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /? HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com?"
+---
+test case: 'URL [www.example.com/user@info]'
+in:
+ key: 'web.page.get[www.example.com/user@info]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /user@info HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com/user@info"
+---
+test case: 'URL [www.example.com?user@info]'
+in:
+ key: 'web.page.get[www.example.com?user@info]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET /?user@info HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n"
+ url: "http://www.example.com?user@info"
+---
+test case: 'Invalid URL [://]'
+in:
+ key: 'web.page.get[://]'
+ test_type: both
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported scheme: .'
+---
+test case: 'Invalid HTTP URL [http://]'
+in:
+ key: 'web.page.get[http://]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://"
+---
+test case: 'Invalid HTTP URL [http://]; legacy'
+in:
+ key: 'web.page.get[http://]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL HTTP [http:// ]'
+in:
+ key: 'web.page.get[http:// ]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: \r\nConnection: close\r\n\r\n"
+ url: "http:// "
+---
+test case: 'Hostname [http]'
+in:
+ key: 'web.page.get[http]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: http\r\nConnection: close\r\n\r\n"
+ url: "http://http:80/"
+---
+test case: 'Invalid URL ["[]"]'
+in:
+ key: 'web.page.get["[]"]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://[]"
+---
+test case: 'Invalid URL ["[]"]; legacy'
+in:
+ key: 'web.page.get["[]"]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL ["["]'
+in:
+ key: 'web.page.get["["]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://["
+---
+test case: 'Invalid URL ["["]; legacy'
+in:
+ key: 'web.page.get["["]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL ["]"]'
+in:
+ key: 'web.page.get["]"]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: ]\r\nConnection: close\r\n\r\n"
+ url: "http://]"
+---
+test case: 'Invalid URL [/]'
+in:
+ key: 'web.page.get[/]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http:///"
+---
+test case: 'Invalid URL [/]; legacy'
+in:
+ key: 'web.page.get[/]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL [:]'
+in:
+ key: 'web.page.get[:]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://:"
+---
+test case: 'Invalid URL [:]; legacy'
+in:
+ key: 'web.page.get[:]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'URL using bad/illegal format.'
+---
+test case: 'Invalid URL [@]'
+in:
+ key: 'web.page.get[@]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://@"
+---
+test case: 'Invalid URL [@]; legacy'
+in:
+ key: 'web.page.get[@]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Unsupported URL format.'
+---
+test case: 'Invalid URL [#]'
+in:
+ key: 'web.page.get[#]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://"
+---
+test case: 'Invalid URL [#]; legacy'
+in:
+ key: 'web.page.get[#]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL [?]'
+in:
+ key: 'web.page.get[?]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://?"
+---
+test case: 'Invalid URL [?]; legacy'
+in:
+ key: 'web.page.get[?]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Hostname [a]'
+in:
+ key: 'web.page.get[a]'
+ test_type: both
+out:
+ return: SYSINFO_RET_OK
+ req: "GET / HTTP/1.1\r\nHost: a\r\nConnection: close\r\n\r\n"
+ url: "http://a:80/"
+---
+test case: 'Invalid URL [:80]'
+in:
+ key: 'web.page.get[:80]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://:80"
+---
+test case: 'Invalid URL [:80]; legacy'
+in:
+ key: 'web.page.get[:80]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'
+---
+test case: 'Invalid URL [:80/?x=1]'
+in:
+ key: 'web.page.get[:80/?x=1]'
+ test_type: libcurl
+out:
+ return: SYSINFO_RET_OK
+ url: "http://:80/?x=1"
+---
+test case: 'Invalid URL [:80/?x=1]; legacy'
+in:
+ key: 'web.page.get[:80/?x=1]'
+ test_type: legacy
+out:
+ return: SYSINFO_RET_FAIL
+ error: 'Invalid or missing host in URL.'