summaryrefslogtreecommitdiff
path: root/test/RequestTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-10-08 15:35:52 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-10-08 15:35:52 +0000
commit22af8b4b22107ac411f98d22447bef3cc2eebf16 (patch)
treea7acb6c3c6bc9d61ef306c67a5a31694f044fa36 /test/RequestTest.cc
parenta7018cb5955d246f2461b71c91528d70d85a3a39 (diff)
2008-10-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that referer header field contains fragment. Now Request class removes fragment part of URI and encodes it in Request::setUri() and setReferer(). * src/Request.h * src/Request.cc * test/RequestTest.cc
Diffstat (limited to 'test/RequestTest.cc')
-rw-r--r--test/RequestTest.cc21
1 files changed, 20 insertions, 1 deletions
diff --git a/test/RequestTest.cc b/test/RequestTest.cc
index 807ec821..e5c8925f 100644
--- a/test/RequestTest.cc
+++ b/test/RequestTest.cc
@@ -1,8 +1,10 @@
#include "Request.h"
+
+#include <cppunit/extensions/HelperMacros.h>
+
#include "Netrc.h"
#include "DefaultAuthResolver.h"
#include "NetrcAuthResolver.h"
-#include <cppunit/extensions/HelperMacros.h>
namespace aria2 {
@@ -33,6 +35,7 @@ class RequestTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testRedirectUrl2);
CPPUNIT_TEST(testResetUrl);
CPPUNIT_TEST(testInnerLink);
+ CPPUNIT_TEST(testInnerLinkInReferer);
CPPUNIT_TEST_SUITE_END();
public:
@@ -60,6 +63,7 @@ public:
void testRedirectUrl2();
void testResetUrl();
void testInnerLink();
+ void testInnerLinkInReferer();
};
@@ -267,6 +271,10 @@ void RequestTest::testSetUrl17()
CPPUNIT_ASSERT_EQUAL(std::string("/file%3cwith%252%20%20space"), req.getDir());
CPPUNIT_ASSERT_EQUAL(std::string("file%20with%20space;param"), req.getFile());
CPPUNIT_ASSERT_EQUAL(std::string("?a=/?"), req.getQuery());
+ CPPUNIT_ASSERT_EQUAL(std::string("http://host:80/file%3cwith%252%20%20space"
+ "/file%20with%20space;param?a=/?"),
+ req.getCurrentUrl());
+ CPPUNIT_ASSERT_EQUAL(req.getCurrentUrl(), req.getUrl());
}
void RequestTest::testRedirectUrl() {
@@ -357,10 +365,21 @@ void RequestTest::testInnerLink() {
Request req;
bool v = req.setUrl("http://aria.rednoah.com/index.html#download");
CPPUNIT_ASSERT(v);
+ CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/index.html"),
+ req.getUrl());
+ CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/index.html"),
+ req.getCurrentUrl());
CPPUNIT_ASSERT_EQUAL(std::string("index.html"), req.getFile());
CPPUNIT_ASSERT_EQUAL(std::string(""), req.getQuery());
}
+void RequestTest::testInnerLinkInReferer() {
+ Request req;
+ req.setReferer("http://aria.rednoah.com/home.html#top");
+ CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/home.html"),
+ req.getReferer());
+}
+
void RequestTest::testSetUrl_zeroUsername()
{
Request req;