mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-30 04:37:50 +02:00
Refactor URL parser.
This commit is contained in:
parent
1e7d4eb711
commit
66db088761
4 changed files with 140 additions and 112 deletions
|
@ -17,76 +17,76 @@ BOOST_AUTO_TEST_CASE(DecodeUrl)
|
|||
}
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlProtocol)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").protocol_, "http");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").protocol_, "http");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123").protocol_, "ftp");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").protocol_, "ssh");
|
||||
BOOST_CHECK_EQUAL(url("").protocol_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_protocol, "http");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_protocol, "http");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123").m_protocol, "ftp");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_protocol, "ssh");
|
||||
BOOST_CHECK_EQUAL(url("").m_protocol, "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlHost)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").host_, "127.0.0.1");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").host_, "site.com");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123").host_, "localhost");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").host_, "localhost");
|
||||
BOOST_CHECK_EQUAL(url("").host_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_host, "127.0.0.1");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_host, "site.com");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123").m_host, "localhost");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_host, "localhost");
|
||||
BOOST_CHECK_EQUAL(url("").m_host, "");
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlPath)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").path_, "/asdasd");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").path_, "/A/B");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").path_, "/A/B/C/D");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").path_, "");
|
||||
BOOST_CHECK_EQUAL(url("").path_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_path, "/asdasd");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_path, "/A/B");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_path, "/A/B/C/D");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_path, "");
|
||||
BOOST_CHECK_EQUAL(url("").m_path, "");
|
||||
}
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlQuery)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").query_, "qqqqqqqqqqqq");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").query_, "q");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").query_, "x=A");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").query_, "");
|
||||
BOOST_CHECK_EQUAL(url("").query_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_query, "qqqqqqqqqqqq");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_query, "q");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_query, "x=A");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_query, "");
|
||||
BOOST_CHECK_EQUAL(url("").m_query, "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlPortStr)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").portstr_, "7070");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").portstr_, "err_port");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").portstr_, "123");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").portstr_, "123");
|
||||
BOOST_CHECK_EQUAL(url("").portstr_, "80");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_portstr, "7070");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_portstr, "err_port");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_portstr, "123");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_portstr, "123");
|
||||
BOOST_CHECK_EQUAL(url("").m_portstr, "80");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlPort)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").port_, 7070);
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").port_, 80);
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").port_, 123);
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").port_, 123);
|
||||
BOOST_CHECK_EQUAL(url("").port_, 80);
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_port, 7070);
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_port, 80);
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_port, 123);
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:pass@localhost:123").m_port, 123);
|
||||
BOOST_CHECK_EQUAL(url("").m_port, 80);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlUser)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").user_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").user_, "user");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").user_, "user");
|
||||
BOOST_CHECK_EQUAL(url("SSH://@localhost:123").user_, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:@localhost:123").user_, "user");
|
||||
BOOST_CHECK_EQUAL(url("").user_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_user, "");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_user, "user");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_user, "user");
|
||||
BOOST_CHECK_EQUAL(url("SSH://@localhost:123").m_user, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://user:@localhost:123").m_user, "user");
|
||||
BOOST_CHECK_EQUAL(url("").m_user, "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseUrlPassword)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").pass_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").pass_, "password");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").pass_, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://@localhost:123").pass_, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://:password@localhost:123").pass_, "password");
|
||||
BOOST_CHECK_EQUAL(url("").pass_, "");
|
||||
BOOST_CHECK_EQUAL(url("http://127.0.0.1:7070/asdasd?qqqqqqqqqqqq").m_pass, "");
|
||||
BOOST_CHECK_EQUAL(url("http://user:password@site.com:err_port/A/B?q").m_pass, "password");
|
||||
BOOST_CHECK_EQUAL(url("ftp://user@localhost:123/A/B/C/D?x=A").m_pass, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://@localhost:123").m_pass, "");
|
||||
BOOST_CHECK_EQUAL(url("SSH://:password@localhost:123").m_pass, "password");
|
||||
BOOST_CHECK_EQUAL(url("").m_pass, "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ParseHTTPRequestNoHeaders)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue