[Box Backup-commit] COMMIT r2446 - box/trunk/test/httpserver

boxbackup-dev@boxbackup.org boxbackup-dev@boxbackup.org
Fri, 9 Jan 2009 10:19:46 +0000 (GMT)


Author: chris
Date: 2009-01-09 10:19:46 +0000 (Fri, 09 Jan 2009)
New Revision: 2446

Modified:
   box/trunk/test/httpserver/testhttpserver.cpp
Log:
Add support for PUT requests in HTTP simulator.


Modified: box/trunk/test/httpserver/testhttpserver.cpp
===================================================================
--- box/trunk/test/httpserver/testhttpserver.cpp	2009-01-09 10:19:11 UTC (rev 2445)
+++ box/trunk/test/httpserver/testhttpserver.cpp	2009-01-09 10:19:46 UTC (rev 2446)
@@ -347,6 +347,8 @@
 	{ }
 		
 	HTTPResponse GetObject(const std::string& rObjectURI);
+	HTTPResponse PutObject(const std::string& rObjectURI,
+		IOStream& rStreamToSend, const char* pContentType = NULL);
 
 	private:
 	S3Simulator* mpSimulator;
@@ -369,6 +371,13 @@
 	return FinishAndSendRequest(HTTPRequest::Method_GET, rObjectURI);
 }
 
+HTTPResponse S3Client::PutObject(const std::string& rObjectURI,
+	IOStream& rStreamToSend, const char* pContentType)
+{
+	return FinishAndSendRequest(HTTPRequest::Method_PUT, rObjectURI,
+		&rStreamToSend, pContentType);
+}
+
 HTTPResponse S3Client::FinishAndSendRequest(HTTPRequest::Method Method,
 	const std::string& rRequestURI, IOStream* pStreamToSend,
 	const char* pStreamContentType)
@@ -683,8 +692,24 @@
 			response.GetSize());
 		TEST_EQUAL("omgpuppies!\n", response_data);
 
+		// make sure that assigning to HTTPResponse does clear stream
+		response = client.GetObject("/photos/puppy.jpg");
+		TEST_EQUAL(200, response.GetResponseCode());
+		response_data = std::string((const char *)response.GetBuffer(),
+			response.GetSize());
+		TEST_EQUAL("omgpuppies!\n", response_data);
+
 		response = client.GetObject("/nonexist");
 		TEST_EQUAL(404, response.GetResponseCode());
+		
+		FileStream fs("testfiles/testrequests.pl");
+		response = client.PutObject("/newfile", fs);
+		TEST_EQUAL(200, response.GetResponseCode());
+
+		response = client.GetObject("/newfile");
+		TEST_EQUAL(200, response.GetResponseCode());
+		TEST_THAT(fs.CompareWith(response));
+		TEST_EQUAL(0, ::unlink("testfiles/newfile"));
 	}
 
 	{