diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-03-18 15:42:34 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-03-18 15:42:34 +0000 |
| commit | 7ff627079f6ed776dea1ce6fede1c1a07ef7f288 (patch) | |
| tree | 8f7b7e5b763dc3841df03928fe2aa50abd35a810 /test/RequestTest.cc | |
| parent | 58d4dde223e815b75a3bf6bfbd4169818faca3bd (diff) | |
2007-03-19 Tatsuhiro Tsujikawa <tujikawa at valkyrie dot rednoah com>
To integrate Netrc into exsiting classes:
* src/Request.h
(_userDefinedAuthConfig): New variable.
(findNetrcAuthenticator): New function.
(segment): Removed.
(setUserDefinedAuthConfig): New function.
(resolveHttpAuthConfigItem): New function.
(resolveFtpAuthConfigItem): New function.
(resolveHttpProxyAuthConfigItem): New function.
* src/HttpRequest.h
(authConfig): Removed.
(proxyAuthConfig): Removed.
(setAuthConfig): Removed.
(setProxyAuthConfig): Removed.
* src/UrlRequest.h
(getHeadResult): Added a parameter: authConfigHandle
* src/common.h
(SingletonHolder.h): New include.
* src/main.cc
(Netrc.h): New include.
(main): Removed initial values of PREF_FTP_USER,
PREF_FTP_PASSWD.
Added initial value of PREF_NETRC_PATH.
Added the initialization of netrc.
* src/AuthConfig.h: New class.
* src/prefs.h
(PREF_NETRC_PATH): New definition.
* src/HttpAuthConfig.h: Removed.
* src/Netrc.cc
(getRequiredNextToken): New function.
(skipMacdef): New function.
(parse): Rewritten.
* src/Netrc.h
(getRequiredNextToken): New function.
(skipMacdef): New function.
* src/Util.h, src/Util.cc
(getHomeDir): New function.
* src/TrackerWatcherComand.cc
(createRequestCommand): Use AuthConfig.
* src/FtpConnection.cc
(sendUser): Use Request::resolveFtpAuthConfigItem().
(sendPass): Use Request::resolveFtpAuthConfigItem().
* src/Request.cc
(findNetrcAuthenticator): New function.
(resolveHttpAuthConfigItem): New function.
(resolveFtpAuthConfigItem): New function.
(resolveHttpProxyAuthConfigItem): New function.
* src/UrlRequestInfo.cc: Use AuthConfig.
* src/HttpRequest.cc
(createRequest): Use authConfig.
(getProxyAuthString): Use authConfig.
(configure): Removed PREF_HTTP_USER, PREF_HTTP_PASSWD,
PREF_HTTP_PROXY_USER, PREF_HTTP_PROXY_PASSWD.
Diffstat (limited to 'test/RequestTest.cc')
| -rw-r--r-- | test/RequestTest.cc | 129 |
1 files changed, 128 insertions, 1 deletions
diff --git a/test/RequestTest.cc b/test/RequestTest.cc index e5a1311b..d76f2c55 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -1,5 +1,5 @@ #include "Request.h" - +#include "Netrc.h" #include <cppunit/extensions/HelperMacros.h> class RequestTest:public CppUnit::TestFixture { @@ -25,6 +25,12 @@ class RequestTest:public CppUnit::TestFixture { CPPUNIT_TEST(testSafeChar); CPPUNIT_TEST(testInnerLink); CPPUNIT_TEST(testMetalink); + CPPUNIT_TEST(testResolveHttpAuthConfigItem); + CPPUNIT_TEST(testResolveHttpAuthConfigItem_noCandidate); + CPPUNIT_TEST(testResolveHttpProxyAuthConfigItem); + CPPUNIT_TEST(testResolveHttpProxyAuthConfigItem_noCandidate); + CPPUNIT_TEST(testResolveFtpAuthConfigItem); + CPPUNIT_TEST(testResolveFtpAuthConfigItem_noCandidate); CPPUNIT_TEST_SUITE_END(); public: @@ -48,6 +54,12 @@ public: void testSafeChar(); void testInnerLink(); void testMetalink(); + void testResolveHttpAuthConfigItem(); + void testResolveHttpAuthConfigItem_noCandidate(); + void testResolveHttpProxyAuthConfigItem(); + void testResolveHttpProxyAuthConfigItem_noCandidate(); + void testResolveFtpAuthConfigItem(); + void testResolveFtpAuthConfigItem_noCandidate(); }; @@ -293,3 +305,118 @@ void RequestTest::testMetalink() { bool v2 = req.setUrl("http://aria.rednoah.com/download/aria.tar.bz2#!metalink3!"); CPPUNIT_ASSERT(!v2); } + +void RequestTest::testResolveHttpAuthConfigItem() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + // with no authConfig + CPPUNIT_ASSERT(req.resolveHttpAuthConfigItem().isNull()); + + // with Netrc + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(!req.resolveHttpAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig1 = req.resolveHttpAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("default"), authConfig1->getUser()); + CPPUNIT_ASSERT_EQUAL(string("defaultpassword"), authConfig1->getPassword()); + + // with Netrc + user defined + AuthConfigHandle authConfig = new AuthConfig(); + authConfig->setHttpAuthConfigItem("userDefinedUser", "userDefinedPassword"); + req.setUserDefinedAuthConfig(authConfig); + CPPUNIT_ASSERT(!req.resolveHttpAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig2 = req.resolveHttpAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("userDefinedUser"), authConfig2->getUser()); + CPPUNIT_ASSERT_EQUAL(string("userDefinedPassword"), authConfig2->getPassword()); +} + +void RequestTest::testResolveHttpAuthConfigItem_noCandidate() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new Authenticator("localhost2", "default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(req.resolveHttpAuthConfigItem().isNull()); +} + +void RequestTest::testResolveHttpProxyAuthConfigItem() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + // with no authConfig + CPPUNIT_ASSERT(req.resolveHttpProxyAuthConfigItem().isNull()); + + // with Netrc + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(!req.resolveHttpProxyAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig1 = req.resolveHttpProxyAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("default"), authConfig1->getUser()); + CPPUNIT_ASSERT_EQUAL(string("defaultpassword"), authConfig1->getPassword()); + + // with Netrc + user defined + AuthConfigHandle authConfig = new AuthConfig(); + authConfig->setHttpProxyAuthConfigItem("userDefinedUser", "userDefinedPassword"); + req.setUserDefinedAuthConfig(authConfig); + CPPUNIT_ASSERT(!req.resolveHttpProxyAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig2 = req.resolveHttpProxyAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("userDefinedUser"), authConfig2->getUser()); + CPPUNIT_ASSERT_EQUAL(string("userDefinedPassword"), authConfig2->getPassword()); +} + +void RequestTest::testResolveHttpProxyAuthConfigItem_noCandidate() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new Authenticator("localhost2", "default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(req.resolveHttpProxyAuthConfigItem().isNull()); +} + +void RequestTest::testResolveFtpAuthConfigItem() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + // with no authConfig + CPPUNIT_ASSERT(!req.resolveFtpAuthConfigItem().isNull()); + CPPUNIT_ASSERT_EQUAL(string("anonymous"), req.resolveFtpAuthConfigItem()->getUser()); + CPPUNIT_ASSERT_EQUAL(string("ARIA2USER@"), req.resolveFtpAuthConfigItem()->getPassword()); + + // with Netrc + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new DefaultAuthenticator("default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(!req.resolveFtpAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig1 = req.resolveFtpAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("default"), authConfig1->getUser()); + CPPUNIT_ASSERT_EQUAL(string("defaultpassword"), authConfig1->getPassword()); + + // with Netrc + user defined + AuthConfigHandle authConfig = new AuthConfig(); + authConfig->setFtpAuthConfigItem("userDefinedUser", "userDefinedPassword"); + req.setUserDefinedAuthConfig(authConfig); + CPPUNIT_ASSERT(!req.resolveFtpAuthConfigItem().isNull()); + AuthConfigItemHandle authConfig2 = req.resolveFtpAuthConfigItem(); + CPPUNIT_ASSERT_EQUAL(string("userDefinedUser"), authConfig2->getUser()); + CPPUNIT_ASSERT_EQUAL(string("userDefinedPassword"), authConfig2->getPassword()); +} + +void RequestTest::testResolveFtpAuthConfigItem_noCandidate() +{ + Request req; + req.setUrl("http://localhost/download/aria2-1.0.0.tar.bz2"); + + NetrcHandle netrc = new Netrc(); + netrc->addAuthenticator(new Authenticator("localhost2", "default", "defaultpassword", "defaultaccount")); + NetrcSingletonHolder::instance(netrc); + CPPUNIT_ASSERT(!req.resolveFtpAuthConfigItem().isNull()); + CPPUNIT_ASSERT_EQUAL(string("anonymous"), req.resolveFtpAuthConfigItem()->getUser()); + CPPUNIT_ASSERT_EQUAL(string("ARIA2USER@"), req.resolveFtpAuthConfigItem()->getPassword()); +} |
