Add test for removing a friendship.
parent
8b5bacc78b
commit
b5a69833f8
|
@ -241,7 +241,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
client.OnInstantMessage += OnInstantMessage;
|
client.OnInstantMessage += OnInstantMessage;
|
||||||
client.OnApproveFriendRequest += OnApproveFriendRequest;
|
client.OnApproveFriendRequest += OnApproveFriendRequest;
|
||||||
client.OnDenyFriendRequest += OnDenyFriendRequest;
|
client.OnDenyFriendRequest += OnDenyFriendRequest;
|
||||||
client.OnTerminateFriendship += OnTerminateFriendship;
|
client.OnTerminateFriendship += (thisClient, agentID, exfriendID) => RemoveFriendship(thisClient, exfriendID);
|
||||||
client.OnGrantUserRights += OnGrantUserRights;
|
client.OnGrantUserRights += OnGrantUserRights;
|
||||||
|
|
||||||
Util.FireAndForget(delegate { FetchFriendslist(client); });
|
Util.FireAndForget(delegate { FetchFriendslist(client); });
|
||||||
|
@ -644,9 +644,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnTerminateFriendship(IClientAPI client, UUID agentID, UUID exfriendID)
|
public void RemoveFriendship(IClientAPI client, UUID exfriendID)
|
||||||
{
|
{
|
||||||
if (!DeleteFriendship(agentID, exfriendID))
|
if (!DeleteFriendship(client.AgentId, exfriendID))
|
||||||
client.SendAlertMessage("Unable to terminate friendship on this sim.");
|
client.SendAlertMessage("Unable to terminate friendship on this sim.");
|
||||||
|
|
||||||
// Update local cache
|
// Update local cache
|
||||||
|
@ -669,7 +669,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||||
if (friendSession != null)
|
if (friendSession != null)
|
||||||
{
|
{
|
||||||
GridRegion region = GridService.GetRegionByUUID(m_Scenes[0].RegionInfo.ScopeID, friendSession.RegionID);
|
GridRegion region = GridService.GetRegionByUUID(m_Scenes[0].RegionInfo.ScopeID, friendSession.RegionID);
|
||||||
m_FriendsSimConnector.FriendshipTerminated(region, agentID, exfriendID);
|
m_FriendsSimConnector.FriendshipTerminated(region, client.AgentId, exfriendID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,12 +71,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends.Tests
|
||||||
|
|
||||||
ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
|
ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
|
||||||
|
|
||||||
Assert.That(((TestClient)sp.ControllingClient).OfflineNotificationsReceived.Count, Is.EqualTo(0));
|
Assert.That(((TestClient)sp.ControllingClient).ReceivedOfflineNotifications.Count, Is.EqualTo(0));
|
||||||
Assert.That(((TestClient)sp.ControllingClient).OnlineNotificationsReceived.Count, Is.EqualTo(0));
|
Assert.That(((TestClient)sp.ControllingClient).ReceivedOnlineNotifications.Count, Is.EqualTo(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestAddFriendWhileOnline()
|
public void TestAddFriendshipWhileOnline()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
// log4net.Config.XmlConfigurator.Configure();
|
// log4net.Config.XmlConfigurator.Configure();
|
||||||
|
@ -91,8 +91,28 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends.Tests
|
||||||
// notification.
|
// notification.
|
||||||
m_fm.AddFriendship(sp.ControllingClient, user2Id);
|
m_fm.AddFriendship(sp.ControllingClient, user2Id);
|
||||||
|
|
||||||
Assert.That(((TestClient)sp.ControllingClient).OfflineNotificationsReceived.Count, Is.EqualTo(0));
|
Assert.That(((TestClient)sp.ControllingClient).ReceivedOfflineNotifications.Count, Is.EqualTo(0));
|
||||||
Assert.That(((TestClient)sp.ControllingClient).OnlineNotificationsReceived.Count, Is.EqualTo(1));
|
Assert.That(((TestClient)sp.ControllingClient).ReceivedOnlineNotifications.Count, Is.EqualTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestRemoveFriendshipWhileOnline()
|
||||||
|
{
|
||||||
|
TestHelpers.InMethod();
|
||||||
|
// log4net.Config.XmlConfigurator.Configure();
|
||||||
|
|
||||||
|
UUID user1Id = TestHelpers.ParseTail(0x1);
|
||||||
|
UUID user2Id = TestHelpers.ParseTail(0x2);
|
||||||
|
|
||||||
|
ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, user1Id);
|
||||||
|
SceneHelpers.AddScenePresence(m_scene, user2Id);
|
||||||
|
|
||||||
|
m_fm.AddFriendship(sp.ControllingClient, user2Id);
|
||||||
|
m_fm.RemoveFriendship(sp.ControllingClient, user2Id);
|
||||||
|
|
||||||
|
TestClient user1Client = sp.ControllingClient as TestClient;
|
||||||
|
Assert.That(user1Client.ReceivedFriendshipTerminations.Count, Is.EqualTo(1));
|
||||||
|
Assert.That(user1Client.ReceivedFriendshipTerminations[0], Is.EqualTo(user2Id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -44,6 +44,17 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <param name="friendID"></param>
|
/// <param name="friendID"></param>
|
||||||
void AddFriendship(IClientAPI client, UUID friendID);
|
void AddFriendship(IClientAPI client, UUID friendID);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove a friendship between two users.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Ultimately, it would be more useful to take in a user account here rather than having to have a user
|
||||||
|
/// present in the scene.
|
||||||
|
/// </remarks>
|
||||||
|
/// <param name="client"></param>
|
||||||
|
/// <param name="exFriendID"></param>
|
||||||
|
void RemoveFriendship(IClientAPI client, UUID exFriendID);
|
||||||
|
|
||||||
uint GetFriendPerms(UUID PrincipalID, UUID FriendID);
|
uint GetFriendPerms(UUID PrincipalID, UUID FriendID);
|
||||||
bool SendFriendsOnlineIfNeeded(IClientAPI client);
|
bool SendFriendsOnlineIfNeeded(IClientAPI client);
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,8 +57,9 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
private IScene m_scene;
|
private IScene m_scene;
|
||||||
|
|
||||||
// Properties so that we can get at received data for test purposes
|
// Properties so that we can get at received data for test purposes
|
||||||
public List<UUID> OfflineNotificationsReceived { get; private set; }
|
public List<UUID> ReceivedOfflineNotifications { get; private set; }
|
||||||
public List<UUID> OnlineNotificationsReceived { get; private set; }
|
public List<UUID> ReceivedOnlineNotifications { get; private set; }
|
||||||
|
public List<UUID> ReceivedFriendshipTerminations { get; private set; }
|
||||||
|
|
||||||
// disable warning: public events, part of the public API
|
// disable warning: public events, part of the public API
|
||||||
#pragma warning disable 67
|
#pragma warning disable 67
|
||||||
|
@ -445,8 +446,9 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
m_scene = scene;
|
m_scene = scene;
|
||||||
CapsSeedUrl = agentData.CapsPath;
|
CapsSeedUrl = agentData.CapsPath;
|
||||||
|
|
||||||
OfflineNotificationsReceived = new List<UUID>();
|
ReceivedOfflineNotifications = new List<UUID>();
|
||||||
OnlineNotificationsReceived = new List<UUID>();
|
ReceivedOnlineNotifications = new List<UUID>();
|
||||||
|
ReceivedFriendshipTerminations = new List<UUID>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -834,12 +836,12 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
|
|
||||||
public void SendAgentOffline(UUID[] agentIDs)
|
public void SendAgentOffline(UUID[] agentIDs)
|
||||||
{
|
{
|
||||||
OfflineNotificationsReceived.AddRange(agentIDs);
|
ReceivedOfflineNotifications.AddRange(agentIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAgentOnline(UUID[] agentIDs)
|
public void SendAgentOnline(UUID[] agentIDs)
|
||||||
{
|
{
|
||||||
OnlineNotificationsReceived.AddRange(agentIDs);
|
ReceivedOnlineNotifications.AddRange(agentIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot,
|
public void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot,
|
||||||
|
@ -1109,6 +1111,7 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
|
|
||||||
public void SendTerminateFriend(UUID exFriendID)
|
public void SendTerminateFriend(UUID exFriendID)
|
||||||
{
|
{
|
||||||
|
ReceivedFriendshipTerminations.Add(exFriendID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
|
public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
|
||||||
|
|
Loading…
Reference in New Issue