aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs71
1 files changed, 71 insertions, 0 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
index 71f1098..b5a10af 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs
@@ -187,5 +187,76 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups.Tests
187 187
188 Assert.That(sp2ReceivedMessages.Count, Is.EqualTo(0)); 188 Assert.That(sp2ReceivedMessages.Count, Is.EqualTo(0));
189 } 189 }
190
191 /// <summary>
192 /// Run test with the MessageOnlineUsersOnly flag set.
193 /// </summary>
194 [Test]
195 public void TestSendGroupNoticeOnlineOnly()
196 {
197 TestHelpers.InMethod();
198 // TestHelpers.EnableLogging();
199
200 TestScene scene = new SceneHelpers().SetupScene();
201
202 MessageTransferModule mtm = new MessageTransferModule();
203 GroupsModule gm = new GroupsModule();
204 GroupsMessagingModule gmm = new GroupsMessagingModule();
205
206 IConfigSource configSource = new IniConfigSource();
207
208 {
209 IConfig config = configSource.AddConfig("Messaging");
210 config.Set("MessageTransferModule", mtm.Name);
211 }
212
213 {
214 IConfig config = configSource.AddConfig("Groups");
215 config.Set("Enabled", true);
216 config.Set("Module", gm.Name);
217 config.Set("DebugEnabled", true);
218 config.Set("MessagingModule", gmm.Name);
219 config.Set("MessagingEnabled", true);
220 config.Set("MessageOnlineUsersOnly", true);
221 }
222
223 SceneHelpers.SetupSceneModules(scene, configSource, new MockGroupsServicesConnector(), mtm, gm, gmm);
224
225 UUID userId = TestHelpers.ParseTail(0x1);
226 string subjectText = "newman";
227 string messageText = "Hello";
228 string combinedSubjectMessage = string.Format("{0}|{1}", subjectText, messageText);
229
230 ScenePresence sp = SceneHelpers.AddScenePresence(scene, TestHelpers.ParseTail(0x1));
231 TestClient tc = (TestClient)sp.ControllingClient;
232
233 UUID groupID = gm.CreateGroup(tc, "group1", null, true, UUID.Zero, 0, true, true, true);
234 gm.JoinGroupRequest(tc, groupID);
235
236 // Create a second user who doesn't want to receive notices
237 ScenePresence sp2 = SceneHelpers.AddScenePresence(scene, TestHelpers.ParseTail(0x2));
238 TestClient tc2 = (TestClient)sp2.ControllingClient;
239 gm.JoinGroupRequest(tc2, groupID);
240 gm.SetGroupAcceptNotices(tc2, groupID, false, true);
241
242 List<GridInstantMessage> spReceivedMessages = new List<GridInstantMessage>();
243 tc.OnReceivedInstantMessage += im => spReceivedMessages.Add(im);
244
245 List<GridInstantMessage> sp2ReceivedMessages = new List<GridInstantMessage>();
246 tc2.OnReceivedInstantMessage += im => sp2ReceivedMessages.Add(im);
247
248 GridInstantMessage noticeIm = new GridInstantMessage();
249 noticeIm.fromAgentID = userId.Guid;
250 noticeIm.toAgentID = groupID.Guid;
251 noticeIm.message = combinedSubjectMessage;
252 noticeIm.dialog = (byte)InstantMessageDialog.GroupNotice;
253
254 tc.HandleImprovedInstantMessage(noticeIm);
255
256 Assert.That(spReceivedMessages.Count, Is.EqualTo(1));
257 Assert.That(spReceivedMessages[0].message, Is.EqualTo(combinedSubjectMessage));
258
259 Assert.That(sp2ReceivedMessages.Count, Is.EqualTo(0));
260 }
190 } 261 }
191} \ No newline at end of file 262} \ No newline at end of file