From a5ca15c42893681a777d091c737d5c7615af4f48 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 18 Dec 2013 23:35:38 +0000
Subject: Create regression test TestSendAgentGroupDataUpdate() for groups
agent data sending
---
.../Linden/Caps/EventQueue/EventQueueGetModule.cs | 6 +-
.../Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs | 65 +++++++++++++++++++++-
.../Tests/Common/Mock/TestEventQueueGetModule.cs | 3 +-
prebuild.xml | 5 +-
4 files changed, 71 insertions(+), 8 deletions(-)
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index c28ba94..0dbdbaf 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -295,9 +295,9 @@ namespace OpenSim.Region.ClientStack.Linden
{
// Register an event queue for the client
- //m_log.DebugFormat(
- // "[EVENTQUEUE]: OnRegisterCaps: agentID {0} caps {1} region {2}",
- // agentID, caps, m_scene.RegionInfo.RegionName);
+ m_log.DebugFormat(
+ "[EVENTQUEUE]: OnRegisterCaps: agentID {0} caps {1} region {2}",
+ agentID, caps, m_scene.RegionInfo.RegionName);
// Let's instantiate a Queue for this agent right now
TryGetQueue(agentID);
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
index c1bdacb..26d2597 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
@@ -26,13 +26,23 @@
*/
using System;
+using System.Collections;
+using System.Net;
using System.Reflection;
using Nini.Config;
using NUnit.Framework;
using OpenMetaverse;
+using OpenMetaverse.Messages.Linden;
+using OpenMetaverse.Packets;
+using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
+using OpenSim.Framework.Servers;
+using OpenSim.Framework.Servers.HttpServer;
+using OpenSim.Region.ClientStack.Linden;
+using OpenSim.Region.CoreModules.Framework;
using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
@@ -44,11 +54,28 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups.Tests
[TestFixture]
public class GroupsModuleTests : OpenSimTestCase
{
+ [SetUp]
+ public override void SetUp()
+ {
+ base.SetUp();
+
+ uint port = 9999;
+ uint sslPort = 9998;
+
+ // This is an unfortunate bit of clean up we have to do because MainServer manages things through static
+ // variables and the VM is not restarted between tests.
+ MainServer.RemoveHttpServer(port);
+
+ BaseHttpServer server = new BaseHttpServer(port, false, sslPort, "");
+ MainServer.AddHttpServer(server);
+ MainServer.Instance = server;
+ }
+
[Test]
- public void TestBasic()
+ public void TestSendAgentGroupDataUpdate()
{
TestHelpers.InMethod();
-// log4net.Config.XmlConfigurator.Configure();
+// TestHelpers.EnableLogging();
TestScene scene = new SceneHelpers().SetupScene();
IConfigSource configSource = new IniConfigSource();
@@ -56,8 +83,40 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups.Tests
config.Set("Enabled", true);
config.Set("Module", "GroupsModule");
config.Set("DebugEnabled", true);
+
+ GroupsModule gm = new GroupsModule();
+ EventQueueGetModule eqgm = new EventQueueGetModule();
+
+ // We need a capabilities module active so that adding the scene presence creates an event queue in the
+ // EventQueueGetModule
SceneHelpers.SetupSceneModules(
- scene, configSource, new object[] { new MockGroupsServicesConnector() });
+ scene, configSource, gm, new MockGroupsServicesConnector(), new CapabilitiesModule(), eqgm);
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(scene, TestHelpers.ParseStem("1"));
+
+ gm.SendAgentGroupDataUpdate(sp.ControllingClient);
+
+ Hashtable eventsResponse = eqgm.GetEvents(UUID.Zero, sp.UUID);
+
+ Assert.That((int)eventsResponse["int_response_code"], Is.EqualTo((int)HttpStatusCode.OK));
+
+// Console.WriteLine("Response [{0}]", (string)eventsResponse["str_response_string"]);
+
+ OSDMap rawOsd = (OSDMap)OSDParser.DeserializeLLSDXml((string)eventsResponse["str_response_string"]);
+ OSDArray eventsOsd = (OSDArray)rawOsd["events"];
+
+ bool foundUpdate = false;
+ foreach (OSD osd in eventsOsd)
+ {
+ OSDMap eventOsd = (OSDMap)osd;
+
+ if (eventOsd["message"] == "AgentGroupDataUpdate")
+ foundUpdate = true;
+ }
+
+ Assert.That(foundUpdate, Is.True, "Did not find AgentGroupDataUpdate in response");
+
+ // TODO: More checking of more actual event data.
}
}
}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Mock/TestEventQueueGetModule.cs b/OpenSim/Tests/Common/Mock/TestEventQueueGetModule.cs
index 6707019..e666433 100644
--- a/OpenSim/Tests/Common/Mock/TestEventQueueGetModule.cs
+++ b/OpenSim/Tests/Common/Mock/TestEventQueueGetModule.cs
@@ -38,6 +38,7 @@ using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Servers;
+using OpenSim.Region.ClientStack.Linden;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
@@ -164,7 +165,7 @@ namespace OpenSim.Tests.Common
throw new System.NotImplementedException ();
}
- public OSD BuildEvent (string eventName, OSD eventBody)
+ public OSD BuildEvent(string eventName, OSD eventBody)
{
Console.WriteLine("TWO");
throw new System.NotImplementedException ();
diff --git a/prebuild.xml b/prebuild.xml
index f6e0f4b..5b18195 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2839,8 +2839,9 @@
-
+
+
@@ -3200,6 +3201,7 @@
+
@@ -3208,6 +3210,7 @@
+
--
cgit v1.1