private Scene CreateScriptingEnabledTestScene() { IConfigSource config = new IniConfigSource(); List <object> modules = new List <object>(); AddCommonConfig(config, modules); AddScriptingConfig(config, modules); Scene scene = new SceneHelpers().SetupScene( "attachments-test-scene", TestHelpers.ParseTail(999), 1000, 1000, config); SceneHelpers.SetupSceneModules(scene, config, modules.ToArray()); scene.StartScripts(); return(scene); }
public void TestPostAssetRewrite() { TestHelpers.InMethod(); // TestHelpers.EnableLogging(); XEngine xengine = new OpenSim.Region.ScriptEngine.XEngine.XEngine(); xengine.DebugLevel = 1; IniConfigSource configSource = new IniConfigSource(); IConfig startupConfig = configSource.AddConfig("Startup"); startupConfig.Set("DefaultScriptEngine", "XEngine"); IConfig xEngineConfig = configSource.AddConfig("XEngine"); xEngineConfig.Set("Enabled", "true"); xEngineConfig.Set("StartDelay", "0"); xEngineConfig.Set("AppDomainLoading", "false"); string homeUrl = "http://hg.HomeTestPostAssetRewriteGrid.com"; string foreignUrl = "http://hg.ForeignTestPostAssetRewriteGrid.com"; int soIdTail = 0x1; UUID assetId = TestHelpers.ParseTail(0x10); UUID userId = TestHelpers.ParseTail(0x100); UUID sceneId = TestHelpers.ParseTail(0x1000); string userFirstName = "TestPostAsset"; string userLastName = "Rewrite"; int soPartsCount = 3; Scene scene = new SceneHelpers().SetupScene("TestPostAssetRewriteScene", sceneId, 1000, 1000, configSource); SceneHelpers.SetupSceneModules(scene, configSource, xengine); scene.StartScripts(); HGAssetMapper hgam = new HGAssetMapper(scene, homeUrl); UserAccount ua = UserAccountHelpers.CreateUserWithInventory(scene, userFirstName, userLastName, userId, "password"); SceneObjectGroup so = SceneHelpers.AddSceneObject(scene, soPartsCount, ua.PrincipalID, "part", soIdTail); RezScript( scene, so.UUID, "default { state_entry() { llSay(0, \"Hello World\"); } }", "item1", ua.PrincipalID); AssetBase asset = AssetHelpers.CreateAsset(assetId, so); asset.CreatorID = foreignUrl; hgam.PostAsset(foreignUrl, asset); // Check transformed asset. AssetBase ncAssetGet = scene.AssetService.Get(assetId.ToString()); Assert.AreEqual(foreignUrl, ncAssetGet.CreatorID); string xmlData = Utils.BytesToString(ncAssetGet.Data); XmlDocument ncAssetGetXmlDoc = new XmlDocument(); ncAssetGetXmlDoc.XmlResolver = null; ncAssetGetXmlDoc.LoadXml(xmlData); // Console.WriteLine(ncAssetGetXmlDoc.OuterXml); XmlNodeList creatorDataNodes = ncAssetGetXmlDoc.GetElementsByTagName("CreatorData"); Assert.AreEqual(soPartsCount, creatorDataNodes.Count); //Console.WriteLine("creatorDataNodes {0}", creatorDataNodes.Count); foreach (XmlNode creatorDataNode in creatorDataNodes) { Assert.AreEqual( string.Format("{0};{1} {2}", homeUrl, ua.FirstName, ua.LastName), creatorDataNode.InnerText); } // Check that saved script nodes have attributes XmlNodeList savedScriptStateNodes = ncAssetGetXmlDoc.GetElementsByTagName("SavedScriptState"); Assert.AreEqual(1, savedScriptStateNodes.Count); Assert.AreEqual(1, savedScriptStateNodes[0].Attributes.Count); XmlNode uuidAttribute = savedScriptStateNodes[0].Attributes.GetNamedItem("UUID"); Assert.NotNull(uuidAttribute); // XXX: To check the actual UUID attribute we would have to do some work to retreive the UUID of the task // item created earlier. }