aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Tests')
-rw-r--r--OpenSim/Tests/Common/Helpers/SceneHelpers.cs12
-rw-r--r--OpenSim/Tests/Common/Mock/TestClient.cs43
2 files changed, 36 insertions, 19 deletions
diff --git a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
index 7bf08ae..318758d 100644
--- a/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
+++ b/OpenSim/Tests/Common/Helpers/SceneHelpers.cs
@@ -369,8 +369,11 @@ namespace OpenSim.Tests.Common
369 agentData.AgentID = agentId; 369 agentData.AgentID = agentId;
370 agentData.firstname = firstName; 370 agentData.firstname = firstName;
371 agentData.lastname = "testlastname"; 371 agentData.lastname = "testlastname";
372 agentData.SessionID = UUID.Zero; 372
373 agentData.SecureSessionID = UUID.Zero; 373 // XXX: Sessions must be unique, otherwise one presence can overwrite another in NullPresenceData.
374 agentData.SessionID = UUID.Random();
375 agentData.SecureSessionID = UUID.Random();
376
374 agentData.circuitcode = 123; 377 agentData.circuitcode = 123;
375 agentData.BaseFolder = UUID.Zero; 378 agentData.BaseFolder = UUID.Zero;
376 agentData.InventoryFolder = UUID.Zero; 379 agentData.InventoryFolder = UUID.Zero;
@@ -416,7 +419,10 @@ namespace OpenSim.Tests.Common
416 // We emulate the proper login sequence here by doing things in four stages 419 // We emulate the proper login sequence here by doing things in four stages
417 420
418 // Stage 0: login 421 // Stage 0: login
419 scene.PresenceService.LoginAgent(agentData.AgentID.ToString(), agentData.SessionID, agentData.SecureSessionID); 422 // We need to punch through to the underlying service because scene will not, correctly, let us call it
423 // through it's reference to the LPSC
424 LocalPresenceServicesConnector lpsc = (LocalPresenceServicesConnector)scene.PresenceService;
425 lpsc.m_PresenceService.LoginAgent(agentData.AgentID.ToString(), agentData.SessionID, agentData.SecureSessionID);
420 426
421 // Stages 1 & 2 427 // Stages 1 & 2
422 ScenePresence sp = IntroduceClientToScene(scene, agentData, TeleportFlags.ViaLogin); 428 ScenePresence sp = IntroduceClientToScene(scene, agentData, TeleportFlags.ViaLogin);
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs
index 64dd1e4..6a7cb0a 100644
--- a/OpenSim/Tests/Common/Mock/TestClient.cs
+++ b/OpenSim/Tests/Common/Mock/TestClient.cs
@@ -349,15 +349,9 @@ namespace OpenSim.Tests.Common.Mock
349 get { return m_agentId; } 349 get { return m_agentId; }
350 } 350 }
351 351
352 public UUID SessionId 352 public UUID SessionId { get; set; }
353 {
354 get { return UUID.Zero; }
355 }
356 353
357 public UUID SecureSessionId 354 public UUID SecureSessionId { get; set; }
358 {
359 get { return UUID.Zero; }
360 }
361 355
362 public virtual string FirstName 356 public virtual string FirstName
363 { 357 {
@@ -381,11 +375,9 @@ namespace OpenSim.Tests.Common.Mock
381 get { return true; } 375 get { return true; }
382 set { } 376 set { }
383 } 377 }
384 public bool IsLoggingOut 378
385 { 379 public bool IsLoggingOut { get; set; }
386 get { return false; } 380
387 set { }
388 }
389 public UUID ActiveGroupId 381 public UUID ActiveGroupId
390 { 382 {
391 get { return UUID.Zero; } 383 get { return UUID.Zero; }
@@ -451,6 +443,8 @@ namespace OpenSim.Tests.Common.Mock
451 m_lastName = agentData.lastname; 443 m_lastName = agentData.lastname;
452 m_circuitCode = agentData.circuitcode; 444 m_circuitCode = agentData.circuitcode;
453 m_scene = scene; 445 m_scene = scene;
446 SessionId = agentData.SessionID;
447 SecureSessionId = agentData.SecureSessionID;
454 CapsSeedUrl = agentData.CapsPath; 448 CapsSeedUrl = agentData.CapsPath;
455 449
456 ReceivedOfflineNotifications = new List<UUID>(); 450 ReceivedOfflineNotifications = new List<UUID>();
@@ -902,12 +896,29 @@ namespace OpenSim.Tests.Common.Mock
902 { 896 {
903 } 897 }
904 898
905 public void Close() 899 /// <summary>
900 /// This is a TestClient only method to do shutdown tasks that are normally carried out by LLUDPServer.RemoveClient()
901 /// </summary>
902 public void Logout()
903 {
904 // We must set this here so that the presence is removed from the PresenceService by the PresenceDetector
905 IsLoggingOut = true;
906
907 Close();
908 }
909
910 public void Close(bool c)
906 { 911 {
907 Close(true); 912 Close();
908 } 913 }
909 public void Close(bool sendStop) 914
915 public void Close()
910 { 916 {
917 // Fire the callback for this connection closing
918 // This is necesary to get the presence detector to notice that a client has logged out.
919 if (OnConnectionClosed != null)
920 OnConnectionClosed(this);
921
911 m_scene.RemoveClient(AgentId, true); 922 m_scene.RemoveClient(AgentId, true);
912 } 923 }
913 924