aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs76
2 files changed, 87 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 9293aeb..f344dcc 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1646,10 +1646,21 @@ namespace OpenSim.Region.Framework.Scenes
1646 // The part ID is the folder ID! 1646 // The part ID is the folder ID!
1647 SceneObjectPart part = GetSceneObjectPart(itemBase.Folder); 1647 SceneObjectPart part = GetSceneObjectPart(itemBase.Folder);
1648 if (part == null) 1648 if (part == null)
1649 {
1650// m_log.DebugFormat(
1651// "[SCENE INVENTORY]: Could not find part with id {0} for {1} to rez new script",
1652// itemBase.Folder, agentID);
1653
1649 return null; 1654 return null;
1655 }
1650 1656
1651 if (!Permissions.CanCreateObjectInventory(itemBase.InvType, part.UUID, agentID)) 1657 if (!Permissions.CanCreateObjectInventory(itemBase.InvType, part.UUID, agentID))
1658 {
1659// m_log.DebugFormat(
1660// "[SCENE INVENTORY]: No permission to create new script in {0} for {1}", part.Name, agentID);
1661
1652 return null; 1662 return null;
1663 }
1653 1664
1654 AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, 1665 AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType,
1655 Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"), 1666 Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"),
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs
new file mode 100644
index 0000000..6f99abd
--- /dev/null
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectScriptTests.cs
@@ -0,0 +1,76 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Reflection;
31using NUnit.Framework;
32using OpenMetaverse;
33using OpenSim.Framework;
34using OpenSim.Framework.Communications;
35using OpenSim.Region.Framework.Interfaces;
36using OpenSim.Region.Framework.Scenes;
37using OpenSim.Tests.Common;
38using OpenSim.Tests.Common.Mock;
39
40namespace OpenSim.Region.Framework.Scenes.Tests
41{
42 [TestFixture]
43 public class SceneObjectScriptTests
44 {
45 [Test]
46 public void TestAddScript()
47 {
48 TestHelpers.InMethod();
49// log4net.Config.XmlConfigurator.Configure();
50
51 UUID userId = TestHelpers.ParseTail(0x1);
52 UUID itemId = TestHelpers.ParseTail(0x2);
53 string itemName = "Test Script Item";
54
55 Scene scene = SceneHelpers.SetupScene();
56 SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId);
57 scene.AddNewSceneObject(so, true);
58
59 InventoryItemBase itemTemplate = new InventoryItemBase();
60 itemTemplate.Name = itemName;
61 itemTemplate.Folder = so.UUID;
62 itemTemplate.InvType = (int)InventoryType.LSL;
63
64 SceneObjectPart partWhereScriptAdded = scene.RezNewScript(userId, itemTemplate);
65
66 Assert.That(partWhereScriptAdded, Is.Not.Null);
67
68 IEntityInventory primInventory = partWhereScriptAdded.Inventory;
69 Assert.That(primInventory.GetInventoryList().Count, Is.EqualTo(1));
70 Assert.That(primInventory.ContainsScripts(), Is.True);
71
72 IList<TaskInventoryItem> primItems = primInventory.GetInventoryItems(itemName);
73 Assert.That(primItems.Count, Is.EqualTo(1));
74 }
75 }
76} \ No newline at end of file