aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs31
-rw-r--r--OpenSim/Region/Framework/Scenes/UuidGatherer.cs4
2 files changed, 30 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
index cf2b3b3..52891f4 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs
@@ -26,10 +26,13 @@
26 */ 26 */
27 27
28using System.Collections.Generic; 28using System.Collections.Generic;
29using System.Text;
29using NUnit.Framework; 30using NUnit.Framework;
30using NUnit.Framework.SyntaxHelpers; 31using NUnit.Framework.SyntaxHelpers;
31using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework;
32using OpenSim.Region.Framework.Scenes; 34using OpenSim.Region.Framework.Scenes;
35using OpenSim.Services.Interfaces;
33using OpenSim.Tests.Common; 36using OpenSim.Tests.Common;
34using OpenSim.Tests.Common.Mock; 37using OpenSim.Tests.Common.Mock;
35 38
@@ -38,16 +41,36 @@ namespace OpenSim.Region.Framework.Scenes.Tests
38 [TestFixture] 41 [TestFixture]
39 public class UuidGathererTests 42 public class UuidGathererTests
40 { 43 {
41 protected UuidGatherer m_ug; 44 protected IAssetService m_assetService;
45 protected UuidGatherer m_uuidGatherer;
42 46
43 [SetUp] 47 [SetUp]
44 public void Init() 48 public void Init()
45 { 49 {
46 m_ug = new UuidGatherer(new TestAssetService()); 50 m_assetService = new TestAssetService();
51 m_uuidGatherer = new UuidGatherer(m_assetService);
52 }
53
54 [Test]
55 public void TestCorruptAsset()
56 {
57 TestHelper.InMethod();
58
59 UUID corruptAssetUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
60 AssetBase corruptAsset = new AssetBase(corruptAssetUuid, corruptAssetUuid.ToString(), (sbyte)AssetType.Object);
61 corruptAsset.Data = Encoding.ASCII.GetBytes("CORRUPT ASSET");
62
63 m_assetService.Store(corruptAsset);
64
65 IDictionary<UUID, int> foundAssetUuids = new Dictionary<UUID, int>();
66 m_uuidGatherer.GatherAssetUuids(corruptAssetUuid, AssetType.Object, foundAssetUuids);
67
68 // We count the uuid as gathered even if the asset itself is corrupt.
69 Assert.That(foundAssetUuids.Count, Is.EqualTo(1));
47 } 70 }
48 71
49 /// <summary> 72 /// <summary>
50 /// Test requests made for non-existent assets 73 /// Test requests made for non-existent assets while we're gathering
51 /// </summary> 74 /// </summary>
52 [Test] 75 [Test]
53 public void TestMissingAsset() 76 public void TestMissingAsset()
@@ -57,7 +80,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
57 UUID missingAssetUuid = UUID.Parse("00000000-0000-0000-0000-000000000666"); 80 UUID missingAssetUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
58 IDictionary<UUID, int> foundAssetUuids = new Dictionary<UUID, int>(); 81 IDictionary<UUID, int> foundAssetUuids = new Dictionary<UUID, int>();
59 82
60 m_ug.GatherAssetUuids(missingAssetUuid, AssetType.Object, foundAssetUuids); 83 m_uuidGatherer.GatherAssetUuids(missingAssetUuid, AssetType.Object, foundAssetUuids);
61 84
62 // We count the uuid as gathered even if the asset itself is missing. 85 // We count the uuid as gathered even if the asset itself is missing.
63 Assert.That(foundAssetUuids.Count, Is.EqualTo(1)); 86 Assert.That(foundAssetUuids.Count, Is.EqualTo(1));
diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
index 525a93a..930af81 100644
--- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
+++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
@@ -273,7 +273,9 @@ namespace OpenSim.Region.Framework.Scenes
273 { 273 {
274 string xml = Utils.BytesToString(objectAsset.Data); 274 string xml = Utils.BytesToString(objectAsset.Data);
275 SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml); 275 SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml);
276 GatherAssetUuids(sog, assetUuids); 276
277 if (null != sog)
278 GatherAssetUuids(sog, assetUuids);
277 } 279 }
278 } 280 }
279 } 281 }