From 985bc37c007a8dcfcc1ccd2cfc68a0ac6cce332a Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 27 Jun 2010 14:36:25 +0000 Subject: [PATCH] 2010-06-27 Tatsuhiro Tsujikawa Don't set previousUri_ to "" on redirect. * src/Request.cc: redirectUri() --- ChangeLog | 5 +++++ src/Request.cc | 1 - test/RequestTest.cc | 18 +++++++++++------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0083c2a6..3097bbf1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-06-27 Tatsuhiro Tsujikawa + + Don't set previousUri_ to "" on redirect. + * src/Request.cc: redirectUri() + 2010-06-27 Tatsuhiro Tsujikawa Return given hostname if hostname is numeric host. diff --git a/src/Request.cc b/src/Request.cc index 761ec1b9..b52c5e62 100644 --- a/src/Request.cc +++ b/src/Request.cc @@ -125,7 +125,6 @@ void Request::setReferer(const std::string& uri) } bool Request::redirectUri(const std::string& uri) { - previousUri_ = A2STR::NIL; supportsPersistentConnection_ = true; ++redirectCount_; std::string redirectedUri; diff --git a/test/RequestTest.cc b/test/RequestTest.cc index 7f74ff8a..9e96af60 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -339,7 +339,7 @@ void RequestTest::testRedirectUri() { // currentUri must be updated CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.co.jp/"), req.getCurrentUri()); - // previousUri must be "" when redirection + // previousUri is "" because no referer is set. CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPreviousUri()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req.getProtocol()); CPPUNIT_ASSERT_EQUAL(std::string("aria.rednoah.co.jp"), req.getHost()); @@ -375,18 +375,22 @@ void RequestTest::testRedirectUri2() { CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPreviousUri()); req.setReferer("http://aria.rednoah.com/"); // previousUri is updated when referer is specified - CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), req.getPreviousUri()); + CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), + req.getPreviousUri()); req.redirectUri("http://aria.rednoah.com/403.html"); - // previousUri must be "" when redirection - CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPreviousUri()); + // previousUri must not be changed in redirection + CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), + req.getPreviousUri()); // referer is unchagned - CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), req.getReferer()); + CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), + req.getReferer()); req.redirectUri("http://aria.rednoah.com/error.html"); - // previousUri must be "" when redirection - CPPUNIT_ASSERT_EQUAL(std::string(""), req.getPreviousUri()); + // previousUri must not be changed in redirection + CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com/"), + req.getPreviousUri()); } void RequestTest::testResetUri() {