diff --git a/src/libutil-tests/url.cc b/src/libutil-tests/url.cc index d545c747b..ac123fc17 100644 --- a/src/libutil-tests/url.cc +++ b/src/libutil-tests/url.cc @@ -127,6 +127,15 @@ TEST(FixGitURLTestSuite, scpLikeNoUserParsesPoorly) })); } +TEST(FixGitURLTestSuite, properlyRejectFileURLWithAuthority) +{ + /* From the underlying `parseURL` validations. */ + EXPECT_THAT( + []() { fixGitURL("file://var/repos/x"); }, + ::testing::ThrowsMessage( + testing::HasSubstrIgnoreANSIMatcher("file:// URL 'file://var/repos/x' has unexpected authority 'var'"))); +} + TEST(FixGitURLTestSuite, scpLikePathLeadingSlashParsesPoorly) { // SCP-like URL (no user) @@ -246,8 +255,10 @@ TEST(parseURL, parsesFilePlusHttpsUrl) TEST(parseURL, rejectsAuthorityInUrlsWithFileTransportation) { - auto s = "file://www.example.org/video.mp4"; - ASSERT_THROW(parseURL(s), Error); + EXPECT_THAT( + []() { parseURL("file://www.example.org/video.mp4"); }, + ::testing::ThrowsMessage( + testing::HasSubstrIgnoreANSIMatcher("has unexpected authority 'www.example.org'"))); } TEST(parseURL, parseIPv4Address)