diff options
Diffstat (limited to 'indra/newview/tests/llviewerhelputil_test.cpp')
-rw-r--r-- | indra/newview/tests/llviewerhelputil_test.cpp | 320 |
1 files changed, 160 insertions, 160 deletions
diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp index 16b796e6e7..9ee6625bf1 100644 --- a/indra/newview/tests/llviewerhelputil_test.cpp +++ b/indra/newview/tests/llviewerhelputil_test.cpp @@ -1,160 +1,160 @@ -/**
- * @file llviewerhelputil_test.cpp
- * @brief LLViewerHelpUtil tests
- * @author Tofu Linden
- *
- * $LicenseInfo:firstyear=2001&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$
- */
-// Precompiled header
-#include "../llviewerprecompiledheaders.h"
-
-#include "../test/lltut.h"
-
-#include "../llviewerhelputil.h"
-#include "../llweb.h"
-#include "llcontrol.h"
-
-#include <iostream>
-
-// values for all of the supported substitutions parameters
-static std::string gHelpURL;
-static std::string gVersion;
-static std::string gChannel;
-static std::string gLanguage;
-static std::string gGrid;
-static std::string gOS;
-
-//----------------------------------------------------------------------------
-// Mock objects for the dependencies of the code we're testing
-
-LLControlGroup::LLControlGroup(const std::string& name)
- : LLInstanceTracker<LLControlGroup, std::string>(name) {}
-LLControlGroup::~LLControlGroup() {}
-LLControlVariable* LLControlGroup::declareString(const std::string& name,
- const std::string& initial_val,
- const std::string& comment,
- LLControlVariable::ePersist persist) {return NULL;}
-void LLControlGroup::setString(std::string_view name, const std::string& val){}
-std::string LLControlGroup::getString(std::string_view name)
-{
- if (name == "HelpURLFormat")
- return gHelpURL;
- return "";
-}
-LLControlGroup gSavedSettings("test");
-
-static void substitute_string(std::string &input, const std::string &search, const std::string &replace)
-{
- size_t pos = input.find(search);
- while (pos != std::string::npos)
- {
- input = input.replace(pos, search.size(), replace);
- pos = input.find(search);
- }
-}
-
-#include "../llagent.h"
-LLAgent::LLAgent() : mAgentAccess(NULL) { }
-LLAgent::~LLAgent() { }
-bool LLAgent::isGodlike() const { return false; }
-
-LLAgent gAgent;
-
-std::string LLWeb::expandURLSubstitutions(const std::string &url,
- const LLSD &default_subs)
-{
- (void)gAgent.isGodlike(); // ref symbol to stop compiler from stripping it
- std::string new_url = url;
- substitute_string(new_url, "[TOPIC]", default_subs["TOPIC"].asString());
- substitute_string(new_url, "[VERSION]", gVersion);
- substitute_string(new_url, "[CHANNEL]", gChannel);
- substitute_string(new_url, "[LANGUAGE]", gLanguage);
- substitute_string(new_url, "[GRID]", gGrid);
- substitute_string(new_url, "[OS]", gOS);
- return new_url;
-}
-
-
-//----------------------------------------------------------------------------
-
-namespace tut
-{
- struct viewerhelputil
- {
- };
-
- typedef test_group<viewerhelputil> viewerhelputil_t;
- typedef viewerhelputil_t::object viewerhelputil_object_t;
- tut::viewerhelputil_t tut_viewerhelputil("LLViewerHelpUtil");
-
- template<> template<>
- void viewerhelputil_object_t::test<1>()
- {
- std::string topic("test_topic");
- std::string subresult;
-
- gHelpURL = "fooformat";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("no substitution tags", subresult, "fooformat");
-
- gHelpURL = "";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("blank substitution format", subresult, "");
-
- gHelpURL = "[TOPIC]";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("topic name", subresult, "test_topic");
-
- gHelpURL = "[LANGUAGE]";
- gLanguage = "";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("simple substitution with blank", subresult, "");
-
- gHelpURL = "[LANGUAGE]";
- gLanguage = "Esperanto";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("simple substitution", subresult, "Esperanto");
-
- gHelpURL = "http://secondlife.com/[LANGUAGE]";
- gLanguage = "Gaelic";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("simple substitution with url", subresult, "http://secondlife.com/Gaelic");
-
- gHelpURL = "[XXX]";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("unknown substitution", subresult, "[XXX]");
-
- gHelpURL = "[LANGUAGE]/[LANGUAGE]";
- gLanguage = "Esperanto";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("multiple substitution", subresult, "Esperanto/Esperanto");
-
- gHelpURL = "http://[CHANNEL]/[VERSION]/[LANGUAGE]/[OS]/[GRID]/[XXX]";
- gChannel = "Second Life Test";
- gVersion = "2.0";
- gLanguage = "gaelic";
- gOS = "AmigaOS 2.1";
- gGrid = "mysim";
- subresult = LLViewerHelpUtil::buildHelpURL(topic);
- ensure_equals("complex substitution", subresult, "http://Second Life Test/2.0/gaelic/AmigaOS 2.1/mysim/[XXX]");
- }
-}
+/** + * @file llviewerhelputil_test.cpp + * @brief LLViewerHelpUtil tests + * @author Tofu Linden + * + * $LicenseInfo:firstyear=2001&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$ + */ +// Precompiled header +#include "../llviewerprecompiledheaders.h" + +#include "../test/lltut.h" + +#include "../llviewerhelputil.h" +#include "../llweb.h" +#include "llcontrol.h" + +#include <iostream> + +// values for all of the supported substitutions parameters +static std::string gHelpURL; +static std::string gVersion; +static std::string gChannel; +static std::string gLanguage; +static std::string gGrid; +static std::string gOS; + +//---------------------------------------------------------------------------- +// Mock objects for the dependencies of the code we're testing + +LLControlGroup::LLControlGroup(const std::string& name) + : LLInstanceTracker<LLControlGroup, std::string>(name) {} +LLControlGroup::~LLControlGroup() {} +LLControlVariable* LLControlGroup::declareString(const std::string& name, + const std::string& initial_val, + const std::string& comment, + LLControlVariable::ePersist persist) {return NULL;} +void LLControlGroup::setString(std::string_view name, const std::string& val){} +std::string LLControlGroup::getString(std::string_view name) +{ + if (name == "HelpURLFormat") + return gHelpURL; + return ""; +} +LLControlGroup gSavedSettings("test"); + +static void substitute_string(std::string &input, const std::string &search, const std::string &replace) +{ + size_t pos = input.find(search); + while (pos != std::string::npos) + { + input = input.replace(pos, search.size(), replace); + pos = input.find(search); + } +} + +#include "../llagent.h" +LLAgent::LLAgent() : mAgentAccess(NULL) { } +LLAgent::~LLAgent() { } +bool LLAgent::isGodlike() const { return false; } + +LLAgent gAgent; + +std::string LLWeb::expandURLSubstitutions(const std::string &url, + const LLSD &default_subs) +{ + (void)gAgent.isGodlike(); // ref symbol to stop compiler from stripping it + std::string new_url = url; + substitute_string(new_url, "[TOPIC]", default_subs["TOPIC"].asString()); + substitute_string(new_url, "[VERSION]", gVersion); + substitute_string(new_url, "[CHANNEL]", gChannel); + substitute_string(new_url, "[LANGUAGE]", gLanguage); + substitute_string(new_url, "[GRID]", gGrid); + substitute_string(new_url, "[OS]", gOS); + return new_url; +} + + +//---------------------------------------------------------------------------- + +namespace tut +{ + struct viewerhelputil + { + }; + + typedef test_group<viewerhelputil> viewerhelputil_t; + typedef viewerhelputil_t::object viewerhelputil_object_t; + tut::viewerhelputil_t tut_viewerhelputil("LLViewerHelpUtil"); + + template<> template<> + void viewerhelputil_object_t::test<1>() + { + std::string topic("test_topic"); + std::string subresult; + + gHelpURL = "fooformat"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("no substitution tags", subresult, "fooformat"); + + gHelpURL = ""; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("blank substitution format", subresult, ""); + + gHelpURL = "[TOPIC]"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("topic name", subresult, "test_topic"); + + gHelpURL = "[LANGUAGE]"; + gLanguage = ""; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("simple substitution with blank", subresult, ""); + + gHelpURL = "[LANGUAGE]"; + gLanguage = "Esperanto"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("simple substitution", subresult, "Esperanto"); + + gHelpURL = "http://secondlife.com/[LANGUAGE]"; + gLanguage = "Gaelic"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("simple substitution with url", subresult, "http://secondlife.com/Gaelic"); + + gHelpURL = "[XXX]"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("unknown substitution", subresult, "[XXX]"); + + gHelpURL = "[LANGUAGE]/[LANGUAGE]"; + gLanguage = "Esperanto"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("multiple substitution", subresult, "Esperanto/Esperanto"); + + gHelpURL = "http://[CHANNEL]/[VERSION]/[LANGUAGE]/[OS]/[GRID]/[XXX]"; + gChannel = "Second Life Test"; + gVersion = "2.0"; + gLanguage = "gaelic"; + gOS = "AmigaOS 2.1"; + gGrid = "mysim"; + subresult = LLViewerHelpUtil::buildHelpURL(topic); + ensure_equals("complex substitution", subresult, "http://Second Life Test/2.0/gaelic/AmigaOS 2.1/mysim/[XXX]"); + } +} |