diff options
Diffstat (limited to 'tests/libs/zbxsysinfo/common/web_page_get.yaml')
-rw-r--r-- | tests/libs/zbxsysinfo/common/web_page_get.yaml | 1012 |
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.' |