diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs | 107 |
1 files changed, 69 insertions, 38 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 00bd27a..5130fa5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs | |||
@@ -117,7 +117,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
117 | item1.AssetID = asset1.FullID; | 117 | item1.AssetID = asset1.FullID; |
118 | item1.ID = item1Id; | 118 | item1.ID = item1Id; |
119 | InventoryFolderBase objsFolder | 119 | InventoryFolderBase objsFolder |
120 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects"); | 120 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; |
121 | item1.Folder = objsFolder.ID; | 121 | item1.Folder = objsFolder.ID; |
122 | scene.AddInventoryItem(userId, item1); | 122 | scene.AddInventoryItem(userId, item1); |
123 | 123 | ||
@@ -327,7 +327,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
327 | item1.AssetID = asset1.FullID; | 327 | item1.AssetID = asset1.FullID; |
328 | item1.ID = item1Id; | 328 | item1.ID = item1Id; |
329 | InventoryFolderBase objsFolder | 329 | InventoryFolderBase objsFolder |
330 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects"); | 330 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; |
331 | item1.Folder = objsFolder.ID; | 331 | item1.Folder = objsFolder.ID; |
332 | scene.AddInventoryItem(userId, item1); | 332 | scene.AddInventoryItem(userId, item1); |
333 | 333 | ||
@@ -508,7 +508,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
508 | public void TestNewIarPath() | 508 | public void TestNewIarPath() |
509 | { | 509 | { |
510 | TestHelper.InMethod(); | 510 | TestHelper.InMethod(); |
511 | //log4net.Config.XmlConfigurator.Configure(); | 511 | // log4net.Config.XmlConfigurator.Configure(); |
512 | 512 | ||
513 | Scene scene = SceneSetupHelpers.SetupScene("inventory"); | 513 | Scene scene = SceneSetupHelpers.SetupScene("inventory"); |
514 | UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); | 514 | UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); |
@@ -516,33 +516,60 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
516 | Dictionary <string, InventoryFolderBase> foldersCreated = new Dictionary<string, InventoryFolderBase>(); | 516 | Dictionary <string, InventoryFolderBase> foldersCreated = new Dictionary<string, InventoryFolderBase>(); |
517 | List<InventoryNodeBase> nodesLoaded = new List<InventoryNodeBase>(); | 517 | List<InventoryNodeBase> nodesLoaded = new List<InventoryNodeBase>(); |
518 | 518 | ||
519 | string folder1Name = "a"; | 519 | string folder1Name = "1"; |
520 | string folder2Name = "b"; | 520 | string folder2aName = "2a"; |
521 | string itemName = "c.lsl"; | 521 | string folder2bName = "2b"; |
522 | 522 | ||
523 | string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1Name, UUID.Random()); | 523 | string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1Name, UUID.Random()); |
524 | string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); | 524 | string folder2aArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2aName, UUID.Random()); |
525 | string itemArchiveName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random()); | 525 | string folder2bArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2bName, UUID.Random()); |
526 | 526 | ||
527 | string itemArchivePath | 527 | string iarPath1 = string.Join("", new string[] { folder1ArchiveName, folder2aArchiveName }); |
528 | = string.Format( | 528 | string iarPath2 = string.Join("", new string[] { folder1ArchiveName, folder2bArchiveName }); |
529 | "{0}{1}{2}{3}", | ||
530 | ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemArchiveName); | ||
531 | 529 | ||
532 | new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) | 530 | { |
533 | .ReplicateArchivePathToUserInventory( | 531 | // Test replication of path1 |
534 | itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), | 532 | new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) |
535 | foldersCreated, nodesLoaded); | 533 | .ReplicateArchivePathToUserInventory( |
536 | 534 | iarPath1, scene.InventoryService.GetRootFolder(ua1.PrincipalID), | |
537 | InventoryFolderBase folder1 | 535 | foldersCreated, nodesLoaded); |
538 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, "a"); | 536 | |
539 | Assert.That(folder1, Is.Not.Null, "Could not find folder a"); | 537 | List<InventoryFolderBase> folder1Candidates |
540 | InventoryFolderBase folder2 = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, "b"); | 538 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); |
541 | Assert.That(folder2, Is.Not.Null, "Could not find folder b"); | 539 | Assert.That(folder1Candidates.Count, Is.EqualTo(1)); |
540 | |||
541 | InventoryFolderBase folder1 = folder1Candidates[0]; | ||
542 | List<InventoryFolderBase> folder2aCandidates | ||
543 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); | ||
544 | Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); | ||
545 | } | ||
546 | |||
547 | { | ||
548 | // Test replication of path2 | ||
549 | new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) | ||
550 | .ReplicateArchivePathToUserInventory( | ||
551 | iarPath2, scene.InventoryService.GetRootFolder(ua1.PrincipalID), | ||
552 | foldersCreated, nodesLoaded); | ||
553 | |||
554 | List<InventoryFolderBase> folder1Candidates | ||
555 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); | ||
556 | Assert.That(folder1Candidates.Count, Is.EqualTo(1)); | ||
557 | |||
558 | InventoryFolderBase folder1 = folder1Candidates[0]; | ||
559 | |||
560 | List<InventoryFolderBase> folder2aCandidates | ||
561 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); | ||
562 | Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); | ||
563 | |||
564 | List<InventoryFolderBase> folder2bCandidates | ||
565 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2bName); | ||
566 | Assert.That(folder2bCandidates.Count, Is.EqualTo(1)); | ||
567 | } | ||
542 | } | 568 | } |
543 | 569 | ||
544 | /// <summary> | 570 | /// <summary> |
545 | /// Test replication of a partly existing archive path to the user's inventory. | 571 | /// Test replication of a partly existing archive path to the user's inventory. This should create |
572 | /// a duplicate path without the merge option. | ||
546 | /// </summary> | 573 | /// </summary> |
547 | [Test] | 574 | [Test] |
548 | public void TestPartExistingIarPath() | 575 | public void TestPartExistingIarPath() |
@@ -555,7 +582,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
555 | 582 | ||
556 | string folder1ExistingName = "a"; | 583 | string folder1ExistingName = "a"; |
557 | string folder2Name = "b"; | 584 | string folder2Name = "b"; |
558 | string itemName = "c.lsl"; | ||
559 | 585 | ||
560 | InventoryFolderBase folder1 | 586 | InventoryFolderBase folder1 |
561 | = UserInventoryTestUtils.CreateInventoryFolder( | 587 | = UserInventoryTestUtils.CreateInventoryFolder( |
@@ -563,28 +589,33 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
563 | 589 | ||
564 | string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); | 590 | string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); |
565 | string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); | 591 | string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); |
566 | string itemArchiveName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random()); | ||
567 | 592 | ||
568 | string itemArchivePath | 593 | string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); |
569 | = string.Format( | 594 | |
570 | "{0}{1}{2}{3}", | ||
571 | ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemArchiveName); | ||
572 | |||
573 | new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) | 595 | new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null) |
574 | .ReplicateArchivePathToUserInventory( | 596 | .ReplicateArchivePathToUserInventory( |
575 | itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), | 597 | itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), |
576 | new Dictionary<string, InventoryFolderBase>(), new List<InventoryNodeBase>()); | 598 | new Dictionary<string, InventoryFolderBase>(), new List<InventoryNodeBase>()); |
577 | 599 | ||
578 | InventoryFolderBase folder1Post | 600 | List<InventoryFolderBase> folder1PostCandidates |
579 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); | 601 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); |
580 | Assert.That(folder1Post.ID, Is.EqualTo(folder1.ID)); | 602 | Assert.That(folder1PostCandidates.Count, Is.EqualTo(2)); |
581 | /* | 603 | |
582 | InventoryFolderBase folder2 | 604 | // FIXME: Temporarily, we're going to do something messy to make sure we pick up the created folder. |
605 | InventoryFolderBase folder1Post = null; | ||
606 | foreach (InventoryFolderBase folder in folder1PostCandidates) | ||
607 | { | ||
608 | if (folder.ID != folder1.ID) | ||
609 | { | ||
610 | folder1Post = folder; | ||
611 | break; | ||
612 | } | ||
613 | } | ||
614 | // Assert.That(folder1Post.ID, Is.EqualTo(folder1.ID)); | ||
615 | |||
616 | List<InventoryFolderBase> folder2PostCandidates | ||
583 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1Post, "b"); | 617 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1Post, "b"); |
584 | Assert.That(folder2, Is.Not.Null); | 618 | Assert.That(folder2PostCandidates.Count, Is.EqualTo(1)); |
585 | InventoryItemBase item = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, folder2, itemName); | ||
586 | Assert.That(item, Is.Not.Null); | ||
587 | */ | ||
588 | } | 619 | } |
589 | } | 620 | } |
590 | } \ No newline at end of file | 621 | } \ No newline at end of file |