diff options
Diffstat (limited to 'indra/llmessage/tests')
| -rw-r--r-- | indra/llmessage/tests/llmockhttpclient.h | 66 | ||||
| -rw-r--r-- | indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp | 320 | ||||
| -rw-r--r-- | indra/llmessage/tests/llxfer_file_test.cpp | 116 | 
3 files changed, 218 insertions, 284 deletions
| diff --git a/indra/llmessage/tests/llmockhttpclient.h b/indra/llmessage/tests/llmockhttpclient.h deleted file mode 100644 index 1611ab7bd8..0000000000 --- a/indra/llmessage/tests/llmockhttpclient.h +++ /dev/null @@ -1,66 +0,0 @@ -/** - * @file - * @brief - * - * $LicenseInfo:firstyear=2008&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$ - */ - -/* Macro Definitions */ -#ifndef LL_LLMOCKHTTPCLIENT_H -#define LL_LLMOCKHTTPCLIENT_H - -#include "linden_common.h" -#include "llhttpclientinterface.h" - -#include <gmock/gmock.h> - -class LLMockHTTPClient : public LLHTTPClientInterface -{ -public: -  MOCK_METHOD2(get, void(const std::string& url, LLCurl::ResponderPtr responder)); -  MOCK_METHOD3(get, void(const std::string& url, LLCurl::ResponderPtr responder, const LLSD& headers)); -  MOCK_METHOD3(put, void(const std::string& url, const LLSD& body, LLCurl::ResponderPtr responder)); -}; - -// A helper to match responder types -template<typename T> -struct ResponderType -{ -    bool operator()(LLCurl::ResponderPtr ptr) const -    { -        T* p = dynamic_cast<T*>(ptr.get()); -        return p != NULL; -    } -}; - -inline bool operator==(const LLSD& l, const LLSD& r) -{ -    std::ostringstream ls, rs; -    ls << l; -    rs << r; -    return ls.str() == rs.str(); - -} - - -#endif //LL_LLMOCKHTTPCLIENT_H - diff --git a/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp b/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp index 911aef827d..d0a34d720a 100644 --- a/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp +++ b/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp @@ -1,160 +1,160 @@ -/** - * @file lltrustedmessageservice_test.cpp - * @brief LLTrustedMessageService unit tests - * - * $LicenseInfo:firstyear=2009&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$ - */ - -#include "lltemplatemessagedispatcher.h" -#include "lltut.h" - -#include "llhttpnode.h" -#include "llhost.h" -#include "message.h" -#include "llsd.h" -#include "llpounceable.h" - -#include "llhost.cpp" // Needed for copy operator -#include "net.cpp" // Needed by LLHost. - -LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem; - -// sensor test doubles -bool gClearRecvWasCalled = false; -void LLMessageSystem::clearReceiveState(void) -{ -    gClearRecvWasCalled = true; -} - -char gUdpDispatchedData[MAX_BUFFER_SIZE]; -bool gUdpDispatchWasCalled = false; -BOOL LLTemplateMessageReader::readMessage(const U8* data,class LLHost const &) -{ -    gUdpDispatchWasCalled = true; -    strcpy(gUdpDispatchedData, reinterpret_cast<const char*>(data)); -    return  true; -} - -BOOL gValidateMessage = FALSE; -BOOL LLTemplateMessageReader::validateMessage(const U8*, S32 buffer_size, LLHost const &sender, bool trusted) -{ -    return gValidateMessage; -} - -LLHost host; -const LLHost& LLMessageSystem::getSender() const -{ -    return host; -} - -const char* gBinaryTemplateData = "BINARYTEMPLATEDATA"; -void fillVector(std::vector<U8>& vector_data, const char* data) -{ -    vector_data.resize(strlen(data) + 1); -    strcpy(reinterpret_cast<char*>(&vector_data[0]), data); -} - -namespace tut -{ -        static LLTemplateMessageReader::message_template_number_map_t numberMap; - -        struct LLTemplateMessageDispatcherData -        { -            LLTemplateMessageDispatcherData() -            { -                mMessageName = "MessageName"; -                gUdpDispatchWasCalled = false; -                gClearRecvWasCalled = false; -                gValidateMessage = FALSE; -                mMessage["body"]["binary-template-data"] = std::vector<U8>(); -            } - -            LLSD mMessage; -            LLHTTPNode::ResponsePtr mResponsePtr; -            std::string mMessageName; -        }; - -    typedef test_group<LLTemplateMessageDispatcherData> factory; -    typedef factory::object object; -} - -namespace -{ -    tut::factory tf("LLTemplateMessageDispatcher"); -} - -namespace tut -{ -    // does an empty message stop processing? -    template<> template<> -    void object::test<1>() -    { -        LLTemplateMessageReader* pReader = NULL; -        LLTemplateMessageDispatcher t(*pReader); -        t.dispatch(mMessageName, mMessage, mResponsePtr); -        ensure(! gUdpDispatchWasCalled); -        ensure(! gClearRecvWasCalled); -    } - -    // does the disaptch invoke the udp send method? -    template<> template<> -    void object::test<2>() -    { -        LLTemplateMessageReader* pReader = NULL; -        LLTemplateMessageDispatcher t(*pReader); -        gValidateMessage = TRUE; -        std::vector<U8> vector_data; -        fillVector(vector_data, gBinaryTemplateData); -        mMessage["body"]["binary-template-data"] = vector_data; -        t.dispatch(mMessageName, mMessage, mResponsePtr); -        ensure("udp dispatch was called", gUdpDispatchWasCalled); -    } - -    // what if the message wasn't valid? We would hope the message gets cleared! -    template<> template<> -    void object::test<3>() -    { -        LLTemplateMessageReader* pReader = NULL; -        LLTemplateMessageDispatcher t(*pReader); -        std::vector<U8> vector_data; -        fillVector(vector_data, gBinaryTemplateData); -        mMessage["body"]["binary-template-data"] = vector_data; -        gValidateMessage = FALSE; -        t.dispatch(mMessageName, mMessage, mResponsePtr); -        ensure("clear received message was called", gClearRecvWasCalled); -    } - -    // is the binary data passed through correctly? -    template<> template<> -    void object::test<4>() -    { -        LLTemplateMessageReader* pReader = NULL; -        LLTemplateMessageDispatcher t(*pReader); -        gValidateMessage = TRUE; -        std::vector<U8> vector_data; -        fillVector(vector_data, gBinaryTemplateData); -        mMessage["body"]["binary-template-data"] = vector_data; -        t.dispatch(mMessageName, mMessage, mResponsePtr); -        ensure("data couriered correctly", strcmp(gBinaryTemplateData, gUdpDispatchedData) == 0); -    } -} - +/**
 + * @file lltrustedmessageservice_test.cpp
 + * @brief LLTrustedMessageService unit tests
 + *
 + * $LicenseInfo:firstyear=2009&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$
 + */
 +
 +#include "lltemplatemessagedispatcher.h"
 +#include "lltut.h"
 +
 +#include "llhttpnode.h"
 +#include "llhost.h"
 +#include "message.h"
 +#include "llsd.h"
 +#include "llpounceable.h"
 +
 +#include "llhost.cpp" // Needed for copy operator
 +#include "net.cpp" // Needed by LLHost.
 +
 +LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem;
 +
 +// sensor test doubles
 +bool gClearRecvWasCalled = false;
 +void LLMessageSystem::clearReceiveState(void)
 +{
 +    gClearRecvWasCalled = true;
 +}
 +
 +char gUdpDispatchedData[MAX_BUFFER_SIZE];
 +bool gUdpDispatchWasCalled = false;
 +bool LLTemplateMessageReader::readMessage(const U8* data,class LLHost const &)
 +{
 +    gUdpDispatchWasCalled = true;
 +    strcpy(gUdpDispatchedData, reinterpret_cast<const char*>(data));
 +    return  true;
 +}
 +
 +bool gValidateMessage = false;
 +bool LLTemplateMessageReader::validateMessage(const U8*, S32 buffer_size, LLHost const &sender, bool trusted)
 +{
 +    return gValidateMessage;
 +}
 +
 +LLHost host;
 +const LLHost& LLMessageSystem::getSender() const
 +{
 +    return host;
 +}
 +
 +const char* gBinaryTemplateData = "BINARYTEMPLATEDATA";
 +void fillVector(std::vector<U8>& vector_data, const char* data)
 +{
 +    vector_data.resize(strlen(data) + 1);
 +    strcpy(reinterpret_cast<char*>(&vector_data[0]), data);
 +}
 +
 +namespace tut
 +{
 +        static LLTemplateMessageReader::message_template_number_map_t numberMap;
 +
 +        struct LLTemplateMessageDispatcherData
 +        {
 +            LLTemplateMessageDispatcherData()
 +            {
 +                mMessageName = "MessageName";
 +                gUdpDispatchWasCalled = false;
 +                gClearRecvWasCalled = false;
 +                gValidateMessage = false;
 +                mMessage["body"]["binary-template-data"] = std::vector<U8>();
 +            }
 +
 +            LLSD mMessage;
 +            LLHTTPNode::ResponsePtr mResponsePtr;
 +            std::string mMessageName;
 +        };
 +
 +    typedef test_group<LLTemplateMessageDispatcherData> factory;
 +    typedef factory::object object;
 +}
 +
 +namespace
 +{
 +    tut::factory tf("LLTemplateMessageDispatcher");
 +}
 +
 +namespace tut
 +{
 +    // does an empty message stop processing?
 +    template<> template<>
 +    void object::test<1>()
 +    {
 +        LLTemplateMessageReader* pReader = NULL;
 +        LLTemplateMessageDispatcher t(*pReader);
 +        t.dispatch(mMessageName, mMessage, mResponsePtr);
 +        ensure(! gUdpDispatchWasCalled);
 +        ensure(! gClearRecvWasCalled);
 +    }
 +
 +    // does the disaptch invoke the udp send method?
 +    template<> template<>
 +    void object::test<2>()
 +    {
 +        LLTemplateMessageReader* pReader = NULL;
 +        LLTemplateMessageDispatcher t(*pReader);
 +        gValidateMessage = true;
 +        std::vector<U8> vector_data;
 +        fillVector(vector_data, gBinaryTemplateData);
 +        mMessage["body"]["binary-template-data"] = vector_data;
 +        t.dispatch(mMessageName, mMessage, mResponsePtr);
 +        ensure("udp dispatch was called", gUdpDispatchWasCalled);
 +    }
 +
 +    // what if the message wasn't valid? We would hope the message gets cleared!
 +    template<> template<>
 +    void object::test<3>()
 +    {
 +        LLTemplateMessageReader* pReader = NULL;
 +        LLTemplateMessageDispatcher t(*pReader);
 +        std::vector<U8> vector_data;
 +        fillVector(vector_data, gBinaryTemplateData);
 +        mMessage["body"]["binary-template-data"] = vector_data;
 +        gValidateMessage = false;
 +        t.dispatch(mMessageName, mMessage, mResponsePtr);
 +        ensure("clear received message was called", gClearRecvWasCalled);
 +    }
 +
 +    // is the binary data passed through correctly?
 +    template<> template<>
 +    void object::test<4>()
 +    {
 +        LLTemplateMessageReader* pReader = NULL;
 +        LLTemplateMessageDispatcher t(*pReader);
 +        gValidateMessage = true;
 +        std::vector<U8> vector_data;
 +        fillVector(vector_data, gBinaryTemplateData);
 +        mMessage["body"]["binary-template-data"] = vector_data;
 +        t.dispatch(mMessageName, mMessage, mResponsePtr);
 +        ensure("data couriered correctly", strcmp(gBinaryTemplateData, gUdpDispatchedData) == 0);
 +    }
 +}
 +
 diff --git a/indra/llmessage/tests/llxfer_file_test.cpp b/indra/llmessage/tests/llxfer_file_test.cpp index af0cc5b5ab..6a2e0566df 100644 --- a/indra/llmessage/tests/llxfer_file_test.cpp +++ b/indra/llmessage/tests/llxfer_file_test.cpp @@ -1,58 +1,58 @@ -/** - * @file llxfer_test.cpp - * @author Moss - * @date 2007-04-17 - * - * $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$ - */ - -#include "linden_common.h" - -#include "../llxfer_file.h" - -#include "../test/lltut.h" - -namespace tut -{ -    struct llxfer_data -    { -    }; -    typedef test_group<llxfer_data> llxfer_test; -    typedef llxfer_test::object llxfer_object; -    tut::llxfer_test llxfer("LLXferFile"); - -    template<> template<> -    void llxfer_object::test<1>() -    { -        // test that we handle an oversized filename correctly. -        std::string oversized_filename; -        U32 i; -        for (i=0; i<LL_MAX_PATH*2; ++i) // create oversized filename -        { -            oversized_filename += 'X'; -        } - -        LLXfer_File xff(oversized_filename, FALSE, 1); -        ensure("oversized local_filename nul-terminated", -               xff.getFileName().length() < LL_MAX_PATH); -    } -} +/**
 + * @file llxfer_test.cpp
 + * @author Moss
 + * @date 2007-04-17
 + *
 + * $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$
 + */
 +
 +#include "linden_common.h"
 +
 +#include "../llxfer_file.h"
 +
 +#include "../test/lltut.h"
 +
 +namespace tut
 +{
 +    struct llxfer_data
 +    {
 +    };
 +    typedef test_group<llxfer_data> llxfer_test;
 +    typedef llxfer_test::object llxfer_object;
 +    tut::llxfer_test llxfer("LLXferFile");
 +
 +    template<> template<>
 +    void llxfer_object::test<1>()
 +    {
 +        // test that we handle an oversized filename correctly.
 +        std::string oversized_filename;
 +        U32 i;
 +        for (i=0; i<LL_MAX_PATH*2; ++i) // create oversized filename
 +        {
 +            oversized_filename += 'X';
 +        }
 +
 +        LLXfer_File xff(oversized_filename, false, 1);
 +        ensure("oversized local_filename nul-terminated",
 +               xff.getFileName().length() < LL_MAX_PATH);
 +    }
 +}
 | 
