summaryrefslogtreecommitdiff
path: root/indra/test/mock_http_client.h
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
committerNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
commit094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch)
treee750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/test/mock_http_client.h
parentd4043d3b011c32eb503c43c551872f9c24d7344f (diff)
parent38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (diff)
Merge DRTVWR-591-maint-X to main on promotion of secondlife/viewer #705: Maintenance X
Diffstat (limited to 'indra/test/mock_http_client.h')
-rw-r--r--indra/test/mock_http_client.h318
1 files changed, 159 insertions, 159 deletions
diff --git a/indra/test/mock_http_client.h b/indra/test/mock_http_client.h
index a2b9b435fb..ef268abc6e 100644
--- a/indra/test/mock_http_client.h
+++ b/indra/test/mock_http_client.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file mock_http_client.cpp
* @brief Framework for testing HTTP requests
*
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -33,158 +33,158 @@
namespace tut
{
- struct MockHttpClient
- {
- public:
- MockHttpClient()
- {
- apr_pool_create(&mPool, NULL);
- mServerPump = new LLPumpIO(mPool);
- mClientPump = new LLPumpIO(mPool);
-
- LLHTTPClient::setPump(*mClientPump);
- }
-
- ~MockHttpClient()
- {
- delete mServerPump;
- delete mClientPump;
- apr_pool_destroy(mPool);
- }
-
- void setupTheServer()
- {
- LLHTTPNode& root = LLIOHTTPServer::create(mPool, *mServerPump, 8888);
-
- LLHTTPStandardServices::useServices();
- LLHTTPRegistrar::buildAllServices(root);
- }
-
- void runThePump(float timeout = 100.0f)
- {
- LLTimer timer;
- timer.setTimerExpirySec(timeout);
-
- while(!mSawCompleted && !timer.hasExpired())
- {
- if (mServerPump)
- {
- mServerPump->pump();
- mServerPump->callback();
- }
- if (mClientPump)
- {
- mClientPump->pump();
- mClientPump->callback();
- }
- }
- }
-
- void killServer()
- {
- delete mServerPump;
- mServerPump = NULL;
- }
-
- private:
- apr_pool_t* mPool;
- LLPumpIO* mServerPump;
- LLPumpIO* mClientPump;
-
-
- protected:
- void ensureStatusOK()
- {
- if (mSawError)
- {
- std::string msg =
- llformat("httpFailure() called when not expected, status %d",
- mStatus);
- fail(msg);
- }
- }
-
- void ensureStatusError()
- {
- if (!mSawError)
- {
- fail("httpFailure() wasn't called");
- }
- }
-
- LLSD getResult()
- {
- return mResult;
- }
-
- protected:
- bool mSawError;
- S32 mStatus;
- std::string mReason;
- bool mSawCompleted;
- LLSD mResult;
- bool mResultDeleted;
-
- class Result : public LLHTTPClient::Responder
- {
- protected:
- Result(MockHttpClient& client)
- : mClient(client)
- {
- }
-
- public:
- static boost::intrusive_ptr<Result> build(MockHttpClient& client)
- {
- return boost::intrusive_ptr<Result>(new Result(client));
- }
-
- ~Result()
- {
- mClient.mResultDeleted = true;
- }
-
- protected:
- virtual void httpFailure()
- {
- mClient.mSawError = true;
- mClient.mStatus = getStatus();
- mClient.mReason = getReason();
- }
-
- virtual void httpSuccess()
- {
- mClient.mResult = getContent();
- }
-
- virtual void httpCompleted()
- {
- LLHTTPClient::Responder::httpCompleted();
-
- mClient.mSawCompleted = true;
- }
-
- private:
- MockHttpClient& mClient;
- };
-
- friend class Result;
-
- protected:
-
- void reset()
- {
- mSawError = false;
- mStatus = 0;
- mSawCompleted = false;
- mResult.clear();
- mResultDeleted = false;
- }
-
- LLHTTPClient::ResponderPtr newResult()
- {
- reset();
- return Result::build(*this);
- }
- };
+ struct MockHttpClient
+ {
+ public:
+ MockHttpClient()
+ {
+ apr_pool_create(&mPool, NULL);
+ mServerPump = new LLPumpIO(mPool);
+ mClientPump = new LLPumpIO(mPool);
+
+ LLHTTPClient::setPump(*mClientPump);
+ }
+
+ ~MockHttpClient()
+ {
+ delete mServerPump;
+ delete mClientPump;
+ apr_pool_destroy(mPool);
+ }
+
+ void setupTheServer()
+ {
+ LLHTTPNode& root = LLIOHTTPServer::create(mPool, *mServerPump, 8888);
+
+ LLHTTPStandardServices::useServices();
+ LLHTTPRegistrar::buildAllServices(root);
+ }
+
+ void runThePump(float timeout = 100.0f)
+ {
+ LLTimer timer;
+ timer.setTimerExpirySec(timeout);
+
+ while(!mSawCompleted && !timer.hasExpired())
+ {
+ if (mServerPump)
+ {
+ mServerPump->pump();
+ mServerPump->callback();
+ }
+ if (mClientPump)
+ {
+ mClientPump->pump();
+ mClientPump->callback();
+ }
+ }
+ }
+
+ void killServer()
+ {
+ delete mServerPump;
+ mServerPump = NULL;
+ }
+
+ private:
+ apr_pool_t* mPool;
+ LLPumpIO* mServerPump;
+ LLPumpIO* mClientPump;
+
+
+ protected:
+ void ensureStatusOK()
+ {
+ if (mSawError)
+ {
+ std::string msg =
+ llformat("httpFailure() called when not expected, status %d",
+ mStatus);
+ fail(msg);
+ }
+ }
+
+ void ensureStatusError()
+ {
+ if (!mSawError)
+ {
+ fail("httpFailure() wasn't called");
+ }
+ }
+
+ LLSD getResult()
+ {
+ return mResult;
+ }
+
+ protected:
+ bool mSawError;
+ S32 mStatus;
+ std::string mReason;
+ bool mSawCompleted;
+ LLSD mResult;
+ bool mResultDeleted;
+
+ class Result : public LLHTTPClient::Responder
+ {
+ protected:
+ Result(MockHttpClient& client)
+ : mClient(client)
+ {
+ }
+
+ public:
+ static boost::intrusive_ptr<Result> build(MockHttpClient& client)
+ {
+ return boost::intrusive_ptr<Result>(new Result(client));
+ }
+
+ ~Result()
+ {
+ mClient.mResultDeleted = true;
+ }
+
+ protected:
+ virtual void httpFailure()
+ {
+ mClient.mSawError = true;
+ mClient.mStatus = getStatus();
+ mClient.mReason = getReason();
+ }
+
+ virtual void httpSuccess()
+ {
+ mClient.mResult = getContent();
+ }
+
+ virtual void httpCompleted()
+ {
+ LLHTTPClient::Responder::httpCompleted();
+
+ mClient.mSawCompleted = true;
+ }
+
+ private:
+ MockHttpClient& mClient;
+ };
+
+ friend class Result;
+
+ protected:
+
+ void reset()
+ {
+ mSawError = false;
+ mStatus = 0;
+ mSawCompleted = false;
+ mResult.clear();
+ mResultDeleted = false;
+ }
+
+ LLHTTPClient::ResponderPtr newResult()
+ {
+ reset();
+ return Result::build(*this);
+ }
+ };
}