summaryrefslogtreecommitdiff
path: root/test/RequestTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-08-30 15:05:30 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-08-30 15:05:30 +0000
commitce25b54cfe3ba23408da19fcd87539bec879b943 (patch)
treeb60b7edf6f808aee791b72ecdc64131d3d36665d /test/RequestTest.cc
parent19ae8f9d07ba6a8f1d3b6f501a01f9285b6875e9 (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.cc27
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