From 26fe59c35e987283e5df07d3d06b00a886b7fbc4 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 24 Feb 2014 19:43:06 +0000 Subject: Improve regression test TestSetAppearance() --- .../Tests/AvatarFactoryModuleTests.cs | 111 +++++++++++++-------- 1 file changed, 69 insertions(+), 42 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs index b1f26ef..de014ba 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs @@ -48,33 +48,10 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory public void TestSetAppearance() { TestHelpers.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - UUID userId = TestHelpers.ParseTail(0x1); - - AvatarFactoryModule afm = new AvatarFactoryModule(); - TestScene scene = new SceneHelpers().SetupScene(); - SceneHelpers.SetupSceneModules(scene, afm); - ScenePresence sp = SceneHelpers.AddScenePresence(scene, userId); - - byte[] visualParams = new byte[AvatarAppearance.VISUALPARAM_COUNT]; - for (byte i = 0; i < visualParams.Length; i++) - visualParams[i] = i; - -// afm.SetAppearance(sp, new Primitive.TextureEntry(TestHelpers.ParseTail(0x10)), visualParams); - - // TODO: Check baked texture -// Assert.AreEqual(visualParams, sp.Appearance.VisualParams); - } - - [Test] - public void TestSaveBakedTextures() - { - TestHelpers.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); +// TestHelpers.EnableLogging(); UUID userId = TestHelpers.ParseTail(0x1); - UUID eyesTextureId = TestHelpers.ParseTail(0x2); + UUID bakedTextureID = TestHelpers.ParseTail(0x2); // We need an asset cache because otherwise the LocalAssetServiceConnector will short-circuit directly // to the AssetService, which will then store temporary and local assets permanently @@ -86,12 +63,14 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory ScenePresence sp = SceneHelpers.AddScenePresence(scene, userId); // TODO: Use the actual BunchOfCaps functionality once we slot in the CapabilitiesModules - AssetBase uploadedAsset; - uploadedAsset = new AssetBase(eyesTextureId, "Baked Texture", (sbyte)AssetType.Texture, userId.ToString()); - uploadedAsset.Data = new byte[] { 2 }; - uploadedAsset.Temporary = true; - uploadedAsset.Local = true; // Local assets aren't persisted, non-local are - scene.AssetService.Store(uploadedAsset); + AssetBase bakedTextureAsset; + bakedTextureAsset + = new AssetBase( + bakedTextureID, "Test Baked Texture", (sbyte)AssetType.Texture, userId.ToString()); + bakedTextureAsset.Data = new byte[] { 2 }; // Not necessary to have a genuine JPEG2000 asset here yet + bakedTextureAsset.Temporary = true; + bakedTextureAsset.Local = true; + scene.AssetService.Store(bakedTextureAsset); byte[] visualParams = new byte[AvatarAppearance.VISUALPARAM_COUNT]; for (byte i = 0; i < visualParams.Length; i++) @@ -100,19 +79,20 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory Primitive.TextureEntry bakedTextureEntry = new Primitive.TextureEntry(TestHelpers.ParseTail(0x10)); uint eyesFaceIndex = (uint)AppearanceManager.BakeTypeToAgentTextureIndex(BakeType.Eyes); Primitive.TextureEntryFace eyesFace = bakedTextureEntry.CreateFace(eyesFaceIndex); - eyesFace.TextureID = eyesTextureId; - afm.SetAppearance(sp, bakedTextureEntry, visualParams, null); - afm.SaveBakedTextures(userId); -// Dictionary bakedTextures = afm.GetBakedTextureFaces(userId); + int rebakeRequestsReceived = 0; + ((TestClient)sp.ControllingClient).OnReceivedSendRebakeAvatarTextures += id => rebakeRequestsReceived++; - // We should also inpsect the asset data store layer directly, but this is difficult to get at right now. - assetCache.Clear(); + // This is the alpha texture + eyesFace.TextureID = bakedTextureID; + afm.SetAppearance(sp, bakedTextureEntry, visualParams, null); + + Assert.That(rebakeRequestsReceived, Is.EqualTo(0)); - AssetBase eyesBake = scene.AssetService.Get(eyesTextureId.ToString()); + AssetBase eyesBake = scene.AssetService.Get(bakedTextureID.ToString()); Assert.That(eyesBake, Is.Not.Null); - Assert.That(eyesBake.Temporary, Is.False); - Assert.That(eyesBake.Local, Is.False); + Assert.That(eyesBake.Temporary, Is.True); + Assert.That(eyesBake.Local, Is.True); } /// @@ -131,7 +111,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory UUID userId = TestHelpers.ParseTail(0x1); UUID alphaTextureID = new UUID("3a367d1c-bef1-6d43-7595-e88c1e3aadb3"); - // We need an asset cache because otherwise the LocalAssetServiceConnector will short-circuit directly // to the AssetService, which will then store temporary and local assets permanently CoreAssetCache assetCache = new CoreAssetCache(); @@ -144,7 +123,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory AssetBase libraryAsset; libraryAsset = new AssetBase( - alphaTextureID, "Default Alpha Layer Texturee", (sbyte)AssetType.Texture, userId.ToString()); + alphaTextureID, "Default Alpha Layer Texture", (sbyte)AssetType.Texture, userId.ToString()); libraryAsset.Data = new byte[] { 2 }; // Not necessary to have a genuine JPEG2000 asset here yet libraryAsset.Temporary = false; libraryAsset.Local = false; @@ -167,5 +146,53 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory Assert.That(rebakeRequestsReceived, Is.EqualTo(0)); } + + [Test] + public void TestSaveBakedTextures() + { + TestHelpers.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + UUID userId = TestHelpers.ParseTail(0x1); + UUID eyesTextureId = TestHelpers.ParseTail(0x2); + + // We need an asset cache because otherwise the LocalAssetServiceConnector will short-circuit directly + // to the AssetService, which will then store temporary and local assets permanently + CoreAssetCache assetCache = new CoreAssetCache(); + + AvatarFactoryModule afm = new AvatarFactoryModule(); + TestScene scene = new SceneHelpers(assetCache).SetupScene(); + SceneHelpers.SetupSceneModules(scene, afm); + ScenePresence sp = SceneHelpers.AddScenePresence(scene, userId); + + // TODO: Use the actual BunchOfCaps functionality once we slot in the CapabilitiesModules + AssetBase uploadedAsset; + uploadedAsset = new AssetBase(eyesTextureId, "Baked Texture", (sbyte)AssetType.Texture, userId.ToString()); + uploadedAsset.Data = new byte[] { 2 }; + uploadedAsset.Temporary = true; + uploadedAsset.Local = true; // Local assets aren't persisted, non-local are + scene.AssetService.Store(uploadedAsset); + + byte[] visualParams = new byte[AvatarAppearance.VISUALPARAM_COUNT]; + for (byte i = 0; i < visualParams.Length; i++) + visualParams[i] = i; + + Primitive.TextureEntry bakedTextureEntry = new Primitive.TextureEntry(TestHelpers.ParseTail(0x10)); + uint eyesFaceIndex = (uint)AppearanceManager.BakeTypeToAgentTextureIndex(BakeType.Eyes); + Primitive.TextureEntryFace eyesFace = bakedTextureEntry.CreateFace(eyesFaceIndex); + eyesFace.TextureID = eyesTextureId; + + afm.SetAppearance(sp, bakedTextureEntry, visualParams, null); + afm.SaveBakedTextures(userId); +// Dictionary bakedTextures = afm.GetBakedTextureFaces(userId); + + // We should also inpsect the asset data store layer directly, but this is difficult to get at right now. + assetCache.Clear(); + + AssetBase eyesBake = scene.AssetService.Get(eyesTextureId.ToString()); + Assert.That(eyesBake, Is.Not.Null); + Assert.That(eyesBake.Temporary, Is.False); + Assert.That(eyesBake.Local, Is.False); + } } } \ No newline at end of file -- cgit v1.1