public void TestAddScript() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); UUID userId = TestHelpers.ParseTail(0x1); // UUID itemId = TestHelpers.ParseTail(0x2); string itemName = "Test Script Item"; Scene scene = new SceneHelpers().SetupScene(); SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId); scene.AddNewSceneObject(so, true); InventoryItemBase itemTemplate = new InventoryItemBase(); itemTemplate.Name = itemName; itemTemplate.Folder = so.UUID; itemTemplate.InvType = (int)InventoryType.LSL; SceneObjectPart partWhereScriptAdded = scene.RezNewScript(userId, itemTemplate); Assert.That(partWhereScriptAdded, Is.Not.Null); IEntityInventory primInventory = partWhereScriptAdded.Inventory; Assert.That(primInventory.GetInventoryList().Count, Is.EqualTo(1)); Assert.That(primInventory.ContainsScripts(), Is.True); IList<TaskInventoryItem> primItems = primInventory.GetInventoryItems(itemName); Assert.That(primItems.Count, Is.EqualTo(1)); }
public void TestCreateInventoryFolders() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); // For this test both folders will have the same name which is legal in SL user inventories. string foldersName = "f1"; Scene scene = new SceneHelpers().SetupScene(); UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene, TestHelpers.ParseTail(1001)); UserInventoryHelpers.CreateInventoryFolder(scene.InventoryService, user1.PrincipalID, foldersName); List<InventoryFolderBase> oneFolder = UserInventoryHelpers.GetInventoryFolders(scene.InventoryService, user1.PrincipalID, foldersName); Assert.That(oneFolder.Count, Is.EqualTo(1)); InventoryFolderBase firstRetrievedFolder = oneFolder[0]; Assert.That(firstRetrievedFolder.Name, Is.EqualTo(foldersName)); UserInventoryHelpers.CreateInventoryFolder(scene.InventoryService, user1.PrincipalID, foldersName); List<InventoryFolderBase> twoFolders = UserInventoryHelpers.GetInventoryFolders(scene.InventoryService, user1.PrincipalID, foldersName); Assert.That(twoFolders.Count, Is.EqualTo(2)); Assert.That(twoFolders[0].Name, Is.EqualTo(foldersName)); Assert.That(twoFolders[1].Name, Is.EqualTo(foldersName)); Assert.That(twoFolders[0].ID, Is.Not.EqualTo(twoFolders[1].ID)); }
public void Init() { // FIXME: We don't need a full scene here - it would be enough to set up the asset service. Scene scene = new SceneHelpers().SetupScene(); m_assetService = scene.AssetService; m_uuidGatherer = new UuidGatherer(m_assetService); }
public void TestCachedUserNameForNewAgent() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); HGUserManagementModule hgumm = new HGUserManagementModule(); UUID userId = TestHelpers.ParseStem("11"); string firstName = "Fred"; string lastName = "Astaire"; string homeUri = "example.com"; IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); config.Configs["Modules"].Set("UserManagementModule", hgumm.Name); SceneHelpers sceneHelpers = new SceneHelpers(); TestScene scene = sceneHelpers.SetupScene(); SceneHelpers.SetupSceneModules(scene, config, hgumm); AgentCircuitData acd = SceneHelpers.GenerateAgentData(userId); acd.firstname = firstName; acd.lastname = lastName; acd.ServiceURLs["HomeURI"] = "http://" + homeUri; SceneHelpers.AddScenePresence(scene, acd); string name = hgumm.GetUserName(userId); Assert.That(name, Is.EqualTo(string.Format("{0}.{1} @{2}", firstName, lastName, homeUri))); }
public void Init() { TestHelpers.InMethod(); SceneHelpers sh = new SceneHelpers(); scene = sh.SetupScene("Neighbour x", UUID.Random(), 1000, 1000); scene2 = sh.SetupScene("Neighbour x+1", UUID.Random(), 1001, 1000); scene3 = sh.SetupScene("Neighbour x-1", UUID.Random(), 999, 1000); ISharedRegionModule interregionComms = new LocalSimulationConnectorModule(); interregionComms.Initialise(new IniConfigSource()); interregionComms.PostInitialise(); SceneHelpers.SetupSceneModules(scene, new IniConfigSource(), interregionComms); SceneHelpers.SetupSceneModules(scene2, new IniConfigSource(), interregionComms); SceneHelpers.SetupSceneModules(scene3, new IniConfigSource(), interregionComms); agent1 = UUID.Random(); agent2 = UUID.Random(); agent3 = UUID.Random(); random = new Random(); sog1 = SceneHelpers.CreateSceneObject(1, agent1); scene.AddSceneObject(sog1); sog2 = SceneHelpers.CreateSceneObject(1, agent1); scene.AddSceneObject(sog2); sog3 = SceneHelpers.CreateSceneObject(1, agent1); scene.AddSceneObject(sog3); region1 = scene.RegionInfo.RegionHandle; region2 = scene2.RegionInfo.RegionHandle; region3 = scene3.RegionInfo.RegionHandle; }
public void TestDeRezSceneObject() { TestHelpers.InMethod(); UUID userId = UUID.Parse("10000000-0000-0000-0000-000000000001"); TestScene scene = new SceneHelpers().SetupScene(); IConfigSource configSource = new IniConfigSource(); IConfig config = configSource.AddConfig("Startup"); config.Set("serverside_object_permissions", true); SceneHelpers.SetupSceneModules(scene, configSource, new object[] { new DefaultPermissionsModule() }); IClientAPI client = SceneHelpers.AddScenePresence(scene, userId).ControllingClient; // Turn off the timer on the async sog deleter - we'll crank it by hand for this test. AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter; sogd.Enabled = false; SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, "so1", userId); uint soLocalId = so.LocalId; List<uint> localIds = new List<uint>(); localIds.Add(so.LocalId); scene.DeRezObjects(client, localIds, UUID.Zero, DeRezAction.Delete, UUID.Zero); // Check that object isn't deleted until we crank the sogd handle. SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId); // Assert.That(retrievedPart, Is.Not.Null); // Assert.That(retrievedPart.ParentGroup.IsDeleted, Is.False); sogd.InventoryDeQueueAndDelete(); // SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId); Assert.That(retrievedPart, Is.Null); }
public void TestTerrainFill() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); //UUID userId = TestHelpers.ParseTail(0x1); TerrainModule tm = new TerrainModule(); Scene scene = new SceneHelpers().SetupScene(); SceneHelpers.SetupSceneModules(scene, tm); // Fillheight of 30 { double fillHeight = 30; tm.InterfaceFillTerrain(new object[] { fillHeight }); double height = scene.Heightmap[128, 128]; Assert.AreEqual(fillHeight, height); } // Max fillheight of 30 // According to http://wiki.secondlife.com/wiki/Tips_for_Creating_Heightfields_and_Details_on_Terrain_RAW_Files#Notes_for_Creating_Height_Field_Maps_for_Second_Life { double fillHeight = 508; tm.InterfaceFillTerrain(new object[] { fillHeight }); double height = scene.Heightmap[128, 128]; Assert.AreEqual(fillHeight, height); } }
public void TestUndoRedoResizeSceneObject() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); Vector3 firstSize = new Vector3(2, 3, 4); Vector3 secondSize = new Vector3(5, 6, 7); Scene scene = new SceneHelpers().SetupScene(); scene.MaxUndoCount = 20; SceneObjectGroup g1 = SceneHelpers.AddSceneObject(scene); // TODO: It happens to be the case that we are not storing undo states for SOPs which are not yet in a SOG, // which is the way that AddSceneObject() sets up the object (i.e. it creates the SOP first). However, // this is somewhat by chance. Really, we shouldn't be storing undo states at all if the object is not // in a scene. Assert.That(g1.RootPart.UndoCount, Is.EqualTo(0)); g1.GroupResize(firstSize); Assert.That(g1.RootPart.UndoCount, Is.EqualTo(1)); g1.GroupResize(secondSize); Assert.That(g1.RootPart.UndoCount, Is.EqualTo(2)); g1.RootPart.Undo(); Assert.That(g1.RootPart.UndoCount, Is.EqualTo(1)); Assert.That(g1.GroupScale, Is.EqualTo(firstSize)); g1.RootPart.Redo(); Assert.That(g1.RootPart.UndoCount, Is.EqualTo(2)); Assert.That(g1.GroupScale, Is.EqualTo(secondSize)); }
public void TestNoTelehubSpawnPoints() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); EstateManagementModule emm = new EstateManagementModule(); SceneHelpers sh = new SceneHelpers(); Scene scene = sh.SetupScene(); SceneHelpers.SetupSceneModules(scene, emm); UUID telehubSceneObjectOwner = TestHelpers.ParseTail(0x1); SceneObjectGroup telehubSo = SceneHelpers.AddSceneObject(scene, "telehubObject", telehubSceneObjectOwner); emm.HandleOnEstateManageTelehub(null, UUID.Zero, UUID.Zero, "connect", telehubSo.LocalId); scene.RegionInfo.EstateSettings.AllowDirectTeleport = false; // Must still be possible to successfully log in UUID loggingInUserId = TestHelpers.ParseTail(0x2); UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, "Test", "User", loggingInUserId, "password"); SceneHelpers.AddScenePresence(scene, ua); Assert.That(scene.GetScenePresence(loggingInUserId), Is.Not.Null); }
public void TestChildAgentSingleRegionCapabilities() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); UUID spUuid = TestHelpers.ParseTail(0x1); // XXX: This is not great since the use of statics will mean that this has to be manually cleaned up for // any subsequent test. // XXX: May replace with a mock IHttpServer later. BaseHttpServer httpServer = new BaseHttpServer(99999); MainServer.AddHttpServer(httpServer); MainServer.Instance = httpServer; CapabilitiesModule capsMod = new CapabilitiesModule(); TestScene scene = new SceneHelpers().SetupScene(); SceneHelpers.SetupSceneModules(scene, capsMod); ScenePresence sp = SceneHelpers.AddChildScenePresence(scene, spUuid); Assert.That(capsMod.GetCapsForUser(spUuid), Is.Not.Null); // TODO: Need to add tests for other ICapabiltiesModule methods. scene.CloseAgent(sp.UUID, false); Assert.That(capsMod.GetCapsForUser(spUuid), Is.Null); // TODO: Need to add tests for other ICapabiltiesModule methods. }
public void TestResizeSceneObjectPart() { TestHelpers.InMethod(); //log4net.Config.XmlConfigurator.Configure(); Scene scene = new SceneHelpers().SetupScene(); SceneObjectGroup g1 = SceneHelpers.CreateSceneObject(2, UUID.Zero); g1.RootPart.Scale = new Vector3(2, 3, 4); g1.Parts[1].Scale = new Vector3(5, 6, 7); scene.AddSceneObject(g1); SceneObjectGroup g1Post = scene.GetSceneObjectGroup(g1.UUID); g1Post.Parts[1].Resize(new Vector3(8, 9, 10)); SceneObjectGroup g1PostPost = scene.GetSceneObjectGroup(g1.UUID); SceneObjectPart g1RootPart = g1PostPost.RootPart; SceneObjectPart g1ChildPart = g1PostPost.Parts[1]; Assert.That(g1RootPart.Scale.X, Is.EqualTo(2)); Assert.That(g1RootPart.Scale.Y, Is.EqualTo(3)); Assert.That(g1RootPart.Scale.Z, Is.EqualTo(4)); Assert.That(g1ChildPart.Scale.X, Is.EqualTo(8)); Assert.That(g1ChildPart.Scale.Y, Is.EqualTo(9)); Assert.That(g1ChildPart.Scale.Z, Is.EqualTo(10)); }
public void TestSameRegionTeleport() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); EntityTransferModule etm = new EntityTransferModule(); IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); // Not strictly necessary since FriendsModule assumes it is the default (!) config.Configs["Modules"].Set("EntityTransferModule", etm.Name); TestScene scene = new SceneHelpers().SetupScene("sceneA", TestHelpers.ParseTail(0x100), 1000, 1000); SceneHelpers.SetupSceneModules(scene, config, etm); Vector3 teleportPosition = new Vector3(10, 11, 12); Vector3 teleportLookAt = new Vector3(20, 21, 22); ScenePresence sp = SceneHelpers.AddScenePresence(scene, TestHelpers.ParseTail(0x1)); sp.AbsolutePosition = new Vector3(30, 31, 32); scene.RequestTeleportLocation( sp.ControllingClient, scene.RegionInfo.RegionHandle, teleportPosition, teleportLookAt, (uint)TeleportFlags.ViaLocation); Assert.That(sp.AbsolutePosition, Is.EqualTo(teleportPosition)); // Lookat is sent to the client only - sp.Lookat does not yield the same thing (calculation from camera // position instead). // Assert.That(sp.Lookat, Is.EqualTo(teleportLookAt)); }
public void TestGiveInventoryItem() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); Scene scene = new SceneHelpers().SetupScene(); UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene, TestHelpers.ParseTail(1001)); UserAccount user2 = UserAccountHelpers.CreateUserWithInventory(scene, TestHelpers.ParseTail(1002)); InventoryItemBase item1 = UserInventoryHelpers.CreateInventoryItem(scene, "item1", user1.PrincipalID); scene.GiveInventoryItem(user2.PrincipalID, user1.PrincipalID, item1.ID); InventoryItemBase retrievedItem1 = UserInventoryHelpers.GetInventoryItem(scene.InventoryService, user2.PrincipalID, "Notecards/item1"); Assert.That(retrievedItem1, Is.Not.Null); // Try giving back the freshly received item scene.GiveInventoryItem(user1.PrincipalID, user2.PrincipalID, retrievedItem1.ID); List<InventoryItemBase> reretrievedItems = UserInventoryHelpers.GetInventoryItems(scene.InventoryService, user1.PrincipalID, "Notecards/item1"); Assert.That(reretrievedItems.Count, Is.EqualTo(2)); }
public void TestShareWithGroup() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); UUID userId = UUID.Parse("10000000-0000-0000-0000-000000000001"); TestScene scene = new SceneHelpers().SetupScene(); IConfigSource configSource = new IniConfigSource(); IConfig startupConfig = configSource.AddConfig("Startup"); startupConfig.Set("serverside_object_permissions", true); IConfig groupsConfig = configSource.AddConfig("Groups"); groupsConfig.Set("Enabled", true); groupsConfig.Set("Module", "GroupsModule"); groupsConfig.Set("DebugEnabled", true); SceneHelpers.SetupSceneModules( scene, configSource, new object[] { new PermissionsModule(), new GroupsModule(), new MockGroupsServicesConnector() }); IClientAPI client = SceneHelpers.AddScenePresence(scene, userId).ControllingClient; IGroupsModule groupsModule = scene.RequestModuleInterface<IGroupsModule>(); groupsModule.CreateGroup(client, "group1", "To boldly go", true, UUID.Zero, 5, true, true, true); }
public void TestDeRezSceneObject() { TestHelpers.InMethod(); UUID userId = UUID.Parse("10000000-0000-0000-0000-000000000001"); TestScene scene = new SceneHelpers().SetupScene(); SceneHelpers.SetupSceneModules(scene, new PermissionsModule()); TestClient client = (TestClient)SceneHelpers.AddScenePresence(scene, userId).ControllingClient; // Turn off the timer on the async sog deleter - we'll crank it by hand for this test. AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter; sogd.Enabled = false; SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, "so1", userId); uint soLocalId = so.LocalId; List<uint> localIds = new List<uint>(); localIds.Add(so.LocalId); scene.DeRezObjects(client, localIds, UUID.Zero, DeRezAction.Delete, UUID.Zero); // Check that object isn't deleted until we crank the sogd handle. SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId); Assert.That(retrievedPart, Is.Not.Null); Assert.That(retrievedPart.ParentGroup.IsDeleted, Is.False); sogd.InventoryDeQueueAndDelete(); SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId); Assert.That(retrievedPart2, Is.Null); Assert.That(client.ReceivedKills.Count, Is.EqualTo(1)); Assert.That(client.ReceivedKills[0], Is.EqualTo(soLocalId)); }
public void TestSerialDeserial() { TestHelpers.InMethod(); Scene scene = new SceneHelpers().SetupScene(); int partsToTestCount = 3; SceneObjectGroup so = SceneHelpers.CreateSceneObject(partsToTestCount, TestHelpers.ParseTail(0x1), "obj1", 0x10); SceneObjectPart[] parts = so.Parts; so.Name = "obj1"; so.Description = "xpto"; string xml = SceneObjectSerializer.ToXml2Format(so); Assert.That(!string.IsNullOrEmpty(xml), "SOG serialization resulted in empty or null string"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNodeList nodes = doc.GetElementsByTagName("SceneObjectPart"); Assert.That(nodes.Count, Is.EqualTo(3), "SOG serialization resulted in wrong number of SOPs"); SceneObjectGroup so2 = SceneObjectSerializer.FromXml2Format(xml); Assert.IsNotNull(so2, "SOG deserialization resulted in null object"); Assert.That(so2.Name == so.Name, "Name of deserialized object does not match original name"); Assert.That(so2.Description == so.Description, "Description of deserialized object does not match original name"); }
public void TestCrossOnSameSimulator() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); UUID userId = TestHelpers.ParseTail(0x1); int sceneObjectIdTail = 0x2; EntityTransferModule etmA = new EntityTransferModule(); EntityTransferModule etmB = new EntityTransferModule(); LocalSimulationConnectorModule lscm = new LocalSimulationConnectorModule(); IConfigSource config = new IniConfigSource(); IConfig modulesConfig = config.AddConfig("Modules"); modulesConfig.Set("EntityTransferModule", etmA.Name); modulesConfig.Set("SimulationServices", lscm.Name); SceneHelpers sh = new SceneHelpers(); TestScene sceneA = sh.SetupScene("sceneA", TestHelpers.ParseTail(0x100), 1000, 1000); TestScene sceneB = sh.SetupScene("sceneB", TestHelpers.ParseTail(0x200), 1000, 999); SceneHelpers.SetupSceneModules(new Scene[] { sceneA, sceneB }, config, lscm); SceneHelpers.SetupSceneModules(sceneA, config, etmA); SceneHelpers.SetupSceneModules(sceneB, config, etmB); SceneObjectGroup so1 = SceneHelpers.AddSceneObject(sceneA, 1, userId, "", sceneObjectIdTail); UUID so1Id = so1.UUID; so1.AbsolutePosition = new Vector3(128, 10, 20); // Cross with a negative value so1.AbsolutePosition = new Vector3(128, -10, 20); Assert.IsNull(sceneA.GetSceneObjectGroup(so1Id)); Assert.NotNull(sceneB.GetSceneObjectGroup(so1Id)); }
public void TestRezObjectFromInventoryItem() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); Scene scene = new SceneHelpers().SetupScene(); UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene); SceneObjectGroup sog1 = SceneHelpers.CreateSceneObject(1, user1.PrincipalID); SceneObjectPart sop1 = sog1.RootPart; // Create an object embedded inside the first UUID taskSceneObjectItemId = UUID.Parse("00000000-0000-0000-0000-100000000000"); TaskInventoryItem taskSceneObjectItem = TaskInventoryHelpers.AddSceneObject(scene.AssetService, sop1, "tso", taskSceneObjectItemId, user1.PrincipalID); scene.AddSceneObject(sog1); Vector3 rezPos = new Vector3(10, 10, 10); Quaternion rezRot = new Quaternion(0.5f, 0.5f, 0.5f, 0.5f); Vector3 rezVel = new Vector3(2, 2, 2); scene.RezObject(sop1, taskSceneObjectItem, rezPos, rezRot, rezVel, 0); SceneObjectGroup rezzedObject = scene.GetSceneObjectGroup("tso"); Assert.That(rezzedObject, Is.Not.Null); Assert.That(rezzedObject.AbsolutePosition, Is.EqualTo(rezPos)); // Velocity doesn't get applied, probably because there is no physics in tests (yet) // Assert.That(rezzedObject.Velocity, Is.EqualTo(rezVel)); Assert.That(rezzedObject.Velocity, Is.EqualTo(Vector3.Zero)); // Confusingly, this isn't the rezzedObject.Rotation Assert.That(rezzedObject.RootPart.RotationOffset, Is.EqualTo(rezRot)); }
public void TestDeRezSceneObject() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); UUID userId = UUID.Parse("10000000-0000-0000-0000-000000000001"); TestScene scene = new SceneHelpers().SetupScene(); IConfigSource configSource = new IniConfigSource(); IConfig config = configSource.AddConfig("Startup"); config.Set("serverside_object_permissions", true); SceneHelpers.SetupSceneModules(scene, configSource, new object[] { new PermissionsModule() }); IClientAPI client = SceneHelpers.AddScenePresence(scene, userId).ControllingClient; // Turn off the timer on the async sog deleter - we'll crank it by hand for this test. AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter; sogd.Enabled = false; SceneObjectPart part = new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero); part.Name = "obj1"; scene.AddNewSceneObject(new SceneObjectGroup(part), false); List<uint> localIds = new List<uint>(); localIds.Add(part.LocalId); scene.DeRezObjects(client, localIds, UUID.Zero, DeRezAction.Delete, UUID.Zero); sogd.InventoryDeQueueAndDelete(); SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); Assert.That(retrievedPart, Is.Null); }
public void TestUpdateScene() { TestHelpers.InMethod(); Scene scene = new SceneHelpers().SetupScene(); scene.Update(1); Assert.That(scene.Frame, Is.EqualTo(1)); }
public void TestTakeCopyWhenCopierIsOwnerWithPerms() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); config.Configs["Modules"].Set("InventoryAccessModule", "BasicInventoryAccessModule"); TestScene scene = new SceneHelpers().SetupScene("s1", TestHelpers.ParseTail(0x99), 1000, 1000, config); SceneHelpers.SetupSceneModules(scene, config, new PermissionsModule(), new BasicInventoryAccessModule()); UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, TestHelpers.ParseTail(0x1)); TestClient client = (TestClient)SceneHelpers.AddScenePresence(scene, ua.PrincipalID).ControllingClient; // Turn off the timer on the async sog deleter - we'll crank it by hand for this test. AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter; sogd.Enabled = false; SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, "so1", ua.PrincipalID); uint soLocalId = so.LocalId; // so.UpdatePermissions( // ua.PrincipalID, (byte)PermissionWho.Owner, so.LocalId, (uint)OpenMetaverse.PermissionMask.Copy, 1); // so.UpdatePermissions( // ua.PrincipalID, (byte)PermissionWho.Owner, so.LocalId, (uint)OpenMetaverse.PermissionMask.Transfer, 0); // so.UpdatePermissions( // ua.PrincipalID, (byte)PermissionWho.Base, so.LocalId, (uint)OpenMetaverse.PermissionMask.Transfer, 0); // scene.HandleObjectPermissionsUpdate(client, client.AgentId, client.SessionId, (byte)PermissionWho.Owner, so.LocalId, (uint)OpenMetaverse.PermissionMask.Transfer, 0); // Ideally we might change these via client-focussed method calls as commented out above. However, this // becomes very convoluted so we will set only the copy perm directly. so.RootPart.BaseMask = (uint)OpenMetaverse.PermissionMask.Copy; // so.RootPart.OwnerMask = (uint)OpenMetaverse.PermissionMask.Copy; List<uint> localIds = new List<uint>(); localIds.Add(so.LocalId); // Specifying a UUID.Zero in this case will currently plop it in Lost and Found scene.DeRezObjects(client, localIds, UUID.Zero, DeRezAction.TakeCopy, UUID.Zero); // Check that object isn't copied until we crank the sogd handle. SceneObjectPart retrievedPart = scene.GetSceneObjectPart(so.LocalId); Assert.That(retrievedPart, Is.Not.Null); Assert.That(retrievedPart.ParentGroup.IsDeleted, Is.False); sogd.InventoryDeQueueAndDelete(); // Check that object is still there. SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(so.LocalId); Assert.That(retrievedPart2, Is.Not.Null); Assert.That(client.ReceivedKills.Count, Is.EqualTo(0)); // Check that we have a copy in inventory InventoryItemBase item = UserInventoryHelpers.GetInventoryItem(scene.InventoryService, ua.PrincipalID, "Lost And Found/so1"); Assert.That(item, Is.Not.Null); }
public void TestClose() { TestHelpers.InMethod(); SceneHelpers sh = new SceneHelpers(); Scene scene = sh.SetupScene(); sh.SceneManager.Close(); Assert.That(scene.ShuttingDown, Is.True); }
private void SetupScene(bool reuseTextures) { Scene = new SceneHelpers().SetupScene(); Dtm = new DynamicTextureModule(); Dtm.ReuseTextures = reuseTextures; Vrm = new VectorRenderModule(); SceneHelpers.SetupSceneModules(Scene, Dtm, Vrm); }
private Scene CreateDefaultTestScene() { IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); config.Configs["Modules"].Set("InventoryAccessModule", "BasicInventoryAccessModule"); Scene scene = new SceneHelpers().SetupScene(); SceneHelpers.SetupSceneModules(scene, config, new AttachmentsModule(), new BasicInventoryAccessModule()); return scene; }
public override void SetUp() { base.SetUp(); m_archiverModule = new ArchiverModule(); m_serialiserModule = new SerialiserModule(); TerrainModule terrainModule = new TerrainModule(); m_sceneHelpers = new SceneHelpers(); m_scene = m_sceneHelpers.SetupScene(); SceneHelpers.SetupSceneModules(m_scene, m_archiverModule, m_serialiserModule, terrainModule); }
public void TestFlyingAnimation() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); TestScene scene = new SceneHelpers().SetupScene(); ScenePresence sp = SceneHelpers.AddScenePresence(scene, TestHelpers.ParseTail(0x1)); sp.Flying = true; sp.PhysicsCollisionUpdate(new CollisionEventUpdate()); Assert.That(sp.Animator.CurrentMovementAnimation, Is.EqualTo("HOVER")); }
public void SetUp() { UUID userId = TestHelpers.ParseTail(0x3); J2KDecoderModule j2kdm = new J2KDecoderModule(); SceneHelpers sceneHelpers = new SceneHelpers(); scene = sceneHelpers.SetupScene(); SceneHelpers.SetupSceneModules(scene, j2kdm); tc = new TestClient(SceneHelpers.GenerateAgentData(userId), scene); llim = new LLImageManager(tc, scene.AssetService, j2kdm); }
public void TestCreateVarScene() { TestHelpers.InMethod(); UUID regionUuid = TestHelpers.ParseTail(0x1); uint sizeX = 512; uint sizeY = 512; Scene scene = new SceneHelpers().SetupScene("scene", regionUuid, 1000, 1000, sizeX, sizeY, new IniConfigSource()); Assert.AreEqual(sizeX, scene.RegionInfo.RegionSizeX); Assert.AreEqual(sizeY, scene.RegionInfo.RegionSizeY); }
public void TestTextureNotFound() { TestHelpers.InMethod(); // Overkill - we only really need the asset service, not a whole scene. Scene scene = new SceneHelpers().SetupScene(); GetTextureHandler handler = new GetTextureHandler(null, scene.AssetService, "TestGetTexture", null); TestOSHttpRequest req = new TestOSHttpRequest(); TestOSHttpResponse resp = new TestOSHttpResponse(); req.Url = new Uri("http://localhost/?texture_id=00000000-0000-1111-9999-000000000012"); handler.Handle(null, null, req, resp); Assert.That(resp.StatusCode, Is.EqualTo((int)System.Net.HttpStatusCode.NotFound)); }
public void TestBasic() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); TestScene scene = new SceneHelpers().SetupScene(); IConfigSource configSource = new IniConfigSource(); IConfig config = configSource.AddConfig("Groups"); config.Set("Enabled", true); config.Set("Module", "GroupsModule"); config.Set("DebugEnabled", true); SceneHelpers.SetupSceneModules( scene, configSource, new object[] { new MockGroupsServicesConnector() }); }