mirror of
https://github.com/Icinga/icinga2.git
synced 2025-04-08 17:05:25 +02:00
Fix path interpretion in URL parser
The URL parser incorrectly used to interpret the path "/" as a path "/" instead of as empty. Test cases were added. refs #9470
This commit is contained in:
parent
33b273f3d9
commit
65227e311b
@ -48,7 +48,6 @@ Url::Url(const String& base_url)
|
||||
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid URL: '/' expected after scheme."));
|
||||
|
||||
if (url.GetLength() == 1) {
|
||||
m_Path.push_back("/");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -64,6 +64,9 @@ BOOST_AUTO_TEST_CASE(format)
|
||||
|
||||
url = new Url("/foo/bar/index.php?blaka");
|
||||
BOOST_CHECK(new Url(url->Format()));
|
||||
|
||||
url = new Url("/");
|
||||
BOOST_CHECK(url->Format() == "/");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(illegal_legal_strings)
|
||||
@ -72,6 +75,7 @@ BOOST_AUTO_TEST_CASE(illegal_legal_strings)
|
||||
BOOST_CHECK_THROW(new Url("/?]=gar"), std::invalid_argument);
|
||||
BOOST_CHECK(new Url("/?foo=baz??&\?\?=/?")); //Valid
|
||||
BOOST_CHECK_THROW(new Url("/?foo=bar&foo=ba"), std::invalid_argument);
|
||||
BOOST_CHECK(new Url("/"));
|
||||
BOOST_CHECK_THROW(new Url("/?foo=bar&[]=d"), std::invalid_argument);
|
||||
BOOST_CHECK_THROW(new Url("/?fo=&bar=garOA"), std::invalid_argument);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user