2008-11-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Do not urlencode Request::url in setUrl() because we want
	unmodified URL using Request::getUrl()
	* src/Request.cc
	* src/Request.h
	* test/RequestTest.cc
pull/1/head
Tatsuhiro Tsujikawa 2008-11-18 15:10:47 +00:00
parent 53b418cde9
commit 931bd985db
4 changed files with 15 additions and 7 deletions

View File

@ -1,6 +1,10 @@
2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
2008-11-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
* Release 1.0.0
Do not urlencode Request::url in setUrl() because we want unmodified
URL using Request::getUrl()
* src/Request.cc
* src/Request.h
* test/RequestTest.cc
2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

View File

@ -115,13 +115,13 @@ static std::string urlencode(const std::string& src)
}
bool Request::setUrl(const std::string& url) {
this->url = urlencode(removeFragment(url));
return parseUrl(this->url);
this->url = url;
return parseUrl(urlencode(removeFragment(url)));
}
bool Request::resetUrl() {
previousUrl = referer;
return parseUrl(url);
return parseUrl(urlencode(removeFragment(url)));
}
void Request::setReferer(const std::string& url)

View File

@ -101,6 +101,7 @@ public:
unsigned int getRedirectCount() const;
// Returns URI passed by setUrl()
const std::string& getUrl() const { return url; }
const std::string& getCurrentUrl() const { return currentUrl; }
const std::string& getPreviousUrl() const { return previousUrl; }

View File

@ -274,7 +274,9 @@ void RequestTest::testSetUrl17()
CPPUNIT_ASSERT_EQUAL(std::string("http://host:80/file%3cwith%252%20%20space"
"/file%20with%20space;param%25?a=/?"),
req.getCurrentUrl());
CPPUNIT_ASSERT_EQUAL(req.getCurrentUrl(), req.getUrl());
CPPUNIT_ASSERT_EQUAL(std::string("http://host:80/file<with%2 %20space"
"/file with space;param%?a=/?"),
req.getUrl());
}
void RequestTest::testRedirectUrl() {
@ -365,7 +367,8 @@ 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"),
CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/index.html"
"#download"),
req.getUrl());
CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/index.html"),
req.getCurrentUrl());