diff options
Diffstat (limited to 'OpenSim/Tests/Common/Helpers/SceneHelpers.cs')
-rw-r--r-- | OpenSim/Tests/Common/Helpers/SceneHelpers.cs | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs index d358ae8..a25eb66 100644 --- a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs +++ b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs | |||
@@ -49,6 +49,7 @@ using OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts; | |||
49 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence; | 49 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence; |
50 | using OpenSim.Services.Interfaces; | 50 | using OpenSim.Services.Interfaces; |
51 | using OpenSim.Tests.Common.Mock; | 51 | using OpenSim.Tests.Common.Mock; |
52 | using GridRegion = OpenSim.Services.Interfaces.GridRegion; | ||
52 | 53 | ||
53 | namespace OpenSim.Tests.Common | 54 | namespace OpenSim.Tests.Common |
54 | { | 55 | { |
@@ -139,6 +140,7 @@ namespace OpenSim.Tests.Common | |||
139 | 140 | ||
140 | testScene.RegionInfo.EstateSettings = new EstateSettings(); | 141 | testScene.RegionInfo.EstateSettings = new EstateSettings(); |
141 | testScene.LoginsDisabled = false; | 142 | testScene.LoginsDisabled = false; |
143 | testScene.RegisterRegionWithGrid(); | ||
142 | 144 | ||
143 | return testScene; | 145 | return testScene; |
144 | } | 146 | } |
@@ -222,6 +224,7 @@ namespace OpenSim.Tests.Common | |||
222 | config.Configs["Modules"].Set("GridServices", "LocalGridServicesConnector"); | 224 | config.Configs["Modules"].Set("GridServices", "LocalGridServicesConnector"); |
223 | config.Configs["GridService"].Set("StorageProvider", "OpenSim.Data.Null.dll:NullRegionData"); | 225 | config.Configs["GridService"].Set("StorageProvider", "OpenSim.Data.Null.dll:NullRegionData"); |
224 | config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Services.GridService.dll:GridService"); | 226 | config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Services.GridService.dll:GridService"); |
227 | config.Configs["GridService"].Set("ConnectionString", "!static"); | ||
225 | 228 | ||
226 | LocalGridServicesConnector gridService = new LocalGridServicesConnector(); | 229 | LocalGridServicesConnector gridService = new LocalGridServicesConnector(); |
227 | gridService.Initialise(config); | 230 | gridService.Initialise(config); |
@@ -393,27 +396,42 @@ namespace OpenSim.Tests.Common | |||
393 | /// <returns></returns> | 396 | /// <returns></returns> |
394 | public static ScenePresence AddScenePresence(Scene scene, AgentCircuitData agentData) | 397 | public static ScenePresence AddScenePresence(Scene scene, AgentCircuitData agentData) |
395 | { | 398 | { |
396 | string reason; | ||
397 | |||
398 | // We emulate the proper login sequence here by doing things in four stages | 399 | // We emulate the proper login sequence here by doing things in four stages |
399 | 400 | ||
400 | // Stage 0: log the presence | 401 | // Stage 0: login |
401 | scene.PresenceService.LoginAgent(agentData.AgentID.ToString(), agentData.SessionID, agentData.SecureSessionID); | 402 | scene.PresenceService.LoginAgent(agentData.AgentID.ToString(), agentData.SessionID, agentData.SecureSessionID); |
402 | 403 | ||
403 | // Stage 1: simulate login by telling the scene to expect a new user connection | 404 | // Stages 1 & 2 |
404 | if (!scene.NewUserConnection(agentData, (uint)TeleportFlags.ViaLogin, out reason)) | 405 | ScenePresence sp = IntroduceClientToScene(scene, agentData, TeleportFlags.ViaLogin); |
406 | |||
407 | // Stage 3: Complete the entrance into the region. This converts the child agent into a root agent. | ||
408 | sp.CompleteMovement(sp.ControllingClient, true); | ||
409 | |||
410 | return sp; | ||
411 | } | ||
412 | |||
413 | private static ScenePresence IntroduceClientToScene(Scene scene, AgentCircuitData agentData, TeleportFlags tf) | ||
414 | { | ||
415 | string reason; | ||
416 | |||
417 | // Stage 1: tell the scene to expect a new user connection | ||
418 | if (!scene.NewUserConnection(agentData, (uint)tf, out reason)) | ||
405 | Console.WriteLine("NewUserConnection failed: " + reason); | 419 | Console.WriteLine("NewUserConnection failed: " + reason); |
406 | 420 | ||
407 | // Stage 2: add the new client as a child agent to the scene | 421 | // Stage 2: add the new client as a child agent to the scene |
408 | TestClient client = new TestClient(agentData, scene); | 422 | TestClient client = new TestClient(agentData, scene); |
409 | scene.AddNewClient(client, PresenceType.User); | 423 | scene.AddNewClient(client, PresenceType.User); |
410 | 424 | ||
411 | // Stage 3: Complete the entrance into the region. This converts the child agent into a root agent. | 425 | return scene.GetScenePresence(agentData.AgentID); |
412 | ScenePresence scp = scene.GetScenePresence(agentData.AgentID); | 426 | } |
413 | scp.CompleteMovement(client, true); | 427 | |
414 | //scp.MakeRootAgent(new Vector3(90, 90, 90), true); | 428 | public static ScenePresence AddChildScenePresence(Scene scene, UUID agentId) |
429 | { | ||
430 | AgentCircuitData acd = GenerateAgentData(agentId); | ||
431 | acd.child = true; | ||
415 | 432 | ||
416 | return scp; | 433 | // XXX: ViaLogin may not be correct for child agents |
434 | return IntroduceClientToScene(scene, acd, TeleportFlags.ViaLogin); | ||
417 | } | 435 | } |
418 | 436 | ||
419 | /// <summary> | 437 | /// <summary> |