diff options
Diffstat (limited to 'test/RequestTest.cc')
| -rw-r--r-- | test/RequestTest.cc | 129 |
1 files changed, 59 insertions, 70 deletions
diff --git a/test/RequestTest.cc b/test/RequestTest.cc index f93e98e4..04da1740 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -23,16 +23,15 @@ class RequestTest:public CppUnit::TestFixture { CPPUNIT_TEST(testSetUrl14); CPPUNIT_TEST(testSetUrl15); CPPUNIT_TEST(testSetUrl16); + CPPUNIT_TEST(testSetUrl_username); + CPPUNIT_TEST(testSetUrl_usernamePassword); + CPPUNIT_TEST(testSetUrl_zeroUsername); CPPUNIT_TEST(testRedirectUrl); CPPUNIT_TEST(testRedirectUrl2); CPPUNIT_TEST(testResetUrl); CPPUNIT_TEST(testSafeChar); CPPUNIT_TEST(testInnerLink); CPPUNIT_TEST(testMetalink); - CPPUNIT_TEST(testResolveHttpAuthConfig); - CPPUNIT_TEST(testResolveHttpAuthConfig_noCandidate); - CPPUNIT_TEST(testResolveHttpProxyAuthConfig); - CPPUNIT_TEST(testResolveFtpAuthConfig); CPPUNIT_TEST_SUITE_END(); public: @@ -52,16 +51,15 @@ public: void testSetUrl14(); void testSetUrl15(); void testSetUrl16(); + void testSetUrl_username(); + void testSetUrl_usernamePassword(); + void testSetUrl_zeroUsername(); void testRedirectUrl(); void testRedirectUrl2(); void testResetUrl(); void testSafeChar(); void testInnerLink(); void testMetalink(); - void testResolveHttpAuthConfig(); - void testResolveHttpAuthConfig_noCandidate(); - void testResolveHttpProxyAuthConfig(); - void testResolveFtpAuthConfig(); }; @@ -80,6 +78,8 @@ void RequestTest::testSetUrl1() { CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost()); CPPUNIT_ASSERT_EQUAL(string("/"), req.getDir()); CPPUNIT_ASSERT_EQUAL(string(""), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getPassword()); } void RequestTest::testSetUrl2() { @@ -341,77 +341,66 @@ void RequestTest::testMetalink() { #endif // ENABLE_METALINK } -void RequestTest::testResolveHttpAuthConfig() +void RequestTest::testSetUrl_zeroUsername() { Request req; - req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); - // with DefaultAuthResolver - DefaultAuthResolverHandle defaultAuthResolver = new DefaultAuthResolver(); - req.setHttpAuthResolver(defaultAuthResolver); - CPPUNIT_ASSERT(!req.resolveHttpAuthConfig().isNull()); - CPPUNIT_ASSERT_EQUAL(string(":"), - req.resolveHttpAuthConfig()->getAuthText()); - - // with Netrc - NetrcHandle netrc = new Netrc(); - netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); - NetrcAuthResolverHandle netrcAuthResolver = new NetrcAuthResolver(); - netrcAuthResolver->setNetrc(netrc); - req.setHttpAuthResolver(netrcAuthResolver); - AuthConfigHandle authConfig1 = req.resolveHttpAuthConfig(); - CPPUNIT_ASSERT(!authConfig1.isNull()); - CPPUNIT_ASSERT_EQUAL(string("default:defaultpassword"), - authConfig1->getAuthText()); - - // with Netrc + user defined - AuthConfigHandle authConfig = - new AuthConfig("userDefinedUser", "userDefinedPassword"); - netrcAuthResolver->setUserDefinedAuthConfig(authConfig); - AuthConfigHandle authConfig2 = req.resolveHttpAuthConfig(); - CPPUNIT_ASSERT(!authConfig2.isNull()); - CPPUNIT_ASSERT_EQUAL(string("userDefinedUser:userDefinedPassword"), - authConfig2->getAuthText()); -} - -void RequestTest::testResolveHttpAuthConfig_noCandidate() -{ - Request req; - req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + CPPUNIT_ASSERT(req.setUrl("ftp://@localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string("ftp"), req.getProtocol()); + CPPUNIT_ASSERT_EQUAL((int32_t)21, req.getPort()); + CPPUNIT_ASSERT_EQUAL(string("localhost"), req.getHost()); + CPPUNIT_ASSERT_EQUAL(string("/download"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(string("aria2-1.0.0.tar.bz2"), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getPassword()); + + CPPUNIT_ASSERT(req.setUrl("ftp://:@localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string("ftp"), req.getProtocol()); + CPPUNIT_ASSERT_EQUAL((int32_t)21, req.getPort()); + CPPUNIT_ASSERT_EQUAL(string("localhost"), req.getHost()); + CPPUNIT_ASSERT_EQUAL(string("/download"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(string("aria2-1.0.0.tar.bz2"), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getPassword()); + + CPPUNIT_ASSERT(req.setUrl("ftp://:pass@localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string("ftp"), req.getProtocol()); + CPPUNIT_ASSERT_EQUAL((int32_t)21, req.getPort()); + CPPUNIT_ASSERT_EQUAL(string("localhost"), req.getHost()); + CPPUNIT_ASSERT_EQUAL(string("/download"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(string("aria2-1.0.0.tar.bz2"), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string("pass"), req.getPassword()); - DefaultAuthResolverHandle defaultAuthResolver = new DefaultAuthResolver(); - req.setHttpAuthResolver(defaultAuthResolver); - CPPUNIT_ASSERT_EQUAL(string(":"), - req.resolveHttpAuthConfig()->getAuthText()); } -void RequestTest::testResolveHttpProxyAuthConfig() +void RequestTest::testSetUrl_username() { Request req; - req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); - // with Netrc - NetrcHandle netrc = new Netrc(); - netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); - NetrcAuthResolverHandle netrcAuthResolver = new NetrcAuthResolver(); - netrcAuthResolver->setNetrc(netrc); - req.setHttpProxyAuthResolver(netrcAuthResolver); - AuthConfigHandle authConfig1 = req.resolveHttpProxyAuthConfig(); - CPPUNIT_ASSERT(!authConfig1.isNull()); - CPPUNIT_ASSERT_EQUAL(string("default:defaultpassword"), - authConfig1->getAuthText()); + CPPUNIT_ASSERT(req.setUrl("ftp://aria2user@localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string("ftp"), req.getProtocol()); + CPPUNIT_ASSERT_EQUAL((int32_t)21, req.getPort()); + CPPUNIT_ASSERT_EQUAL(string("localhost"), req.getHost()); + CPPUNIT_ASSERT_EQUAL(string("/download"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(string("aria2-1.0.0.tar.bz2"), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string("aria2user"), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getPassword()); } -void RequestTest::testResolveFtpAuthConfig() +void RequestTest::testSetUrl_usernamePassword() { Request req; - req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); - // with Netrc - NetrcHandle netrc = new Netrc(); - netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); - NetrcAuthResolverHandle netrcAuthResolver = new NetrcAuthResolver(); - netrcAuthResolver->setNetrc(netrc); - req.setFtpAuthResolver(netrcAuthResolver); - AuthConfigHandle authConfig1 = req.resolveFtpAuthConfig(); - CPPUNIT_ASSERT(!authConfig1.isNull()); - CPPUNIT_ASSERT_EQUAL(string("default:defaultpassword"), - authConfig1->getAuthText()); + CPPUNIT_ASSERT(req.setUrl("ftp://aria2user%40:aria2pass%40@localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string("ftp"), req.getProtocol()); + CPPUNIT_ASSERT_EQUAL((int32_t)21, req.getPort()); + CPPUNIT_ASSERT_EQUAL(string("localhost"), req.getHost()); + CPPUNIT_ASSERT_EQUAL(string("/download"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(string("aria2-1.0.0.tar.bz2"), req.getFile()); + CPPUNIT_ASSERT_EQUAL(string("aria2user@"), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string("aria2pass@"), req.getPassword()); + + // make sure that after new url is set, username and password are updated. + CPPUNIT_ASSERT(req.setUrl("ftp://localhost/download/aria2-1.0.0.tar.bz2")); + CPPUNIT_ASSERT_EQUAL(string(""), req.getUsername()); + CPPUNIT_ASSERT_EQUAL(string(""), req.getPassword()); + } |
