summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-27 04:09:08 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-27 04:09:08 +0000
commit4663902500c3ef94002cc9b646043680c2d2a181 (patch)
tree402721ee9fbcb72e74ee35790a488ab4b1a59ffd /test
parent1ef99931e131343f069a4b74edfc06196d72d85b (diff)
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed query part from filename in HTTP download. The query part means the substring after "?" in URL. Firefox seems do the same thing. A query part is sometimes very long and not suitable to filename, so I think it is better to remove it from filename. * src/HttpRequest.cc * src/HttpRequest.h * src/Request.cc * src/Request.h * test/HttpRequestTest.cc * test/RequestTest.cc
Diffstat (limited to 'test')
-rw-r--r--test/HttpRequestTest.cc22
-rw-r--r--test/RequestTest.cc28
2 files changed, 44 insertions, 6 deletions
diff --git a/test/HttpRequestTest.cc b/test/HttpRequestTest.cc
index 7400d097..dde436fe 100644
--- a/test/HttpRequestTest.cc
+++ b/test/HttpRequestTest.cc
@@ -19,6 +19,7 @@ class HttpRequestTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testCreateRequest);
CPPUNIT_TEST(testCreateRequest_ftp);
CPPUNIT_TEST(testCreateRequest_with_cookie);
+ CPPUNIT_TEST(testCreateRequest_query);
CPPUNIT_TEST(testCreateProxyRequest);
CPPUNIT_TEST(testIsRangeSatisfied);
CPPUNIT_TEST(testUserAgent);
@@ -34,6 +35,7 @@ public:
void testCreateRequest();
void testCreateRequest_ftp();
void testCreateRequest_with_cookie();
+ void testCreateRequest_query();
void testCreateProxyRequest();
void testIsRangeSatisfied();
void testUserAgent();
@@ -457,6 +459,26 @@ void HttpRequestTest::testCreateRequest_with_cookie()
}
+void HttpRequestTest::testCreateRequest_query()
+{
+ SharedHandle<Request> request(new Request());
+ request->setUrl("http://localhost/wiki?id=9ad5109a-b8a5-4edf-9373-56a1c34ae138");
+ HttpRequest httpRequest;
+ httpRequest.setRequest(request);
+
+ std::string expectedText =
+ "GET /wiki?id=9ad5109a-b8a5-4edf-9373-56a1c34ae138 HTTP/1.1\r\n"
+ "User-Agent: aria2\r\n"
+ "Accept: */*\r\n"
+ "Host: localhost\r\n"
+ "Pragma: no-cache\r\n"
+ "Cache-Control: no-cache\r\n"
+ "Connection: close\r\n"
+ "\r\n";
+
+ CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest());
+}
+
void HttpRequestTest::testCreateProxyRequest()
{
SharedHandle<Request> request(new Request());
diff --git a/test/RequestTest.cc b/test/RequestTest.cc
index 0bfe28c5..95c8e69e 100644
--- a/test/RequestTest.cc
+++ b/test/RequestTest.cc
@@ -78,6 +78,7 @@ void RequestTest::testSetUrl1() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getUsername());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPassword());
}
@@ -98,6 +99,7 @@ void RequestTest::testSetUrl2() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl3() {
@@ -110,6 +112,7 @@ void RequestTest::testSetUrl3() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/aria2"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl4() {
@@ -122,6 +125,7 @@ void RequestTest::testSetUrl4() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/aria2/aria3"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl5() {
@@ -134,6 +138,7 @@ void RequestTest::testSetUrl5() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/aria2/aria3"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl6() {
@@ -146,6 +151,7 @@ void RequestTest::testSetUrl6() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/aria2"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("aria3"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl7() {
@@ -184,7 +190,8 @@ void RequestTest::testSetUrl11() {
CPPUNIT_ASSERT_EQUAL(std::string("http"), req.getProtocol());
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
- CPPUNIT_ASSERT_EQUAL(std::string("?query/"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("?query/"), req.getQuery());
}
void RequestTest::testSetUrl12() {
@@ -195,7 +202,8 @@ void RequestTest::testSetUrl12() {
CPPUNIT_ASSERT_EQUAL(std::string("http"), req.getProtocol());
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
- CPPUNIT_ASSERT_EQUAL(std::string("?query"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("?query"), req.getQuery());
}
void RequestTest::testSetUrl13() {
@@ -206,7 +214,8 @@ void RequestTest::testSetUrl13() {
CPPUNIT_ASSERT_EQUAL(std::string("http"), req.getProtocol());
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
- CPPUNIT_ASSERT_EQUAL(std::string("?query"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("?query"), req.getQuery());
}
void RequestTest::testSetUrl14() {
@@ -218,7 +227,8 @@ void RequestTest::testSetUrl14() {
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL((uint16_t)8080, req.getPort());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
- CPPUNIT_ASSERT_EQUAL(std::string("abc?query"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("abc"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("?query"), req.getQuery());
}
void RequestTest::testSetUrl15()
@@ -231,6 +241,7 @@ void RequestTest::testSetUrl15()
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/dir1/dir2"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("file"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl16()
@@ -243,6 +254,7 @@ void RequestTest::testSetUrl16()
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("file"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl17()
@@ -253,7 +265,8 @@ void RequestTest::testSetUrl17()
CPPUNIT_ASSERT_EQUAL(std::string("http"), req.getProtocol());
CPPUNIT_ASSERT_EQUAL(std::string("host"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/file%3cwith%252%20%20space"), req.getDir());
- CPPUNIT_ASSERT_EQUAL(std::string("file%20with%20space;param?a=/?"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("file%20with%20space;param"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string("?a=/?"), req.getQuery());
}
void RequestTest::testRedirectUrl() {
@@ -277,6 +290,7 @@ void RequestTest::testRedirectUrl() {
CPPUNIT_ASSERT_EQUAL((uint16_t)80, req.getPort());
CPPUNIT_ASSERT_EQUAL(std::string("/"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testRedirectUrl2() {
@@ -303,7 +317,7 @@ void RequestTest::testResetUrl() {
Request req;
req.setUrl("http://aria.rednoah.com:8080/aria2/index.html");
req.setReferer("http://aria.rednoah.com:8080/");
- req.redirectUrl("ftp://aria.rednoah.co.jp/");
+ req.redirectUrl("ftp://aria.rednoah.co.jp/index_en.html?view=wide");
bool v3 = req.resetUrl();
CPPUNIT_ASSERT(v3);
@@ -319,6 +333,7 @@ void RequestTest::testResetUrl() {
CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.com"), req.getHost());
CPPUNIT_ASSERT_EQUAL(std::string("/aria2"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testInnerLink() {
@@ -326,6 +341,7 @@ void RequestTest::testInnerLink() {
bool v = req.setUrl("http://aria.rednoah.com/index.html#download");
CPPUNIT_ASSERT(v);
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
void RequestTest::testSetUrl_zeroUsername()