diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-03-18 11:37:31 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-03-19 09:48:44 +0100 |
commit | 28b2efcb190edd97b802ac9055eaf417f141f724 (patch) | |
tree | 0deb275da1344a8d5e0837b75c97e7cf50b8e463 | |
parent | ff5318caf714c3b26fa37aa4debf138ccf416fc1 (diff) |
tests: reenable basic auth test and add @ in username
On launchpad #1558484 a user reports that @ in the authentication tokens
parsing of sources.list isn't working in an older (precise) version. It
isn't the recommended way of specifying passwords and co (auth.conf is),
but we can at least test for regressions (and in this case test at all…
who was that "clever" boy disabling a test with exit……… oh, nevermind.
Git-Dch: Ignore
-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)); } |