clockwerk-opensim-stable – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 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  
28 using System;
29 using System.Collections.Generic;
30 using System.Reflection;
31 using System.Text;
32 using log4net;
33 using Nini.Config;
34 using NUnit.Framework;
35 using OpenMetaverse;
36 using OpenMetaverse.Assets;
37 using OpenMetaverse.StructuredData;
38 using OpenSim.Framework;
39 using OpenSim.Region.CoreModules.Avatar.AvatarFactory;
40 using OpenSim.Region.OptionalModules.World.NPC;
41 using OpenSim.Region.Framework.Scenes;
42 using OpenSim.Region.ScriptEngine.Shared;
43 using OpenSim.Region.ScriptEngine.Shared.Api;
44 using OpenSim.Region.ScriptEngine.Shared.Instance;
45 using OpenSim.Services.Interfaces;
46 using OpenSim.Tests.Common;
47 using OpenSim.Tests.Common.Mock;
48  
49 namespace OpenSim.Region.ScriptEngine.Shared.Tests
50 {
51 /// <summary>
52 /// Tests for OSSL_Api
53 /// </summary>
54 [TestFixture]
55 public class OSSL_ApiAppearanceTest : OpenSimTestCase
56 {
57 protected Scene m_scene;
58 protected XEngine.XEngine m_engine;
59  
60 [SetUp]
61 public override void SetUp()
62 {
63 base.SetUp();
64  
65 IConfigSource initConfigSource = new IniConfigSource();
66 IConfig config = initConfigSource.AddConfig("XEngine");
67 config.Set("Enabled", "true");
68 config.Set("AllowOSFunctions", "true");
69 config.Set("OSFunctionThreatLevel", "Severe");
70 config = initConfigSource.AddConfig("NPC");
71 config.Set("Enabled", "true");
72  
73 m_scene = new SceneHelpers().SetupScene();
74 SceneHelpers.SetupSceneModules(m_scene, initConfigSource, new AvatarFactoryModule(), new NPCModule());
75  
76 m_engine = new XEngine.XEngine();
77 m_engine.Initialise(initConfigSource);
78 m_engine.AddRegion(m_scene);
79 }
80  
81 [Test]
82 public void TestOsOwnerSaveAppearance()
83 {
84 TestHelpers.InMethod();
85 // log4net.Config.XmlConfigurator.Configure();
86  
87 UUID userId = TestHelpers.ParseTail(0x1);
88 float newHeight = 1.9f;
89  
90 ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
91 sp.Appearance.AvatarHeight = newHeight;
92 SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
93 SceneObjectPart part = so.RootPart;
94 m_scene.AddSceneObject(so);
95  
96 OSSL_Api osslApi = new OSSL_Api();
97 osslApi.Initialize(m_engine, part, null, null);
98  
99 string notecardName = "appearanceNc";
100  
101 osslApi.osOwnerSaveAppearance(notecardName);
102  
103 IList<TaskInventoryItem> items = part.Inventory.GetInventoryItems(notecardName);
104 Assert.That(items.Count, Is.EqualTo(1));
105  
106 TaskInventoryItem ncItem = items[0];
107 Assert.That(ncItem.Name, Is.EqualTo(notecardName));
108  
109 AssetBase ncAsset = m_scene.AssetService.Get(ncItem.AssetID.ToString());
110 Assert.That(ncAsset, Is.Not.Null);
111  
112 AssetNotecard anc = new AssetNotecard(UUID.Zero, ncAsset.Data);
113 anc.Decode();
114 OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(anc.BodyText);
115 AvatarAppearance savedAppearance = new AvatarAppearance();
116 savedAppearance.Unpack(appearanceOsd);
117  
118 Assert.That(savedAppearance.AvatarHeight, Is.EqualTo(sp.Appearance.AvatarHeight));
119 }
120  
121 [Test]
122 public void TestOsAgentSaveAppearance()
123 {
124 TestHelpers.InMethod();
125 // log4net.Config.XmlConfigurator.Configure();
126  
127 UUID ownerId = TestHelpers.ParseTail(0x1);
128 UUID nonOwnerId = TestHelpers.ParseTail(0x2);
129 float newHeight = 1.9f;
130  
131 ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, nonOwnerId);
132 sp.Appearance.AvatarHeight = newHeight;
133 SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, ownerId, 0x10);
134 SceneObjectPart part = so.RootPart;
135 m_scene.AddSceneObject(so);
136  
137 OSSL_Api osslApi = new OSSL_Api();
138 osslApi.Initialize(m_engine, part, null, null);
139  
140 string notecardName = "appearanceNc";
141  
142 osslApi.osAgentSaveAppearance(new LSL_Types.LSLString(nonOwnerId.ToString()), notecardName);
143  
144 IList<TaskInventoryItem> items = part.Inventory.GetInventoryItems(notecardName);
145 Assert.That(items.Count, Is.EqualTo(1));
146  
147 TaskInventoryItem ncItem = items[0];
148 Assert.That(ncItem.Name, Is.EqualTo(notecardName));
149  
150 AssetBase ncAsset = m_scene.AssetService.Get(ncItem.AssetID.ToString());
151 Assert.That(ncAsset, Is.Not.Null);
152  
153 AssetNotecard anc = new AssetNotecard(UUID.Zero, ncAsset.Data);
154 anc.Decode();
155 OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(anc.BodyText);
156 AvatarAppearance savedAppearance = new AvatarAppearance();
157 savedAppearance.Unpack(appearanceOsd);
158  
159 Assert.That(savedAppearance.AvatarHeight, Is.EqualTo(sp.Appearance.AvatarHeight));
160 }
161 }
162 }