From f473252fa8022f95f60e219b24ffa342966f8c13 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Nov 2012 03:56:53 +0000
Subject: Add AllowRegionRestartFromClient setting to [EstateManagement]
section of OpenSim.ini.
Setting this to false will block all restart requests from the viewer even if they are otherwise legitimate.
One use is to block region restarts if necessary whilst restart functionality remains buggy or triggers bugs in modules,
though these should be fixed as soon as practicable.
Default is true, as has been the case historically.
---
.../World/Estate/EstateManagementModule.cs | 103 +++++++++++++--------
1 file changed, 63 insertions(+), 40 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index f974a63..eb06fcc 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -53,6 +53,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
protected EstateManagementCommands m_commands;
+ ///
+ /// If false, region restart requests from the client are blocked even if they are otherwise legitimate.
+ ///
+ public bool AllowRegionRestartFromClient { get; set; }
+
private EstateTerrainXferHandler TerrainUploader;
public TelehubManager m_Telehub;
@@ -60,6 +65,53 @@ namespace OpenSim.Region.CoreModules.World.Estate
public event ChangeDelegate OnEstateInfoChange;
public event MessageDelegate OnEstateMessage;
+ #region Region Module interface
+
+ public string Name { get { return "EstateManagementModule"; } }
+
+ public Type ReplaceableInterface { get { return null; } }
+
+ public void Initialise(IConfigSource source)
+ {
+ AllowRegionRestartFromClient = true;
+
+ IConfig config = source.Configs["EstateManagement"];
+
+ if (config != null)
+ AllowRegionRestartFromClient = config.GetBoolean("AllowRegionRestartFromClient", true);
+ }
+
+ public void AddRegion(Scene scene)
+ {
+ Scene = scene;
+ Scene.RegisterModuleInterface(this);
+ Scene.EventManager.OnNewClient += EventManager_OnNewClient;
+ Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
+
+ m_Telehub = new TelehubManager(scene);
+
+ m_commands = new EstateManagementCommands(this);
+ m_commands.Initialise();
+ }
+
+ public void RemoveRegion(Scene scene) {}
+
+ public void RegionLoaded(Scene scene)
+ {
+ // Sets up the sun module based no the saved Estate and Region Settings
+ // DO NOT REMOVE or the sun will stop working
+ scene.TriggerEstateSunUpdate();
+
+ UserManager = scene.RequestModuleInterface();
+ }
+
+ public void Close()
+ {
+ m_commands.Close();
+ }
+
+ #endregion
+
#region Packet Data Responders
private void sendDetailedEstateData(IClientAPI remote_client, UUID invoice)
@@ -184,6 +236,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
break;
}
+
Scene.RegionInfo.RegionSettings.Save();
TriggerRegionInfoChange();
sendRegionInfoPacketToAll();
@@ -215,6 +268,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
break;
}
+
Scene.RegionInfo.RegionSettings.Save();
TriggerRegionInfoChange();
sendRegionHandshakeToAll();
@@ -255,6 +309,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
{
+ if (!AllowRegionRestartFromClient)
+ {
+ remoteClient.SendAlertMessage("Region restart has been disabled on this simulator.");
+ return;
+ }
+
IRestartModule restartModule = Scene.RequestModuleInterface();
if (restartModule != null)
{
@@ -329,6 +389,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
}
}
+
if ((estateAccessType & 8) != 0) // User remove
{
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
@@ -360,6 +421,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
}
}
+
if ((estateAccessType & 16) != 0) // Group add
{
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
@@ -623,7 +685,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
}
}
- public void handleOnEstateManageTelehub (IClientAPI client, UUID invoice, UUID senderID, string cmd, uint param1)
+ public void handleOnEstateManageTelehub(IClientAPI client, UUID invoice, UUID senderID, string cmd, uint param1)
{
SceneObjectPart part;
@@ -1081,45 +1143,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
#endregion
- #region Region Module interface
-
- public string Name { get { return "EstateManagementModule"; } }
-
- public Type ReplaceableInterface { get { return null; } }
-
- public void Initialise(IConfigSource source) {}
-
- public void AddRegion(Scene scene)
- {
- Scene = scene;
- Scene.RegisterModuleInterface(this);
- Scene.EventManager.OnNewClient += EventManager_OnNewClient;
- Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
-
- m_Telehub = new TelehubManager(scene);
-
- m_commands = new EstateManagementCommands(this);
- m_commands.Initialise();
- }
-
- public void RemoveRegion(Scene scene) {}
-
- public void RegionLoaded(Scene scene)
- {
- // Sets up the sun module based no the saved Estate and Region Settings
- // DO NOT REMOVE or the sun will stop working
- scene.TriggerEstateSunUpdate();
-
- UserManager = scene.RequestModuleInterface();
- }
-
- public void Close()
- {
- m_commands.Close();
- }
-
- #endregion
-
#region Other Functions
public void changeWaterHeight(float height)
--
cgit v1.1
From 1f336579c87b6b9e3152175c8b6724bff2777b65 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Nov 2012 04:06:48 +0000
Subject: minor: Make note in log if scene was restarted due to an
unrecoverable physics error
---
OpenSim/Region/Framework/Scenes/Scene.cs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 8ef22bd..1ad5edd 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -740,7 +740,12 @@ namespace OpenSim.Region.Framework.Scenes
//
// Out of memory
// Operating system has killed the plugin
- m_sceneGraph.UnRecoverableError += RestartNow;
+ m_sceneGraph.UnRecoverableError
+ += () =>
+ {
+ m_log.ErrorFormat("[SCENE]: Restarting region {0} due to unrecoverable physics crash", Name);
+ RestartNow();
+ };
RegisterDefaultSceneEvents();
--
cgit v1.1
From acc1810af2d4527d9cb0e3e7aaaf43c2f54ffb43 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Nov 2012 04:08:17 +0000
Subject: minor: remove some mono compiler warnings
---
OpenSim/Region/CoreModules/World/Sound/SoundModule.cs | 4 ++--
OpenSim/Region/CoreModules/World/Wind/WindModule.cs | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index 513a8f5..089fcda 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -43,8 +43,8 @@ namespace OpenSim.Region.CoreModules.World.Sound
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SoundModule")]
public class SoundModule : INonSharedRegionModule, ISoundModule
{
- private static readonly ILog m_log = LogManager.GetLogger(
- MethodBase.GetCurrentMethod().DeclaringType);
+// private static readonly ILog m_log = LogManager.GetLogger(
+// MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene;
diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
index fd8e2b4..9de588c 100644
--- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
@@ -66,7 +66,7 @@ namespace OpenSim.Region.CoreModules
public void Initialise(IConfigSource config)
{
m_windConfig = config.Configs["Wind"];
- string desiredWindPlugin = m_dWindPluginName;
+// string desiredWindPlugin = m_dWindPluginName;
if (m_windConfig != null)
{
--
cgit v1.1
From cda531bc3ce5e4a73eca33d6284197bbd59c9252 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Nov 2012 05:43:51 +0000
Subject: minor: Add some currently commented out debug log lines for
investigating issues resolving group IDs for land parcels on OAR loading
where groups do not exist
---
OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index ea806ec..60bbf9b 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -557,9 +557,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver
if (!ResolveGroupUuid(parcel.GroupID))
{
+// m_log.DebugFormat("[ARCHIVE READ REQUEST]: Could not find group {0}", parcel.GroupID);
parcel.GroupID = UUID.Zero;
parcel.IsGroupOwned = false;
}
+// else
+// {
+// m_log.DebugFormat("[ARCHIVE READ REQUEST]: Found group {0}", parcel.GroupID);
+// }
List accessList = new List();
foreach (LandAccessEntry entry in parcel.ParcelAccessList)
--
cgit v1.1
From 82690e138448ebac6456ab03dcca4b0a8a1cc57a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 02:43:31 +0000
Subject: Fix bug where loading an OAR with a deeded parcel would always set
the parcel owner ID to the estate owner even if the group UUID was present.
Aims to address http://opensimulator.org/mantis/view.php?id=6355
As part of this work, an incomplete IXGroupsData was added which currently only allows store/fetch/delete of group records
(i.e. no membership data etc)
This is subject to change and currently only an in-memory storage implementation exists for regression test purposes.
---
.../World/Archiver/ArchiveReadRequest.cs | 30 +-
.../World/Archiver/ArchiveWriteRequest.cs | 11 +-
.../World/Archiver/Tests/ArchiverTests.cs | 312 +++++++++++++--------
.../CoreModules/World/Land/LandManagementModule.cs | 5 +-
.../Region/CoreModules/World/Land/LandObject.cs | 13 +-
.../XmlRpcGroups/IGroupsServicesConnector.cs | 15 +
.../XmlRpcGroupsServicesConnectorModule.cs | 127 ++++-----
7 files changed, 300 insertions(+), 213 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 60bbf9b..c810242 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -552,19 +552,23 @@ namespace OpenSim.Region.CoreModules.World.Archiver
// Validate User and Group UUID's
- if (!ResolveUserUuid(scene, parcel.OwnerID))
- parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
-
- if (!ResolveGroupUuid(parcel.GroupID))
+ if (parcel.IsGroupOwned)
{
-// m_log.DebugFormat("[ARCHIVE READ REQUEST]: Could not find group {0}", parcel.GroupID);
- parcel.GroupID = UUID.Zero;
- parcel.IsGroupOwned = false;
+ if (!ResolveGroupUuid(parcel.GroupID))
+ {
+ parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
+ parcel.GroupID = UUID.Zero;
+ parcel.IsGroupOwned = false;
+ }
+ }
+ else
+ {
+ if (!ResolveUserUuid(scene, parcel.OwnerID))
+ parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
+
+ if (!ResolveGroupUuid(parcel.GroupID))
+ parcel.GroupID = UUID.Zero;
}
-// else
-// {
-// m_log.DebugFormat("[ARCHIVE READ REQUEST]: Found group {0}", parcel.GroupID);
-// }
List accessList = new List();
foreach (LandAccessEntry entry in parcel.ParcelAccessList)
@@ -576,8 +580,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
parcel.ParcelAccessList = accessList;
// m_log.DebugFormat(
-// "[ARCHIVER]: Adding parcel {0}, local id {1}, area {2}",
-// parcel.Name, parcel.LocalID, parcel.Area);
+// "[ARCHIVER]: Adding parcel {0}, local id {1}, owner {2}, group {3}, isGroupOwned {4}, area {5}",
+// parcel.Name, parcel.LocalID, parcel.OwnerID, parcel.GroupID, parcel.IsGroupOwned, parcel.Area);
landData.Add(parcel);
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
index d751b1c..7bdd65c 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs
@@ -167,7 +167,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
}
scenesGroup.CalcSceneLocations();
-
m_archiveWriter = new TarArchiveWriter(m_saveStream);
try
@@ -216,7 +215,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
}
}
-
private void ArchiveOneRegion(Scene scene, string regionDir, Dictionary assetUuids)
{
m_log.InfoFormat("[ARCHIVER]: Writing region {0}", scene.RegionInfo.RegionName);
@@ -540,7 +538,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
xtw.WriteElementString("size_in_meters", string.Format("{0},{1}", size.X, size.Y));
}
-
protected void Save(Scene scene, List sceneObjects, string regionDir)
{
if (regionDir != string.Empty)
@@ -560,8 +557,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
foreach (ILandObject lo in landObjects)
{
LandData landData = lo.LandData;
- string landDataPath = String.Format("{0}{1}{2}.xml",
- regionDir, ArchiveConstants.LANDDATA_PATH, landData.GlobalID.ToString());
+ string landDataPath
+ = String.Format("{0}{1}", regionDir, ArchiveConstants.CreateOarLandDataPath(landData));
m_archiveWriter.WriteFile(landDataPath, LandDataSerializer.Serialize(landData, m_options));
}
@@ -604,7 +601,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
CloseArchive(String.Empty);
}
-
///
/// Closes the archive and notifies that we're done.
@@ -629,6 +625,5 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_rootScene.EventManager.TriggerOarFileSaved(m_requestId, errorMessage);
}
-
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 82f49b0..7cc3519 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -31,16 +31,19 @@ using System.IO;
using System.Reflection;
using System.Threading;
using log4net.Config;
+using Nini.Config;
using NUnit.Framework;
using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenSim.Framework;
using OpenSim.Framework.Serialization;
using OpenSim.Framework.Serialization.External;
+using OpenSim.Region.CoreModules.World.Land;
using OpenSim.Region.CoreModules.World.Serialiser;
using OpenSim.Region.CoreModules.World.Terrain;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Scenes.Serialization;
+using OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
using ArchiveConstants = OpenSim.Framework.Serialization.ArchiveConstants;
@@ -127,6 +130,53 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName };
}
+
+ private void CreateTestObjects(Scene scene, out SceneObjectGroup sog1, out SceneObjectGroup sog2, out UUID ncAssetUuid)
+ {
+ SceneObjectPart part1 = CreateSceneObjectPart1();
+ sog1 = new SceneObjectGroup(part1);
+ scene.AddNewSceneObject(sog1, false);
+
+ AssetNotecard nc = new AssetNotecard();
+ nc.BodyText = "Hello World!";
+ nc.Encode();
+ ncAssetUuid = UUID.Random();
+ UUID ncItemUuid = UUID.Random();
+ AssetBase ncAsset
+ = AssetHelpers.CreateAsset(ncAssetUuid, AssetType.Notecard, nc.AssetData, UUID.Zero);
+ m_scene.AssetService.Store(ncAsset);
+
+ TaskInventoryItem ncItem
+ = new TaskInventoryItem { Name = "ncItem", AssetID = ncAssetUuid, ItemID = ncItemUuid };
+ SceneObjectPart part2 = CreateSceneObjectPart2();
+ sog2 = new SceneObjectGroup(part2);
+ part2.Inventory.AddInventoryItem(ncItem, true);
+
+ scene.AddNewSceneObject(sog2, false);
+ }
+
+ private static void CreateSoundAsset(TarArchiveWriter tar, Assembly assembly, string soundDataResourceName, out byte[] soundData, out UUID soundUuid)
+ {
+ using (Stream resource = assembly.GetManifestResourceStream(soundDataResourceName))
+ {
+ using (BinaryReader br = new BinaryReader(resource))
+ {
+ // FIXME: Use the inspector instead
+ soundData = br.ReadBytes(99999999);
+ soundUuid = UUID.Parse("00000000-0000-0000-0000-000000000001");
+ string soundAssetFileName
+ = ArchiveConstants.ASSETS_PATH + soundUuid
+ + ArchiveConstants.ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV];
+ tar.WriteFile(soundAssetFileName, soundData);
+
+ /*
+ AssetBase soundAsset = AssetHelpers.CreateAsset(soundUuid, soundData);
+ scene.AssetService.Store(soundAsset);
+ asset1FileName = ArchiveConstants.ASSETS_PATH + soundUuid + ".wav";
+ */
+ }
+ }
+ }
///
/// Test saving an OpenSim Region Archive.
@@ -204,30 +254,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
// TODO: Test presence of more files and contents of files.
}
- private void CreateTestObjects(Scene scene, out SceneObjectGroup sog1, out SceneObjectGroup sog2, out UUID ncAssetUuid)
- {
- SceneObjectPart part1 = CreateSceneObjectPart1();
- sog1 = new SceneObjectGroup(part1);
- scene.AddNewSceneObject(sog1, false);
-
- AssetNotecard nc = new AssetNotecard();
- nc.BodyText = "Hello World!";
- nc.Encode();
- ncAssetUuid = UUID.Random();
- UUID ncItemUuid = UUID.Random();
- AssetBase ncAsset
- = AssetHelpers.CreateAsset(ncAssetUuid, AssetType.Notecard, nc.AssetData, UUID.Zero);
- m_scene.AssetService.Store(ncAsset);
-
- TaskInventoryItem ncItem
- = new TaskInventoryItem { Name = "ncItem", AssetID = ncAssetUuid, ItemID = ncItemUuid };
- SceneObjectPart part2 = CreateSceneObjectPart2();
- sog2 = new SceneObjectGroup(part2);
- part2.Inventory.AddInventoryItem(ncItem, true);
-
- scene.AddNewSceneObject(sog2, false);
- }
-
///
/// Test saving an OpenSim Region Archive with the no assets option
///
@@ -309,59 +335,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
}
///
- /// Test loading an OpenSim Region Archive where the scene object parts are not ordered by link number (e.g.
- /// 2 can come after 3).
- ///
- [Test]
- public void TestLoadOarUnorderedParts()
- {
- TestHelpers.InMethod();
-
- UUID ownerId = TestHelpers.ParseTail(0xaaaa);
-
- MemoryStream archiveWriteStream = new MemoryStream();
- TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
-
- tar.WriteFile(
- ArchiveConstants.CONTROL_FILE_PATH,
- new ArchiveWriteRequest(m_scene, (Stream)null, Guid.Empty).CreateControlFile(new ArchiveScenesGroup()));
-
- SceneObjectGroup sog1 = SceneHelpers.CreateSceneObject(1, ownerId, "obj1-", 0x11);
- SceneObjectPart sop2
- = SceneHelpers.CreateSceneObjectPart("obj1-Part2", TestHelpers.ParseTail(0x12), ownerId);
- SceneObjectPart sop3
- = SceneHelpers.CreateSceneObjectPart("obj1-Part3", TestHelpers.ParseTail(0x13), ownerId);
-
- // Add the parts so they will be written out in reverse order to the oar
- sog1.AddPart(sop3);
- sop3.LinkNum = 3;
- sog1.AddPart(sop2);
- sop2.LinkNum = 2;
-
- tar.WriteFile(
- ArchiveConstants.CreateOarObjectPath(sog1.Name, sog1.UUID, sog1.AbsolutePosition),
- SceneObjectSerializer.ToXml2Format(sog1));
-
- tar.Close();
-
- MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
-
- lock (this)
- {
- m_scene.EventManager.OnOarFileLoaded += LoadCompleted;
- m_archiverModule.DearchiveRegion(archiveReadStream);
- }
-
- Assert.That(m_lastErrorMessage, Is.Null);
-
- SceneObjectPart part2 = m_scene.GetSceneObjectPart("obj1-Part2");
- Assert.That(part2.LinkNum, Is.EqualTo(2));
-
- SceneObjectPart part3 = m_scene.GetSceneObjectPart("obj1-Part3");
- Assert.That(part3.LinkNum, Is.EqualTo(3));
- }
-
- ///
/// Test loading an OpenSim Region Archive.
///
[Test]
@@ -435,50 +408,57 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
TestLoadedRegion(part1, soundItemName, soundData);
}
- private static void CreateSoundAsset(TarArchiveWriter tar, Assembly assembly, string soundDataResourceName, out byte[] soundData, out UUID soundUuid)
+ ///
+ /// Test loading an OpenSim Region Archive where the scene object parts are not ordered by link number (e.g.
+ /// 2 can come after 3).
+ ///
+ [Test]
+ public void TestLoadOarUnorderedParts()
{
- using (Stream resource = assembly.GetManifestResourceStream(soundDataResourceName))
- {
- using (BinaryReader br = new BinaryReader(resource))
- {
- // FIXME: Use the inspector instead
- soundData = br.ReadBytes(99999999);
- soundUuid = UUID.Parse("00000000-0000-0000-0000-000000000001");
- string soundAssetFileName
- = ArchiveConstants.ASSETS_PATH + soundUuid
- + ArchiveConstants.ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV];
- tar.WriteFile(soundAssetFileName, soundData);
+ TestHelpers.InMethod();
- /*
- AssetBase soundAsset = AssetHelpers.CreateAsset(soundUuid, soundData);
- scene.AssetService.Store(soundAsset);
- asset1FileName = ArchiveConstants.ASSETS_PATH + soundUuid + ".wav";
- */
- }
- }
- }
+ UUID ownerId = TestHelpers.ParseTail(0xaaaa);
- private void TestLoadedRegion(SceneObjectPart part1, string soundItemName, byte[] soundData)
- {
- SceneObjectPart object1PartLoaded = m_scene.GetSceneObjectPart(part1.Name);
+ MemoryStream archiveWriteStream = new MemoryStream();
+ TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
- Assert.That(object1PartLoaded, Is.Not.Null, "object1 was not loaded");
- Assert.That(object1PartLoaded.Name, Is.EqualTo(part1.Name), "object1 names not identical");
- Assert.That(object1PartLoaded.GroupPosition, Is.EqualTo(part1.GroupPosition), "object1 group position not equal");
- Assert.That(
- object1PartLoaded.RotationOffset, Is.EqualTo(part1.RotationOffset), "object1 rotation offset not equal");
- Assert.That(
- object1PartLoaded.OffsetPosition, Is.EqualTo(part1.OffsetPosition), "object1 offset position not equal");
- Assert.That(object1PartLoaded.SitTargetOrientation, Is.EqualTo(part1.SitTargetOrientation));
- Assert.That(object1PartLoaded.SitTargetPosition, Is.EqualTo(part1.SitTargetPosition));
+ tar.WriteFile(
+ ArchiveConstants.CONTROL_FILE_PATH,
+ new ArchiveWriteRequest(m_scene, (Stream)null, Guid.Empty).CreateControlFile(new ArchiveScenesGroup()));
- TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItems(soundItemName)[0];
- Assert.That(loadedSoundItem, Is.Not.Null, "loaded sound item was null");
- AssetBase loadedSoundAsset = m_scene.AssetService.Get(loadedSoundItem.AssetID.ToString());
- Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null");
- Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match");
+ SceneObjectGroup sog1 = SceneHelpers.CreateSceneObject(1, ownerId, "obj1-", 0x11);
+ SceneObjectPart sop2
+ = SceneHelpers.CreateSceneObjectPart("obj1-Part2", TestHelpers.ParseTail(0x12), ownerId);
+ SceneObjectPart sop3
+ = SceneHelpers.CreateSceneObjectPart("obj1-Part3", TestHelpers.ParseTail(0x13), ownerId);
- Assert.Greater(m_scene.LandChannel.AllParcels().Count, 0, "incorrect number of parcels");
+ // Add the parts so they will be written out in reverse order to the oar
+ sog1.AddPart(sop3);
+ sop3.LinkNum = 3;
+ sog1.AddPart(sop2);
+ sop2.LinkNum = 2;
+
+ tar.WriteFile(
+ ArchiveConstants.CreateOarObjectPath(sog1.Name, sog1.UUID, sog1.AbsolutePosition),
+ SceneObjectSerializer.ToXml2Format(sog1));
+
+ tar.Close();
+
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+
+ lock (this)
+ {
+ m_scene.EventManager.OnOarFileLoaded += LoadCompleted;
+ m_archiverModule.DearchiveRegion(archiveReadStream);
+ }
+
+ Assert.That(m_lastErrorMessage, Is.Null);
+
+ SceneObjectPart part2 = m_scene.GetSceneObjectPart("obj1-Part2");
+ Assert.That(part2.LinkNum, Is.EqualTo(2));
+
+ SceneObjectPart part3 = m_scene.GetSceneObjectPart("obj1-Part3");
+ Assert.That(part3.LinkNum, Is.EqualTo(3));
}
///
@@ -563,6 +543,81 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
}
///
+ /// Test OAR loading where the land parcel is group deeded.
+ ///
+ ///
+ /// In this situation, the owner ID is set to the group ID.
+ ///
+ [Test]
+ public void TestLoadOarDeededLand()
+ {
+ TestHelpers.InMethod();
+ TestHelpers.EnableLogging();
+
+ UUID landID = TestHelpers.ParseTail(0x10);
+
+ MockGroupsServicesConnector groupsService = new MockGroupsServicesConnector();
+
+ IConfigSource configSource = new IniConfigSource();
+ IConfig config = configSource.AddConfig("Groups");
+ config.Set("Enabled", true);
+ config.Set("Module", "GroupsModule");
+ config.Set("DebugEnabled", true);
+ SceneHelpers.SetupSceneModules(
+ m_scene, configSource, new object[] { new GroupsModule(), groupsService, new LandManagementModule() });
+
+ // Create group in scene for loading
+ // FIXME: For now we'll put up with the issue that we'll get a group ID that varies across tests.
+ UUID groupID
+ = groupsService.CreateGroup(UUID.Zero, "group1", "", true, UUID.Zero, 3, true, true, true, UUID.Zero);
+
+ // Construct OAR
+ MemoryStream oarStream = new MemoryStream();
+ TarArchiveWriter tar = new TarArchiveWriter(oarStream);
+
+ tar.WriteDir(ArchiveConstants.LANDDATA_PATH);
+ tar.WriteFile(
+ ArchiveConstants.CONTROL_FILE_PATH,
+ new ArchiveWriteRequest(m_scene, (Stream)null, Guid.Empty).CreateControlFile(new ArchiveScenesGroup()));
+
+ LandObject lo = new LandObject(groupID, true, null);
+
+ // FIXME: We set directly rather than call SetLandBitmap in order not to do an AABB value update, which
+ // requests the terrain heightmap from an active scene. This is confusing and not a long-term solution.
+ //lo.LandBitmap = lo.BasicFullRegionLandBitmap();
+ lo.SetLandBitmap(lo.BasicFullRegionLandBitmap());
+
+ // FIXME: We have to make a separate call to update the LandData's copy of the land bitmap, even though this is
+ // identical to the LandObject copy. This should be changed so there's only one copy of the data if at all
+ // possible
+ //lo.UpdateLandBitmapByteArray();
+
+ LandData ld = lo.LandData;
+ ld.GlobalID = landID;
+
+ string ldPath = ArchiveConstants.CreateOarLandDataPath(ld);
+ tar.WriteFile(ldPath, LandDataSerializer.Serialize(ld, null));
+ tar.Close();
+
+ oarStream = new MemoryStream(oarStream.ToArray());
+
+ // Load OAR
+ lock (this)
+ {
+ m_scene.EventManager.OnOarFileLoaded += LoadCompleted;
+ m_archiverModule.DearchiveRegion(oarStream);
+ }
+
+ ILandObject rLo = m_scene.LandChannel.GetLandObject(16, 16);
+ LandData rLd = rLo.LandData;
+
+ Assert.That(rLd.GlobalID, Is.EqualTo(landID));
+ Assert.That(rLd.OwnerID, Is.EqualTo(groupID));
+ Assert.That(rLd.GroupID, Is.EqualTo(groupID));
+ Assert.That(rLd.IsGroupOwned, Is.EqualTo(true));
+ }
+
+ ///
/// Test loading the region settings of an OpenSim Region Archive.
///
[Test]
@@ -781,9 +836,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
}
}
-
// Save OAR
-
MemoryStream archiveWriteStream = new MemoryStream();
m_scene.EventManager.OnOarFileSaved += SaveCompleted;
@@ -800,7 +853,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
// Check that the OAR contains the expected data
-
Assert.That(m_lastRequestId, Is.EqualTo(requestId));
byte[] archive = archiveWriteStream.ToArray();
@@ -976,5 +1028,27 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
TestLoadedRegion(part1, soundItemName, soundData);
}
+ private void TestLoadedRegion(SceneObjectPart part1, string soundItemName, byte[] soundData)
+ {
+ SceneObjectPart object1PartLoaded = m_scene.GetSceneObjectPart(part1.Name);
+
+ Assert.That(object1PartLoaded, Is.Not.Null, "object1 was not loaded");
+ Assert.That(object1PartLoaded.Name, Is.EqualTo(part1.Name), "object1 names not identical");
+ Assert.That(object1PartLoaded.GroupPosition, Is.EqualTo(part1.GroupPosition), "object1 group position not equal");
+ Assert.That(
+ object1PartLoaded.RotationOffset, Is.EqualTo(part1.RotationOffset), "object1 rotation offset not equal");
+ Assert.That(
+ object1PartLoaded.OffsetPosition, Is.EqualTo(part1.OffsetPosition), "object1 offset position not equal");
+ Assert.That(object1PartLoaded.SitTargetOrientation, Is.EqualTo(part1.SitTargetOrientation));
+ Assert.That(object1PartLoaded.SitTargetPosition, Is.EqualTo(part1.SitTargetPosition));
+
+ TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItems(soundItemName)[0];
+ Assert.That(loadedSoundItem, Is.Not.Null, "loaded sound item was null");
+ AssetBase loadedSoundAsset = m_scene.AssetService.Get(loadedSoundItem.AssetID.ToString());
+ Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null");
+ Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match");
+
+ Assert.Greater(m_scene.LandChannel.AllParcels().Count, 0, "incorrect number of parcels");
+ }
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 8682798..7149aad 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1378,10 +1378,11 @@ namespace OpenSim.Region.CoreModules.World.Land
public void EventManagerOnIncomingLandDataFromStorage(List data)
{
+// m_log.DebugFormat(
+// "[LAND MANAGMENT MODULE]: Processing {0} incoming parcels on {1}", data.Count, m_scene.Name);
+
for (int i = 0; i < data.Count; i++)
- {
IncomingLandObjectFromStorage(data[i]);
- }
}
public void IncomingLandObjectFromStorage(LandData data)
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 8829f27..5969d45 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -727,9 +727,10 @@ namespace OpenSim.Region.CoreModules.World.Land
int ty = min_y * 4;
if (ty > ((int)Constants.RegionSize - 1))
ty = ((int)Constants.RegionSize - 1);
+
LandData.AABBMin =
- new Vector3((float) (min_x * 4), (float) (min_y * 4),
- (float) m_scene.Heightmap[tx, ty]);
+ new Vector3(
+ (float)(min_x * 4), (float)(min_y * 4), m_scene != null ? (float)m_scene.Heightmap[tx, ty] : 0);
tx = max_x * 4;
if (tx > ((int)Constants.RegionSize - 1))
@@ -737,9 +738,11 @@ namespace OpenSim.Region.CoreModules.World.Land
ty = max_y * 4;
if (ty > ((int)Constants.RegionSize - 1))
ty = ((int)Constants.RegionSize - 1);
- LandData.AABBMax =
- new Vector3((float) (max_x * 4), (float) (max_y * 4),
- (float) m_scene.Heightmap[tx, ty]);
+
+ LandData.AABBMax
+ = new Vector3(
+ (float)(max_x * 4), (float)(max_y * 4), m_scene != null ? (float)m_scene.Heightmap[tx, ty] : 0);
+
LandData.Area = tempArea;
}
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
index 6d26075..6b5b40a 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
@@ -36,7 +36,22 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
{
UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish, UUID founderID);
void UpdateGroup(UUID RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish);
+
+ ///
+ /// Get the group record.
+ ///
+ ///
+ /// The UUID of the user making the request.
+ ///
+ /// The ID of the record to retrieve.
+ /// GroupName may be specified instead, in which case this parameter will be UUID.Zero
+ ///
+ ///
+ /// The name of the group to retrieve.
+ /// GroupID may be specified instead, in which case this parmeter will be null.
+ ///
GroupRecord GetGroupRecord(UUID RequestingAgentID, UUID GroupID, string GroupName);
+
List FindGroups(UUID RequestingAgentID, string search);
List GetGroupMembers(UUID RequestingAgentID, UUID GroupID);
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
index d0c3ea5..1101851 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
@@ -54,13 +54,62 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
private bool m_debugEnabled = false;
- public const GroupPowers m_DefaultEveryonePowers = GroupPowers.AllowSetHome |
- GroupPowers.Accountable |
- GroupPowers.JoinChat |
- GroupPowers.AllowVoiceChat |
- GroupPowers.ReceiveNotices |
- GroupPowers.StartProposal |
- GroupPowers.VoteOnProposal;
+ public const GroupPowers DefaultEveryonePowers
+ = GroupPowers.AllowSetHome
+ | GroupPowers.Accountable
+ | GroupPowers.JoinChat
+ | GroupPowers.AllowVoiceChat
+ | GroupPowers.ReceiveNotices
+ | GroupPowers.StartProposal
+ | GroupPowers.VoteOnProposal;
+
+ // Would this be cleaner as (GroupPowers)ulong.MaxValue?
+ public const GroupPowers DefaultOwnerPowers
+ = GroupPowers.Accountable
+ | GroupPowers.AllowEditLand
+ | GroupPowers.AllowFly
+ | GroupPowers.AllowLandmark
+ | GroupPowers.AllowRez
+ | GroupPowers.AllowSetHome
+ | GroupPowers.AllowVoiceChat
+ | GroupPowers.AssignMember
+ | GroupPowers.AssignMemberLimited
+ | GroupPowers.ChangeActions
+ | GroupPowers.ChangeIdentity
+ | GroupPowers.ChangeMedia
+ | GroupPowers.ChangeOptions
+ | GroupPowers.CreateRole
+ | GroupPowers.DeedObject
+ | GroupPowers.DeleteRole
+ | GroupPowers.Eject
+ | GroupPowers.FindPlaces
+ | GroupPowers.Invite
+ | GroupPowers.JoinChat
+ | GroupPowers.LandChangeIdentity
+ | GroupPowers.LandDeed
+ | GroupPowers.LandDivideJoin
+ | GroupPowers.LandEdit
+ | GroupPowers.LandEjectAndFreeze
+ | GroupPowers.LandGardening
+ | GroupPowers.LandManageAllowed
+ | GroupPowers.LandManageBanned
+ | GroupPowers.LandManagePasses
+ | GroupPowers.LandOptions
+ | GroupPowers.LandRelease
+ | GroupPowers.LandSetSale
+ | GroupPowers.ModerateChat
+ | GroupPowers.ObjectManipulate
+ | GroupPowers.ObjectSetForSale
+ | GroupPowers.ReceiveNotices
+ | GroupPowers.RemoveMember
+ | GroupPowers.ReturnGroupOwned
+ | GroupPowers.ReturnGroupSet
+ | GroupPowers.ReturnNonGroup
+ | GroupPowers.RoleProperties
+ | GroupPowers.SendNotices
+ | GroupPowers.SetLandingPoint
+ | GroupPowers.StartProposal
+ | GroupPowers.VoteOnProposal;
private bool m_connectorEnabled = false;
@@ -219,59 +268,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
param["AllowPublish"] = allowPublish == true ? 1 : 0;
param["MaturePublish"] = maturePublish == true ? 1 : 0;
param["FounderID"] = founderID.ToString();
- param["EveryonePowers"] = ((ulong)m_DefaultEveryonePowers).ToString();
+ param["EveryonePowers"] = ((ulong)DefaultEveryonePowers).ToString();
param["OwnerRoleID"] = OwnerRoleID.ToString();
-
- // Would this be cleaner as (GroupPowers)ulong.MaxValue;
- GroupPowers OwnerPowers = GroupPowers.Accountable
- | GroupPowers.AllowEditLand
- | GroupPowers.AllowFly
- | GroupPowers.AllowLandmark
- | GroupPowers.AllowRez
- | GroupPowers.AllowSetHome
- | GroupPowers.AllowVoiceChat
- | GroupPowers.AssignMember
- | GroupPowers.AssignMemberLimited
- | GroupPowers.ChangeActions
- | GroupPowers.ChangeIdentity
- | GroupPowers.ChangeMedia
- | GroupPowers.ChangeOptions
- | GroupPowers.CreateRole
- | GroupPowers.DeedObject
- | GroupPowers.DeleteRole
- | GroupPowers.Eject
- | GroupPowers.FindPlaces
- | GroupPowers.Invite
- | GroupPowers.JoinChat
- | GroupPowers.LandChangeIdentity
- | GroupPowers.LandDeed
- | GroupPowers.LandDivideJoin
- | GroupPowers.LandEdit
- | GroupPowers.LandEjectAndFreeze
- | GroupPowers.LandGardening
- | GroupPowers.LandManageAllowed
- | GroupPowers.LandManageBanned
- | GroupPowers.LandManagePasses
- | GroupPowers.LandOptions
- | GroupPowers.LandRelease
- | GroupPowers.LandSetSale
- | GroupPowers.ModerateChat
- | GroupPowers.ObjectManipulate
- | GroupPowers.ObjectSetForSale
- | GroupPowers.ReceiveNotices
- | GroupPowers.RemoveMember
- | GroupPowers.ReturnGroupOwned
- | GroupPowers.ReturnGroupSet
- | GroupPowers.ReturnNonGroup
- | GroupPowers.RoleProperties
- | GroupPowers.SendNotices
- | GroupPowers.SetLandingPoint
- | GroupPowers.StartProposal
- | GroupPowers.VoteOnProposal;
- param["OwnersPowers"] = ((ulong)OwnerPowers).ToString();
-
-
-
+ param["OwnersPowers"] = ((ulong)DefaultOwnerPowers).ToString();
Hashtable respData = XmlRpcCall(requestingAgentID, "groups.createGroup", param);
@@ -612,8 +611,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
}
return Roles;
-
-
}
public List GetGroupRoles(UUID requestingAgentID, UUID GroupID)
@@ -676,7 +673,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
}
return members;
-
}
public List GetGroupRoleMembers(UUID requestingAgentID, UUID GroupID)
@@ -727,9 +723,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
values.Add(data);
}
}
- return values;
+ return values;
}
+
public GroupNoticeInfo GetGroupNotice(UUID requestingAgentID, UUID noticeID)
{
Hashtable param = new Hashtable();
@@ -737,7 +734,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
Hashtable respData = XmlRpcCall(requestingAgentID, "groups.getGroupNotice", param);
-
if (respData.Contains("error"))
{
return null;
@@ -761,6 +757,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
return data;
}
+
public void AddGroupNotice(UUID requestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket)
{
string binBucket = OpenMetaverse.Utils.BytesToHexString(binaryBucket, "");
@@ -777,8 +774,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
XmlRpcCall(requestingAgentID, "groups.addGroupNotice", param);
}
-
-
#endregion
#region GroupSessionTracking
--
cgit v1.1
From e9be85442f31d0a8655df8c8f640b9a502ad8774 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 02:57:43 +0000
Subject: In ArchiverTests, use the local instantiated SceneManager rather than
potentially cross-contaminating tests by relying on the static
SceneManager.Instance
---
.../World/Archiver/Tests/ArchiverTests.cs | 27 ++++++----------------
1 file changed, 7 insertions(+), 20 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 7cc3519..eec1cec 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -72,9 +72,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
{
base.SetUp();
- // FIXME: Do something about this - relying on statics in unit tests causes trouble sooner or later
- new SceneManager();
-
m_archiverModule = new ArchiverModule();
m_serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule();
@@ -518,8 +515,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule();
- m_sceneHelpers = new SceneHelpers();
- TestScene scene2 = m_sceneHelpers.SetupScene();
+ SceneHelpers m_sceneHelpers2 = new SceneHelpers();
+ TestScene scene2 = m_sceneHelpers2.SetupScene();
SceneHelpers.SetupSceneModules(scene2, archiverModule, serialiserModule, terrainModule);
// Make sure there's a valid owner for the owner we saved (this should have been wiped if the code is
@@ -552,7 +549,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
public void TestLoadOarDeededLand()
{
TestHelpers.InMethod();
- TestHelpers.EnableLogging();
+// TestHelpers.EnableLogging();
UUID landID = TestHelpers.ParseTail(0x10);
@@ -581,17 +578,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
new ArchiveWriteRequest(m_scene, (Stream)null, Guid.Empty).CreateControlFile(new ArchiveScenesGroup()));
LandObject lo = new LandObject(groupID, true, null);
-
- // FIXME: We set directly rather than call SetLandBitmap in order not to do an AABB value update, which
- // requests the terrain heightmap from an active scene. This is confusing and not a long-term solution.
- //lo.LandBitmap = lo.BasicFullRegionLandBitmap();
lo.SetLandBitmap(lo.BasicFullRegionLandBitmap());
-
- // FIXME: We have to make a separate call to update the LandData's copy of the land bitmap, even though this is
- // identical to the LandObject copy. This should be changed so there's only one copy of the data if at all
- // possible
- //lo.UpdateLandBitmapByteArray();
-
LandData ld = lo.LandData;
ld.GlobalID = landID;
@@ -944,7 +931,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
}
ArchiveScenesGroup scenesGroup = new ArchiveScenesGroup();
- SceneManager.Instance.ForEachScene(delegate(Scene scene)
+ m_sceneHelpers.SceneManager.ForEachScene(delegate(Scene scene)
{
scenesGroup.AddScene(scene);
});
@@ -1002,13 +989,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
// Delete the current objects, to test that they're loaded from the OAR and didn't
// just remain in the scene.
- SceneManager.Instance.ForEachScene(delegate(Scene scene)
+ m_sceneHelpers.SceneManager.ForEachScene(delegate(Scene scene)
{
scene.DeleteAllSceneObjects();
});
// Create a "hole", to test that that the corresponding region isn't loaded from the OAR
- SceneManager.Instance.CloseScene(SceneManager.Instance.Scenes[1]);
+ m_sceneHelpers.SceneManager.CloseScene(SceneManager.Instance.Scenes[1]);
// Check thay the OAR file contains the expected data
@@ -1023,7 +1010,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Assert.That(m_lastErrorMessage, Is.Null);
- Assert.AreEqual(3, SceneManager.Instance.Scenes.Count);
+ Assert.AreEqual(3, m_sceneHelpers.SceneManager.Scenes.Count);
TestLoadedRegion(part1, soundItemName, soundData);
}
--
cgit v1.1
From 22d4c52ffc374e167cb674e0e20815615d8a6927 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 03:15:24 +0000
Subject: Consistenly make NUnit test cases inherit from OpenSimTestCase which
automatically turns off any logging enabled between tests
---
.../Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs | 2 +-
OpenSim/Region/CoreModules/Asset/Tests/FlotsamAssetCacheTests.cs | 2 +-
.../CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs | 2 +-
OpenSim/Region/CoreModules/Avatar/Friends/Tests/FriendModuleTests.cs | 2 +-
.../Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs | 2 +-
.../ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs | 3 +--
OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs | 2 +-
OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs | 2 +-
OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs | 2 +-
OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs | 3 ++-
OpenSim/Region/Framework/Scenes/Tests/BorderTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneManagerTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectResizeTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneObjectStatusTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAnimationTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAutopilotTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/ScenePresenceSitTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs | 2 +-
OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs | 2 +-
.../OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs | 2 +-
OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs | 2 +-
OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs | 3 ++-
.../Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs | 2 +-
OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs | 2 +-
44 files changed, 46 insertions(+), 45 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
index d604cf6..ed8ec16 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
@@ -44,7 +44,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.ClientStack.Linden.Tests
{
[TestFixture]
- public class EventQueueTests
+ public class EventQueueTests : OpenSimTestCase
{
private TestScene m_scene;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
index 5fcf376..7d9f581 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
@@ -43,7 +43,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.ClientStack.LindenUDP.Tests
{
[TestFixture]
- public class LLImageManagerTests
+ public class LLImageManagerTests : OpenSimTestCase
{
private AssetBase m_testImageAsset;
private Scene scene;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
index 0f88ec6..5f73a94 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
/// Tests for the LL packet handler
///
[TestFixture]
- public class PacketHandlerTests
+ public class PacketHandlerTests : OpenSimTestCase
{
// [Test]
// ///
diff --git a/OpenSim/Region/CoreModules/Asset/Tests/FlotsamAssetCacheTests.cs b/OpenSim/Region/CoreModules/Asset/Tests/FlotsamAssetCacheTests.cs
index 1c2bfd0..0872cc8 100644
--- a/OpenSim/Region/CoreModules/Asset/Tests/FlotsamAssetCacheTests.cs
+++ b/OpenSim/Region/CoreModules/Asset/Tests/FlotsamAssetCacheTests.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Region.CoreModules.Asset.Tests
/// At the moment we're only test the in-memory part of the FlotsamAssetCache. This is a considerable weakness.
///
[TestFixture]
- public class FlotsamAssetCacheTests
+ public class FlotsamAssetCacheTests : OpenSimTestCase
{
protected TestScene m_scene;
protected FlotsamAssetCache m_cache;
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs
index 848b3bf..1830d41 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs
@@ -39,7 +39,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
{
[TestFixture]
- public class AvatarFactoryModuleTests
+ public class AvatarFactoryModuleTests : OpenSimTestCase
{
///
/// Only partial right now since we don't yet test that it's ended up in the avatar appearance service.
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/Tests/FriendModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Friends/Tests/FriendModuleTests.cs
index 7a197f7..961117e 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/Tests/FriendModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/Tests/FriendModuleTests.cs
@@ -40,7 +40,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.CoreModules.Avatar.Friends.Tests
{
[TestFixture]
- public class FriendsModuleTests
+ public class FriendsModuleTests : OpenSimTestCase
{
private FriendsModule m_fm;
private TestScene m_scene;
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
index 21d8bd7..b768257 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/Tests/InventoryAccessModuleTests.cs
@@ -49,7 +49,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.CoreModules.Framework.InventoryAccess.Tests
{
[TestFixture]
- public class InventoryAccessModuleTests
+ public class InventoryAccessModuleTests : OpenSimTestCase
{
protected TestScene m_scene;
protected BasicInventoryAccessModule m_iam;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs
index 32e47f9..7e365ca 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs
@@ -35,7 +35,6 @@ using NUnit.Framework;
using OpenMetaverse;
using OpenSim.Framework;
using Nini.Config;
-
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence;
using OpenSim.Region.Framework.Scenes;
using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo;
@@ -44,7 +43,7 @@ using OpenSim.Tests.Common;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence.Tests
{
[TestFixture]
- public class PresenceConnectorsTests
+ public class PresenceConnectorsTests : OpenSimTestCase
{
LocalPresenceServicesConnector m_LocalConnector;
private void SetUp()
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
index b5ee4d2..14eca42 100644
--- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
+++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
@@ -41,7 +41,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.CoreModules.World.Land.Tests
{
[TestFixture]
- public class PrimCountModuleTests
+ public class PrimCountModuleTests : OpenSimTestCase
{
protected UUID m_userId = new UUID("00000000-0000-0000-0000-100000000000");
protected UUID m_groupId = new UUID("00000000-0000-0000-8888-000000000000");
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
index 396095a..ba4b041 100644
--- a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
+++ b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
@@ -44,7 +44,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.CoreModules.World.Media.Moap.Tests
{
[TestFixture]
- public class MoapTests
+ public class MoapTests : OpenSimTestCase
{
protected TestScene m_scene;
protected MoapModule m_module;
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
index 7825e3e..bcb8e2f 100644
--- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
+++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
@@ -39,7 +39,7 @@ using OpenSim.Tests.Common;
namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
{
[TestFixture]
- public class SerialiserTests
+ public class SerialiserTests : OpenSimTestCase
{
private string xml = @"
diff --git a/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs b/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
index 3d4f762..be719ea 100644
--- a/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
+++ b/OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
@@ -30,11 +30,12 @@ using NUnit.Framework;
using OpenSim.Framework;
using OpenSim.Region.CoreModules.World.Terrain.PaintBrushes;
using OpenSim.Region.Framework.Scenes;
+using OpenSim.Tests.Common;
namespace OpenSim.Region.CoreModules.World.Terrain.Tests
{
[TestFixture]
- public class TerrainTest
+ public class TerrainTest : OpenSimTestCase
{
[Test]
public void BrushTest()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/BorderTests.cs b/OpenSim/Region/Framework/Scenes/Tests/BorderTests.cs
index 4a21dc9..e209221 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/BorderTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/BorderTests.cs
@@ -37,7 +37,7 @@ using OpenSim.Tests.Common;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class BorderTests
+ public class BorderTests : OpenSimTestCase
{
[Test]
public void TestCross()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
index ea9fc93..766ce83 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
@@ -41,7 +41,7 @@ using OpenSim.Tests.Common;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture, LongRunning]
- public class EntityManagerTests
+ public class EntityManagerTests : OpenSimTestCase
{
static public Random random;
SceneObjectGroup found;
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
index d23c965..575a081 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs
@@ -40,7 +40,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class SceneGraphTests
+ public class SceneGraphTests : OpenSimTestCase
{
[Test]
public void TestDuplicateObject()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneManagerTests.cs
index ab56f4e..2d831fa 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneManagerTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneManagerTests.cs
@@ -41,7 +41,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class SceneManagerTests
+ public class SceneManagerTests : OpenSimTestCase
{
[Test]
public void TestClose()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
index 0076f41..4f15791 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
@@ -48,7 +48,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// TODO: These tests are very incomplete - they only test for a few conditions.
///
[TestFixture]
- public class SceneObjectDeRezTests
+ public class SceneObjectDeRezTests : OpenSimTestCase
{
///
/// Test deleting an object from a scene.
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
index 0e525c9..9378e20 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
@@ -40,7 +40,7 @@ using log4net;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class SceneObjectLinkingTests
+ public class SceneObjectLinkingTests : OpenSimTestCase
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectResizeTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectResizeTests.cs
index 89647d6..c264433 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectResizeTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectResizeTests.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Basic scene object resize tests
///
[TestFixture]
- public class SceneObjectResizeTests
+ public class SceneObjectResizeTests : OpenSimTestCase
{
///
/// Test resizing an object
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs
index d2361f8..a58e735 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs
@@ -40,7 +40,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class SceneObjectScriptTests
+ public class SceneObjectScriptTests : OpenSimTestCase
{
[Test]
public void TestAddScript()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
index 6d255aa..5cf62c2 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Spatial scene object tests (will eventually cover root and child part position, rotation properties, etc.)
///
[TestFixture]
- public class SceneObjectSpatialTests
+ public class SceneObjectSpatialTests : OpenSimTestCase
{
TestScene m_scene;
UUID m_ownerId = TestHelpers.ParseTail(0x1);
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectStatusTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectStatusTests.cs
index 742c769..093cbd2 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectStatusTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectStatusTests.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Basic scene object status tests
///
[TestFixture]
- public class SceneObjectStatusTests
+ public class SceneObjectStatusTests : OpenSimTestCase
{
private TestScene m_scene;
private UUID m_ownerId = TestHelpers.ParseTail(0x1);
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAnimationTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAnimationTests.cs
index 646e5fa..1cd8ae9 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAnimationTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAnimationTests.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Scene presence animation tests
///
[TestFixture]
- public class ScenePresenceAnimationTests
+ public class ScenePresenceAnimationTests : OpenSimTestCase
{
[Test]
public void TestFlyingAnimation()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAutopilotTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAutopilotTests.cs
index 1d1ff88..d80afd3 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAutopilotTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceAutopilotTests.cs
@@ -42,7 +42,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class ScenePresenceAutopilotTests
+ public class ScenePresenceAutopilotTests : OpenSimTestCase
{
private TestScene m_scene;
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceSitTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceSitTests.cs
index 493ab70..acaeb90 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceSitTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceSitTests.cs
@@ -43,7 +43,7 @@ using System.Threading;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class ScenePresenceSitTests
+ public class ScenePresenceSitTests : OpenSimTestCase
{
private TestScene m_scene;
private ScenePresence m_sp;
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
index 37b5184..8dd1f3d 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTeleportTests.cs
@@ -49,7 +49,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Teleport tests in a standalone OpenSim
///
[TestFixture]
- public class ScenePresenceTeleportTests
+ public class ScenePresenceTeleportTests : OpenSimTestCase
{
[TestFixtureSetUp]
public void FixtureInit()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
index ac3da1e..9d8eb0b 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Scene presence tests
///
[TestFixture]
- public class SceneTests
+ public class SceneTests : OpenSimTestCase
{
///
/// Very basic scene update test. Should become more elaborate with time.
diff --git a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
index a51e4e3..0b461f5 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
@@ -50,7 +50,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Tests
{
[TestFixture]
- public class TaskInventoryTests
+ public class TaskInventoryTests : OpenSimTestCase
{
[Test]
public void TestAddTaskInventoryItem()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
index 198e487..dd27294 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
@@ -38,7 +38,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture]
- public class UuidGathererTests
+ public class UuidGathererTests : OpenSimTestCase
{
protected IAssetService m_assetService;
protected UuidGatherer m_uuidGatherer;
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
index ac638f1..c1bdacb 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups.Tests
/// Basic groups module tests
///
[TestFixture]
- public class GroupsModuleTests
+ public class GroupsModuleTests : OpenSimTestCase
{
[Test]
public void TestBasic()
diff --git a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
index 52ed846..a522277 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
@@ -48,7 +48,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.OptionalModules.World.NPC.Tests
{
[TestFixture]
- public class NPCModuleTests
+ public class NPCModuleTests : OpenSimTestCase
{
private TestScene m_scene;
private AvatarFactoryModule m_afMod;
diff --git a/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
index cbc6b95..16404c6 100644
--- a/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
+++ b/OpenSim/Region/Physics/OdePlugin/Tests/ODETestClass.cs
@@ -32,13 +32,14 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Physics.Manager;
using OpenSim.Region.Physics.OdePlugin;
+using OpenSim.Tests.Common;
using log4net;
using System.Reflection;
namespace OpenSim.Region.Physics.OdePlugin.Tests
{
[TestFixture]
- public class ODETestClass
+ public class ODETestClass : OpenSimTestCase
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
index 7763619..77e087c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
/// The generated C# code is compared against the expected C# code.
///
[TestFixture]
- public class CSCodeGeneratorTest
+ public class CSCodeGeneratorTest : OpenSimTestCase
{
[Test]
public void TestDefaultState()
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
index 1fa6954..05a8756 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
/// the LSL source.
///
[TestFixture]
- public class CompilerTest
+ public class CompilerTest : OpenSimTestCase
{
private string m_testDir;
private CSharpCodeProvider m_CSCodeProvider;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
index c73e22f..2c9d9e8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for inventory functions in LSL
///
[TestFixture]
- public class LSL_ApiInventoryTests
+ public class LSL_ApiInventoryTests : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
index 2565ae7..57f19b9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// OpenSim.Region.Framework.Scenes.Tests.SceneObjectLinkingTests.
///
[TestFixture]
- public class LSL_ApiLinkingTests
+ public class LSL_ApiLinkingTests : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
index dd23be8..182b07b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
@@ -46,7 +46,7 @@ using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_ApiListTests
+ public class LSL_ApiListTests : OpenSimTestCase
{
private LSL_Api m_lslApi;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
index 3ed2562..c8c7f82 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLFloat
+ public class LSL_TypesTestLSLFloat : OpenSimTestCase
{
// Used for testing equality of two floats.
private double _lowPrecisionTolerance = 0.000001;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
index 8d1169a..c664108 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLInteger
+ public class LSL_TypesTestLSLInteger : OpenSimTestCase
{
private Dictionary m_doubleIntSet;
private Dictionary m_stringIntSet;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
index c4ca1a8..8550f2d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLString
+ public class LSL_TypesTestLSLString : OpenSimTestCase
{
private Dictionary m_doubleStringSet;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
index b81225f..71b88bc 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests the LSL_Types.list class.
///
[TestFixture]
- public class LSL_TypesTestList
+ public class LSL_TypesTestList : OpenSimTestCase
{
///
/// Tests concatenating a string to a list.
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
index ebf8001..0c838af 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for Vector3
///
[TestFixture]
- public class LSL_TypesTestVector3
+ public class LSL_TypesTestVector3 : OpenSimTestCase
{
[Test]
public void TestDotProduct()
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
index c401794..213f33f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for OSSL_Api
///
[TestFixture]
- public class OSSL_ApiAppearanceTest
+ public class OSSL_ApiAppearanceTest : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
index f331658..5abfe9a 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
/// XEngine tests.
///
[TestFixture]
- public class XEngineTest
+ public class XEngineTest : OpenSimTestCase
{
private TestScene m_scene;
private XEngine m_xEngine;
--
cgit v1.1
From a4ce63d0cd5dacdd33c6563bbc1af29ef5d36755 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 03:38:15 +0000
Subject: Fix regression TestDeleteSceneObjectAsyncToUserInventory by adding a
BasicInventoryAccessModule() and re-enable in test suite.
---
.../Framework/Scenes/Tests/SceneObjectBasicTests.cs | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
index 5b334c6..373094b 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
@@ -29,10 +29,12 @@ using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading;
+using Nini.Config;
using NUnit.Framework;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
+using OpenSim.Region.CoreModules.Framework.InventoryAccess;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common;
@@ -239,28 +241,31 @@ namespace OpenSim.Region.Framework.Scenes.Tests
///
/// Test deleting an object asynchronously to user inventory.
///
-// [Test]
+ [Test]
public void TestDeleteSceneObjectAsyncToUserInventory()
{
TestHelpers.InMethod();
- TestHelpers.EnableLogging();
+// TestHelpers.EnableLogging();
UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
string myObjectName = "Fred";
TestScene scene = new SceneHelpers().SetupScene();
+ IConfigSource configSource = new IniConfigSource();
+ IConfig config = configSource.AddConfig("Modules");
+ config.Set("InventoryAccessModule", "BasicInventoryAccessModule");
+ SceneHelpers.SetupSceneModules(
+ scene, configSource, new object[] { new BasicInventoryAccessModule() });
+
+ SceneHelpers.SetupSceneModules(scene, new object[] { });
+
// Turn off the timer on the async sog deleter - we'll crank it by hand for this test.
AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter;
sogd.Enabled = false;
SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, myObjectName, agentId);
-// Assert.That(
-// scene.CommsManager.UserAdminService.AddUser(
-// "Bob", "Hoskins", "test", "test@test.com", 1000, 1000, agentId),
-// Is.EqualTo(agentId));
-
UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, agentId);
InventoryFolderBase folder1
= UserInventoryHelpers.CreateInventoryFolder(scene.InventoryService, ua.PrincipalID, "folder1");
--
cgit v1.1
From 02db8b9adbfd69d117bc54288473f5240de46918 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 03:49:23 +0000
Subject: Combine TestDeleteSceneObjectAsync() with TestDeRezSceneObject() as
they are functionally identical.
Move TestDeleteSceneObjectAsync() and TestDeleteSceneObjectAsyncToUserInventory() from SceneObjectBasicTests -> SceneObjectDeRezTests
---
.../Scenes/Tests/SceneObjectBasicTests.cs | 104 +--------------------
.../Scenes/Tests/SceneObjectDeRezTests.cs | 81 ++++++++++++++--
.../Scenes/Tests/SceneObjectSpatialTests.cs | 4 +-
3 files changed, 83 insertions(+), 106 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
index 373094b..a07d64c 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs
@@ -34,7 +34,6 @@ using NUnit.Framework;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
-using OpenSim.Region.CoreModules.Framework.InventoryAccess;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common;
@@ -184,6 +183,10 @@ namespace OpenSim.Region.Framework.Scenes.Tests
///
/// Test deleting an object from a scene.
///
+ ///
+ /// This is the most basic form of delete. For all more sophisticated forms of derez (done asynchrnously
+ /// and where object can be taken to user inventory, etc.), see SceneObjectDeRezTests.
+ ///
[Test]
public void TestDeleteSceneObject()
{
@@ -203,103 +206,6 @@ namespace OpenSim.Region.Framework.Scenes.Tests
}
///
- /// Test deleting an object asynchronously
- ///
- [Test]
- public void TestDeleteSceneObjectAsync()
- {
- TestHelpers.InMethod();
- //log4net.Config.XmlConfigurator.Configure();
-
- UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
-
- TestScene scene = new SceneHelpers().SetupScene();
-
- // Turn off the timer on the async sog deleter - we'll crank it by hand for this test.
- AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter;
- sogd.Enabled = false;
-
- SceneObjectGroup so = SceneHelpers.AddSceneObject(scene);
-
- IClientAPI client = SceneHelpers.AddScenePresence(scene, agentId).ControllingClient;
- scene.DeRezObjects(client, new System.Collections.Generic.List() { so.LocalId }, UUID.Zero, DeRezAction.Delete, UUID.Zero);
-
- SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId);
-
- Assert.That(retrievedPart, Is.Not.Null);
-
- Assert.That(so.IsDeleted, Is.False);
-
- sogd.InventoryDeQueueAndDelete();
-
- Assert.That(so.IsDeleted, Is.True);
-
- SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId);
- Assert.That(retrievedPart2, Is.Null);
- }
-
- ///
- /// Test deleting an object asynchronously to user inventory.
- ///
- [Test]
- public void TestDeleteSceneObjectAsyncToUserInventory()
- {
- TestHelpers.InMethod();
-// TestHelpers.EnableLogging();
-
- UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
- string myObjectName = "Fred";
-
- TestScene scene = new SceneHelpers().SetupScene();
-
- IConfigSource configSource = new IniConfigSource();
- IConfig config = configSource.AddConfig("Modules");
- config.Set("InventoryAccessModule", "BasicInventoryAccessModule");
- SceneHelpers.SetupSceneModules(
- scene, configSource, new object[] { new BasicInventoryAccessModule() });
-
- SceneHelpers.SetupSceneModules(scene, new object[] { });
-
- // Turn off the timer on the async sog deleter - we'll crank it by hand for this test.
- AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter;
- sogd.Enabled = false;
-
- SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, myObjectName, agentId);
-
- UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, agentId);
- InventoryFolderBase folder1
- = UserInventoryHelpers.CreateInventoryFolder(scene.InventoryService, ua.PrincipalID, "folder1");
-
- IClientAPI client = SceneHelpers.AddScenePresence(scene, agentId).ControllingClient;
- scene.DeRezObjects(client, new List() { so.LocalId }, UUID.Zero, DeRezAction.Take, folder1.ID);
-
- SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId);
-
- Assert.That(retrievedPart, Is.Not.Null);
- Assert.That(so.IsDeleted, Is.False);
-
- sogd.InventoryDeQueueAndDelete();
-
- Assert.That(so.IsDeleted, Is.True);
-
- SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId);
- Assert.That(retrievedPart2, Is.Null);
-
-// SceneSetupHelpers.DeleteSceneObjectAsync(scene, part, DeRezAction.Take, userInfo.RootFolder.ID, client);
-
- InventoryItemBase retrievedItem
- = UserInventoryHelpers.GetInventoryItem(
- scene.InventoryService, ua.PrincipalID, "folder1/" + myObjectName);
-
- // Check that we now have the taken part in our inventory
- Assert.That(retrievedItem, Is.Not.Null);
-
- // Check that the taken part has actually disappeared
-// SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
-// Assert.That(retrievedPart, Is.Null);
- }
-
- ///
/// Changing a scene object uuid changes the root part uuid. This is a valid operation if the object is not
/// in a scene and is useful if one wants to supply a UUID directly rather than use the one generated by
/// OpenSim.
@@ -334,4 +240,4 @@ namespace OpenSim.Region.Framework.Scenes.Tests
Assert.That(sog.Parts.Length, Is.EqualTo(2));
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
index 4f15791..c1522e7 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
@@ -33,19 +33,21 @@ using NUnit.Framework;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
+using OpenSim.Region.CoreModules.Framework.InventoryAccess;
using OpenSim.Region.CoreModules.World.Permissions;
using OpenSim.Region.Framework.Scenes;
+using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.Framework.Scenes.Tests
{
///
- /// Tests derez of scene objects by users.
+ /// Tests derez of scene objects.
///
///
/// This is at a level above the SceneObjectBasicTests, which act on the scene directly.
- /// TODO: These tests are very incomplete - they only test for a few conditions.
+ /// TODO: These tests are incomplete - need to test more kinds of derez (e.g. return object).
///
[TestFixture]
public class SceneObjectDeRezTests : OpenSimTestCase
@@ -76,14 +78,20 @@ namespace OpenSim.Region.Framework.Scenes.Tests
= new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero);
part.Name = "obj1";
scene.AddNewSceneObject(new SceneObjectGroup(part), false);
+
List localIds = new List();
localIds.Add(part.LocalId);
-
scene.DeRezObjects(client, localIds, UUID.Zero, DeRezAction.Delete, UUID.Zero);
+
+ // Check that object isn't deleted until we crank the sogd handle.
+ SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
+ Assert.That(retrievedPart, Is.Not.Null);
+ Assert.That(retrievedPart.ParentGroup.IsDeleted, Is.False);
+
sogd.InventoryDeQueueAndDelete();
- SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
- Assert.That(retrievedPart, Is.Null);
+ SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(part.LocalId);
+ Assert.That(retrievedPart2, Is.Null);
}
///
@@ -124,6 +132,67 @@ namespace OpenSim.Region.Framework.Scenes.Tests
// Object should still be in the scene.
SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
Assert.That(retrievedPart.UUID, Is.EqualTo(part.UUID));
- }
+ }
+
+ ///
+ /// Test deleting an object asynchronously to user inventory.
+ ///
+ [Test]
+ public void TestDeleteSceneObjectAsyncToUserInventory()
+ {
+ TestHelpers.InMethod();
+// TestHelpers.EnableLogging();
+
+ UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
+ string myObjectName = "Fred";
+
+ TestScene scene = new SceneHelpers().SetupScene();
+
+ IConfigSource configSource = new IniConfigSource();
+ IConfig config = configSource.AddConfig("Modules");
+ config.Set("InventoryAccessModule", "BasicInventoryAccessModule");
+ SceneHelpers.SetupSceneModules(
+ scene, configSource, new object[] { new BasicInventoryAccessModule() });
+
+ SceneHelpers.SetupSceneModules(scene, new object[] { });
+
+ // Turn off the timer on the async sog deleter - we'll crank it by hand for this test.
+ AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter;
+ sogd.Enabled = false;
+
+ SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, myObjectName, agentId);
+
+ UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, agentId);
+ InventoryFolderBase folder1
+ = UserInventoryHelpers.CreateInventoryFolder(scene.InventoryService, ua.PrincipalID, "folder1");
+
+ IClientAPI client = SceneHelpers.AddScenePresence(scene, agentId).ControllingClient;
+ scene.DeRezObjects(client, new List() { so.LocalId }, UUID.Zero, DeRezAction.Take, folder1.ID);
+
+ SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId);
+
+ Assert.That(retrievedPart, Is.Not.Null);
+ Assert.That(so.IsDeleted, Is.False);
+
+ sogd.InventoryDeQueueAndDelete();
+
+ Assert.That(so.IsDeleted, Is.True);
+
+ SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId);
+ Assert.That(retrievedPart2, Is.Null);
+
+// SceneSetupHelpers.DeleteSceneObjectAsync(scene, part, DeRezAction.Take, userInfo.RootFolder.ID, client);
+
+ InventoryItemBase retrievedItem
+ = UserInventoryHelpers.GetInventoryItem(
+ scene.InventoryService, ua.PrincipalID, "folder1/" + myObjectName);
+
+ // Check that we now have the taken part in our inventory
+ Assert.That(retrievedItem, Is.Not.Null);
+
+ // Check that the taken part has actually disappeared
+// SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
+// Assert.That(retrievedPart, Is.Null);
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
index 5cf62c2..abaa1d1 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectSpatialTests.cs
@@ -48,8 +48,10 @@ namespace OpenSim.Region.Framework.Scenes.Tests
UUID m_ownerId = TestHelpers.ParseTail(0x1);
[SetUp]
- public void SetUp()
+ public override void SetUp()
{
+ base.SetUp();
+
m_scene = new SceneHelpers().SetupScene();
}
--
cgit v1.1