summaryrefslogtreecommitdiff
path: root/test/RequestTest.cc
diff options
context:
space:
mode:
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