diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-08-30 15:05:30 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-08-30 15:05:30 +0000 |
| commit | ce25b54cfe3ba23408da19fcd87539bec879b943 (patch) | |
| tree | b60b7edf6f808aee791b72ecdc64131d3d36665d /test/RequestTest.cc | |
| parent | 19ae8f9d07ba6a8f1d3b6f501a01f9285b6875e9 (diff) | |
2009-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added support for IPv6 literal address in URI. Now aria2 can
handle URI such as http://[::1]/
* src/HttpRequest.cc
* src/HttpRequest.h
* src/Request.cc
* src/Request.h
* test/HttpRequestTest.cc
* test/OptionHandlerTest.cc
* test/RequestTest.cc
Diffstat (limited to 'test/RequestTest.cc')
| -rw-r--r-- | test/RequestTest.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/RequestTest.cc b/test/RequestTest.cc index cc109372..61ad9d65 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -32,6 +32,7 @@ class RequestTest:public CppUnit::TestFixture { CPPUNIT_TEST(testSetUrl_usernamePassword); CPPUNIT_TEST(testSetUrl_zeroUsername); CPPUNIT_TEST(testSetUrl_supportsPersistentConnection); + CPPUNIT_TEST(testSetUrl_ipv6); CPPUNIT_TEST(testRedirectUrl); CPPUNIT_TEST(testRedirectUrl2); CPPUNIT_TEST(testRedirectUrl_supportsPersistentConnection); @@ -39,6 +40,7 @@ class RequestTest:public CppUnit::TestFixture { CPPUNIT_TEST(testResetUrl_supportsPersistentConnection); CPPUNIT_TEST(testInnerLink); CPPUNIT_TEST(testInnerLinkInReferer); + CPPUNIT_TEST(testGetURIHost); CPPUNIT_TEST_SUITE_END(); public: @@ -63,6 +65,7 @@ public: void testSetUrl_usernamePassword(); void testSetUrl_zeroUsername(); void testSetUrl_supportsPersistentConnection(); + void testSetUrl_ipv6(); void testRedirectUrl(); void testRedirectUrl2(); void testRedirectUrl_supportsPersistentConnection(); @@ -70,6 +73,7 @@ public: void testResetUrl_supportsPersistentConnection(); void testInnerLink(); void testInnerLinkInReferer(); + void testGetURIHost(); }; @@ -91,6 +95,7 @@ void RequestTest::testSetUrl1() { CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery()); CPPUNIT_ASSERT_EQUAL(std::string(""), req.getUsername()); CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPassword()); + CPPUNIT_ASSERT(!req.isIPv6LiteralAddress()); } void RequestTest::testSetUrl2() { @@ -483,4 +488,26 @@ void RequestTest::testRedirectUrl_supportsPersistentConnection() CPPUNIT_ASSERT(req.supportsPersistentConnection()); } +void RequestTest::testSetUrl_ipv6() +{ + Request req; + CPPUNIT_ASSERT(!req.setUrl("http://[::1")); + CPPUNIT_ASSERT(req.setUrl("http://[::1]")); + CPPUNIT_ASSERT_EQUAL(std::string("::1"), req.getHost()); + + CPPUNIT_ASSERT(req.setUrl("http://[::1]:8000/dir/file")); + CPPUNIT_ASSERT_EQUAL(std::string("::1"), req.getHost()); + CPPUNIT_ASSERT_EQUAL((uint16_t)8000, req.getPort()); + CPPUNIT_ASSERT_EQUAL(std::string("/dir"), req.getDir()); + CPPUNIT_ASSERT_EQUAL(std::string("file"), req.getFile()); + CPPUNIT_ASSERT(req.isIPv6LiteralAddress()); +} + +void RequestTest::testGetURIHost() +{ + Request req; + CPPUNIT_ASSERT(req.setUrl("http://[::1]")); + CPPUNIT_ASSERT_EQUAL(std::string("[::1]"), req.getURIHost()); +} + } // namespace aria2 |
