]> git.saurik.com Git - apt.git/commitdiff
tests: reenable basic auth test and add @ in username
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 18 Mar 2016 10:37:31 +0000 (11:37 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Sat, 19 Mar 2016 08:48:44 +0000 (09:48 +0100)
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

test/integration/framework
test/integration/test-authentication-basic
test/libapt/uri_test.cc

index 40b5bb98b11d96f2d4acbcdc200556ccc849bd02..897ae3bfe66f87b047e8eaf5d2cb9a4ba823b1ad 100644 (file)
@@ -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
 }
 
index 95211ac0e821e65e0e486bf292cccb86752625a4..9a15c760429bf1f98ef2e0c44f0f7689677954c8 100755 (executable)
@@ -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}"
index fe6015e65c0322eb0b3b35c91fc15d111acaba7a..d8f3ffe45daca0682d784855c29ec75ad3bb646c 100644 (file)
@@ -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));
 }