diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs
new file mode 100644
index 0000000000..bceacda415
--- /dev/null
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs
@@ -0,0 +1,87 @@
+/*
+ * 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 Nini.Config;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+using OpenMetaverse;
+using OpenSim.Framework;
+using OpenSim.Framework.Communications;
+using OpenSim.Region.CoreModules.Avatar.InstantMessage;
+using OpenSim.Region.CoreModules.World.Permissions;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups;
+using OpenSim.Tests.Common;
+using OpenSim.Tests.Common.Mock;
+using OpenSim.Tests.Common.Setup;
+
+namespace OpenSim.Region.Framework.Scenes.Tests
+{
+ [TestFixture]
+ public class SceneObjectUserGroupTests
+ {
+ ///
+ /// Test share with group object functionality
+ ///
+ /// This test is not yet fully implemented
+ [Test]
+ public void TestShareWithGroup()
+ {
+ TestHelper.InMethod();
+ log4net.Config.XmlConfigurator.Configure();
+
+ UUID userId = UUID.Parse("10000000-0000-0000-0000-000000000001");
+
+ TestScene scene = SceneSetupHelpers.SetupScene();
+ IConfigSource configSource = new IniConfigSource();
+
+ IConfig startupConfig = configSource.AddConfig("Startup");
+ startupConfig.Set("serverside_object_permissions", true);
+
+ IConfig groupsConfig = configSource.AddConfig("Groups");
+ groupsConfig.Set("Enabled", true);
+ groupsConfig.Set("Module", "GroupsModule");
+ groupsConfig.Set("DebugEnabled", true);
+
+ SceneSetupHelpers.SetupSceneModules(
+ scene, configSource, new object[]
+ { new PermissionsModule(),
+ new GroupsModule(),
+ new MockGroupsServicesConnector() });
+
+ TestClient client = SceneSetupHelpers.AddRootAgent(scene, userId);
+
+ IGroupsModule groupsModule = scene.RequestModuleInterface();
+
+ groupsModule.CreateGroup(client, "group1", "To boldly go", true, UUID.Zero, 5, true, true, true);
+ }
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index ccf52892dc..4aab87fb3c 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -163,9 +163,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
if (m_msgTransferModule == null)
{
m_groupsEnabled = false;
- m_log.Error("[GROUPS]: Could not get MessageTransferModule");
- Close();
- return;
+ m_log.Warn("[GROUPS]: Could not get MessageTransferModule");
}
}
@@ -1299,7 +1297,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: MsgTo ({0}) is local, delivering directly", localClient.Name);
localClient.SendInstantMessage(msg);
}
- else
+ else if (m_msgTransferModule != null)
{
if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: MsgTo ({0}) is not local, delivering via TransferModule", msgTo);
m_msgTransferModule.SendInstantMessage(msg, delegate(bool success) { if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: Message Sent: {0}", success?"Succeeded":"Failed"); });
diff --git a/OpenSim/Tests/Common/Mock/MockGroupsServicesConnector.cs b/OpenSim/Tests/Common/Mock/MockGroupsServicesConnector.cs
index aa48754328..6fb9df1313 100644
--- a/OpenSim/Tests/Common/Mock/MockGroupsServicesConnector.cs
+++ b/OpenSim/Tests/Common/Mock/MockGroupsServicesConnector.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Tests.Common.Mock
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
public class MockGroupsServicesConnector : ISharedRegionModule, IGroupsServicesConnector
{
-// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public string Name
{
@@ -64,6 +64,7 @@ namespace OpenSim.Tests.Common.Mock
public void AddRegion(Scene scene)
{
+ m_log.DebugFormat("[MOCK GROUPS SERVICES CONNECTOR]: Adding to region {0}", scene.RegionInfo.RegionName);
scene.RegisterModuleInterface(this);
}
@@ -174,7 +175,7 @@ namespace OpenSim.Tests.Common.Mock
public List GetAgentGroupMemberships(UUID requestingAgentID, UUID AgentID)
{
- return null;
+ return new List();
}
public List GetAgentGroupRoles(UUID requestingAgentID, UUID AgentID, UUID GroupID)
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
index 9d7733e465..8b1649635c 100644
--- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
+++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
@@ -424,9 +424,12 @@ namespace OpenSim.Tests.Common.Setup
foreach (IRegionModuleBase module in newModules)
{
module.AddRegion(scene);
- module.RegionLoaded(scene);
scene.AddRegionModule(module.Name, module);
}
+
+ // RegionLoaded is fired after all modules have been appropriately added to all scenes
+ foreach (IRegionModuleBase module in newModules)
+ module.RegionLoaded(scene);
scene.SetModuleInterfaces();
}
diff --git a/prebuild.xml b/prebuild.xml
index b9ed299fc6..e408ccd26f 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -3060,6 +3060,7 @@
+