summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/integration/framework4
-rwxr-xr-xtest/integration/test-authentication-basic10
-rw-r--r--test/libapt/uri_test.cc10
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));
}