Browse Source

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
Tatsuhiro Tsujikawa 17 years ago
parent
commit
931bd985db
4 changed files with 15 additions and 7 deletions
  1. 6 2
      ChangeLog
  2. 3 3
      src/Request.cc
  3. 1 0
      src/Request.h
  4. 5 2
      test/RequestTest.cc

+ 6 - 2
ChangeLog

@@ -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>
 

+ 3 - 3
src/Request.cc

@@ -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)

+ 1 - 0
src/Request.h

@@ -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; }

+ 5 - 2
test/RequestTest.cc

@@ -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());