aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-10-16 19:54:40 +0100
committerJustin Clark-Casey (justincc)2014-11-25 23:22:19 +0000
commit336790e7b4327319b7a4a176d82a19001b32caca (patch)
treea85dcbcb0eba498dde32f8e6990d67b6bbfd5dd0 /OpenSim/Region/ScriptEngine
parentWhen inserting missing CreatorData in the HGAssetMapper, do the rewrite on a ... (diff)
downloadopensim-SC_OLD-336790e7b4327319b7a4a176d82a19001b32caca.zip
opensim-SC_OLD-336790e7b4327319b7a4a176d82a19001b32caca.tar.gz
opensim-SC_OLD-336790e7b4327319b7a4a176d82a19001b32caca.tar.bz2
opensim-SC_OLD-336790e7b4327319b7a4a176d82a19001b32caca.tar.xz
Add some more llGiveInventory() regression tests
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs49
1 files changed, 1 insertions, 48 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
index 1966e5a..6afe551 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
@@ -44,6 +44,7 @@ using OpenSim.Region.ScriptEngine.Shared.Api;
44using OpenSim.Region.ScriptEngine.Shared.Instance; 44using OpenSim.Region.ScriptEngine.Shared.Instance;
45using OpenSim.Services.Interfaces; 45using OpenSim.Services.Interfaces;
46using OpenSim.Tests.Common; 46using OpenSim.Tests.Common;
47using PermissionMask = OpenSim.Framework.PermissionMask;
47 48
48namespace OpenSim.Region.ScriptEngine.Shared.Tests 49namespace OpenSim.Region.ScriptEngine.Shared.Tests
49{ 50{
@@ -236,53 +237,5 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
236 Assert.IsNotNull(receivedItem); 237 Assert.IsNotNull(receivedItem);
237 Assert.AreEqual(0, receivedItem.CurrentPermissions & (uint)PermissionMask.Modify); 238 Assert.AreEqual(0, receivedItem.CurrentPermissions & (uint)PermissionMask.Modify);
238 } 239 }
239
240 [Test]
241 public void TestLlRemoteLoadScriptPin()
242 {
243 TestHelpers.InMethod();
244// TestHelpers.EnableLogging();
245
246 UUID user1Id = TestHelpers.ParseTail(0x1);
247 UUID user2Id = TestHelpers.ParseTail(0x2);
248
249 SceneObjectGroup sourceSo = SceneHelpers.AddSceneObject(m_scene, 1, user1Id, "sourceSo", 0x10);
250 m_scene.AddSceneObject(sourceSo);
251 LSL_Api api = new LSL_Api();
252 api.Initialize(m_engine, sourceSo.RootPart, null, null);
253 TaskInventoryHelpers.AddScript(m_scene, sourceSo.RootPart, "script", "Hello World");
254
255 SceneObjectGroup targetSo = SceneHelpers.AddSceneObject(m_scene, 1, user1Id, "targetSo", 0x20);
256 SceneObjectGroup otherOwnedTargetSo
257 = SceneHelpers.AddSceneObject(m_scene, 1, user2Id, "otherOwnedTargetSo", 0x30);
258
259 // Test that we cannot load a script when the target pin has never been set (i.e. it is zero)
260 api.llRemoteLoadScriptPin(targetSo.UUID.ToString(), "script", 0, 0, 0);
261 Assert.IsNull(targetSo.RootPart.Inventory.GetInventoryItem("script"));
262
263 // Test that we cannot load a script when the given pin does not match the target
264 targetSo.RootPart.ScriptAccessPin = 5;
265 api.llRemoteLoadScriptPin(targetSo.UUID.ToString(), "script", 3, 0, 0);
266 Assert.IsNull(targetSo.RootPart.Inventory.GetInventoryItem("script"));
267
268 // Test that we cannot load into a prim with a different owner
269 otherOwnedTargetSo.RootPart.ScriptAccessPin = 3;
270 api.llRemoteLoadScriptPin(otherOwnedTargetSo.UUID.ToString(), "script", 3, 0, 0);
271 Assert.IsNull(otherOwnedTargetSo.RootPart.Inventory.GetInventoryItem("script"));
272
273 // Test that we can load a script when given pin and dest pin match.
274 targetSo.RootPart.ScriptAccessPin = 3;
275 api.llRemoteLoadScriptPin(targetSo.UUID.ToString(), "script", 3, 0, 0);
276 TaskInventoryItem insertedItem = targetSo.RootPart.Inventory.GetInventoryItem("script");
277 Assert.IsNotNull(insertedItem);
278
279 // Test that we can no longer load if access pin is unset
280 targetSo.RootPart.Inventory.RemoveInventoryItem(insertedItem.ItemID);
281 Assert.IsNull(targetSo.RootPart.Inventory.GetInventoryItem("script"));
282
283 targetSo.RootPart.ScriptAccessPin = 0;
284 api.llRemoteLoadScriptPin(otherOwnedTargetSo.UUID.ToString(), "script", 3, 0, 0);
285 Assert.IsNull(otherOwnedTargetSo.RootPart.Inventory.GetInventoryItem("script"));
286 }
287 } 240 }
288} \ No newline at end of file 241} \ No newline at end of file