|
|
---
|
|
|
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.'
|