Merge branch 'master' into careminster

Conflicts:
	OpenSim/Region/Framework/Scenes/Scene.cs
	OpenSim/Services/LLLoginService/LLLoginResponse.cs
	OpenSim/Services/LLLoginService/LLLoginService.cs
	OpenSim/Tests/Common/Mock/TestClient.cs
This commit is contained in:
Melanie
2013-05-11 02:35:26 +01:00
27 changed files with 206 additions and 139 deletions

View File

@@ -82,7 +82,7 @@ namespace OpenSim.Tests.Common
Scene neighbourScene;
SceneManager.Instance.TryGetScene(x, y, out neighbourScene);
TestClient neighbourTc = new TestClient(newAgent, neighbourScene, SceneManager.Instance);
TestClient neighbourTc = new TestClient(newAgent, neighbourScene);
neighbourTcs.Add(neighbourTc);
neighbourScene.AddNewClient(neighbourTc, PresenceType.User);
};

View File

@@ -447,9 +447,6 @@ namespace OpenSim.Tests.Common
/// Add a root agent where the details of the agent connection (apart from the id) are unimportant for the test
/// </summary>
/// <remarks>
/// This can be used for tests where there is only one region or where there are multiple non-neighbour regions
/// and teleport doesn't take place.
///
/// XXX: Use the version of this method that takes the UserAccount structure wherever possible - this will
/// make the agent circuit data (e.g. first, lastname) consistent with the user account data.
/// </remarks>
@@ -461,22 +458,6 @@ namespace OpenSim.Tests.Common
return AddScenePresence(scene, GenerateAgentData(agentId));
}
/// <summary>
/// Add a root agent where the details of the agent connection (apart from the id) are unimportant for the test
/// </summary>
/// <remarks>
/// XXX: Use the version of this method that takes the UserAccount structure wherever possible - this will
/// make the agent circuit data (e.g. first, lastname) consistent with the user account data.
/// </remarks>
/// <param name="scene"></param>
/// <param name="agentId"></param>
/// <param name="sceneManager"></param>
/// <returns></returns>
public static ScenePresence AddScenePresence(Scene scene, UUID agentId, SceneManager sceneManager)
{
return AddScenePresence(scene, GenerateAgentData(agentId), sceneManager);
}
/// <summary>
/// Add a root agent.
/// </summary>
@@ -508,7 +489,7 @@ namespace OpenSim.Tests.Common
/// <returns></returns>
public static ScenePresence AddScenePresence(Scene scene, AgentCircuitData agentData)
{
return AddScenePresence(scene, agentData, null);
return AddScenePresence(scene, new TestClient(agentData, scene), agentData);
}
/// <summary>
@@ -528,34 +509,9 @@ namespace OpenSim.Tests.Common
/// </remarks>
/// <param name="scene"></param>
/// <param name="agentData"></param>
/// <param name="sceneManager"></param>
/// <returns></returns>
public static ScenePresence AddScenePresence(Scene scene, AgentCircuitData agentData, SceneManager sceneManager)
{
return AddScenePresence(scene, new TestClient(agentData, scene, sceneManager), agentData, sceneManager);
}
/// <summary>
/// Add a root agent.
/// </summary>
/// <remarks>
/// This function
///
/// 1) Tells the scene that an agent is coming. Normally, the login service (local if standalone, from the
/// userserver if grid) would give initial login data back to the client and separately tell the scene that the
/// agent was coming.
///
/// 2) Connects the agent with the scene
///
/// This function performs actions equivalent with notifying the scene that an agent is
/// coming and then actually connecting the agent to the scene. The one step missed out is the very first
/// </remarks>
/// <param name="scene"></param>
/// <param name="agentData"></param>
/// <param name="sceneManager"></param>
/// <returns></returns>
public static ScenePresence AddScenePresence(
Scene scene, IClientAPI client, AgentCircuitData agentData, SceneManager sceneManager)
Scene scene, IClientAPI client, AgentCircuitData agentData)
{
// We emulate the proper login sequence here by doing things in four stages
@@ -578,10 +534,6 @@ namespace OpenSim.Tests.Common
/// Introduce an agent into the scene by adding a new client.
/// </summary>
/// <returns>The scene presence added</returns>
/// <param name='sceneManager'>
/// Scene manager. Can be null if there is only one region in the test or multiple regions that are not
/// neighbours and where no teleporting takes place.
/// </param>
/// <param name='scene'></param>
/// <param name='testClient'></param>
/// <param name='agentData'></param>
@@ -607,7 +559,7 @@ namespace OpenSim.Tests.Common
acd.child = true;
// XXX: ViaLogin may not be correct for child agents
TestClient client = new TestClient(acd, scene, null);
TestClient client = new TestClient(acd, scene);
return IntroduceClientToScene(scene, client, acd, TeleportFlags.ViaLogin);
}

View File

@@ -47,9 +47,9 @@ namespace OpenSim.Tests.Common.Mock
EventWaitHandle wh = new EventWaitHandle (false, EventResetMode.AutoReset, "Crossing");
private Scene m_scene;
private SceneManager m_sceneManager;
// Properties so that we can get at received data for test purposes
public List<uint> ReceivedKills { get; private set; }
public List<UUID> ReceivedOfflineNotifications { get; private set; }
public List<UUID> ReceivedOnlineNotifications { get; private set; }
public List<UUID> ReceivedFriendshipTerminations { get; private set; }
@@ -434,36 +434,24 @@ namespace OpenSim.Tests.Common.Mock
get { return new IPEndPoint(IPAddress.Loopback, (ushort)m_circuitCode); }
}
/// <summary>
/// Constructor
/// </summary>
/// <remarks>
/// Can be used for a test where there is only one region or where there are multiple regions that are not
/// neighbours and where no teleporting takes place. In other situations, the constructor that takes in a
/// scene manager should be used.
/// </remarks>
/// <param name="agentData"></param>
/// <param name="scene"></param>
public TestClient(AgentCircuitData agentData, Scene scene) : this(agentData, scene, null) {}
/// <summary>
/// Constructor
/// </summary>
/// <param name="agentData"></param>
/// <param name="scene"></param>
/// <param name="sceneManager"></param>
public TestClient(AgentCircuitData agentData, Scene scene, SceneManager sceneManager)
public TestClient(AgentCircuitData agentData, Scene scene)
{
m_agentId = agentData.AgentID;
m_firstName = agentData.firstname;
m_lastName = agentData.lastname;
m_circuitCode = agentData.circuitcode;
m_scene = scene;
m_sceneManager = sceneManager;
SessionId = agentData.SessionID;
SecureSessionId = agentData.SecureSessionID;
CapsSeedUrl = agentData.CapsPath;
ReceivedKills = new List<uint>();
ReceivedOfflineNotifications = new List<UUID>();
ReceivedOnlineNotifications = new List<UUID>();
ReceivedFriendshipTerminations = new List<UUID>();
@@ -532,11 +520,11 @@ namespace OpenSim.Tests.Common.Mock
public virtual void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
{
}
public virtual void SendKillObject(ulong regionHandle, List<uint> localID)
public virtual void SendKillObject(List<uint> localID)
{
ReceivedKills.AddRange(localID);
}
public virtual void SetChildAgentThrottle(byte[] throttle)
@@ -545,15 +533,13 @@ namespace OpenSim.Tests.Common.Mock
public void SetAgentThrottleSilent(int throttle, int setting)
{
}
public byte[] GetThrottlesPacked(float multiplier)
{
return new byte[0];
}
public virtual void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs)
{
}

View File

@@ -118,8 +118,8 @@ namespace OpenSim.Tests.Common.Mock
folder.parentFolderID = new UUID(newParent);
XInventoryFolder[] newParentFolders
= GetFolders(new string[] { "folderID" }, new string[] { folder.parentFolderID.ToString() });
// XInventoryFolder[] newParentFolders
// = GetFolders(new string[] { "folderID" }, new string[] { folder.parentFolderID.ToString() });
// Console.WriteLine(
// "Moved folder {0} {1}, to {2} {3}",