diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-10-08 15:35:52 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-10-08 15:35:52 +0000 |
| commit | 22af8b4b22107ac411f98d22447bef3cc2eebf16 (patch) | |
| tree | a7acb6c3c6bc9d61ef306c67a5a31694f044fa36 /test/RequestTest.cc | |
| parent | a7018cb5955d246f2461b71c91528d70d85a3a39 (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.cc | 21 |
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; |
