582 lines
25 KiB
C++
582 lines
25 KiB
C++
/**
|
|
* @file llviewernetwork_test.cpp
|
|
* @author Roxie
|
|
* @date 2009-03-9
|
|
* @brief Test the viewernetwork functionality
|
|
*
|
|
* $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 "../llviewerprecompiledheaders.h"
|
|
#include "../llviewernetwork.h"
|
|
#include "../test/lltut.h"
|
|
#include "../../llxml/llcontrol.h"
|
|
#include "llfile.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Mock objects for the dependencies of the code we're testing
|
|
|
|
LLControlGroup::LLControlGroup(const std::string& name)
|
|
: LLInstanceTracker<LLControlGroup, std::string>(name) {}
|
|
LLControlGroup::~LLControlGroup() {}
|
|
BOOL LLControlGroup::declareString(const std::string& name,
|
|
const std::string& initial_val,
|
|
const std::string& comment,
|
|
BOOL persist) {return TRUE;}
|
|
void LLControlGroup::setString(const std::string& name, const std::string& val){}
|
|
|
|
std::string gCmdLineLoginURI;
|
|
std::string gCmdLineGridChoice;
|
|
std::string gCmdLineHelperURI;
|
|
std::string gLoginPage;
|
|
std::string gCurrentGrid;
|
|
std::string LLControlGroup::getString(const std::string& name)
|
|
{
|
|
if (name == "CmdLineGridChoice")
|
|
return gCmdLineGridChoice;
|
|
else if (name == "CmdLineHelperURI")
|
|
return gCmdLineHelperURI;
|
|
else if (name == "LoginPage")
|
|
return gLoginPage;
|
|
else if (name == "CurrentGrid")
|
|
return gCurrentGrid;
|
|
return "";
|
|
}
|
|
|
|
LLSD LLControlGroup::getLLSD(const std::string& name)
|
|
{
|
|
if (name == "CmdLineLoginURI")
|
|
{
|
|
if(!gCmdLineLoginURI.empty())
|
|
{
|
|
return LLSD(gCmdLineLoginURI);
|
|
}
|
|
}
|
|
return LLSD();
|
|
}
|
|
|
|
LLPointer<LLControlVariable> LLControlGroup::getControl(const std::string& name)
|
|
{
|
|
ctrl_name_table_t::iterator iter = mNameTable.find(name);
|
|
return iter == mNameTable.end() ? LLPointer<LLControlVariable>() : iter->second;
|
|
}
|
|
|
|
LLControlGroup gSavedSettings("test");
|
|
|
|
const char *gSampleGridFile = "<llsd><map>"
|
|
"<key>grid1</key><map>"
|
|
" <key>favorite</key><integer>1</integer>"
|
|
" <key>helper_uri</key><string>https://helper1/helpers/</string>"
|
|
" <key>label</key><string>mylabel</string>"
|
|
" <key>login_page</key><string>loginpage</string>"
|
|
" <key>login_uri</key><array><string>myloginuri</string></array>"
|
|
" <key>name</key><string>grid1</string>"
|
|
" <key>visible</key><integer>1</integer>"
|
|
" <key>credential_type</key><string>agent</string>"
|
|
" <key>grid_login_id</key><string>MyGrid</string>"
|
|
"</map>"
|
|
"<key>util.agni.lindenlab.com</key><map>"
|
|
" <key>favorite</key><integer>1</integer>"
|
|
" <key>helper_uri</key><string>https://helper1/helpers/</string>"
|
|
" <key>label</key><string>mylabel</string>"
|
|
" <key>login_page</key><string>loginpage</string>"
|
|
" <key>login_uri</key><array><string>myloginuri</string></array>"
|
|
" <key>name</key><string>util.agni.lindenlab.com</string>"
|
|
"</map></map></llsd>";
|
|
// -------------------------------------------------------------------------------------------
|
|
// TUT
|
|
// -------------------------------------------------------------------------------------------
|
|
namespace tut
|
|
{
|
|
// Test wrapper declaration : wrapping nothing for the moment
|
|
struct viewerNetworkTest
|
|
{
|
|
viewerNetworkTest()
|
|
{
|
|
LLFile::remove("grid_test.xml");
|
|
gCmdLineLoginURI.clear();
|
|
gCmdLineGridChoice.clear();
|
|
gCmdLineHelperURI.clear();
|
|
gLoginPage.clear();
|
|
gCurrentGrid.clear();
|
|
}
|
|
~viewerNetworkTest()
|
|
{
|
|
LLFile::remove("grid_test.xml");
|
|
}
|
|
};
|
|
|
|
// Tut templating thingamagic: test group, object and test instance
|
|
typedef test_group<viewerNetworkTest> viewerNetworkTestFactory;
|
|
typedef viewerNetworkTestFactory::object viewerNetworkTestObject;
|
|
tut::viewerNetworkTestFactory tut_test("LLViewerNetwork");
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
// Test functions
|
|
// ---------------------------------------------------------------------------------------
|
|
// initialization without a grid file
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<1>()
|
|
{
|
|
|
|
LLGridManager *manager = LLGridManager::getInstance();
|
|
// grid file doesn't exist
|
|
manager->initialize("grid_test.xml");
|
|
// validate that some of the defaults are available.
|
|
std::map<std::string, std::string> known_grids = manager->getKnownGrids();
|
|
ensure_equals("Known grids is a string-string map of size 23", known_grids.size(), 23);
|
|
ensure_equals("Agni has the right name and label",
|
|
known_grids[std::string("util.agni.lindenlab.com")], std::string("Agni"));
|
|
ensure_equals("None exists", known_grids[""], "None");
|
|
|
|
LLSD grid;
|
|
LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com", grid);
|
|
ensure("Grid info for agni is a map", grid.isMap());
|
|
ensure_equals("name is correct for agni",
|
|
grid[GRID_VALUE].asString(), std::string("util.agni.lindenlab.com"));
|
|
ensure_equals("label is correct for agni",
|
|
grid[GRID_LABEL_VALUE].asString(), std::string("Agni"));
|
|
ensure("Login URI is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Agni login uri is correct",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://login.agni.lindenlab.com/cgi-bin/login.cgi"));
|
|
ensure_equals("Agni helper uri is correct",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://secondlife.com/helpers/"));
|
|
ensure_equals("Agni login page is correct",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
ensure("Agni is a favorite",
|
|
grid.has(GRID_IS_FAVORITE_VALUE));
|
|
ensure("Agni is a system grid",
|
|
grid.has(GRID_IS_SYSTEM_GRID_VALUE));
|
|
ensure("Grid file wasn't greated as it wasn't saved",
|
|
!LLFile::isfile("grid_test.xml"));
|
|
}
|
|
|
|
// initialization with a grid file
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<2>()
|
|
{
|
|
llofstream gridfile("grid_test.xml");
|
|
gridfile << gSampleGridFile;
|
|
gridfile.close();
|
|
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("adding a grid via a grid file increases known grid size",
|
|
known_grids.size(), 24);
|
|
ensure_equals("Agni is still there after we've added a grid via a grid file",
|
|
known_grids["util.agni.lindenlab.com"], std::string("Agni"));
|
|
|
|
|
|
// assure Agni doesn't get overwritten
|
|
LLSD grid;
|
|
LLGridManager::getInstance()->getGridInfo("util.agni.lindenlab.com", grid);
|
|
|
|
ensure_equals("Agni grid label was not modified by grid file",
|
|
grid[GRID_LABEL_VALUE].asString(), std::string("Agni"));
|
|
|
|
ensure_equals("Agni name wasn't modified by grid file",
|
|
grid[GRID_VALUE].asString(), std::string("util.agni.lindenlab.com"));
|
|
ensure("Agni grid URI is still an array after grid file",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Agni login uri still the same after grid file",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://login.agni.lindenlab.com/cgi-bin/login.cgi"));
|
|
ensure_equals("Agni helper uri still the same after grid file",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://secondlife.com/helpers/"));
|
|
ensure_equals("Agni login page the same after grid file",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
ensure("Agni still a favorite after grid file",
|
|
grid.has(GRID_IS_FAVORITE_VALUE));
|
|
ensure("Agni system grid still set after grid file",
|
|
grid.has(GRID_IS_SYSTEM_GRID_VALUE));
|
|
|
|
ensure_equals("Grid file adds to name<->label map",
|
|
known_grids["grid1"], std::string("mylabel"));
|
|
LLGridManager::getInstance()->getGridInfo("grid1", grid);
|
|
ensure_equals("grid file grid name is set",
|
|
grid[GRID_VALUE].asString(), std::string("grid1"));
|
|
ensure_equals("grid file label is set",
|
|
grid[GRID_LABEL_VALUE].asString(), std::string("mylabel"));
|
|
ensure("grid file login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("grid file login uri is set",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("myloginuri"));
|
|
ensure_equals("grid file helper uri is set",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://helper1/helpers/"));
|
|
ensure_equals("grid file login page is set",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("loginpage"));
|
|
ensure("grid file favorite is set",
|
|
grid.has(GRID_IS_FAVORITE_VALUE));
|
|
ensure("grid file isn't a system grid",
|
|
!grid.has(GRID_IS_SYSTEM_GRID_VALUE));
|
|
ensure("Grid file still exists after loading",
|
|
LLFile::isfile("grid_test.xml"));
|
|
}
|
|
|
|
// Initialize via command line
|
|
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<3>()
|
|
{
|
|
// USE --grid command line
|
|
// initialize with a known grid
|
|
LLSD grid;
|
|
gCmdLineGridChoice = "Aditi";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
// with single login uri specified.
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Using a known grid via command line doesn't increase number of known grids",
|
|
known_grids.size(), 23);
|
|
ensure_equals("getGridLabel", LLGridManager::getInstance()->getGridLabel(), std::string("Aditi"));
|
|
// initialize with a known grid in lowercase
|
|
gCmdLineGridChoice = "agni";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
ensure_equals("getGridLabel", LLGridManager::getInstance()->getGridLabel(), std::string("Agni"));
|
|
|
|
// now try a command line with a custom grid identifier
|
|
gCmdLineGridChoice = "mycustomgridchoice";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("adding a command line grid with custom name increases known grid size",
|
|
known_grids.size(), 24);
|
|
ensure_equals("Custom Command line grid is added to the list of grids",
|
|
known_grids["mycustomgridchoice"], std::string("mycustomgridchoice"));
|
|
LLGridManager::getInstance()->getGridInfo("mycustomgridchoice", grid);
|
|
ensure_equals("Custom Command line grid name is set",
|
|
grid[GRID_VALUE].asString(), std::string("mycustomgridchoice"));
|
|
ensure_equals("Custom Command line grid label is set",
|
|
grid[GRID_LABEL_VALUE].asString(), std::string("mycustomgridchoice"));
|
|
ensure("Custom Command line grid login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Custom Command line grid login uri is set",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://mycustomgridchoice/cgi-bin/login.cgi"));
|
|
ensure_equals("Custom Command line grid helper uri is set",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://mycustomgridchoice/helpers/"));
|
|
ensure_equals("Custom Command line grid login page is set",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://mycustomgridchoice/app/login/"));
|
|
}
|
|
|
|
// validate override of login uri with cmd line
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<4>()
|
|
{
|
|
// Override with loginuri
|
|
// override known grid
|
|
LLSD grid;
|
|
gCmdLineGridChoice = "Aditi";
|
|
gCmdLineLoginURI = "https://my.login.uri/cgi-bin/login.cgi";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Override known grid login uri: No grids are added",
|
|
known_grids.size(), 23);
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure("Override known grid login uri: login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override known grid login uri: Command line grid login uri is set",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://my.login.uri/cgi-bin/login.cgi"));
|
|
ensure_equals("Override known grid login uri: helper uri is not changed",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("http://aditi-secondlife.webdev.lindenlab.com/helpers/"));
|
|
ensure_equals("Override known grid login uri: login page is not set",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
|
|
// Override with loginuri
|
|
// override custom grid
|
|
gCmdLineGridChoice = "mycustomgridchoice";
|
|
gCmdLineLoginURI = "https://my.login.uri/cgi-bin/login.cgi";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure_equals("Override custom grid login uri: Grid is added",
|
|
known_grids.size(), 24);
|
|
ensure("Override custom grid login uri: login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override custom grid login uri: login uri is set",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://my.login.uri/cgi-bin/login.cgi"));
|
|
ensure_equals("Override custom grid login uri: Helper uri is not set",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://mycustomgridchoice/helpers/"));
|
|
ensure_equals("Override custom grid login uri: Login page is not set",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://mycustomgridchoice/app/login/"));
|
|
}
|
|
|
|
// validate override of helper uri with cmd line
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<5>()
|
|
{
|
|
// Override with helperuri
|
|
// override known grid
|
|
LLSD grid;
|
|
gCmdLineGridChoice = "Aditi";
|
|
gCmdLineLoginURI = "";
|
|
gCmdLineHelperURI = "https://my.helper.uri/mycustomhelpers";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Override known grid helper uri: No grids are added",
|
|
known_grids.size(), 23);
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure("Override known known helper uri: login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override known grid helper uri: login uri is not changed",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://login.aditi.lindenlab.com/cgi-bin/login.cgi"));
|
|
ensure_equals("Override known grid helper uri: helper uri is changed",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://my.helper.uri/mycustomhelpers"));
|
|
ensure_equals("Override known grid helper uri: login page is not changed",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
|
|
// Override with helperuri
|
|
// override custom grid
|
|
gCmdLineGridChoice = "mycustomgridchoice";
|
|
gCmdLineHelperURI = "https://my.helper.uri/mycustomhelpers";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Override custom grid helper uri: grids is added",
|
|
known_grids.size(), 24);
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure("Override custom helper uri: login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override custom grid helper uri: login uri is not changed",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://mycustomgridchoice/cgi-bin/login.cgi"));
|
|
ensure_equals("Override custom grid helper uri: helper uri is changed",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://my.helper.uri/mycustomhelpers"));
|
|
ensure_equals("Override custom grid helper uri: login page is not changed",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://mycustomgridchoice/app/login/"));
|
|
}
|
|
|
|
// validate overriding of login page via cmd line
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<6>()
|
|
{
|
|
// Override with login page
|
|
// override known grid
|
|
LLSD grid;
|
|
gCmdLineGridChoice = "Aditi";
|
|
gCmdLineHelperURI = "";
|
|
gLoginPage = "myloginpage";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Override known grid login page: No grids are added",
|
|
known_grids.size(), 23);
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure("Override known grid login page: Command line grid login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override known grid login page: login uri is not changed",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://login.aditi.lindenlab.com/cgi-bin/login.cgi"));
|
|
ensure_equals("Override known grid login page: helper uri is not changed",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("http://aditi-secondlife.webdev.lindenlab.com/helpers/"));
|
|
ensure_equals("Override known grid login page: login page is changed",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("myloginpage"));
|
|
|
|
// Override with login page
|
|
// override custom grid
|
|
gCmdLineGridChoice = "mycustomgridchoice";
|
|
gLoginPage = "myloginpage";
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure_equals("Override custom grid login page: grids are added",
|
|
known_grids.size(), 24);
|
|
LLGridManager::getInstance()->getGridInfo(grid);
|
|
ensure("Override custom grid login page: Command line grid login uri is an array",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("Override custom grid login page: login uri is not changed",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://mycustomgridchoice/cgi-bin/login.cgi"));
|
|
ensure_equals("Override custom grid login page: helper uri is not changed",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://mycustomgridchoice/helpers/"));
|
|
ensure_equals("Override custom grid login page: login page is changed",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("myloginpage"));
|
|
|
|
}
|
|
|
|
// validate grid selection
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<7>()
|
|
{
|
|
LLSD loginURI = LLSD::emptyArray();
|
|
LLSD grid = LLSD::emptyMap();
|
|
// adding a grid with simply a name will populate the values.
|
|
grid[GRID_VALUE] = "myaddedgrid";
|
|
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->setGridChoice("util.agni.lindenlab.com");
|
|
ensure_equals("getGridLabel", LLGridManager::getInstance()->getGridLabel(), std::string("Agni"));
|
|
ensure_equals("getGrid", LLGridManager::getInstance()->getGrid(),
|
|
std::string("util.agni.lindenlab.com"));
|
|
ensure_equals("getHelperURI", LLGridManager::getInstance()->getHelperURI(),
|
|
std::string("https://secondlife.com/helpers/"));
|
|
ensure_equals("getLoginPage", LLGridManager::getInstance()->getLoginPage(),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
ensure_equals("getLoginPage2", LLGridManager::getInstance()->getLoginPage("util.agni.lindenlab.com"),
|
|
std::string("http://secondlife.com/app/login/"));
|
|
ensure("Is Agni a production grid", LLGridManager::getInstance()->isInProductionGrid());
|
|
std::vector<std::string> uris;
|
|
LLGridManager::getInstance()->getLoginURIs(uris);
|
|
ensure_equals("getLoginURIs size", uris.size(), 1);
|
|
ensure_equals("getLoginURIs", uris[0],
|
|
std::string("https://login.agni.lindenlab.com/cgi-bin/login.cgi"));
|
|
LLGridManager::getInstance()->setGridChoice("myaddedgrid");
|
|
ensure_equals("getGridLabel", LLGridManager::getInstance()->getGridLabel(), std::string("myaddedgrid"));
|
|
ensure("Is myaddedgrid a production grid", !LLGridManager::getInstance()->isInProductionGrid());
|
|
|
|
LLGridManager::getInstance()->setFavorite();
|
|
LLGridManager::getInstance()->getGridInfo("myaddedgrid", grid);
|
|
ensure("setting favorite", grid.has(GRID_IS_FAVORITE_VALUE));
|
|
}
|
|
|
|
// name based grid population
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<8>()
|
|
{
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
LLSD grid = LLSD::emptyMap();
|
|
// adding a grid with simply a name will populate the values.
|
|
grid[GRID_VALUE] = "myaddedgrid";
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->getGridInfo("myaddedgrid", grid);
|
|
|
|
ensure_equals("name based grid has name value",
|
|
grid[GRID_VALUE].asString(),
|
|
std::string("myaddedgrid"));
|
|
ensure_equals("name based grid has label value",
|
|
grid[GRID_LABEL_VALUE].asString(),
|
|
std::string("myaddedgrid"));
|
|
ensure_equals("name based grid has name value",
|
|
grid[GRID_HELPER_URI_VALUE].asString(),
|
|
std::string("https://myaddedgrid/helpers/"));
|
|
ensure_equals("name based grid has name value",
|
|
grid[GRID_LOGIN_PAGE_VALUE].asString(),
|
|
std::string("http://myaddedgrid/app/login/"));
|
|
ensure("name based grid has array loginuri",
|
|
grid[GRID_LOGIN_URI_VALUE].isArray());
|
|
ensure_equals("name based grid has single login uri value",
|
|
grid[GRID_LOGIN_URI_VALUE].size(), 1);
|
|
ensure_equals("Name based grid login uri is correct",
|
|
grid[GRID_LOGIN_URI_VALUE][0].asString(),
|
|
std::string("https://myaddedgrid/cgi-bin/login.cgi"));
|
|
ensure("name based grid is not a favorite yet",
|
|
!grid.has(GRID_IS_FAVORITE_VALUE));
|
|
ensure("name based grid does not have system setting",
|
|
!grid.has(GRID_IS_SYSTEM_GRID_VALUE));
|
|
|
|
llofstream gridfile("grid_test.xml");
|
|
gridfile << gSampleGridFile;
|
|
gridfile.close();
|
|
}
|
|
|
|
// persistence of the grid list with an empty gridfile.
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<9>()
|
|
{
|
|
// try with initial grid list without a grid file,
|
|
// without setting the grid to a saveable favorite.
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
LLSD grid = LLSD::emptyMap();
|
|
grid[GRID_VALUE] = std::string("mynewgridname");
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->saveFavorites();
|
|
ensure("Grid file exists after saving",
|
|
LLFile::isfile("grid_test.xml"));
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
// should not be there
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure("New grid wasn't added to persisted list without being marked a favorite",
|
|
known_grids.find(std::string("mynewgridname")) == known_grids.end());
|
|
|
|
// mark a grid a favorite to make sure it's persisted
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->setGridChoice("mynewgridname");
|
|
LLGridManager::getInstance()->setFavorite();
|
|
LLGridManager::getInstance()->saveFavorites();
|
|
ensure("Grid file exists after saving",
|
|
LLFile::isfile("grid_test.xml"));
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
// should not be there
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure("New grid wasn't added to persisted list after being marked a favorite",
|
|
known_grids.find(std::string("mynewgridname")) !=
|
|
known_grids.end());
|
|
}
|
|
|
|
// persistence of the grid file with existing gridfile
|
|
template<> template<>
|
|
void viewerNetworkTestObject::test<10>()
|
|
{
|
|
|
|
llofstream gridfile("grid_test.xml");
|
|
gridfile << gSampleGridFile;
|
|
gridfile.close();
|
|
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
LLSD grid = LLSD::emptyMap();
|
|
grid[GRID_VALUE] = std::string("mynewgridname");
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->saveFavorites();
|
|
// validate we didn't lose existing favorites
|
|
LLGridManager::getInstance()->initialize("grid_test.xml");
|
|
std::map<std::string, std::string> known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure("New grid wasn't added to persisted list after being marked a favorite",
|
|
known_grids.find(std::string("grid1")) !=
|
|
known_grids.end());
|
|
|
|
// add a grid
|
|
LLGridManager::getInstance()->addGrid(grid);
|
|
LLGridManager::getInstance()->setGridChoice("mynewgridname");
|
|
LLGridManager::getInstance()->setFavorite();
|
|
LLGridManager::getInstance()->saveFavorites();
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure("New grid wasn't added to persisted list after being marked a favorite",
|
|
known_grids.find(std::string("grid1")) !=
|
|
known_grids.end());
|
|
known_grids = LLGridManager::getInstance()->getKnownGrids();
|
|
ensure("New grid wasn't added to persisted list after being marked a favorite",
|
|
known_grids.find(std::string("mynewgridname")) !=
|
|
known_grids.end());
|
|
}
|
|
}
|