diff --git a/OpenSim/Data/Tests/EstateTests.cs b/OpenSim/Data/Tests/EstateTests.cs
index d6eed3dadd..fbf8ba658e 100644
--- a/OpenSim/Data/Tests/EstateTests.cs
+++ b/OpenSim/Data/Tests/EstateTests.cs
@@ -37,11 +37,6 @@ using log4net;
using System.Reflection;
using System.Data.Common;
-#if !NUNIT25
-using NUnit.Framework.SyntaxHelpers;
-#endif
-
-
// DBMS-specific:
using MySql.Data.MySqlClient;
using OpenSim.Data.MySQL;
@@ -52,7 +47,6 @@ using OpenSim.Data.MSSQL;
using Mono.Data.Sqlite;
using OpenSim.Data.SQLite;
-
namespace OpenSim.Data.Tests
{
diff --git a/OpenSim/Data/Tests/InventoryTests.cs b/OpenSim/Data/Tests/InventoryTests.cs
index c22e26c3c9..3205bfa7f3 100644
--- a/OpenSim/Data/Tests/InventoryTests.cs
+++ b/OpenSim/Data/Tests/InventoryTests.cs
@@ -37,10 +37,6 @@ using log4net;
using System.Reflection;
using System.Data.Common;
-#if !NUNIT25
-using NUnit.Framework.SyntaxHelpers;
-#endif
-
// DBMS-specific:
using MySql.Data.MySqlClient;
using OpenSim.Data.MySQL;
diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs
index 3cd9e0be1e..29bf5a3418 100644
--- a/OpenSim/Data/Tests/RegionTests.cs
+++ b/OpenSim/Data/Tests/RegionTests.cs
@@ -40,10 +40,6 @@ using log4net;
using System.Reflection;
using System.Data.Common;
-#if !NUNIT25
-using NUnit.Framework.SyntaxHelpers;
-#endif
-
// DBMS-specific:
using MySql.Data.MySqlClient;
using OpenSim.Data.MySQL;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index 350ad66457..915b59ec29 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
@@ -218,24 +218,35 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public bool AddItem(InventoryItemBase item)
{
- m_log.DebugFormat(
- "[LOCAL INVENTORY SERVICES CONNECTOR]: Adding inventory item {0} to user {1} folder {2}",
- item.Name, item.Owner, item.Folder);
+// m_log.DebugFormat(
+// "[LOCAL INVENTORY SERVICES CONNECTOR]: Adding inventory item {0} to user {1} folder {2}",
+// item.Name, item.Owner, item.Folder);
if (UUID.Zero == item.Folder)
{
InventoryFolderBase f = m_InventoryService.GetFolderForType(item.Owner, (AssetType)item.AssetType);
if (f != null)
{
+// m_log.DebugFormat(
+// "[LOCAL INVENTORY SERVICES CONNECTOR]: Found folder {0} type {1} for item {2}",
+// f.Name, (AssetType)f.Type, item.Name);
+
item.Folder = f.ID;
}
else
{
f = m_InventoryService.GetRootFolder(item.Owner);
if (f != null)
+ {
item.Folder = f.ID;
+ }
else
+ {
+// m_log.WarnFormat(
+// "[LOCAL INVENTORY SERVICES CONNECTOR]: Could not find root folder for {0} when trying to add item {1} with no parent folder specified",
+// item.Owner, item.Name);
return false;
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
index 7ac3bb9f4e..4211fa9b07 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
@@ -240,9 +240,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{
f = m_RemoteConnector.GetRootFolder(item.Owner);
if (f != null)
+ {
item.Folder = f.ID;
+ }
else
+ {
+ m_log.WarnFormat(
+ "[LOCAL INVENTORY SERVICES CONNECTOR]: Could not find root folder for {0} when trying to add item {1} with no parent folder specified",
+ item.Owner, item.Name);
return false;
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 0384224f8e..012732bb9c 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -122,7 +122,7 @@ namespace OpenSim.Region.Framework.Scenes
else
{
m_log.WarnFormat(
- "[AGENT INVENTORY]: Agent {1} could not add item {2} {3}",
+ "[AGENT INVENTORY]: Agent {0} could not add item {1} {2}",
AgentID, item.Name, item.ID);
return;
@@ -2004,7 +2004,7 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient, itemID, RayEnd, RayStart, RayTargetID, BypassRayCast, RayEndIsIntersection,
RezSelected, RemoveItem, fromTaskID, false);
}
-
+
///
/// Rez an object into the scene from a prim's inventory.
///
@@ -2019,95 +2019,79 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectPart sourcePart, TaskInventoryItem item,
Vector3 pos, Quaternion rot, Vector3 vel, int param)
{
- // Rez object
- if (item != null)
+ if (null == item)
+ return null;
+
+ UUID ownerID = item.OwnerID;
+ AssetBase rezAsset = AssetService.Get(item.AssetID.ToString());
+
+ if (null == rezAsset)
+ return null;
+
+ string xmlData = Utils.BytesToString(rezAsset.Data);
+ SceneObjectGroup group = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
+
+ if (!Permissions.CanRezObject(group.Children.Count, ownerID, pos))
+ return null;
+
+ group.ResetIDs();
+
+ SceneObjectPart rootPart = group.GetChildPart(group.UUID);
+
+ // Since renaming the item in the inventory does not affect the name stored
+ // in the serialization, transfer the correct name from the inventory to the
+ // object itself before we rez.
+ rootPart.Name = item.Name;
+ rootPart.Description = item.Description;
+
+ List partList = new List(group.Children.Values);
+
+ group.SetGroup(sourcePart.GroupID, null);
+
+ if ((rootPart.OwnerID != item.OwnerID) || (item.CurrentPermissions & 16) != 0)
{
- UUID ownerID = item.OwnerID;
-
- AssetBase rezAsset = AssetService.Get(item.AssetID.ToString());
-
- if (rezAsset != null)
+ if (Permissions.PropagatePermissions())
{
- string xmlData = Utils.BytesToString(rezAsset.Data);
- SceneObjectGroup group = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
-
- if (!Permissions.CanRezObject(group.Children.Count, ownerID, pos))
- {
- return null;
- }
- group.ResetIDs();
-
- AddNewSceneObject(group, true);
-
- // we set it's position in world.
- group.AbsolutePosition = pos;
-
- SceneObjectPart rootPart = group.GetChildPart(group.UUID);
-
- // Since renaming the item in the inventory does not affect the name stored
- // in the serialization, transfer the correct name from the inventory to the
- // object itself before we rez.
- rootPart.Name = item.Name;
- rootPart.Description = item.Description;
-
- List partList = new List(group.Children.Values);
-
- group.SetGroup(sourcePart.GroupID, null);
-
- if ((rootPart.OwnerID != item.OwnerID) || (item.CurrentPermissions & 16) != 0)
- {
- if (Permissions.PropagatePermissions())
- {
- foreach (SceneObjectPart part in partList)
- {
- part.EveryoneMask = item.EveryonePermissions;
- part.NextOwnerMask = item.NextPermissions;
- }
- group.ApplyNextOwnerPermissions();
- }
- }
-
foreach (SceneObjectPart part in partList)
{
- if ((part.OwnerID != item.OwnerID) || (item.CurrentPermissions & 16) != 0)
- {
- part.LastOwnerID = part.OwnerID;
- part.OwnerID = item.OwnerID;
- part.Inventory.ChangeInventoryOwner(item.OwnerID);
- }
part.EveryoneMask = item.EveryonePermissions;
part.NextOwnerMask = item.NextPermissions;
}
- rootPart.TrimPermissions();
-
- if (group.RootPart.Shape.PCode == (byte)PCode.Prim)
- {
- group.ClearPartAttachmentData();
- }
-
- group.UpdateGroupRotationR(rot);
-
- //group.ApplyPhysics(m_physicalPrim);
- if (group.RootPart.PhysActor != null && group.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero)
- {
- group.RootPart.ApplyImpulse((vel * group.GetMass()), false);
- group.Velocity = vel;
- rootPart.ScheduleFullUpdate();
- }
- group.CreateScriptInstances(param, true, DefaultScriptEngine, 2);
- rootPart.ScheduleFullUpdate();
-
- if (!Permissions.BypassPermissions())
- {
- if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
- sourcePart.Inventory.RemoveInventoryItem(item.ItemID);
- }
- return rootPart.ParentGroup;
+ group.ApplyNextOwnerPermissions();
}
}
- return null;
+ foreach (SceneObjectPart part in partList)
+ {
+ if ((part.OwnerID != item.OwnerID) || (item.CurrentPermissions & 16) != 0)
+ {
+ part.LastOwnerID = part.OwnerID;
+ part.OwnerID = item.OwnerID;
+ part.Inventory.ChangeInventoryOwner(item.OwnerID);
+ }
+
+ part.EveryoneMask = item.EveryonePermissions;
+ part.NextOwnerMask = item.NextPermissions;
+ }
+
+ rootPart.TrimPermissions();
+
+ if (!Permissions.BypassPermissions())
+ {
+ if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
+ sourcePart.Inventory.RemoveInventoryItem(item.ItemID);
+ }
+
+ AddNewSceneObject(group, true, pos, rot, vel);
+
+ // We can only call this after adding the scene object, since the scene object references the scene
+ // to find out if scripts should be activated at all.
+ group.CreateScriptInstances(param, true, DefaultScriptEngine, 2);
+
+ group.ScheduleGroupForFullUpdate();
+
+ return rootPart.ParentGroup;
}
public virtual bool returnObjects(SceneObjectGroup[] returnobjects, UUID AgentId)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index eb5c3cbcf0..520f1a1508 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -42,7 +42,6 @@ using OpenMetaverse.Imaging;
using OpenSim.Framework;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Communications;
-
using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes.Scripting;
@@ -2051,7 +2050,24 @@ namespace OpenSim.Region.Framework.Scenes
public bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates)
{
return m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, sendClientUpdates);
- }
+ }
+
+ ///
+ /// Add a newly created object to the scene.
+ ///
+ ///
+ /// This method does not send updates to the client - callers need to handle this themselves.
+ ///
+ ///
+ /// Position of the object
+ /// Rotation of the object
+ /// Velocity of the object. This parameter only has an effect if the object is physical
+ ///
+ public bool AddNewSceneObject(
+ SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel)
+ {
+ return m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, pos, rot, vel);
+ }
///
/// Delete every object from the scene. This does not include attachments worn by avatars.
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 1268259341..3a0532a78f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -312,6 +312,42 @@ namespace OpenSim.Region.Framework.Scenes
return AddSceneObject(sceneObject, attachToBackup, sendClientUpdates);
}
+
+ ///
+ /// Add a newly created object to the scene.
+ ///
+ ///
+ /// This method does not send updates to the client - callers need to handle this themselves.
+ ///
+ ///
+ /// Position of the object
+ /// Rotation of the object
+ /// Velocity of the object. This parameter only has an effect if the object is physical
+ ///
+ public bool AddNewSceneObject(
+ SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel)
+ {
+ AddNewSceneObject(sceneObject, true, false);
+
+ // we set it's position in world.
+ sceneObject.AbsolutePosition = pos;
+
+ if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim)
+ {
+ sceneObject.ClearPartAttachmentData();
+ }
+
+ sceneObject.UpdateGroupRotationR(rot);
+
+ //group.ApplyPhysics(m_physicalPrim);
+ if (sceneObject.RootPart.PhysActor != null && sceneObject.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero)
+ {
+ sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false);
+ sceneObject.Velocity = vel;
+ }
+
+ return true;
+ }
///
/// Add an object to the scene. This will both update the scene, and send information about the
diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
index fc66c85b84..3e2a2af94b 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
@@ -134,7 +134,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
sop.Text = RandomName();
sop.SitName = RandomName();
sop.TouchName = RandomName();
- sop.ObjectFlags |= (uint)PrimFlags.Phantom;
+ sop.Flags |= PrimFlags.Phantom;
SceneObjectGroup sog = new SceneObjectGroup(sop);
scene.AddNewSceneObject(sog, false);
diff --git a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
new file mode 100644
index 0000000000..da8199ddf4
--- /dev/null
+++ b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using System.Threading;
+using System.Timers;
+using Timer=System.Timers.Timer;
+using Nini.Config;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+using OpenMetaverse;
+using OpenMetaverse.Assets;
+using OpenSim.Framework;
+using OpenSim.Framework.Communications;
+using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver;
+using OpenSim.Region.CoreModules.World.Serialiser;
+using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
+using OpenSim.Services.Interfaces;
+using OpenSim.Tests.Common;
+using OpenSim.Tests.Common.Mock;
+using OpenSim.Tests.Common.Setup;
+
+namespace OpenSim.Region.Framework.Tests
+{
+ [TestFixture]
+ public class TaskInventoryTests
+ {
+ protected UserAccount CreateUser(Scene scene)
+ {
+ string userFirstName = "Jock";
+ string userLastName = "Stirrup";
+ string userPassword = "troll";
+ UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020");
+ return UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword);
+ }
+
+ protected SceneObjectGroup CreateSO1(Scene scene, UUID ownerId)
+ {
+ string part1Name = "part1";
+ UUID part1Id = UUID.Parse("10000000-0000-0000-0000-000000000000");
+ SceneObjectPart part1
+ = new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero)
+ { Name = part1Name, UUID = part1Id };
+ return new SceneObjectGroup(part1);
+ }
+
+ protected TaskInventoryItem CreateSOItem1(Scene scene, SceneObjectPart part)
+ {
+ AssetNotecard nc = new AssetNotecard("Hello World!");
+ UUID ncAssetUuid = new UUID("00000000-0000-0000-1000-000000000000");
+ UUID ncItemUuid = new UUID("00000000-0000-0000-1100-000000000000");
+ AssetBase ncAsset
+ = AssetHelpers.CreateAsset(ncAssetUuid, AssetType.Notecard, nc.AssetData, UUID.Zero);
+ scene.AssetService.Store(ncAsset);
+ TaskInventoryItem ncItem
+ = new TaskInventoryItem
+ { Name = "ncItem", AssetID = ncAssetUuid, ItemID = ncItemUuid,
+ Type = (int)AssetType.Notecard, InvType = (int)InventoryType.Notecard };
+ part.Inventory.AddInventoryItem(ncItem, true);
+
+ return ncItem;
+ }
+
+ ///
+ /// Test MoveTaskInventoryItem where the item has no parent folder assigned.
+ ///
+ /// This should place it in the most suitable user folder.
+ [Test]
+ public void TestMoveTaskInventoryItem()
+ {
+ TestHelper.InMethod();
+// log4net.Config.XmlConfigurator.Configure();
+
+ Scene scene = SceneSetupHelpers.SetupScene("inventory");
+ UserAccount user1 = CreateUser(scene);
+ SceneObjectGroup sog1 = CreateSO1(scene, user1.PrincipalID);
+ SceneObjectPart sop1 = sog1.RootPart;
+ TaskInventoryItem sopItem1 = CreateSOItem1(scene, sop1);
+ InventoryFolderBase folder
+ = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, user1.PrincipalID, "Objects")[0];
+
+ // Perform test
+ scene.MoveTaskInventoryItem(user1.PrincipalID, folder.ID, sop1, sopItem1.ItemID);
+
+ InventoryItemBase ncUserItem
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, user1.PrincipalID, "Objects/ncItem");
+ Assert.That(ncUserItem, Is.Not.Null, "Objects/ncItem was not found");
+ }
+
+ ///
+ /// Test MoveTaskInventoryItem where the item has no parent folder assigned.
+ ///
+ /// This should place it in the most suitable user folder.
+ [Test]
+ public void TestMoveTaskInventoryItemNoParent()
+ {
+ TestHelper.InMethod();
+// log4net.Config.XmlConfigurator.Configure();
+
+ Scene scene = SceneSetupHelpers.SetupScene("inventory");
+ UserAccount user1 = CreateUser(scene);
+ SceneObjectGroup sog1 = CreateSO1(scene, user1.PrincipalID);
+ SceneObjectPart sop1 = sog1.RootPart;
+ TaskInventoryItem sopItem1 = CreateSOItem1(scene, sop1);
+
+ // Perform test
+ scene.MoveTaskInventoryItem(user1.PrincipalID, UUID.Zero, sop1, sopItem1.ItemID);
+
+ InventoryItemBase ncUserItem
+ = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, user1.PrincipalID, "Notecards/ncItem");
+ Assert.That(ncUserItem, Is.Not.Null, "Notecards/ncItem was not found");
+ }
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Services/InventoryService/InventoryService.cs b/OpenSim/Services/InventoryService/InventoryService.cs
index fbcd6634e7..86bca79d6b 100644
--- a/OpenSim/Services/InventoryService/InventoryService.cs
+++ b/OpenSim/Services/InventoryService/InventoryService.cs
@@ -268,15 +268,22 @@ namespace OpenSim.Services.InventoryService
public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
{
+// m_log.DebugFormat("[INVENTORY SERVICE]: Looking for folder type {0} for user {1}", type, userID);
+
InventoryFolderBase root = m_Database.getUserRootFolder(userID);
if (root != null)
{
List folders = RequestSubFolders(root.ID);
foreach (InventoryFolderBase folder in folders)
- {
+ {
if (folder.Type == (short)type)
+ {
+// m_log.DebugFormat(
+// "[INVENTORY SERVICE]: Found folder {0} type {1}", folder.Name, (AssetType)folder.Type);
+
return folder;
+ }
}
}
diff --git a/OpenSim/Tests/Common/Mock/MockInventoryService.cs b/OpenSim/Tests/Common/Mock/MockInventoryService.cs
index 1ea4bc1059..4ac1078795 100644
--- a/OpenSim/Tests/Common/Mock/MockInventoryService.cs
+++ b/OpenSim/Tests/Common/Mock/MockInventoryService.cs
@@ -37,13 +37,9 @@ namespace OpenSim.Tests.Common.Mock
{
public class MockInventoryService : IInventoryService
{
- public MockInventoryService()
- {
- }
+ public MockInventoryService() {}
- public MockInventoryService(IConfigSource config)
- {
- }
+ public MockInventoryService(IConfigSource config) {}
///
///
@@ -140,7 +136,7 @@ namespace OpenSim.Tests.Common.Mock
public bool AddItem(InventoryItemBase item)
{
- return false;
+ return true;
}
public bool UpdateItem(InventoryItemBase item)
@@ -187,4 +183,4 @@ namespace OpenSim.Tests.Common.Mock
return 1;
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
index 7c4f689502..ed0b1a6a9a 100644
--- a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
+++ b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Tests.Common.Mock
///
public class TestInventoryDataPlugin : IInventoryDataPlugin
{
-// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
///
/// Inventory folders
@@ -84,14 +84,19 @@ namespace OpenSim.Tests.Common.Mock
public List getInventoryInFolder(UUID folderID)
{
-// m_log.DebugFormat("[MOCK INV DB]: Getting items in folder {0}", folderID);
+ InventoryFolderBase folder = m_folders[folderID];
+
+ m_log.DebugFormat("[MOCK INV DB]: Getting items in folder {0} {1}", folder.Name, folder.ID);
List items = new List();
foreach (InventoryItemBase item in m_items.Values)
{
if (item.Folder == folderID)
+ {
+ m_log.DebugFormat("[MOCK INV DB]: getInventoryInFolder() adding item {0}", item.Name);
items.Add(item);
+ }
}
return items;
@@ -101,7 +106,7 @@ namespace OpenSim.Tests.Common.Mock
public InventoryFolderBase getUserRootFolder(UUID user)
{
-// m_log.DebugFormat("[MOCK INV DB]: Looking for root folder for {0}", user);
+ m_log.DebugFormat("[MOCK INV DB]: Looking for root folder for {0}", user);
InventoryFolderBase folder = null;
m_rootFolders.TryGetValue(user, out folder);
@@ -111,12 +116,22 @@ namespace OpenSim.Tests.Common.Mock
public List getInventoryFolders(UUID parentID)
{
+ InventoryFolderBase parentFolder = m_folders[parentID];
+
+ m_log.DebugFormat("[MOCK INV DB]: Getting folders in folder {0} {1}", parentFolder.Name, parentFolder.ID);
+
List folders = new List();
foreach (InventoryFolderBase folder in m_folders.Values)
{
if (folder.ParentID == parentID)
+ {
+ m_log.DebugFormat(
+ "[MOCK INV DB]: Found folder {0} {1} in {2} {3}",
+ folder.Name, folder.ID, parentFolder.Name, parentFolder.ID);
+
folders.Add(folder);
+ }
}
return folders;
@@ -137,6 +152,10 @@ namespace OpenSim.Tests.Common.Mock
public void addInventoryFolder(InventoryFolderBase folder)
{
+ m_log.DebugFormat(
+ "[MOCK INV DB]: Adding inventory folder {0} {1} type {2}",
+ folder.Name, folder.ID, (AssetType)folder.Type);
+
m_folders[folder.ID] = folder;
if (folder.ParentID == UUID.Zero)
@@ -166,8 +185,10 @@ namespace OpenSim.Tests.Common.Mock
public void addInventoryItem(InventoryItemBase item)
{
-// m_log.DebugFormat(
-// "[MOCK INV DB]: Adding inventory item {0} {1} in {2}", item.Name, item.ID, item.Folder);
+ InventoryFolderBase folder = m_folders[item.Folder];
+
+ m_log.DebugFormat(
+ "[MOCK INV DB]: Adding inventory item {0} {1} in {2} {3}", item.Name, item.ID, folder.Name, folder.ID);
m_items[item.ID] = item;
}
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
index eaa0d33b4b..d9ded2d0c4 100644
--- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
+++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
@@ -285,10 +285,16 @@ namespace OpenSim.Tests.Common.Setup
config.AddConfig("Modules");
config.AddConfig("InventoryService");
config.Configs["Modules"].Set("InventoryServices", "LocalInventoryServicesConnector");
+
if (real)
+ {
config.Configs["InventoryService"].Set("LocalServiceModule", "OpenSim.Services.InventoryService.dll:InventoryService");
+ }
else
+ {
config.Configs["InventoryService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:MockInventoryService");
+ }
+
config.Configs["InventoryService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
inventoryService.Initialise(config);
inventoryService.AddRegion(testScene);
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example
index 122ba2e5f5..554d00f86b 100644
--- a/bin/Robust.HG.ini.example
+++ b/bin/Robust.HG.ini.example
@@ -100,7 +100,7 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
[UserAccountService]
; for the server connector
LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
- ; Realm = "usersaccounts"
+ ; Realm = "useraccounts"
; These are for creating new accounts by the service
AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"