diff options
Diffstat (limited to 'indra/newview/tests')
| -rw-r--r-- | indra/newview/tests/llagentaccess_test.cpp | 137 | 
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); +	}  } | 
