diff options
-rw-r--r-- | test/integration/framework | 4 | ||||
-rwxr-xr-x | test/integration/test-authentication-basic | 10 | ||||
-rw-r--r-- | test/libapt/uri_test.cc | 10 |
3 files changed, 17 insertions, 7 deletions
diff --git a/test/integration/framework b/test/integration/framework index 40b5bb98b..897ae3bfe 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -1156,8 +1156,8 @@ rewritesourceslist() { local APTARCHIVE2="copy://$(readlink -f "${TMPWORKINGDIRECTORY}/aptarchive" | sed 's# #%20#g')" for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do sed -i $LIST -e "s#$APTARCHIVE#${1}#" -e "s#$APTARCHIVE2#${1}#" \ - -e "s#http://localhost:${APTHTTPPORT}/#${1}#" \ - -e "s#https://localhost:${APTHTTPSPORT}/#${1}#" + -e "s#http://[^@]*@\?localhost:${APTHTTPPORT}/\?#${1}#" \ + -e "s#https://[^@]*@\?localhost:${APTHTTPSPORT}/\?#${1}#" done } diff --git a/test/integration/test-authentication-basic b/test/integration/test-authentication-basic index 95211ac0e..9a15c7604 100755 --- a/test/integration/test-authentication-basic +++ b/test/integration/test-authentication-basic @@ -9,9 +9,8 @@ configarchitecture 'i386' insertpackage 'unstable' 'foo' 'all' '1' setupaptarchive --no-update -exit -changetohttpswebserver --authorization="$(printf '%s' 'star:hunter2' | base64 )" +changetohttpswebserver --authorization="$(printf '%s' 'star@irc:hunter2' | base64 )" echo 'See, when YOU type hunter2, it shows to us as *******' > aptarchive/bash @@ -62,7 +61,7 @@ runtest() { # good auth authfile 'machine localhost -login star +login star@irc password hunter2' testauthsuccess "$1" @@ -78,7 +77,7 @@ login debian password jessie machine localhost -login star +login star@irc password hunter2' testauthsuccess "$1" } @@ -86,6 +85,9 @@ password hunter2' msgmsg 'server basic auth' rewritesourceslist "http://localhost:${APTHTTPPORT}" runtest "http://localhost:${APTHTTPPORT}" +rewritesourceslist "http://star%40irc:hunter2@localhost:${APTHTTPPORT}" +authfile '' +testauthsuccess "http://star%40irc:hunter2@localhost:${APTHTTPPORT}" rewritesourceslist "https://localhost:${APTHTTPSPORT}" runtest "https://localhost:${APTHTTPSPORT}" rewritesourceslist "http://localhost:${APTHTTPPORT}" diff --git a/test/libapt/uri_test.cc b/test/libapt/uri_test.cc index fe6015e65..d8f3ffe45 100644 --- a/test/libapt/uri_test.cc +++ b/test/libapt/uri_test.cc @@ -159,7 +159,7 @@ TEST(URITest, RFC2732) EXPECT_EQ("cdrom://Foo Bar Cow", URI::SiteOnly(U)); EXPECT_EQ("cdrom://Foo Bar Cow/debian", URI::ArchiveOnly(U)); EXPECT_EQ("cdrom://Foo Bar Cow/debian/", URI::NoUserPassword(U)); - // percent encoded + // percent encoded password U = URI("ftp://foo:b%40r@example.org"); EXPECT_EQ("foo", U.User); EXPECT_EQ("b@r", U.Password); @@ -167,4 +167,12 @@ TEST(URITest, RFC2732) EXPECT_EQ("ftp://example.org", URI::SiteOnly(U)); EXPECT_EQ("ftp://example.org", URI::ArchiveOnly(U)); EXPECT_EQ("ftp://example.org/", URI::NoUserPassword(U)); + // percent encoded user + U = URI("ftp://f%40o:bar@example.org"); + EXPECT_EQ("f@o", U.User); + EXPECT_EQ("bar", U.Password); + EXPECT_EQ("ftp://f%40o:bar@example.org/", (std::string) U); + EXPECT_EQ("ftp://example.org", URI::SiteOnly(U)); + EXPECT_EQ("ftp://example.org", URI::ArchiveOnly(U)); + EXPECT_EQ("ftp://example.org/", URI::NoUserPassword(U)); } |