phoenix-firestorm/indra/test/llmessageconfig_tut.cpp

208 lines
6.5 KiB
C++

/**
* @file llmessageconfig_tut.cpp
* @date March 2007
* @brief LLMessageConfig unit tests
*
* Copyright (c) 2006-$CurrentYear$, Linden Research, Inc.
* $License$
*/
#include <tut/tut.h>
#include "lltut.h"
#include "llmessageconfig.h"
#include "llsdserialize.h"
#include "llfile.h"
#include "lltimer.h"
#include "llframetimer.h"
namespace tut
{
///var/tmp/babbage/dev/message-liberation/etc
static const char file_name[] = "/tmp/message.xml";
static const F32 refreshRate = 6.0*1000.0; // milliseconds
struct LLMessageConfigTestData {
LLSD getCurrentConfig()
{
LLSD data;
// store aside the current config to overwrite the test ones
// when the test finishes
llifstream in_file(file_name);
if (in_file.is_open())
{
LLSDSerialize::fromXML(data, in_file);
}
return data;
}
void writeConfigFile(const LLSD& config)
{
LLMessageConfig::initClass("simulator", "/tmp");
llofstream file(file_name);
if (file.is_open())
{
LLSDSerialize::toPrettyXML(config, file);
}
file.close();
ms_sleep(refreshRate);
LLFrameTimer::updateFrameTime();
}
};
typedef test_group<LLMessageConfigTestData> LLMessageConfigTestGroup;
typedef LLMessageConfigTestGroup::object LLMessageConfigTestObject;
LLMessageConfigTestGroup llMessageConfigTestGroup("LLMessageConfig");
template<> template<>
void LLMessageConfigTestObject::test<1>()
// tests server defaults
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "template";
writeConfigFile(config);
ensure_equals("Ensure server default is not llsd",
LLMessageConfig::isServerDefaultBuilderLLSD(),
false);
ensure_equals("Ensure server default is template",
LLMessageConfig::isServerDefaultBuilderTemplate(),
true);
writeConfigFile(config_backup);
}
template<> template<>
void LLMessageConfigTestObject::test<2>()
// tests message builders
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "template";
config["messages"]["msg1"]["builder"] = "template";
config["messages"]["msg2"]["builder"] = "llsd";
writeConfigFile(config);
ensure_equals("Ensure msg template builder not llsd",
LLMessageConfig::isMessageBuiltLLSD("msg1"),
false);
ensure_equals("Ensure msg template builder",
LLMessageConfig::isMessageBuiltTemplate("msg1"),
true);
ensure_equals("Ensure msg llsd builder",
LLMessageConfig::isMessageBuiltLLSD("msg2"),
true);
ensure_equals("Ensure msg llsd builder not template",
LLMessageConfig::isMessageBuiltTemplate("msg2"),
false);
writeConfigFile(config_backup);
}
template<> template<>
void LLMessageConfigTestObject::test<4>()
// tests message builder defaults
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "llsd";
config["messages"]["msg1"]["trusted-sender"] = true;
writeConfigFile(config);
ensure_equals("Ensure missing message defaults to server builder, not template",
LLMessageConfig::isMessageBuiltTemplate("Test"),
false);
ensure_equals("Ensure missing message default to server builder llsd",
LLMessageConfig::isMessageBuiltLLSD("Test"),
true);
ensure_equals("Ensure missing builder defaults to server builder, not template",
LLMessageConfig::isMessageBuiltTemplate("msg1"),
false);
ensure_equals("Ensure missing builder default to server builder llsd",
LLMessageConfig::isMessageBuiltLLSD("msg1"),
true);
ensure_equals("Ensure server default is not llsd",
LLMessageConfig::isServerDefaultBuilderLLSD(),
true);
ensure_equals("Ensure server default is template",
LLMessageConfig::isServerDefaultBuilderTemplate(),
false);
writeConfigFile(config_backup);
}
template<> template<>
void LLMessageConfigTestObject::test<3>()
// tests trusted/untrusted senders
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "template";
config["messages"]["msg1"]["builder"] = "llsd";
config["messages"]["msg1"]["trusted-sender"] = false;
config["messages"]["msg2"]["builder"] = "llsd";
config["messages"]["msg2"]["trusted-sender"] = true;
writeConfigFile(config);
ensure_equals("Ensure untrusted is not trusted",
LLMessageConfig::isMessageTrusted("msg1"),
false);
ensure_equals("Ensure untrusted is untrusted",
LLMessageConfig::isValidUntrustedMessage("msg1"),
true);
ensure_equals("Ensure trusted is trusted",
LLMessageConfig::isMessageTrusted("msg2"),
true);
ensure_equals("Ensure trusted is not untrusted",
LLMessageConfig::isValidUntrustedMessage("msg2"),
false);
writeConfigFile(config_backup);
}
template<> template<>
void LLMessageConfigTestObject::test<5>()
// tests trusted/untrusted without flag, only builder
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "template";
config["messages"]["msg1"]["builder"] = "llsd";
writeConfigFile(config);
ensure_equals("Ensure missing trusted is not trusted",
LLMessageConfig::isMessageTrusted("msg1"),
false);
ensure_equals("Ensure missing trusted is not untrusted",
LLMessageConfig::isValidUntrustedMessage("msg1"),
false);
writeConfigFile(config_backup);
}
template<> template<>
void LLMessageConfigTestObject::test<6>()
// tests message builder defaults
{
LLSD config_backup = getCurrentConfig();
LLSD config;
config["serverDefaults"]["simulator"] = "template";
config["messages"]["msg1"]["trusted-sender"] = true;
writeConfigFile(config);
ensure_equals("Ensure missing message defaults to server builder, not template",
LLMessageConfig::isMessageBuiltTemplate("Test"),
true);
ensure_equals("Ensure missing message default to server builder llsd",
LLMessageConfig::isMessageBuiltLLSD("Test"),
false);
ensure_equals("Ensure missing builder defaults to server builder, not template",
LLMessageConfig::isMessageBuiltTemplate("msg1"),
true);
ensure_equals("Ensure missing builder default to server builder llsd",
LLMessageConfig::isMessageBuiltLLSD("msg1"),
false);
ensure_equals("Ensure server default is not llsd",
LLMessageConfig::isServerDefaultBuilderLLSD(),
false);
ensure_equals("Ensure server default is template",
LLMessageConfig::isServerDefaultBuilderTemplate(),
true);
writeConfigFile(config_backup);
}
}