diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | 236 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/Tests/InventoryTransferModuleTests.cs | 178 |
2 files changed, 230 insertions, 184 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index bba48cc..5d7f25c 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -149,10 +149,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
149 | private void OnInstantMessage(IClientAPI client, GridInstantMessage im) | 149 | private void OnInstantMessage(IClientAPI client, GridInstantMessage im) |
150 | { | 150 | { |
151 | // m_log.DebugFormat( | 151 | // m_log.DebugFormat( |
152 | // "[INVENTORY TRANSFER]: {0} IM type received from client {1}. From={2} ({3}), To={4}", | 152 | // "[INVENTORY TRANSFER]: {0} IM type received from client {1}. From={2} ({3}), To={4}", |
153 | // (InstantMessageDialog)im.dialog, client.Name, | 153 | // (InstantMessageDialog)im.dialog, client.Name, |
154 | // im.fromAgentID, im.fromAgentName, im.toAgentID); | 154 | // im.fromAgentID, im.fromAgentName, im.toAgentID); |
155 | 155 | ||
156 | Scene scene = FindClientScene(client.AgentId); | 156 | Scene scene = FindClientScene(client.AgentId); |
157 | 157 | ||
158 | if (scene == null) // Something seriously wrong here. | 158 | if (scene == null) // Something seriously wrong here. |
@@ -164,31 +164,31 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
164 | 164 | ||
165 | if (im.binaryBucket.Length < 17) // Invalid | 165 | if (im.binaryBucket.Length < 17) // Invalid |
166 | return; | 166 | return; |
167 | 167 | ||
168 | UUID receipientID = new UUID(im.toAgentID); | 168 | UUID recipientID = new UUID(im.toAgentID); |
169 | ScenePresence user = scene.GetScenePresence(receipientID); | 169 | ScenePresence user = scene.GetScenePresence(recipientID); |
170 | UUID copyID; | 170 | UUID copyID; |
171 | 171 | ||
172 | // First byte is the asset type | 172 | // First byte is the asset type |
173 | AssetType assetType = (AssetType)im.binaryBucket[0]; | 173 | AssetType assetType = (AssetType)im.binaryBucket[0]; |
174 | 174 | ||
175 | if (AssetType.Folder == assetType) | 175 | if (AssetType.Folder == assetType) |
176 | { | 176 | { |
177 | UUID folderID = new UUID(im.binaryBucket, 1); | 177 | UUID folderID = new UUID(im.binaryBucket, 1); |
178 | 178 | ||
179 | m_log.DebugFormat( | 179 | m_log.DebugFormat( |
180 | "[INVENTORY TRANSFER]: Inserting original folder {0} into agent {1}'s inventory", | 180 | "[INVENTORY TRANSFER]: Inserting original folder {0} into agent {1}'s inventory", |
181 | folderID, new UUID(im.toAgentID)); | 181 | folderID, new UUID(im.toAgentID)); |
182 | 182 | ||
183 | InventoryFolderBase folderCopy | 183 | InventoryFolderBase folderCopy |
184 | = scene.GiveInventoryFolder(client, receipientID, client.AgentId, folderID, UUID.Zero); | 184 | = scene.GiveInventoryFolder(client, recipientID, client.AgentId, folderID, UUID.Zero); |
185 | 185 | ||
186 | if (folderCopy == null) | 186 | if (folderCopy == null) |
187 | { | 187 | { |
188 | client.SendAgentAlertMessage("Can't find folder to give. Nothing given.", false); | 188 | client.SendAgentAlertMessage("Can't find folder to give. Nothing given.", false); |
189 | return; | 189 | return; |
190 | } | 190 | } |
191 | 191 | ||
192 | // The outgoing binary bucket should contain only the byte which signals an asset folder is | 192 | // The outgoing binary bucket should contain only the byte which signals an asset folder is |
193 | // being copied and the following bytes for the copied folder's UUID | 193 | // being copied and the following bytes for the copied folder's UUID |
194 | copyID = folderCopy.ID; | 194 | copyID = folderCopy.ID; |
@@ -196,7 +196,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
196 | im.binaryBucket = new byte[1 + copyIDBytes.Length]; | 196 | im.binaryBucket = new byte[1 + copyIDBytes.Length]; |
197 | im.binaryBucket[0] = (byte)AssetType.Folder; | 197 | im.binaryBucket[0] = (byte)AssetType.Folder; |
198 | Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length); | 198 | Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length); |
199 | 199 | ||
200 | if (user != null) | 200 | if (user != null) |
201 | user.ControllingClient.SendBulkUpdateInventory(folderCopy); | 201 | user.ControllingClient.SendBulkUpdateInventory(folderCopy); |
202 | 202 | ||
@@ -225,10 +225,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
225 | client.SendAgentAlertMessage(message, false); | 225 | client.SendAgentAlertMessage(message, false); |
226 | return; | 226 | return; |
227 | } | 227 | } |
228 | 228 | ||
229 | copyID = itemCopy.ID; | 229 | copyID = itemCopy.ID; |
230 | Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16); | 230 | Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16); |
231 | 231 | ||
232 | if (user != null) | 232 | if (user != null) |
233 | user.ControllingClient.SendBulkUpdateInventory(itemCopy); | 233 | user.ControllingClient.SendBulkUpdateInventory(itemCopy); |
234 | 234 | ||
@@ -239,6 +239,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
239 | im.imSessionID = copyID.Guid; | 239 | im.imSessionID = copyID.Guid; |
240 | } | 240 | } |
241 | 241 | ||
242 | im.offline = 0; | ||
243 | |||
242 | // Send the IM to the recipient. The item is already | 244 | // Send the IM to the recipient. The item is already |
243 | // in their inventory, so it will not be lost if | 245 | // in their inventory, so it will not be lost if |
244 | // they are offline. | 246 | // they are offline. |
@@ -251,15 +253,47 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
251 | else | 253 | else |
252 | { | 254 | { |
253 | if (m_TransferModule != null) | 255 | if (m_TransferModule != null) |
254 | m_TransferModule.SendInstantMessage(im, delegate(bool success) | 256 | m_TransferModule.SendInstantMessage(im, delegate(bool success) |
255 | { | 257 | { |
256 | if (!success) | 258 | if (!success) |
257 | client.SendAlertMessage("User not online. Inventory has been saved"); | 259 | client.SendAlertMessage("User not online. Inventory has been saved"); |
258 | }); | 260 | }); |
259 | } | 261 | } |
260 | } | 262 | } |
261 | else if (im.dialog == (byte) InstantMessageDialog.InventoryAccepted) | 263 | else if (im.dialog == (byte) InstantMessageDialog.InventoryAccepted || |
264 | im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) | ||
262 | { | 265 | { |
266 | UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip | ||
267 | IInventoryService invService = scene.InventoryService; | ||
268 | |||
269 | // Special case: folder redirect. | ||
270 | // RLV uses this | ||
271 | if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) | ||
272 | { | ||
273 | InventoryFolderBase folder = invService.GetFolder(client.AgentId, inventoryID); | ||
274 | |||
275 | if (folder != null) | ||
276 | { | ||
277 | if (im.binaryBucket.Length >= 16) | ||
278 | { | ||
279 | UUID destFolderID = new UUID(im.binaryBucket, 0); | ||
280 | if (destFolderID != UUID.Zero) | ||
281 | { | ||
282 | InventoryFolderBase destFolder = invService.GetFolder(client.AgentId, destFolderID); | ||
283 | if (destFolder != null) | ||
284 | { | ||
285 | if (folder.ParentID != destFolder.ID) | ||
286 | { | ||
287 | folder.ParentID = destFolder.ID; | ||
288 | invService.MoveFolder(folder); | ||
289 | client.SendBulkUpdateInventory(folder); | ||
290 | } | ||
291 | } | ||
292 | } | ||
293 | } | ||
294 | } | ||
295 | } | ||
296 | |||
263 | ScenePresence user = scene.GetScenePresence(new UUID(im.toAgentID)); | 297 | ScenePresence user = scene.GetScenePresence(new UUID(im.toAgentID)); |
264 | 298 | ||
265 | if (user != null) // Local | 299 | if (user != null) // Local |
@@ -269,33 +303,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
269 | else | 303 | else |
270 | { | 304 | { |
271 | if (m_TransferModule != null) | 305 | if (m_TransferModule != null) |
272 | m_TransferModule.SendInstantMessage(im, delegate(bool success) { | 306 | m_TransferModule.SendInstantMessage(im, delegate(bool success) {}); |
273 | |||
274 | // justincc - FIXME: Comment out for now. This code was added in commit db91044 Mon Aug 22 2011 | ||
275 | // and is apparently supposed to fix bulk inventory updates after accepting items. But | ||
276 | // instead it appears to cause two copies of an accepted folder for the receiving user in | ||
277 | // at least some cases. Folder/item update is already done when the offer is made (see code above) | ||
278 | |||
279 | // // Send BulkUpdateInventory | ||
280 | // IInventoryService invService = scene.InventoryService; | ||
281 | // UUID inventoryEntityID = new UUID(im.imSessionID); // The inventory item /folder, back from it's trip | ||
282 | // | ||
283 | // InventoryFolderBase folder = new InventoryFolderBase(inventoryEntityID, client.AgentId); | ||
284 | // folder = invService.GetFolder(folder); | ||
285 | // | ||
286 | // ScenePresence fromUser = scene.GetScenePresence(new UUID(im.fromAgentID)); | ||
287 | // | ||
288 | // // If the user has left the scene by the time the message comes back then we can't send | ||
289 | // // them the update. | ||
290 | // if (fromUser != null) | ||
291 | // fromUser.ControllingClient.SendBulkUpdateInventory(folder); | ||
292 | }); | ||
293 | } | 307 | } |
294 | } | 308 | } |
295 | 309 | ||
296 | // XXX: This code was placed here to try and accomodate RLV which moves given folders named #RLV/~<name> | 310 | // XXX: This code was placed here to try and accomodate RLV which moves given folders named #RLV/~<name> |
297 | // to the requested folder, which in this case is #RLV. However, it is the viewer that appears to be | 311 | // to the requested folder, which in this case is #RLV. However, it is the viewer that appears to be |
298 | // response from renaming the #RLV/~example folder to ~example. For some reason this is not yet | 312 | // response from renaming the #RLV/~example folder to ~example. For some reason this is not yet |
299 | // happening, possibly because we are not sending the correct inventory update messages with the correct | 313 | // happening, possibly because we are not sending the correct inventory update messages with the correct |
300 | // transaction IDs | 314 | // transaction IDs |
301 | else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) | 315 | else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) |
@@ -310,21 +324,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
310 | if (destinationFolderID != UUID.Zero) | 324 | if (destinationFolderID != UUID.Zero) |
311 | { | 325 | { |
312 | InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId); | 326 | InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId); |
313 | if (destinationFolder == null) | ||
314 | { | ||
315 | m_log.WarnFormat( | ||
316 | "[INVENTORY TRANSFER]: TaskInventoryAccepted message from {0} in {1} specified folder {2} which does not exist", | ||
317 | client.Name, scene.Name, destinationFolderID); | ||
318 | |||
319 | return; | ||
320 | } | ||
321 | |||
322 | IInventoryService invService = scene.InventoryService; | 327 | IInventoryService invService = scene.InventoryService; |
323 | 328 | ||
324 | UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip | 329 | UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip |
325 | 330 | ||
326 | InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); | 331 | InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID); |
327 | item = invService.GetItem(item); | ||
328 | InventoryFolderBase folder = null; | 332 | InventoryFolderBase folder = null; |
329 | UUID? previousParentFolderID = null; | 333 | UUID? previousParentFolderID = null; |
330 | 334 | ||
@@ -338,8 +342,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
338 | } | 342 | } |
339 | else | 343 | else |
340 | { | 344 | { |
341 | folder = new InventoryFolderBase(inventoryID, client.AgentId); | 345 | folder = invService.GetFolder(client.AgentId, inventoryID); |
342 | folder = invService.GetFolder(folder); | ||
343 | 346 | ||
344 | if (folder != null) // It's a folder | 347 | if (folder != null) // It's a folder |
345 | { | 348 | { |
@@ -352,9 +355,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
352 | // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). | 355 | // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). |
353 | if (previousParentFolderID != null) | 356 | if (previousParentFolderID != null) |
354 | { | 357 | { |
355 | InventoryFolderBase previousParentFolder | 358 | InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID); |
356 | = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId); | ||
357 | previousParentFolder = invService.GetFolder(previousParentFolder); | ||
358 | scene.SendInventoryUpdate(client, previousParentFolder, true, true); | 359 | scene.SendInventoryUpdate(client, previousParentFolder, true, true); |
359 | 360 | ||
360 | scene.SendInventoryUpdate(client, destinationFolder, true, true); | 361 | scene.SendInventoryUpdate(client, destinationFolder, true, true); |
@@ -376,11 +377,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
376 | 377 | ||
377 | UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip | 378 | UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip |
378 | 379 | ||
379 | InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); | 380 | InventoryItemBase item = invService.GetItem(client.AgentId, inventoryID); |
380 | item = invService.GetItem(item); | ||
381 | InventoryFolderBase folder = null; | 381 | InventoryFolderBase folder = null; |
382 | UUID? previousParentFolderID = null; | 382 | UUID? previousParentFolderID = null; |
383 | 383 | ||
384 | if (item != null && trashFolder != null) | 384 | if (item != null && trashFolder != null) |
385 | { | 385 | { |
386 | previousParentFolderID = item.Folder; | 386 | previousParentFolderID = item.Folder; |
@@ -394,37 +394,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
394 | } | 394 | } |
395 | else | 395 | else |
396 | { | 396 | { |
397 | folder = new InventoryFolderBase(inventoryID, client.AgentId); | 397 | folder = invService.GetFolder(client.AgentId, inventoryID); |
398 | folder = invService.GetFolder(folder); | ||
399 | 398 | ||
400 | if (folder != null & trashFolder != null) | 399 | if (folder != null & trashFolder != null) |
401 | { | 400 | { |
402 | previousParentFolderID = folder.ParentID; | 401 | previousParentFolderID = folder.ParentID; |
403 | folder.ParentID = trashFolder.ID; | 402 | folder.ParentID = trashFolder.ID; |
404 | invService.MoveFolder(folder); | 403 | invService.MoveFolder(folder); |
404 | client.SendBulkUpdateInventory(folder); | ||
405 | } | 405 | } |
406 | } | 406 | } |
407 | 407 | ||
408 | if ((null == item && null == folder) | null == trashFolder) | 408 | if ((null == item && null == folder) | null == trashFolder) |
409 | { | 409 | { |
410 | string reason = String.Empty; | 410 | string reason = String.Empty; |
411 | 411 | ||
412 | if (trashFolder == null) | 412 | if (trashFolder == null) |
413 | reason += " Trash folder not found."; | 413 | reason += " Trash folder not found."; |
414 | if (item == null) | 414 | if (item == null) |
415 | reason += " Item not found."; | 415 | reason += " Item not found."; |
416 | if (folder == null) | 416 | if (folder == null) |
417 | reason += " Folder not found."; | 417 | reason += " Folder not found."; |
418 | 418 | ||
419 | client.SendAgentAlertMessage("Unable to delete "+ | 419 | client.SendAgentAlertMessage("Unable to delete "+ |
420 | "received inventory" + reason, false); | 420 | "received inventory" + reason, false); |
421 | } | 421 | } |
422 | // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). | 422 | // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). |
423 | else if (previousParentFolderID != null) | 423 | else if (previousParentFolderID != null) |
424 | { | 424 | { |
425 | InventoryFolderBase previousParentFolder | 425 | InventoryFolderBase previousParentFolder = invService.GetFolder(client.AgentId, (UUID)previousParentFolderID); |
426 | = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId); | ||
427 | previousParentFolder = invService.GetFolder(previousParentFolder); | ||
428 | scene.SendInventoryUpdate(client, previousParentFolder, true, true); | 426 | scene.SendInventoryUpdate(client, previousParentFolder, true, true); |
429 | 427 | ||
430 | scene.SendInventoryUpdate(client, trashFolder, true, true); | 428 | scene.SendInventoryUpdate(client, trashFolder, true, true); |
@@ -453,18 +451,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
453 | /// <param name="im"></param> | 451 | /// <param name="im"></param> |
454 | private void OnGridInstantMessage(GridInstantMessage im) | 452 | private void OnGridInstantMessage(GridInstantMessage im) |
455 | { | 453 | { |
456 | // Check if it's a type of message that we should handle | ||
457 | if (!((im.dialog == (byte) InstantMessageDialog.InventoryOffered) | ||
458 | || (im.dialog == (byte) InstantMessageDialog.TaskInventoryOffered) | ||
459 | || (im.dialog == (byte) InstantMessageDialog.InventoryAccepted) | ||
460 | || (im.dialog == (byte) InstantMessageDialog.InventoryDeclined) | ||
461 | || (im.dialog == (byte) InstantMessageDialog.TaskInventoryDeclined))) | ||
462 | return; | ||
463 | |||
464 | m_log.DebugFormat( | ||
465 | "[INVENTORY TRANSFER]: {0} IM type received from grid. From={1} ({2}), To={3}", | ||
466 | (InstantMessageDialog)im.dialog, im.fromAgentID, im.fromAgentName, im.toAgentID); | ||
467 | |||
468 | // Check if this is ours to handle | 454 | // Check if this is ours to handle |
469 | // | 455 | // |
470 | Scene scene = FindClientScene(new UUID(im.toAgentID)); | 456 | Scene scene = FindClientScene(new UUID(im.toAgentID)); |
@@ -475,32 +461,92 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
475 | // Find agent to deliver to | 461 | // Find agent to deliver to |
476 | // | 462 | // |
477 | ScenePresence user = scene.GetScenePresence(new UUID(im.toAgentID)); | 463 | ScenePresence user = scene.GetScenePresence(new UUID(im.toAgentID)); |
464 | if (user == null) | ||
465 | return; | ||
478 | 466 | ||
479 | if (user != null) | 467 | // This requires a little bit of processing because we have to make the |
468 | // new item visible in the recipient's inventory here | ||
469 | // | ||
470 | if (im.dialog == (byte) InstantMessageDialog.InventoryOffered) | ||
480 | { | 471 | { |
481 | user.ControllingClient.SendInstantMessage(im); | 472 | if (im.binaryBucket.Length < 17) // Invalid |
473 | return; | ||
482 | 474 | ||
483 | if (im.dialog == (byte)InstantMessageDialog.InventoryOffered) | 475 | UUID recipientID = new UUID(im.toAgentID); |
476 | |||
477 | // First byte is the asset type | ||
478 | AssetType assetType = (AssetType)im.binaryBucket[0]; | ||
479 | |||
480 | if (AssetType.Folder == assetType) | ||
484 | { | 481 | { |
485 | AssetType assetType = (AssetType)im.binaryBucket[0]; | 482 | UUID folderID = new UUID(im.binaryBucket, 1); |
486 | UUID inventoryID = new UUID(im.binaryBucket, 1); | 483 | |
487 | 484 | InventoryFolderBase folder = | |
488 | IInventoryService invService = scene.InventoryService; | 485 | scene.InventoryService.GetFolder(recipientID, folderID); |
489 | InventoryNodeBase node = null; | 486 | |
490 | if (AssetType.Folder == assetType) | 487 | if (folder != null) |
488 | user.ControllingClient.SendBulkUpdateInventory(folder); | ||
489 | } | ||
490 | else | ||
491 | { | ||
492 | UUID itemID = new UUID(im.binaryBucket, 1); | ||
493 | |||
494 | InventoryItemBase item = | ||
495 | scene.InventoryService.GetItem(recipientID, itemID); | ||
496 | |||
497 | if (item != null) | ||
491 | { | 498 | { |
492 | InventoryFolderBase folder = new InventoryFolderBase(inventoryID, new UUID(im.toAgentID)); | 499 | user.ControllingClient.SendBulkUpdateInventory(item); |
493 | node = invService.GetFolder(folder); | ||
494 | } | 500 | } |
495 | else | 501 | } |
502 | user.ControllingClient.SendInstantMessage(im); | ||
503 | } | ||
504 | if (im.dialog == (byte) InstantMessageDialog.TaskInventoryOffered) | ||
505 | { | ||
506 | if (im.binaryBucket.Length < 1) // Invalid | ||
507 | return; | ||
508 | |||
509 | UUID recipientID = new UUID(im.toAgentID); | ||
510 | |||
511 | // Bucket is the asset type | ||
512 | AssetType assetType = (AssetType)im.binaryBucket[0]; | ||
513 | |||
514 | if (AssetType.Folder == assetType) | ||
515 | { | ||
516 | UUID folderID = new UUID(im.imSessionID); | ||
517 | |||
518 | InventoryFolderBase folder = | ||
519 | scene.InventoryService.GetFolder(recipientID, folderID); | ||
520 | |||
521 | if (folder != null) | ||
522 | user.ControllingClient.SendBulkUpdateInventory(folder); | ||
523 | } | ||
524 | else | ||
525 | { | ||
526 | UUID itemID = new UUID(im.imSessionID); | ||
527 | |||
528 | InventoryItemBase item = | ||
529 | scene.InventoryService.GetItem(recipientID, itemID); | ||
530 | |||
531 | if (item != null) | ||
496 | { | 532 | { |
497 | InventoryItemBase item = new InventoryItemBase(inventoryID, new UUID(im.toAgentID)); | 533 | user.ControllingClient.SendBulkUpdateInventory(item); |
498 | node = invService.GetItem(item); | ||
499 | } | 534 | } |
500 | |||
501 | if (node != null) | ||
502 | user.ControllingClient.SendBulkUpdateInventory(node); | ||
503 | } | 535 | } |
536 | |||
537 | // Fix up binary bucket since this may be 17 chars long here | ||
538 | Byte[] bucket = new Byte[1]; | ||
539 | bucket[0] = im.binaryBucket[0]; | ||
540 | im.binaryBucket = bucket; | ||
541 | |||
542 | user.ControllingClient.SendInstantMessage(im); | ||
543 | } | ||
544 | else if (im.dialog == (byte) InstantMessageDialog.InventoryAccepted || | ||
545 | im.dialog == (byte) InstantMessageDialog.InventoryDeclined || | ||
546 | im.dialog == (byte) InstantMessageDialog.TaskInventoryDeclined || | ||
547 | im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) | ||
548 | { | ||
549 | user.ControllingClient.SendInstantMessage(im); | ||
504 | } | 550 | } |
505 | } | 551 | } |
506 | } | 552 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/Tests/InventoryTransferModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/Tests/InventoryTransferModuleTests.cs index 7ddc396..82ed091 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/Tests/InventoryTransferModuleTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/Tests/InventoryTransferModuleTests.cs | |||
@@ -44,9 +44,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
44 | { | 44 | { |
45 | [TestFixture] | 45 | [TestFixture] |
46 | public class InventoryTransferModuleTests : OpenSimTestCase | 46 | public class InventoryTransferModuleTests : OpenSimTestCase |
47 | { | 47 | { |
48 | protected TestScene m_scene; | 48 | protected TestScene m_scene; |
49 | 49 | ||
50 | [SetUp] | 50 | [SetUp] |
51 | public override void SetUp() | 51 | public override void SetUp() |
52 | { | 52 | { |
@@ -56,9 +56,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
56 | config.AddConfig("Messaging"); | 56 | config.AddConfig("Messaging"); |
57 | config.Configs["Messaging"].Set("InventoryTransferModule", "InventoryTransferModule"); | 57 | config.Configs["Messaging"].Set("InventoryTransferModule", "InventoryTransferModule"); |
58 | 58 | ||
59 | m_scene = new SceneHelpers().SetupScene(); | 59 | m_scene = new SceneHelpers().SetupScene(); |
60 | SceneHelpers.SetupSceneModules(m_scene, config, new InventoryTransferModule()); | 60 | SceneHelpers.SetupSceneModules(m_scene, config, new InventoryTransferModule()); |
61 | } | 61 | } |
62 | 62 | ||
63 | [Test] | 63 | [Test] |
64 | public void TestAcceptGivenItem() | 64 | public void TestAcceptGivenItem() |
@@ -69,9 +69,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
69 | UUID itemId = TestHelpers.ParseTail(0x100); | 69 | UUID itemId = TestHelpers.ParseTail(0x100); |
70 | UUID assetId = TestHelpers.ParseTail(0x200); | 70 | UUID assetId = TestHelpers.ParseTail(0x200); |
71 | 71 | ||
72 | UserAccount ua1 | 72 | UserAccount ua1 |
73 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); | 73 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); |
74 | UserAccount ua2 | 74 | UserAccount ua2 |
75 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); | 75 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); |
76 | 76 | ||
77 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); | 77 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
81 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; | 81 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; |
82 | 82 | ||
83 | // Create the object to test give | 83 | // Create the object to test give |
84 | InventoryItemBase originalItem | 84 | InventoryItemBase originalItem |
85 | = UserInventoryHelpers.CreateInventoryItem( | 85 | = UserInventoryHelpers.CreateInventoryItem( |
86 | m_scene, "givenObj", itemId, assetId, giverSp.UUID, InventoryType.Object); | 86 | m_scene, "givenObj", itemId, assetId, giverSp.UUID, InventoryType.Object); |
87 | 87 | ||
@@ -89,35 +89,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
89 | byte[] itemIdBytes = itemId.GetBytes(); | 89 | byte[] itemIdBytes = itemId.GetBytes(); |
90 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); | 90 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); |
91 | 91 | ||
92 | GridInstantMessage giveIm | 92 | GridInstantMessage giveIm |
93 | = new GridInstantMessage( | 93 | = new GridInstantMessage( |
94 | m_scene, | 94 | m_scene, |
95 | giverSp.UUID, | 95 | giverSp.UUID, |
96 | giverSp.Name, | 96 | giverSp.Name, |
97 | receiverSp.UUID, | 97 | receiverSp.UUID, |
98 | (byte)InstantMessageDialog.InventoryOffered, | 98 | (byte)InstantMessageDialog.InventoryOffered, |
99 | false, | 99 | false, |
100 | "inventory offered msg", | 100 | "inventory offered msg", |
101 | initialSessionId, | 101 | initialSessionId, |
102 | false, | 102 | false, |
103 | Vector3.Zero, | 103 | Vector3.Zero, |
104 | giveImBinaryBucket, | 104 | giveImBinaryBucket, |
105 | true); | 105 | true); |
106 | 106 | ||
107 | giverClient.HandleImprovedInstantMessage(giveIm); | 107 | giverClient.HandleImprovedInstantMessage(giveIm); |
108 | 108 | ||
109 | // These details might not all be correct. | 109 | // These details might not all be correct. |
110 | GridInstantMessage acceptIm | 110 | GridInstantMessage acceptIm |
111 | = new GridInstantMessage( | 111 | = new GridInstantMessage( |
112 | m_scene, | 112 | m_scene, |
113 | receiverSp.UUID, | 113 | receiverSp.UUID, |
114 | receiverSp.Name, | 114 | receiverSp.Name, |
115 | giverSp.UUID, | 115 | giverSp.UUID, |
116 | (byte)InstantMessageDialog.InventoryAccepted, | 116 | (byte)InstantMessageDialog.InventoryAccepted, |
117 | false, | 117 | false, |
118 | "inventory accepted msg", | 118 | "inventory accepted msg", |
119 | initialSessionId, | 119 | initialSessionId, |
120 | false, | 120 | false, |
121 | Vector3.Zero, | 121 | Vector3.Zero, |
122 | null, | 122 | null, |
123 | true); | 123 | true); |
@@ -133,7 +133,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
133 | Assert.That(originalItemAfterGive.ID, Is.EqualTo(originalItem.ID)); | 133 | Assert.That(originalItemAfterGive.ID, Is.EqualTo(originalItem.ID)); |
134 | 134 | ||
135 | // Test for item successfully making it into the receiver's inventory | 135 | // Test for item successfully making it into the receiver's inventory |
136 | InventoryItemBase receivedItem | 136 | InventoryItemBase receivedItem |
137 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, receiverSp.UUID, "Objects/givenObj"); | 137 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, receiverSp.UUID, "Objects/givenObj"); |
138 | 138 | ||
139 | Assert.That(receivedItem, Is.Not.Null); | 139 | Assert.That(receivedItem, Is.Not.Null); |
@@ -148,7 +148,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
148 | Assert.That(originalItemAfterDelete, Is.Not.Null); | 148 | Assert.That(originalItemAfterDelete, Is.Not.Null); |
149 | 149 | ||
150 | // TODO: Test scenario where giver deletes their item first. | 150 | // TODO: Test scenario where giver deletes their item first. |
151 | } | 151 | } |
152 | 152 | ||
153 | /// <summary> | 153 | /// <summary> |
154 | /// Test user rejection of a given item. | 154 | /// Test user rejection of a given item. |
@@ -165,9 +165,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
165 | UUID itemId = TestHelpers.ParseTail(0x100); | 165 | UUID itemId = TestHelpers.ParseTail(0x100); |
166 | UUID assetId = TestHelpers.ParseTail(0x200); | 166 | UUID assetId = TestHelpers.ParseTail(0x200); |
167 | 167 | ||
168 | UserAccount ua1 | 168 | UserAccount ua1 |
169 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); | 169 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); |
170 | UserAccount ua2 | 170 | UserAccount ua2 |
171 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); | 171 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); |
172 | 172 | ||
173 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); | 173 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); |
@@ -177,7 +177,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
177 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; | 177 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; |
178 | 178 | ||
179 | // Create the object to test give | 179 | // Create the object to test give |
180 | InventoryItemBase originalItem | 180 | InventoryItemBase originalItem |
181 | = UserInventoryHelpers.CreateInventoryItem( | 181 | = UserInventoryHelpers.CreateInventoryItem( |
182 | m_scene, "givenObj", itemId, assetId, giverSp.UUID, InventoryType.Object); | 182 | m_scene, "givenObj", itemId, assetId, giverSp.UUID, InventoryType.Object); |
183 | 183 | ||
@@ -188,36 +188,36 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
188 | byte[] itemIdBytes = itemId.GetBytes(); | 188 | byte[] itemIdBytes = itemId.GetBytes(); |
189 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); | 189 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); |
190 | 190 | ||
191 | GridInstantMessage giveIm | 191 | GridInstantMessage giveIm |
192 | = new GridInstantMessage( | 192 | = new GridInstantMessage( |
193 | m_scene, | 193 | m_scene, |
194 | giverSp.UUID, | 194 | giverSp.UUID, |
195 | giverSp.Name, | 195 | giverSp.Name, |
196 | receiverSp.UUID, | 196 | receiverSp.UUID, |
197 | (byte)InstantMessageDialog.InventoryOffered, | 197 | (byte)InstantMessageDialog.InventoryOffered, |
198 | false, | 198 | false, |
199 | "inventory offered msg", | 199 | "inventory offered msg", |
200 | initialSessionId, | 200 | initialSessionId, |
201 | false, | 201 | false, |
202 | Vector3.Zero, | 202 | Vector3.Zero, |
203 | giveImBinaryBucket, | 203 | giveImBinaryBucket, |
204 | true); | 204 | true); |
205 | 205 | ||
206 | giverClient.HandleImprovedInstantMessage(giveIm); | 206 | giverClient.HandleImprovedInstantMessage(giveIm); |
207 | 207 | ||
208 | // These details might not all be correct. | 208 | // These details might not all be correct. |
209 | // Session ID is now the created item ID (!) | 209 | // Session ID is now the created item ID (!) |
210 | GridInstantMessage rejectIm | 210 | GridInstantMessage rejectIm |
211 | = new GridInstantMessage( | 211 | = new GridInstantMessage( |
212 | m_scene, | 212 | m_scene, |
213 | receiverSp.UUID, | 213 | receiverSp.UUID, |
214 | receiverSp.Name, | 214 | receiverSp.Name, |
215 | giverSp.UUID, | 215 | giverSp.UUID, |
216 | (byte)InstantMessageDialog.InventoryDeclined, | 216 | (byte)InstantMessageDialog.InventoryDeclined, |
217 | false, | 217 | false, |
218 | "inventory declined msg", | 218 | "inventory declined msg", |
219 | new UUID(receivedIm.imSessionID), | 219 | new UUID(receivedIm.imSessionID), |
220 | false, | 220 | false, |
221 | Vector3.Zero, | 221 | Vector3.Zero, |
222 | null, | 222 | null, |
223 | true); | 223 | true); |
@@ -233,7 +233,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
233 | Assert.That(originalItemAfterGive.ID, Is.EqualTo(originalItem.ID)); | 233 | Assert.That(originalItemAfterGive.ID, Is.EqualTo(originalItem.ID)); |
234 | 234 | ||
235 | // Test for item successfully making it into the receiver's inventory | 235 | // Test for item successfully making it into the receiver's inventory |
236 | InventoryItemBase receivedItem | 236 | InventoryItemBase receivedItem |
237 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, receiverSp.UUID, "Trash/givenObj"); | 237 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, receiverSp.UUID, "Trash/givenObj"); |
238 | 238 | ||
239 | InventoryFolderBase trashFolder | 239 | InventoryFolderBase trashFolder |
@@ -250,7 +250,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
250 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, giverSp.UUID, "Objects/givenObj"); | 250 | = UserInventoryHelpers.GetInventoryItem(m_scene.InventoryService, giverSp.UUID, "Objects/givenObj"); |
251 | 251 | ||
252 | Assert.That(originalItemAfterDelete, Is.Not.Null); | 252 | Assert.That(originalItemAfterDelete, Is.Not.Null); |
253 | } | 253 | } |
254 | 254 | ||
255 | [Test] | 255 | [Test] |
256 | public void TestAcceptGivenFolder() | 256 | public void TestAcceptGivenFolder() |
@@ -261,9 +261,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
261 | UUID initialSessionId = TestHelpers.ParseTail(0x10); | 261 | UUID initialSessionId = TestHelpers.ParseTail(0x10); |
262 | UUID folderId = TestHelpers.ParseTail(0x100); | 262 | UUID folderId = TestHelpers.ParseTail(0x100); |
263 | 263 | ||
264 | UserAccount ua1 | 264 | UserAccount ua1 |
265 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); | 265 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); |
266 | UserAccount ua2 | 266 | UserAccount ua2 |
267 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); | 267 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); |
268 | 268 | ||
269 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); | 269 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); |
@@ -272,7 +272,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
272 | ScenePresence receiverSp = SceneHelpers.AddScenePresence(m_scene, ua2); | 272 | ScenePresence receiverSp = SceneHelpers.AddScenePresence(m_scene, ua2); |
273 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; | 273 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; |
274 | 274 | ||
275 | InventoryFolderBase originalFolder | 275 | InventoryFolderBase originalFolder |
276 | = UserInventoryHelpers.CreateInventoryFolder( | 276 | = UserInventoryHelpers.CreateInventoryFolder( |
277 | m_scene.InventoryService, giverSp.UUID, folderId, "f1", true); | 277 | m_scene.InventoryService, giverSp.UUID, folderId, "f1", true); |
278 | 278 | ||
@@ -281,35 +281,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
281 | byte[] itemIdBytes = folderId.GetBytes(); | 281 | byte[] itemIdBytes = folderId.GetBytes(); |
282 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); | 282 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); |
283 | 283 | ||
284 | GridInstantMessage giveIm | 284 | GridInstantMessage giveIm |
285 | = new GridInstantMessage( | 285 | = new GridInstantMessage( |
286 | m_scene, | 286 | m_scene, |
287 | giverSp.UUID, | 287 | giverSp.UUID, |
288 | giverSp.Name, | 288 | giverSp.Name, |
289 | receiverSp.UUID, | 289 | receiverSp.UUID, |
290 | (byte)InstantMessageDialog.InventoryOffered, | 290 | (byte)InstantMessageDialog.InventoryOffered, |
291 | false, | 291 | false, |
292 | "inventory offered msg", | 292 | "inventory offered msg", |
293 | initialSessionId, | 293 | initialSessionId, |
294 | false, | 294 | false, |
295 | Vector3.Zero, | 295 | Vector3.Zero, |
296 | giveImBinaryBucket, | 296 | giveImBinaryBucket, |
297 | true); | 297 | true); |
298 | 298 | ||
299 | giverClient.HandleImprovedInstantMessage(giveIm); | 299 | giverClient.HandleImprovedInstantMessage(giveIm); |
300 | 300 | ||
301 | // These details might not all be correct. | 301 | // These details might not all be correct. |
302 | GridInstantMessage acceptIm | 302 | GridInstantMessage acceptIm |
303 | = new GridInstantMessage( | 303 | = new GridInstantMessage( |
304 | m_scene, | 304 | m_scene, |
305 | receiverSp.UUID, | 305 | receiverSp.UUID, |
306 | receiverSp.Name, | 306 | receiverSp.Name, |
307 | giverSp.UUID, | 307 | giverSp.UUID, |
308 | (byte)InstantMessageDialog.InventoryAccepted, | 308 | (byte)InstantMessageDialog.InventoryAccepted, |
309 | false, | 309 | false, |
310 | "inventory accepted msg", | 310 | "inventory accepted msg", |
311 | initialSessionId, | 311 | initialSessionId, |
312 | false, | 312 | false, |
313 | Vector3.Zero, | 313 | Vector3.Zero, |
314 | null, | 314 | null, |
315 | true); | 315 | true); |
@@ -325,7 +325,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
325 | Assert.That(originalFolderAfterGive.ID, Is.EqualTo(originalFolder.ID)); | 325 | Assert.That(originalFolderAfterGive.ID, Is.EqualTo(originalFolder.ID)); |
326 | 326 | ||
327 | // Test for item successfully making it into the receiver's inventory | 327 | // Test for item successfully making it into the receiver's inventory |
328 | InventoryFolderBase receivedFolder | 328 | InventoryFolderBase receivedFolder |
329 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, receiverSp.UUID, "f1"); | 329 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, receiverSp.UUID, "f1"); |
330 | 330 | ||
331 | Assert.That(receivedFolder, Is.Not.Null); | 331 | Assert.That(receivedFolder, Is.Not.Null); |
@@ -340,7 +340,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
340 | Assert.That(originalFolderAfterDelete, Is.Not.Null); | 340 | Assert.That(originalFolderAfterDelete, Is.Not.Null); |
341 | 341 | ||
342 | // TODO: Test scenario where giver deletes their item first. | 342 | // TODO: Test scenario where giver deletes their item first. |
343 | } | 343 | } |
344 | 344 | ||
345 | /// <summary> | 345 | /// <summary> |
346 | /// Test user rejection of a given item. | 346 | /// Test user rejection of a given item. |
@@ -357,9 +357,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
357 | UUID initialSessionId = TestHelpers.ParseTail(0x10); | 357 | UUID initialSessionId = TestHelpers.ParseTail(0x10); |
358 | UUID folderId = TestHelpers.ParseTail(0x100); | 358 | UUID folderId = TestHelpers.ParseTail(0x100); |
359 | 359 | ||
360 | UserAccount ua1 | 360 | UserAccount ua1 |
361 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); | 361 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "One", TestHelpers.ParseTail(0x1), "pw"); |
362 | UserAccount ua2 | 362 | UserAccount ua2 |
363 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); | 363 | = UserAccountHelpers.CreateUserWithInventory(m_scene, "User", "Two", TestHelpers.ParseTail(0x2), "pw"); |
364 | 364 | ||
365 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); | 365 | ScenePresence giverSp = SceneHelpers.AddScenePresence(m_scene, ua1); |
@@ -369,7 +369,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
369 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; | 369 | TestClient receiverClient = (TestClient)receiverSp.ControllingClient; |
370 | 370 | ||
371 | // Create the folder to test give | 371 | // Create the folder to test give |
372 | InventoryFolderBase originalFolder | 372 | InventoryFolderBase originalFolder |
373 | = UserInventoryHelpers.CreateInventoryFolder( | 373 | = UserInventoryHelpers.CreateInventoryFolder( |
374 | m_scene.InventoryService, giverSp.UUID, folderId, "f1", true); | 374 | m_scene.InventoryService, giverSp.UUID, folderId, "f1", true); |
375 | 375 | ||
@@ -381,36 +381,36 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
381 | byte[] itemIdBytes = folderId.GetBytes(); | 381 | byte[] itemIdBytes = folderId.GetBytes(); |
382 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); | 382 | Array.Copy(itemIdBytes, 0, giveImBinaryBucket, 1, itemIdBytes.Length); |
383 | 383 | ||
384 | GridInstantMessage giveIm | 384 | GridInstantMessage giveIm |
385 | = new GridInstantMessage( | 385 | = new GridInstantMessage( |
386 | m_scene, | 386 | m_scene, |
387 | giverSp.UUID, | 387 | giverSp.UUID, |
388 | giverSp.Name, | 388 | giverSp.Name, |
389 | receiverSp.UUID, | 389 | receiverSp.UUID, |
390 | (byte)InstantMessageDialog.InventoryOffered, | 390 | (byte)InstantMessageDialog.InventoryOffered, |
391 | false, | 391 | false, |
392 | "inventory offered msg", | 392 | "inventory offered msg", |
393 | initialSessionId, | 393 | initialSessionId, |
394 | false, | 394 | false, |
395 | Vector3.Zero, | 395 | Vector3.Zero, |
396 | giveImBinaryBucket, | 396 | giveImBinaryBucket, |
397 | true); | 397 | true); |
398 | 398 | ||
399 | giverClient.HandleImprovedInstantMessage(giveIm); | 399 | giverClient.HandleImprovedInstantMessage(giveIm); |
400 | 400 | ||
401 | // These details might not all be correct. | 401 | // These details might not all be correct. |
402 | // Session ID is now the created item ID (!) | 402 | // Session ID is now the created item ID (!) |
403 | GridInstantMessage rejectIm | 403 | GridInstantMessage rejectIm |
404 | = new GridInstantMessage( | 404 | = new GridInstantMessage( |
405 | m_scene, | 405 | m_scene, |
406 | receiverSp.UUID, | 406 | receiverSp.UUID, |
407 | receiverSp.Name, | 407 | receiverSp.Name, |
408 | giverSp.UUID, | 408 | giverSp.UUID, |
409 | (byte)InstantMessageDialog.InventoryDeclined, | 409 | (byte)InstantMessageDialog.InventoryDeclined, |
410 | false, | 410 | false, |
411 | "inventory declined msg", | 411 | "inventory declined msg", |
412 | new UUID(receivedIm.imSessionID), | 412 | new UUID(receivedIm.imSessionID), |
413 | false, | 413 | false, |
414 | Vector3.Zero, | 414 | Vector3.Zero, |
415 | null, | 415 | null, |
416 | true); | 416 | true); |
@@ -426,7 +426,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
426 | Assert.That(originalFolderAfterGive.ID, Is.EqualTo(originalFolder.ID)); | 426 | Assert.That(originalFolderAfterGive.ID, Is.EqualTo(originalFolder.ID)); |
427 | 427 | ||
428 | // Test for folder successfully making it into the receiver's inventory | 428 | // Test for folder successfully making it into the receiver's inventory |
429 | InventoryFolderBase receivedFolder | 429 | InventoryFolderBase receivedFolder |
430 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, receiverSp.UUID, "Trash/f1"); | 430 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, receiverSp.UUID, "Trash/f1"); |
431 | 431 | ||
432 | InventoryFolderBase trashFolder | 432 | InventoryFolderBase trashFolder |
@@ -443,6 +443,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.Tests | |||
443 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, giverSp.UUID, "f1"); | 443 | = UserInventoryHelpers.GetInventoryFolder(m_scene.InventoryService, giverSp.UUID, "f1"); |
444 | 444 | ||
445 | Assert.That(originalFolderAfterDelete, Is.Not.Null); | 445 | Assert.That(originalFolderAfterDelete, Is.Not.Null); |
446 | } | 446 | } |
447 | } | 447 | } |
448 | } \ No newline at end of file | 448 | } \ No newline at end of file |