From 14684116f8ef23892b71ef16759224a536ac27bf Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 28 Feb 2013 20:57:03 +0000
Subject: Add regression tests for llGetNotecardLine()
---
.../Tests/Common/Helpers/TaskInventoryHelpers.cs | 32 ++++++++++++++++++----
OpenSim/Tests/Common/Mock/MockScriptEngine.cs | 31 +++++++++++++--------
OpenSim/Tests/Common/TestHelpers.cs | 21 ++++++++++++++
3 files changed, 66 insertions(+), 18 deletions(-)
(limited to 'OpenSim/Tests/Common')
diff --git a/OpenSim/Tests/Common/Helpers/TaskInventoryHelpers.cs b/OpenSim/Tests/Common/Helpers/TaskInventoryHelpers.cs
index 0a2b30a..bb4b55f 100644
--- a/OpenSim/Tests/Common/Helpers/TaskInventoryHelpers.cs
+++ b/OpenSim/Tests/Common/Helpers/TaskInventoryHelpers.cs
@@ -46,13 +46,32 @@ namespace OpenSim.Tests.Common
///
///
///
+ /// UUID or UUID stem
+ /// UUID or UUID stem
+ /// The tex to put in the notecard.
+ /// The item that was added
+ public static TaskInventoryItem AddNotecard(
+ Scene scene, SceneObjectPart part, string itemName, string itemIDStem, string assetIDStem, string text)
+ {
+ return AddNotecard(
+ scene, part, itemName, TestHelpers.ParseStem(itemIDStem), TestHelpers.ParseStem(assetIDStem), text);
+ }
+
+ ///
+ /// Add a notecard item to the given part.
+ ///
+ ///
+ ///
+ ///
///
///
+ /// The tex to put in the notecard.
/// The item that was added
- public static TaskInventoryItem AddNotecard(Scene scene, SceneObjectPart part, string itemName, UUID itemID, UUID assetID)
+ public static TaskInventoryItem AddNotecard(
+ Scene scene, SceneObjectPart part, string itemName, UUID itemID, UUID assetID, string text)
{
AssetNotecard nc = new AssetNotecard();
- nc.BodyText = "Hello World!";
+ nc.BodyText = text;
nc.Encode();
AssetBase ncAsset
@@ -87,8 +106,8 @@ namespace OpenSim.Tests.Common
/// Add a simple script to the given part.
///
///
- /// TODO: Accept input for item and asset IDs to avoid mysterious script failures that try to use any of these
- /// functions more than once in a test.
+ /// TODO: Accept input for item and asset IDs so that we have completely replicatable regression tests rather
+ /// than a random component.
///
///
///
@@ -102,8 +121,9 @@ namespace OpenSim.Tests.Common
ast.Source = scriptSource;
ast.Encode();
- UUID assetUuid = new UUID("00000000-0000-0000-1000-000000000000");
- UUID itemUuid = new UUID("00000000-0000-0000-1100-000000000000");
+ UUID assetUuid = UUID.Random();
+ UUID itemUuid = UUID.Random();
+
AssetBase asset
= AssetHelpers.CreateAsset(assetUuid, AssetType.LSLText, ast.AssetData, UUID.Zero);
scene.AssetService.Store(asset);
diff --git a/OpenSim/Tests/Common/Mock/MockScriptEngine.cs b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs
index 6a53fe7..b444241 100644
--- a/OpenSim/Tests/Common/Mock/MockScriptEngine.cs
+++ b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.Reflection;
using Nini.Config;
using OpenMetaverse;
+using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.ScriptEngine.Interfaces;
@@ -110,8 +111,11 @@ namespace OpenSim.Tests.Common
{
// Console.WriteLine("Posting event {0} for {1}", name, itemID);
- EventParams evParams = new EventParams(name, args, null);
+ return PostScriptEvent(itemID, new EventParams(name, args, null));
+ }
+ public bool PostScriptEvent(UUID itemID, EventParams evParams)
+ {
List eventsForItem;
if (!PostedEvents.ContainsKey(itemID))
@@ -132,9 +136,22 @@ namespace OpenSim.Tests.Common
return true;
}
+ public bool PostObjectEvent(uint localID, EventParams evParams)
+ {
+ return PostObjectEvent(m_scene.GetSceneObjectPart(localID), evParams);
+ }
+
public bool PostObjectEvent(UUID itemID, string name, object[] args)
{
- throw new System.NotImplementedException ();
+ return PostObjectEvent(m_scene.GetSceneObjectPart(itemID), new EventParams(name, args, null));
+ }
+
+ private bool PostObjectEvent(SceneObjectPart part, EventParams evParams)
+ {
+ foreach (TaskInventoryItem item in part.Inventory.GetInventoryItems(InventoryType.LSL))
+ PostScriptEvent(item.ItemID, evParams);
+
+ return true;
}
public void SuspendScript(UUID itemID)
@@ -187,16 +204,6 @@ namespace OpenSim.Tests.Common
throw new System.NotImplementedException ();
}
- public bool PostScriptEvent(UUID itemID,EventParams parms)
- {
- throw new System.NotImplementedException ();
- }
-
- public bool PostObjectEvent (uint localID, EventParams parms)
- {
- throw new System.NotImplementedException ();
- }
-
public DetectParams GetDetectParams(UUID item, int number)
{
throw new System.NotImplementedException ();
diff --git a/OpenSim/Tests/Common/TestHelpers.cs b/OpenSim/Tests/Common/TestHelpers.cs
index 57da802..a684d72 100644
--- a/OpenSim/Tests/Common/TestHelpers.cs
+++ b/OpenSim/Tests/Common/TestHelpers.cs
@@ -114,6 +114,27 @@ namespace OpenSim.Tests.Common
}
///
+ /// Parse a UUID stem into a full UUID.
+ ///
+ ///
+ /// Yes, this is completely inconsistent with ParseTail but this is probably a better way to do it,
+ /// UUIDs are conceptually not hexadecmial numbers.
+ /// The fragment will come at the start of the UUID. The rest will be 0s
+ ///
+ ///
+ ///
+ /// A UUID fragment that will be parsed into a full UUID. Therefore, it can only contain
+ /// cahracters which are valid in a UUID, except for "-" which is currently only allowed if a full UUID is
+ /// given as the 'fragment'.
+ ///
+ public static UUID ParseStem(string stem)
+ {
+ string rawUuid = stem.PadRight(32, '0');
+
+ return UUID.Parse(rawUuid);
+ }
+
+ ///
/// Parse tail section into full UUID.
///
///
--
cgit v1.1