diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
7 files changed, 159 insertions, 73 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs index 8a40278..29652aa 100644 --- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs +++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs | |||
@@ -55,7 +55,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
55 | private object m_lockObject = new object(); | 55 | private object m_lockObject = new object(); |
56 | private object m_timerLock = new object(); | 56 | private object m_timerLock = new object(); |
57 | private const double m_tickDuration = 50.0; | 57 | private const double m_tickDuration = 50.0; |
58 | private Scene m_scene; | ||
59 | 58 | ||
60 | public double TickDuration | 59 | public double TickDuration |
61 | { | 60 | { |
@@ -69,8 +68,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
69 | m_timer.AutoReset = true; | 68 | m_timer.AutoReset = true; |
70 | m_timer.Elapsed += OnTimer; | 69 | m_timer.Elapsed += OnTimer; |
71 | 70 | ||
72 | m_scene = scene; | ||
73 | |||
74 | m_timer.Start(); | 71 | m_timer.Start(); |
75 | } | 72 | } |
76 | 73 | ||
@@ -94,13 +91,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
94 | { | 91 | { |
95 | m.OnTimer(TickDuration); | 92 | m.OnTimer(TickDuration); |
96 | } | 93 | } |
97 | catch (Exception inner) | 94 | catch (Exception) |
98 | { | 95 | { |
99 | // Don't stop processing | 96 | // Don't stop processing |
100 | } | 97 | } |
101 | } | 98 | } |
102 | } | 99 | } |
103 | catch (Exception e) | 100 | catch (Exception) |
104 | { | 101 | { |
105 | // Keep running no matter what | 102 | // Keep running no matter what |
106 | } | 103 | } |
@@ -157,7 +154,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
157 | [Serializable] | 154 | [Serializable] |
158 | public class KeyframeMotion | 155 | public class KeyframeMotion |
159 | { | 156 | { |
160 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 157 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
161 | 158 | ||
162 | public enum PlayMode : int | 159 | public enum PlayMode : int |
163 | { | 160 | { |
diff --git a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs index c11174d..f208afb 100644 --- a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs +++ b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs | |||
@@ -46,47 +46,33 @@ using OpenSim.Region.Framework.Scenes; | |||
46 | 46 | ||
47 | namespace OpenSim.Region.Framework.Scenes | 47 | namespace OpenSim.Region.Framework.Scenes |
48 | { | 48 | { |
49 | public class RegionStatsHandler : IStreamedRequestHandler | 49 | public class RegionStatsHandler : BaseStreamHandler |
50 | { | 50 | { |
51 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 51 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
52 | 52 | ||
53 | private string osRXStatsURI = String.Empty; | ||
54 | private string osXStatsURI = String.Empty; | 53 | private string osXStatsURI = String.Empty; |
55 | //private string osSecret = String.Empty; | 54 | //private string osSecret = String.Empty; |
56 | private OpenSim.Framework.RegionInfo regionInfo; | 55 | private OpenSim.Framework.RegionInfo regionInfo; |
57 | public string localZone = TimeZone.CurrentTimeZone.StandardName; | 56 | public string localZone = TimeZone.CurrentTimeZone.StandardName; |
58 | public TimeSpan utcOffset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); | 57 | public TimeSpan utcOffset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now); |
59 | 58 | ||
60 | public string Name { get { return "RegionStats"; } } | 59 | public RegionStatsHandler(RegionInfo region_info) |
61 | public string Description { get { return "Region Statistics"; } } | 60 | : base("GET", "/" + Util.SHA1Hash(region_info.regionSecret), "RegionStats", "Region Statistics") |
62 | |||
63 | public RegionStatsHandler(RegionInfo region_info) | ||
64 | { | 61 | { |
65 | regionInfo = region_info; | 62 | regionInfo = region_info; |
66 | osRXStatsURI = Util.SHA1Hash(regionInfo.regionSecret); | ||
67 | osXStatsURI = Util.SHA1Hash(regionInfo.osSecret); | 63 | osXStatsURI = Util.SHA1Hash(regionInfo.osSecret); |
68 | } | 64 | } |
69 | 65 | ||
70 | public byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | 66 | protected override byte[] ProcessRequest( |
67 | string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||
71 | { | 68 | { |
72 | return Util.UTF8.GetBytes(Report()); | 69 | return Util.UTF8.GetBytes(Report()); |
73 | } | 70 | } |
74 | 71 | ||
75 | public string ContentType | 72 | public override string ContentType |
76 | { | 73 | { |
77 | get { return "text/plain"; } | 74 | get { return "text/plain"; } |
78 | } | 75 | } |
79 | |||
80 | public string HttpMethod | ||
81 | { | ||
82 | get { return "GET"; } | ||
83 | } | ||
84 | |||
85 | public string Path | ||
86 | { | ||
87 | // This is for the region and is the regionSecret hashed | ||
88 | get { return "/" + osRXStatsURI; } | ||
89 | } | ||
90 | 76 | ||
91 | private string Report() | 77 | private string Report() |
92 | { | 78 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index c743190..d293a8b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3258,7 +3258,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3258 | { | 3258 | { |
3259 | //client.OnNameFromUUIDRequest += HandleUUIDNameRequest; | 3259 | //client.OnNameFromUUIDRequest += HandleUUIDNameRequest; |
3260 | client.OnMoneyTransferRequest += ProcessMoneyTransferRequest; | 3260 | client.OnMoneyTransferRequest += ProcessMoneyTransferRequest; |
3261 | client.OnRegionHandleRequest += RegionHandleRequest; | ||
3262 | } | 3261 | } |
3263 | 3262 | ||
3264 | public virtual void SubscribeToClientNetworkEvents(IClientAPI client) | 3263 | public virtual void SubscribeToClientNetworkEvents(IClientAPI client) |
@@ -3384,7 +3383,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3384 | { | 3383 | { |
3385 | //client.OnNameFromUUIDRequest -= HandleUUIDNameRequest; | 3384 | //client.OnNameFromUUIDRequest -= HandleUUIDNameRequest; |
3386 | client.OnMoneyTransferRequest -= ProcessMoneyTransferRequest; | 3385 | client.OnMoneyTransferRequest -= ProcessMoneyTransferRequest; |
3387 | client.OnRegionHandleRequest -= RegionHandleRequest; | ||
3388 | } | 3386 | } |
3389 | 3387 | ||
3390 | public virtual void UnSubscribeToClientNetworkEvents(IClientAPI client) | 3388 | public virtual void UnSubscribeToClientNetworkEvents(IClientAPI client) |
@@ -3859,7 +3857,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3859 | "[SCENE]: Existing root scene presence detected for {0} {1} in {2} when connecting. Removing existing presence.", | 3857 | "[SCENE]: Existing root scene presence detected for {0} {1} in {2} when connecting. Removing existing presence.", |
3860 | sp.Name, sp.UUID, RegionInfo.RegionName); | 3858 | sp.Name, sp.UUID, RegionInfo.RegionName); |
3861 | 3859 | ||
3862 | sp.ControllingClient.Close(true, true); | 3860 | |
3861 | if (sp.ControllingClient != null) | ||
3862 | sp.ControllingClient.Close(true, true); | ||
3863 | |||
3863 | sp = null; | 3864 | sp = null; |
3864 | } | 3865 | } |
3865 | } | 3866 | } |
@@ -5089,22 +5090,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
5089 | 5090 | ||
5090 | #endregion | 5091 | #endregion |
5091 | 5092 | ||
5092 | public void RegionHandleRequest(IClientAPI client, UUID regionID) | ||
5093 | { | ||
5094 | m_log.DebugFormat("[SCENE]: RegionHandleRequest {0}", regionID); | ||
5095 | ulong handle = 0; | ||
5096 | if (regionID == RegionInfo.RegionID) | ||
5097 | handle = RegionInfo.RegionHandle; | ||
5098 | else | ||
5099 | { | ||
5100 | GridRegion r = GridService.GetRegionByUUID(UUID.Zero, regionID); | ||
5101 | if (r != null) | ||
5102 | handle = r.RegionHandle; | ||
5103 | } | ||
5104 | |||
5105 | if (handle != 0) | ||
5106 | client.SendRegionHandle(regionID, handle); | ||
5107 | } | ||
5108 | 5093 | ||
5109 | // Commented pending deletion since this method no longer appears to do anything at all | 5094 | // Commented pending deletion since this method no longer appears to do anything at all |
5110 | // public bool NeedSceneCacheClear(UUID agentID) | 5095 | // public bool NeedSceneCacheClear(UUID agentID) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index f8624e7..8c50a81 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -67,6 +67,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
67 | { | 67 | { |
68 | int scriptsStarted = 0; | 68 | int scriptsStarted = 0; |
69 | 69 | ||
70 | if (m_scene == null) | ||
71 | { | ||
72 | m_log.DebugFormat("[PRIM INVENTORY]: m_scene is null. Unable to create script instances"); | ||
73 | return 0; | ||
74 | } | ||
75 | |||
70 | // Don't start scripts if they're turned off in the region! | 76 | // Don't start scripts if they're turned off in the region! |
71 | if (!m_scene.RegionInfo.RegionSettings.DisableScripts) | 77 | if (!m_scene.RegionInfo.RegionSettings.DisableScripts) |
72 | { | 78 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index f13f7ab..389c2c6 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -390,8 +390,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
390 | 390 | ||
391 | private SOPVehicle m_vehicleParams = null; | 391 | private SOPVehicle m_vehicleParams = null; |
392 | 392 | ||
393 | private KeyframeMotion m_keyframeMotion = null; | ||
394 | |||
395 | public KeyframeMotion KeyframeMotion | 393 | public KeyframeMotion KeyframeMotion |
396 | { | 394 | { |
397 | get; set; | 395 | get; set; |
@@ -543,7 +541,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
543 | CreatorID = uuid; | 541 | CreatorID = uuid; |
544 | } | 542 | } |
545 | if (parts.Length >= 2) | 543 | if (parts.Length >= 2) |
544 | { | ||
546 | CreatorData = parts[1]; | 545 | CreatorData = parts[1]; |
546 | if (!CreatorData.EndsWith("/")) | ||
547 | CreatorData += "/"; | ||
548 | } | ||
547 | if (parts.Length >= 3) | 549 | if (parts.Length >= 3) |
548 | name = parts[2]; | 550 | name = parts[2]; |
549 | 551 | ||
@@ -4642,6 +4644,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4642 | } | 4644 | } |
4643 | } | 4645 | } |
4644 | */ | 4646 | */ |
4647 | if (pa != null) | ||
4648 | { | ||
4649 | pa.SetMaterial(Material); | ||
4650 | DoPhysicsPropertyUpdate(UsePhysics, true); | ||
4651 | } | ||
4645 | } | 4652 | } |
4646 | else // it already has a physical representation | 4653 | else // it already has a physical representation |
4647 | { | 4654 | { |
@@ -4696,6 +4703,46 @@ namespace OpenSim.Region.Framework.Scenes | |||
4696 | // m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags); | 4703 | // m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags); |
4697 | } | 4704 | } |
4698 | 4705 | ||
4706 | // Subscribe for physics collision events if needed for scripts and sounds | ||
4707 | public void SubscribeForCollisionEvents() | ||
4708 | { | ||
4709 | if (PhysActor != null) | ||
4710 | { | ||
4711 | if ( | ||
4712 | ((AggregateScriptEvents & scriptEvents.collision) != 0) || | ||
4713 | ((AggregateScriptEvents & scriptEvents.collision_end) != 0) || | ||
4714 | ((AggregateScriptEvents & scriptEvents.collision_start) != 0) || | ||
4715 | ((AggregateScriptEvents & scriptEvents.land_collision_start) != 0) || | ||
4716 | ((AggregateScriptEvents & scriptEvents.land_collision) != 0) || | ||
4717 | ((AggregateScriptEvents & scriptEvents.land_collision_end) != 0) || | ||
4718 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.collision) != 0) || | ||
4719 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.collision_end) != 0) || | ||
4720 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.collision_start) != 0) || | ||
4721 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.land_collision_start) != 0) || | ||
4722 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.land_collision) != 0) || | ||
4723 | ((ParentGroup.RootPart.AggregateScriptEvents & scriptEvents.land_collision_end) != 0) || | ||
4724 | (CollisionSound != UUID.Zero) | ||
4725 | ) | ||
4726 | { | ||
4727 | if (!PhysActor.SubscribedEvents()) | ||
4728 | { | ||
4729 | // If not already subscribed for event, set up for a collision event. | ||
4730 | PhysActor.OnCollisionUpdate += PhysicsCollision; | ||
4731 | PhysActor.SubscribeEvents(1000); | ||
4732 | } | ||
4733 | } | ||
4734 | else | ||
4735 | { | ||
4736 | // There is no need to be subscribed to collisions so, if subscribed, remove subscription | ||
4737 | if (PhysActor.SubscribedEvents()) | ||
4738 | { | ||
4739 | PhysActor.OnCollisionUpdate -= PhysicsCollision; | ||
4740 | PhysActor.UnSubscribeEvents(); | ||
4741 | } | ||
4742 | } | ||
4743 | } | ||
4744 | } | ||
4745 | |||
4699 | /// <summary> | 4746 | /// <summary> |
4700 | /// Adds this part to the physics scene. | 4747 | /// Adds this part to the physics scene. |
4701 | /// and sets the PhysActor property | 4748 | /// and sets the PhysActor property |
@@ -5154,31 +5201,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5154 | { | 5201 | { |
5155 | objectflagupdate |= (uint) PrimFlags.AllowInventoryDrop; | 5202 | objectflagupdate |= (uint) PrimFlags.AllowInventoryDrop; |
5156 | } | 5203 | } |
5157 | /* | 5204 | |
5158 | PhysicsActor pa = PhysActor; | ||
5159 | if (pa != null) | ||
5160 | { | ||
5161 | if ( | ||
5162 | // ((AggregateScriptEvents & scriptEvents.collision) != 0) || | ||
5163 | // ((AggregateScriptEvents & scriptEvents.collision_end) != 0) || | ||
5164 | // ((AggregateScriptEvents & scriptEvents.collision_start) != 0) || | ||
5165 | // ((AggregateScriptEvents & scriptEvents.land_collision_start) != 0) || | ||
5166 | // ((AggregateScriptEvents & scriptEvents.land_collision) != 0) || | ||
5167 | // ((AggregateScriptEvents & scriptEvents.land_collision_end) != 0) || | ||
5168 | ((AggregateScriptEvents & PhysicsNeededSubsEvents) != 0) || ((ParentGroup.RootPart.AggregateScriptEvents & PhysicsNeededSubsEvents) != 0) || (CollisionSound != UUID.Zero) | ||
5169 | ) | ||
5170 | { | ||
5171 | // subscribe to physics updates. | ||
5172 | pa.OnCollisionUpdate += PhysicsCollision; | ||
5173 | pa.SubscribeEvents(1000); | ||
5174 | } | ||
5175 | else | ||
5176 | { | ||
5177 | pa.UnSubscribeEvents(); | ||
5178 | pa.OnCollisionUpdate -= PhysicsCollision; | ||
5179 | } | ||
5180 | } | ||
5181 | */ | ||
5182 | UpdatePhysicsSubscribedEvents(); | 5205 | UpdatePhysicsSubscribedEvents(); |
5183 | 5206 | ||
5184 | //if ((GetEffectiveObjectFlags() & (uint)PrimFlags.Scripted) != 0) | 5207 | //if ((GetEffectiveObjectFlags() & (uint)PrimFlags.Scripted) != 0) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index d04d87b..3be0623 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -696,7 +696,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
696 | /// </param> | 696 | /// </param> |
697 | public void StopScriptInstance(TaskInventoryItem item) | 697 | public void StopScriptInstance(TaskInventoryItem item) |
698 | { | 698 | { |
699 | m_part.ParentGroup.Scene.EventManager.TriggerStopScript(m_part.LocalId, item.ItemID); | 699 | if (m_part.ParentGroup.Scene != null) |
700 | m_part.ParentGroup.Scene.EventManager.TriggerStopScript(m_part.LocalId, item.ItemID); | ||
700 | 701 | ||
701 | // At the moment, even stopped scripts are counted as active, which is probably wrong. | 702 | // At the moment, even stopped scripts are counted as active, which is probably wrong. |
702 | // m_part.ParentGroup.AddActiveScriptCount(-1); | 703 | // m_part.ParentGroup.AddActiveScriptCount(-1); |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceCapabilityTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceCapabilityTests.cs new file mode 100644 index 0000000..4ae7a8e --- /dev/null +++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceCapabilityTests.cs | |||
@@ -0,0 +1,88 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Reflection; | ||
31 | using System.Text; | ||
32 | using System.Threading; | ||
33 | using System.Timers; | ||
34 | using Timer = System.Timers.Timer; | ||
35 | using Nini.Config; | ||
36 | using NUnit.Framework; | ||
37 | using OpenMetaverse; | ||
38 | using OpenSim.Framework; | ||
39 | using OpenSim.Framework.Communications; | ||
40 | using OpenSim.Framework.Servers; | ||
41 | using OpenSim.Framework.Servers.HttpServer; | ||
42 | using OpenSim.Region.ClientStack.Linden; | ||
43 | using OpenSim.Region.CoreModules.Framework; | ||
44 | using OpenSim.Region.CoreModules.Framework.EntityTransfer; | ||
45 | using OpenSim.Region.CoreModules.World.Serialiser; | ||
46 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | ||
47 | using OpenSim.Region.Framework.Scenes; | ||
48 | using OpenSim.Region.Framework.Interfaces; | ||
49 | using OpenSim.Tests.Common; | ||
50 | using OpenSim.Tests.Common.Mock; | ||
51 | using GridRegion = OpenSim.Services.Interfaces.GridRegion; | ||
52 | |||
53 | namespace OpenSim.Region.Framework.Scenes.Tests | ||
54 | { | ||
55 | [TestFixture] | ||
56 | public class ScenePresenceCapabilityTests : OpenSimTestCase | ||
57 | { | ||
58 | [Test] | ||
59 | public void TestChildAgentSingleRegionCapabilities() | ||
60 | { | ||
61 | TestHelpers.InMethod(); | ||
62 | // TestHelpers.EnableLogging(); | ||
63 | |||
64 | UUID spUuid = TestHelpers.ParseTail(0x1); | ||
65 | |||
66 | // XXX: This is not great since the use of statics will mean that this has to be manually cleaned up for | ||
67 | // any subsequent test. | ||
68 | // XXX: May replace with a mock IHttpServer later. | ||
69 | BaseHttpServer httpServer = new BaseHttpServer(99999); | ||
70 | MainServer.AddHttpServer(httpServer); | ||
71 | MainServer.Instance = httpServer; | ||
72 | |||
73 | CapabilitiesModule capsMod = new CapabilitiesModule(); | ||
74 | TestScene scene = new SceneHelpers().SetupScene(); | ||
75 | SceneHelpers.SetupSceneModules(scene, capsMod); | ||
76 | |||
77 | ScenePresence sp = SceneHelpers.AddChildScenePresence(scene, spUuid); | ||
78 | //Assert.That(capsMod.GetCapsForUser(spUuid), Is.Not.Null); | ||
79 | |||
80 | // TODO: Need to add tests for other ICapabiltiesModule methods. | ||
81 | |||
82 | scene.IncomingCloseAgent(sp.UUID, false); | ||
83 | //Assert.That(capsMod.GetCapsForUser(spUuid), Is.Null); | ||
84 | |||
85 | // TODO: Need to add tests for other ICapabiltiesModule methods. | ||
86 | } | ||
87 | } | ||
88 | } | ||