diff options
| author | Jonathan Yap <none@none> | 2012-06-08 13:50:48 -0400 | 
|---|---|---|
| committer | Jonathan Yap <none@none> | 2012-06-08 13:50:48 -0400 | 
| commit | 15011a7b9d5147629d1d2111c73eecc42a71ae9e (patch) | |
| tree | db8ea9802d2f0a954d12fd8a400a2033a7245bde | |
| parent | fbb4e5fb0f7bba935ec9d0d466be12a346a6b149 (diff) | |
| parent | ce563795e1f5d7493b975393bea9ec5cab90fd6a (diff) | |
STORM-68 merge with https://bitbucket.org/oz_linden/viewer-httptests
| -rw-r--r-- | indra/llmessage/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | indra/llmessage/tests/llhttpclient_test.cpp (renamed from indra/test/llhttpclient_tut.cpp) | 39 | ||||
| -rw-r--r-- | indra/llmessage/tests/llsdmessage_test.cpp | 2 | ||||
| -rw-r--r-- | indra/llmessage/tests/test_llsdmessage_peer.py | 19 | ||||
| -rw-r--r-- | indra/newview/tests/llcapabilitylistener_test.cpp | 2 | ||||
| -rw-r--r-- | indra/test/CMakeLists.txt | 1 | 
6 files changed, 39 insertions, 32 deletions
| diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt index 0f40a670fa..d98781e9e6 100644 --- a/indra/llmessage/CMakeLists.txt +++ b/indra/llmessage/CMakeLists.txt @@ -254,6 +254,14 @@ if (LL_TESTS)      "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llsdmessage_peer.py"      ) +  LL_ADD_INTEGRATION_TEST( +    llhttpclient +    "llhttpclient.cpp" +    "${test_libs}" +    ${PYTHON_EXECUTABLE} +    "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llsdmessage_peer.py" +    ) +    LL_ADD_INTEGRATION_TEST(llavatarnamecache "" "${test_libs}")    LL_ADD_INTEGRATION_TEST(llhost "" "${test_libs}")    LL_ADD_INTEGRATION_TEST(llpartdata "" "${test_libs}") diff --git a/indra/test/llhttpclient_tut.cpp b/indra/llmessage/tests/llhttpclient_test.cpp index 4b4046632c..843c3bcc4b 100644 --- a/indra/test/llhttpclient_tut.cpp +++ b/indra/llmessage/tests/llhttpclient_test.cpp @@ -1,5 +1,5 @@  /**  - * @file llhttpclient_tut.cpp + * @file llhttpclient_test.cpp   * @brief Testing the HTTP client classes.   *   * $LicenseInfo:firstyear=2006&license=viewerlgpl$ @@ -33,9 +33,6 @@  #include <tut/tut.hpp>  #include "linden_common.h" -// These are too slow on Windows to actually include in the build. JC -#if !LL_WINDOWS -  #include "lltut.h"  #include "llhttpclient.h"  #include "llformat.h" @@ -46,6 +43,7 @@  #include "llsdhttpserver.h"  #include "lliohttpserver.h"  #include "lliosocket.h" +#include "stringize.h"  namespace tut  { @@ -83,7 +81,8 @@ namespace tut  	struct HTTPClientTestData  	{  	public: -		HTTPClientTestData() +		HTTPClientTestData(): +			local_server(STRINGIZE("http://127.0.0.1:" << getenv("PORT") << "/"))  		{  			apr_pool_create(&mPool, NULL);  			LLCurl::initClass(false); @@ -134,13 +133,14 @@ namespace tut  			delete mServerPump;  			mServerPump = NULL;  		} -	 + +		const std::string local_server; +  	private:  		apr_pool_t* mPool;  		LLPumpIO* mServerPump;  		LLPumpIO* mClientPump; -		  	protected:  		void ensureStatusOK()  		{ @@ -257,7 +257,7 @@ namespace tut  	template<> template<>  	void HTTPClientTestObject::test<1>()  	{ -		LLHTTPClient::get("http://www.google.com/", newResult()); +		LLHTTPClient::get(local_server, newResult());  		runThePump();  		ensureStatusOK();  		ensure("result object wasn't destroyed", mResultDeleted); @@ -266,8 +266,8 @@ namespace tut  	template<> template<>  	void HTTPClientTestObject::test<2>()  	{ -		skip("error test depends on dev's local ISP not supplying \"helpful\" search page"); -		LLHTTPClient::get("http://www.invalid", newResult()); +		// Please nobody listen on this particular port... +		LLHTTPClient::get("http://127.0.0.1:7950", newResult());  		runThePump();  		ensureStatusError();  	} @@ -344,18 +344,13 @@ namespace tut  		// won't ever let it run.  Instead get from a known LLSD  		// source and compare results with the non-blocking get which  		// is tested against the mini server earlier. -		skip("secondlife.com is not reliable enough for unit tests."); - - -		LLSD expected; - -		LLHTTPClient::get("http://secondlife.com/xmlhttp/homepage.php", newResult()); +		LLHTTPClient::get(local_server, newResult());  		runThePump();  		ensureStatusOK(); -		expected = getResult(); +		LLSD expected = getResult();  		LLSD result; -		result = LLHTTPClient::blockingGet("http://secondlife.com/xmlhttp/homepage.php"); +		result = LLHTTPClient::blockingGet(local_server);  		LLSD body = result["body"];  		ensure_equals("echoed result matches", body.size(), expected.size());  	} @@ -364,20 +359,18 @@ namespace tut  	{  		// This is testing for the presence of the Header in the returned results  		// from an HTTP::get call. -		LLHTTPClient::get("http://www.google.com/", newResult()); +		LLHTTPClient::get(local_server, newResult());  		runThePump();  		ensureStatusOK();  		LLSD header = getHeader(); -		ensure_equals("got a header", header.emptyMap().asBoolean(), FALSE); +		ensure("got a header", ! header.emptyMap().asBoolean());  	}  	template<> template<>  	void HTTPClientTestObject::test<9>()  	{ -		LLHTTPClient::head("http://www.google.com/", newResult()); +		LLHTTPClient::head(local_server, newResult());  		runThePump();  		ensureStatusOK();  		ensure("result object wasn't destroyed", mResultDeleted);  	}  } - -#endif	// !LL_WINDOWS diff --git a/indra/llmessage/tests/llsdmessage_test.cpp b/indra/llmessage/tests/llsdmessage_test.cpp index 0f2c069303..31a791e4b4 100644 --- a/indra/llmessage/tests/llsdmessage_test.cpp +++ b/indra/llmessage/tests/llsdmessage_test.cpp @@ -143,7 +143,7 @@ namespace tut          httpPump.post(request);          ensure("got response", netio.pump());          ensure("success response", success); -        ensure_equals(result.asString(), "success"); +        ensure_equals(result["reply"].asString(), "success");          body["status"] = 499;          body["reason"] = "custom error message"; diff --git a/indra/llmessage/tests/test_llsdmessage_peer.py b/indra/llmessage/tests/test_llsdmessage_peer.py index 22edd9dad8..fe4f3a8c01 100644 --- a/indra/llmessage/tests/test_llsdmessage_peer.py +++ b/indra/llmessage/tests/test_llsdmessage_peer.py @@ -78,25 +78,32 @@ class TestHTTPRequestHandler(BaseHTTPRequestHandler):  ##         debug("root node tag %s", tree.getroot().tag)  ##         return llsd.to_python(tree.getroot()) -    def do_GET(self): +    def do_HEAD(self): +        self.do_GET(withdata=False) + +    def do_GET(self, withdata=True):          # Of course, don't attempt to read data. -        self.answer(dict(reply="success", status=500, -                         reason="Your GET operation requested failure")) +        data = dict(reply="success", body="avatar", random=17) +        self.answer(data, withdata=withdata)      def do_POST(self):          # Read the provided POST data.          self.answer(self.read_xml()) -    def answer(self, data): +    def answer(self, data, withdata=True):          debug("%s.answer(%s): self.path = %r", self.__class__.__name__, data, self.path)          if "fail" not in self.path: -            response = llsd.format_xml(data.get("reply", llsd.LLSD("success"))) +            data = data.copy()          # we're going to modify +            # Ensure there's a "reply" key in data, even if there wasn't before +            data["reply"] = data.get("reply", llsd.LLSD("success")) +            response = llsd.format_xml(data)              debug("success: %s", response)              self.send_response(200)              self.send_header("Content-type", "application/llsd+xml")              self.send_header("Content-Length", str(len(response)))              self.end_headers() -            self.wfile.write(response) +            if withdata: +                self.wfile.write(response)          else:                           # fail requested              status = data.get("status", 500)              # self.responses maps an int status to a (short, long) pair of diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp index 2ad08dc1f3..e1cbd28f92 100644 --- a/indra/newview/tests/llcapabilitylistener_test.cpp +++ b/indra/newview/tests/llcapabilitylistener_test.cpp @@ -156,7 +156,7 @@ namespace tut          regionPump.post(request);          ensure("got response", netio.pump());          ensure("success response", success); -        ensure_equals(result.asString(), "success"); +        ensure_equals(result["reply"].asString(), "success");          body["status"] = 499;          body["reason"] = "custom error message"; diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 328ab4ca51..816f1d7175 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -37,7 +37,6 @@ set(test_SOURCE_FILES      lldoubledispatch_tut.cpp      llevents_tut.cpp      llhttpdate_tut.cpp -    llhttpclient_tut.cpp      llhttpnode_tut.cpp      lliohttpserver_tut.cpp      llmessageconfig_tut.cpp | 
