diff options
Diffstat (limited to 'indra/test/llmessageconfig_tut.cpp')
-rw-r--r-- | indra/test/llmessageconfig_tut.cpp | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/indra/test/llmessageconfig_tut.cpp b/indra/test/llmessageconfig_tut.cpp new file mode 100644 index 0000000000..c9a62e5230 --- /dev/null +++ b/indra/test/llmessageconfig_tut.cpp @@ -0,0 +1,207 @@ +/** + * @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); + } +} |