Esempio n. 1
0
        public ScriptEngine(WebClient client)
        {
            m_Client = client;

            m_AppDomain = AppDomain.CreateDomain("ScriptEngine");

            m_Site = new MyVsaSite(this);

            m_Engine             = new Microsoft.JScript.Vsa.VsaEngine(false);
            m_Engine.RootMoniker = "Cb://Web/Scripting";
            //m_Engine.Site = (IJSVsaSite) m_Site;
            m_Engine.InitNew();
            m_Engine.RootNamespace = GetType().Namespace;
            m_Engine.SetOption("AlwaysGenerateIL", false);
            m_Engine.SetOption("CLSCompliant", false);
            m_Engine.GenerateDebugInfo = true;
            m_Engine.SetOutputStream(new EmptyMessageReceiver());


            SetGlobalObject("Context", this);

            AddCodeBlock("__init",
                         @"
					function alert(msg) { Context.Alert(msg); }
					function confirm(msg) { return Context.Confirm(msg); }
					function setInterval(funcName, delay) { Context.SetInterval(funcName, delay); }
			"            );
        }
 		public void OnEngineClosed ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;
			engine.Close ();
		
			int size;

			try {
				size = items.Count;
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.EngineClosed, e.ErrorCode, "#1");
			}

			try {
				item = items.CreateItem ("itemx", VsaItemType.Code, 
							 VsaItemFlag.Class);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.EngineClosed, e.ErrorCode, "#2");
			}
		}
Esempio n. 3
0
        public JScriptEngine(object scriptGlobal) : base(scriptGlobal)
        {
            engine             = new Microsoft.JScript.Vsa.VsaEngine();
            engine.RootMoniker = "sharpvectors://jsengine/" + counter++;
            engine.Site        = this;
            engine.InitNew();
            engine.RootNamespace     = "SharpVectors.Scripting";
            engine.GenerateDebugInfo = false;
            engine.RevokeCache();
            engine.SetOption("Fast", false);

            items = engine.Items;
            Assembly          asm     = typeof(SharpVectors.Scripting.JScriptEngine).Assembly;
            IVsaReferenceItem refItem = (IVsaReferenceItem)items.CreateItem(asm.Location, VsaItemType.Reference, VsaItemFlag.None);

            refItem.AssemblyName = asm.Location;
        }
Esempio n. 4
0
        public JScriptEngine(object scriptGlobal)
            : base(scriptGlobal)
        {
            engine = new Microsoft.JScript.Vsa.VsaEngine();
              engine.RootMoniker = "sharpvectors://jsengine/" + counter++;
              engine.Site = this;
              engine.InitNew();
              engine.RootNamespace = "SharpVectors.Scripting";
              engine.GenerateDebugInfo = false;
              engine.RevokeCache();
              engine.SetOption("Fast", false);

              items = engine.Items;
              Assembly asm = typeof(SharpVectors.Scripting.JScriptEngine).Assembly;
              IVsaReferenceItem refItem = (IVsaReferenceItem)items.CreateItem(asm.Location, VsaItemType.Reference, VsaItemFlag.None);
              refItem.AssemblyName = asm.Location;
        }
		public void OnItemNotFound ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;

			try {
				item = items [-1];
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#3");
			}


			try {
				item = items [20];
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#4");
			}

			try {
				item = items ["IamNotHere"];
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#5");
			}

			try {
				items.Remove (20);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#6");
			}

			try {
				items.Remove (-1);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#7");
			}
		}
		public void IsDirtyOnCreateItem ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine.RootMoniker = "foo://nowhere/path";
			engine.Site = new Site ();
			engine.InitNew ();

			items = engine.Items;			

			item = items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);
			Assert.AreEqual (true,item.IsDirty, "#2");

			item = items.CreateItem ("item2", VsaItemType.AppGlobal, VsaItemFlag.None);
			Assert.AreEqual (true, item.IsDirty, "#3");

			item = items.CreateItem ("item3", VsaItemType.Code, VsaItemFlag.Module);
			Assert.AreEqual (true, item.IsDirty, "#4");
		}
		public void IsDirtyOnEngineClosed ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine.RootMoniker = "foo://nowhere/path";
			engine.Site = new Site ();
			engine.InitNew ();

			items = engine.Items;			

			item = items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);
			engine.Close ();

			try {
				bool dirty = item.IsDirty;
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.EngineClosed, e.ErrorCode, "#1");
			}
		}
		public void CreateItemOnRepeatedName ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;

			items.CreateItem ("item2", VsaItemType.AppGlobal, VsaItemFlag.None);

			try {
				items.CreateItem ("item2", 
						  VsaItemType.Reference, 
						  VsaItemFlag.None);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNameInUse, e.ErrorCode, "#20");
			}
		}
		public void Retrieve ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;

			items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);
			items.CreateItem ("item2", VsaItemType.AppGlobal, VsaItemFlag.None);
			items.CreateItem ("item3", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item4", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item5", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item6", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item7", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item8", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item9", VsaItemType.Code, VsaItemFlag.Module);
			items.CreateItem ("item10", VsaItemType.Code, VsaItemFlag.Module);

			item = items [2];
			Assert.AreEqual ("item3", item.Name, "#16");

			items.Remove ("item6");
			Assert.AreEqual ("item7", items [5].Name, "#17");

			try { 
				items.Remove ("itemNonExistent");
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#18");
			}
		
			items.Remove (3);
			Assert.AreEqual ("item5", items [3].Name, "#19");
		}
		public void Remove ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;

			items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);
			items.CreateItem ("item2", VsaItemType.AppGlobal, VsaItemFlag.None);
			items.CreateItem ("item3", VsaItemType.Code, VsaItemFlag.Module);

			Assert.AreEqual (3, items.Count, "#12");

			try {
				item = items [4];
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#13");
			}

			string ERASED_ITEM = "item2";

			items.Remove (ERASED_ITEM);

			Assert.AreEqual (2, items.Count, "#14");

			try {
				item = items [ERASED_ITEM];
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemNotFound, e.ErrorCode, "#15");
			}
		}
		public void OnItemFlagNotSupported ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine = new VsaEngine ();
			engine.RootMoniker = "com.foo://path/to/nowhere";
			engine.Site = new Site ();

			engine.InitNew ();
			items = engine.Items;

			try {
				item = items.CreateItem ("item1", 
							  VsaItemType.Reference,
							  VsaItemFlag.Class);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemFlagNotSupported, e.ErrorCode, "#8");
			}

			try {
				item = items.CreateItem ("item2", 
							  VsaItemType.Reference,
							  VsaItemFlag.Module);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemFlagNotSupported, e.ErrorCode, "#9");
			}

			try {
				item = items.CreateItem ("item3", 
							 VsaItemType.AppGlobal,
							 VsaItemFlag.Class);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemFlagNotSupported, e.ErrorCode, "#10");
			}

			try {
				item = items.CreateItem ("item4", 
							 VsaItemType.AppGlobal,
							 VsaItemFlag.Module);
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.ItemFlagNotSupported, e.ErrorCode, "#11");
			}

		}
		public void GetOptionOnEngineClosed ()
		{		
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine.RootMoniker = "foo://nowhere/path";
			engine.Site = new Site ();
			engine.InitNew ();

			items = engine.Items;			

			item = items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);

			engine.Close ();

			try {
				object opt = item.GetOption ("AlwaysGenerateIL");
			} catch (VsaException e) {
				Assert.AreEqual (VsaError.EngineClosed, e.ErrorCode, "#6");
			}
		}
		public void SetOptionOnOptionNotSupported ()
		{
			VsaEngine engine = new VsaEngine ();
			IVsaItems items;
			IVsaItem item;

			engine.RootMoniker = "foo://nowhere/path";
			engine.Site = new Site ();
			engine.InitNew ();
  
			items = engine.Items;			

			item = items.CreateItem ("item1", VsaItemType.Reference, VsaItemFlag.None);

			try {
				item.SetOption ("OptionNotSupportedByThisScriptingEngine", true);
  			} catch (VsaException e) {
				Assert.AreEqual (VsaError.OptionNotSupported, e.ErrorCode, "#9");
			}
		}