summaryrefslogtreecommitdiff
path: root/indra/newview/tests
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/tests')
-rw-r--r--indra/newview/tests/llagentaccess_test.cpp137
1 files changed, 85 insertions, 52 deletions
diff --git a/indra/newview/tests/llagentaccess_test.cpp b/indra/newview/tests/llagentaccess_test.cpp
index fc18f10e7d..42872d85fb 100644
--- a/indra/newview/tests/llagentaccess_test.cpp
+++ b/indra/newview/tests/llagentaccess_test.cpp
@@ -3,59 +3,73 @@
* @brief LLAgentAccess tests
*
* $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
* Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#include "../test/lltut.h"
#include "../llagentaccess.h"
-#include "llcontrolgroupreader.h"
+#include "llcontrol.h"
#include "indra_constants.h"
#include <iostream>
-class LLControlGroupReader_Test : public LLControlGroupReader
+//----------------------------------------------------------------------------
+// Implementation of enough of LLControlGroup to support the tests:
+
+static U32 test_preferred_maturity = SIM_ACCESS_PG;
+
+LLControlGroup::LLControlGroup(const std::string& name)
+ : LLInstanceTracker<LLControlGroup, std::string>(name)
{
-public:
- LLControlGroupReader_Test() : test_preferred_maturity(SIM_ACCESS_PG) {}
-
- virtual std::string getString(const std::string& name)
- {
- return "";
- }
- virtual std::string getText(const std::string& name)
- {
- return "";
- }
- virtual BOOL getBOOL(const std::string& name)
- {
- return false;
- }
- virtual S32 getS32(const std::string& name)
- {
- return 0;
- }
- virtual F32 getF32(const std::string& name)
- {
- return 0;
- }
- virtual U32 getU32(const std::string& name)
- {
- return test_preferred_maturity;
- }
-
- //--------------------------------------
- // Everything from here down is test code and not part of the interface
- void setPreferredMaturity(U32 m)
- {
- test_preferred_maturity = m;
- }
-private:
- U32 test_preferred_maturity;
-
-};
+}
+LLControlGroup::~LLControlGroup()
+{
+}
+
+// Implementation of just the LLControlGroup methods we requre
+BOOL LLControlGroup::declareU32(const std::string& name, U32 initial_val, const std::string& comment, BOOL persist)
+{
+ test_preferred_maturity = initial_val;
+ return true;
+}
+
+void LLControlGroup::setU32(const std::string& name, U32 val)
+{
+ test_preferred_maturity = val;
+}
+
+U32 LLControlGroup::getU32(const std::string& name)
+{
+ return test_preferred_maturity;
+}
+//----------------------------------------------------------------------------
+
namespace tut
{
struct agentaccess
@@ -69,20 +83,21 @@ namespace tut
template<> template<>
void agentaccess_object_t::test<1>()
{
- LLControlGroupReader_Test cgr;
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
LLAgentAccess aa(cgr);
- cgr.setPreferredMaturity(SIM_ACCESS_PG);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_PG);
ensure("1 prefersPG", aa.prefersPG());
ensure("1 prefersMature", !aa.prefersMature());
ensure("1 prefersAdult", !aa.prefersAdult());
- cgr.setPreferredMaturity(SIM_ACCESS_MATURE);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_MATURE);
ensure("2 prefersPG", !aa.prefersPG());
ensure("2 prefersMature", aa.prefersMature());
ensure("2 prefersAdult", !aa.prefersAdult());
- cgr.setPreferredMaturity(SIM_ACCESS_ADULT);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT);
ensure("3 prefersPG", !aa.prefersPG());
ensure("3 prefersMature", aa.prefersMature());
ensure("3 prefersAdult", aa.prefersAdult());
@@ -91,7 +106,8 @@ namespace tut
template<> template<>
void agentaccess_object_t::test<2>()
{
- LLControlGroupReader_Test cgr;
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
LLAgentAccess aa(cgr);
// make sure default is PG
@@ -140,7 +156,8 @@ namespace tut
template<> template<>
void agentaccess_object_t::test<3>()
{
- LLControlGroupReader_Test cgr;
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
LLAgentAccess aa(cgr);
ensure("starts normal", !aa.isGodlike());
@@ -163,7 +180,8 @@ namespace tut
template<> template<>
void agentaccess_object_t::test<4>()
{
- LLControlGroupReader_Test cgr;
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
LLAgentAccess aa(cgr);
ensure("1 pg to start", aa.wantsPGOnly());
@@ -188,12 +206,12 @@ namespace tut
ensure("2 mature pref pg", !aa.canAccessMature());
ensure("3 mature pref pg", !aa.canAccessAdult());
- cgr.setPreferredMaturity(SIM_ACCESS_MATURE);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_MATURE);
ensure("1 mature", !aa.wantsPGOnly());
ensure("2 mature", aa.canAccessMature());
ensure("3 mature", !aa.canAccessAdult());
- cgr.setPreferredMaturity(SIM_ACCESS_PG);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_PG);
ensure("1 mature pref pg", aa.wantsPGOnly());
ensure("2 mature pref pg", !aa.canAccessMature());
ensure("3 mature pref pg", !aa.canAccessAdult());
@@ -203,14 +221,14 @@ namespace tut
ensure("2 adult pref pg", !aa.canAccessMature());
ensure("3 adult pref pg", !aa.canAccessAdult());
- cgr.setPreferredMaturity(SIM_ACCESS_ADULT);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT);
ensure("1 adult", !aa.wantsPGOnly());
ensure("2 adult", aa.canAccessMature());
ensure("3 adult", aa.canAccessAdult());
// make sure that even if pref is high, if access is low we block access
// this shouldn't occur in real life but we want to be safe
- cgr.setPreferredMaturity(SIM_ACCESS_ADULT);
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT);
aa.setMaturity('P');
ensure("1 pref adult, actual pg", aa.wantsPGOnly());
ensure("2 pref adult, actual pg", !aa.canAccessMature());
@@ -221,7 +239,8 @@ namespace tut
template<> template<>
void agentaccess_object_t::test<5>()
{
- LLControlGroupReader_Test cgr;
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
LLAgentAccess aa(cgr);
ensure("1 transition starts false", !aa.isInTransition());
@@ -229,6 +248,20 @@ namespace tut
ensure("2 transition now true", aa.isInTransition());
}
+ template<> template<>
+ void agentaccess_object_t::test<6>()
+ {
+ LLControlGroup cgr("test");
+ cgr.declareU32("PreferredMaturity", SIM_ACCESS_PG, "declared_for_test", FALSE);
+ LLAgentAccess aa(cgr);
+
+ cgr.setU32("PreferredMaturity", SIM_ACCESS_ADULT);
+ aa.setMaturity('M');
+ ensure("1 preferred maturity pegged to M when maturity is M", cgr.getU32("PreferredMaturity") == SIM_ACCESS_MATURE);
+
+ aa.setMaturity('P');
+ ensure("1 preferred maturity pegged to P when maturity is P", cgr.getU32("PreferredMaturity") == SIM_ACCESS_PG);
+ }
}