aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs32
1 files changed, 31 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs
index 86381c4..1415925 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs
@@ -77,14 +77,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
77 m_engine.AddRegion(m_scene); 77 m_engine.AddRegion(m_scene);
78 } 78 }
79 79
80 /// <summary>
81 /// Test llSetLinkPrimtiveParams for agents.
82 /// </summary>
83 /// <remarks>
84 /// Also testing entity updates here as well. Possibly that's putting 2 different concerns into one test and
85 /// this should be separated.
86 /// </remarks>
80 [Test] 87 [Test]
81 public void TestllSetLinkPrimitiveParamsForAgent() 88 public void TestllSetLinkPrimitiveParamsForAgent()
82 { 89 {
83 TestHelpers.InMethod(); 90 TestHelpers.InMethod();
91// TestHelpers.EnableLogging();
84 92
85 UUID userId = TestHelpers.ParseTail(0x1); 93 UUID userId = TestHelpers.ParseTail(0x1);
86 94
87 new SceneHelpers().SetupScene();
88 SceneObjectPart part = SceneHelpers.AddSceneObject(m_scene).RootPart; 95 SceneObjectPart part = SceneHelpers.AddSceneObject(m_scene).RootPart;
89 part.RotationOffset = new Quaternion(0.7071068f, 0, 0, 0.7071068f); 96 part.RotationOffset = new Quaternion(0.7071068f, 0, 0, 0.7071068f);
90 97
@@ -99,12 +106,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
99 106
100 sp.HandleAgentRequestSit(sp.ControllingClient, sp.UUID, part.UUID, Vector3.Zero); 107 sp.HandleAgentRequestSit(sp.ControllingClient, sp.UUID, part.UUID, Vector3.Zero);
101 108
109 int entityUpdates = 0;
110 ((TestClient)sp.ControllingClient).OnReceivedEntityUpdate += (entity, flags) => { if (entity is ScenePresence) { entityUpdates++; }};
111
102 // Test position 112 // Test position
103 { 113 {
104 Vector3 newPos = new Vector3(1, 2, 3); 114 Vector3 newPos = new Vector3(1, 2, 3);
105 apiGrp1.llSetLinkPrimitiveParams(2, new LSL_Types.list(ScriptBaseClass.PRIM_POSITION, newPos)); 115 apiGrp1.llSetLinkPrimitiveParams(2, new LSL_Types.list(ScriptBaseClass.PRIM_POSITION, newPos));
106 116
107 Assert.That(sp.OffsetPosition, Is.EqualTo(newPos)); 117 Assert.That(sp.OffsetPosition, Is.EqualTo(newPos));
118
119 m_scene.Update(1);
120 Assert.That(entityUpdates, Is.EqualTo(1));
121 }
122
123 // Test small reposition
124 {
125 Vector3 newPos = new Vector3(1.001f, 2, 3);
126 apiGrp1.llSetLinkPrimitiveParams(2, new LSL_Types.list(ScriptBaseClass.PRIM_POSITION, newPos));
127
128 Assert.That(sp.OffsetPosition, Is.EqualTo(newPos));
129
130 m_scene.Update(1);
131 Assert.That(entityUpdates, Is.EqualTo(2));
108 } 132 }
109 133
110 // Test world rotation 134 // Test world rotation
@@ -114,6 +138,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
114 138
115 Assert.That( 139 Assert.That(
116 sp.Rotation, new QuaternionToleranceConstraint(part.GetWorldRotation() * newRot, 0.000001)); 140 sp.Rotation, new QuaternionToleranceConstraint(part.GetWorldRotation() * newRot, 0.000001));
141
142 m_scene.Update(1);
143 Assert.That(entityUpdates, Is.EqualTo(3));
117 } 144 }
118 145
119 // Test local rotation 146 // Test local rotation
@@ -123,6 +150,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
123 150
124 Assert.That( 151 Assert.That(
125 sp.Rotation, new QuaternionToleranceConstraint(newRot, 0.000001)); 152 sp.Rotation, new QuaternionToleranceConstraint(newRot, 0.000001));
153
154 m_scene.Update(1);
155 Assert.That(entityUpdates, Is.EqualTo(4));
126 } 156 }
127 } 157 }
128 } 158 }