aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs110
1 files changed, 101 insertions, 9 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 8ee9194..41bb9dc 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -135,7 +135,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
135 InventoryFolderBase objsFolder 135 InventoryFolderBase objsFolder
136 = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects"); 136 = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects");
137 item1.Folder = objsFolder.ID; 137 item1.Folder = objsFolder.ID;
138 scene.AddInventoryItem(userId, item1); 138 scene.AddInventoryItem(userId, item1);
139 139
140 MemoryStream archiveWriteStream = new MemoryStream(); 140 MemoryStream archiveWriteStream = new MemoryStream();
141 archiverModule.OnInventoryArchiveSaved += SaveCompleted; 141 archiverModule.OnInventoryArchiveSaved += SaveCompleted;
@@ -217,14 +217,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
217 string userItemCreatorLastName = "Lucan"; 217 string userItemCreatorLastName = "Lucan";
218 UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000000666"); 218 UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
219 219
220 string itemName = "b.lsl"; 220 string item1Name = "b.lsl";
221 string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random()); 221 string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1Name, UUID.Random());
222 222
223 MemoryStream archiveWriteStream = new MemoryStream(); 223 MemoryStream archiveWriteStream = new MemoryStream();
224 TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); 224 TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
225 225
226 InventoryItemBase item1 = new InventoryItemBase(); 226 InventoryItemBase item1 = new InventoryItemBase();
227 item1.Name = itemName; 227 item1.Name = item1Name;
228 item1.AssetID = UUID.Random(); 228 item1.AssetID = UUID.Random();
229 item1.GroupID = UUID.Random(); 229 item1.GroupID = UUID.Random();
230 item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName); 230 item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName);
@@ -258,7 +258,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
258 = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); 258 = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
259 259
260 InventoryItemBase foundItem1 260 InventoryItemBase foundItem1
261 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, itemName); 261 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, item1Name);
262 262
263 Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); 263 Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
264 Assert.That( 264 Assert.That(
@@ -276,7 +276,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
276 archiverModule.DearchiveInventory(userFirstName, userLastName, "xA", "meowfood", archiveReadStream); 276 archiverModule.DearchiveInventory(userFirstName, userLastName, "xA", "meowfood", archiveReadStream);
277 277
278 InventoryItemBase foundItem2 278 InventoryItemBase foundItem2
279 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xA/" + itemName); 279 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xA/" + item1Name);
280 Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2"); 280 Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2");
281 281
282 // Now try loading to a more deeply nested folder 282 // Now try loading to a more deeply nested folder
@@ -285,10 +285,102 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
285 archiverModule.DearchiveInventory(userFirstName, userLastName, "xB/xC", "meowfood", archiveReadStream); 285 archiverModule.DearchiveInventory(userFirstName, userLastName, "xB/xC", "meowfood", archiveReadStream);
286 286
287 InventoryItemBase foundItem3 287 InventoryItemBase foundItem3
288 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC/" + itemName); 288 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC/" + item1Name);
289 Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3"); 289 Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3");
290 } 290 }
291 291
292 [Test]
293 public void TestIarV0_1WithEscapedChars()
294 {
295 TestHelper.InMethod();
296 log4net.Config.XmlConfigurator.Configure();
297
298 string itemName = "You & you are a mean man";
299 string userPassword = "meowfood";
300
301 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
302
303 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
304 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
305 CommunicationsManager cm = scene.CommsManager;
306
307 // Create user
308 string userFirstName = "Jock";
309 string userLastName = "Stirrup";
310 UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020");
311
312 lock (this)
313 {
314 UserProfileTestUtils.CreateUserWithInventory(
315 cm, userFirstName, userLastName, userPassword, userId, InventoryReceived);
316 Monitor.Wait(this, 60000);
317 }
318
319 // Create asset
320 SceneObjectGroup object1;
321 SceneObjectPart part1;
322 {
323 string partName = "part name";
324 UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040");
325 PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere();
326 Vector3 groupPosition = new Vector3(10, 20, 30);
327 Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
328 Vector3 offsetPosition = new Vector3(5, 10, 15);
329
330 part1
331 = new SceneObjectPart(
332 ownerId, shape, groupPosition, rotationOffset, offsetPosition);
333 part1.Name = partName;
334
335 object1 = new SceneObjectGroup(part1);
336 scene.AddNewSceneObject(object1, false);
337 }
338
339 UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060");
340 AssetBase asset1 = new AssetBase();
341 asset1.FullID = asset1Id;
342 asset1.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(object1));
343 scene.AssetService.Store(asset1);
344
345 // Create item
346 UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080");
347 InventoryItemBase item1 = new InventoryItemBase();
348 item1.Name = itemName;
349 item1.AssetID = asset1.FullID;
350 item1.ID = item1Id;
351 InventoryFolderBase objsFolder
352 = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects");
353 item1.Folder = objsFolder.ID;
354 scene.AddInventoryItem(userId, item1);
355
356 MemoryStream archiveWriteStream = new MemoryStream();
357 archiverModule.OnInventoryArchiveSaved += SaveCompleted;
358
359 mre.Reset();
360 archiverModule.ArchiveInventory(
361 Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream);
362 mre.WaitOne(60000, false);
363
364 /// LOAD ITEM
365 MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
366
367 archiverModule.DearchiveInventory(userFirstName, userLastName, "Scripts", userPassword, archiveReadStream);
368
369 CachedUserInfo userInfo
370 = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
371
372 InventoryItemBase foundItem1
373 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userId, "Scripts/Objects/" + itemName);
374
375 Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1");
376// Assert.That(
377// foundItem1.CreatorId, Is.EqualTo(userUuid),
378// "Loaded item non-uuid creator doesn't match that of the loading user");
379 Assert.That(
380 foundItem1.Name, Is.EqualTo(itemName),
381 "Loaded item name doesn't match saved name");
382 }
383
292 /// <summary> 384 /// <summary>
293 /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where 385 /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
294 /// embedded creators do not exist in the system 386 /// embedded creators do not exist in the system
@@ -301,7 +393,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
301 { 393 {
302 TestHelper.InMethod(); 394 TestHelper.InMethod();
303 395
304 log4net.Config.XmlConfigurator.Configure(); 396 //log4net.Config.XmlConfigurator.Configure();
305 397
306 string userFirstName = "Charlie"; 398 string userFirstName = "Charlie";
307 string userLastName = "Chan"; 399 string userLastName = "Chan";
@@ -369,7 +461,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
369 { 461 {
370 TestHelper.InMethod(); 462 TestHelper.InMethod();
371 463
372 log4net.Config.XmlConfigurator.Configure(); 464 //log4net.Config.XmlConfigurator.Configure();
373 465
374 string userFirstName = "Dennis"; 466 string userFirstName = "Dennis";
375 string userLastName = "Menace"; 467 string userLastName = "Menace";