public void ExposingANETClass1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("appInfo", new AppInfo(engine));
            Assert.AreEqual("Test Application 5", engine.Evaluate <string>("appInfo.name + ' ' + appInfo.version"));
        }
        public void CallANETMethod1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalFunction("test", new Func <int, int, int>((a, b) => a + b));
            Assert.AreEqual(11, engine.Evaluate <int>("test(5, 6)"));
        }
        public void CallJavaScriptFunction1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.Evaluate("function test(a, b) { return a + b }");
            Assert.AreEqual(11, engine.CallGlobalFunction <int>("test", 5, 6));
        }
Example #4
0
        public void AnonymousProperty()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithAnonymousProperty(engine));
            Assert.AreEqual(5, engine.Evaluate <int>("test['']"));
        }
        public void ExposingANETClass3()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("Random", new RandomConstructor(engine));
            Assert.AreEqual(0.15155745910087481, engine.Evaluate <double>("var rand = new Random(1000); rand.nextDouble()"));
        }
        public void ExposingANETClass2()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("math2", new Math2(engine));
            Assert.AreEqual(3.0, engine.Evaluate <double>("math2.log10(1000)"));
        }
        public void AccessingAndModifyingGlobalVariables1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("interop", 15);
            engine.ExecuteFile(@"..\..\..\Barista.UnitTests.Jurassic\Core\Sample Files\globals1.js");
            Assert.AreEqual(20, engine.GetGlobalValue <int>("interop"));
        }
Example #8
0
        public void IntProperty()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithProperty(engine));

            Assert.AreEqual(9, engine.Evaluate <int>("test.TestInt"));
            Assert.AreEqual(5, engine.Evaluate <int>("test.TestInt = 5; test.TestInt"));
            Assert.AreEqual(0, engine.Evaluate <int>("test.TestInt = 'test'; test.TestInt"));
        }
Example #9
0
        public void PrivateSetter()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithPrivateSetter(engine));
            Assert.AreEqual(11, engine.Evaluate <int>("test.GetterOnly"));
            Assert.AreEqual(11, engine.Evaluate <int>("test.GetterOnly = 3; test.GetterOnly"));
            Assert.AreEqual(13, engine.Evaluate <int>("test.PrivateSetter"));
            Assert.AreEqual(13, engine.Evaluate <int>("test.PrivateSetter = 4; test.PrivateSetter"));
        }
Example #10
0
        public void ObjectProperty()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithProperty(engine));

            Assert.AreEqual(5, engine.Evaluate <object>("test.TestObj = 5; test.TestObj"));
            Assert.AreEqual("test", engine.Evaluate <object>("test.TestObj = 'test'; test.TestObj"));
            Assert.AreEqual(Undefined.Value, engine.Evaluate <object>("test.TestObj = undefined; test.TestObj"));
            Assert.AreEqual(Null.Value, engine.Evaluate <object>("test.TestObj = null; test.TestObj"));
        }
Example #11
0
        public void StringProperty()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithProperty(engine));

            Assert.AreEqual("Initial", engine.Evaluate <string>("test.TestStr"));
            Assert.AreEqual("test", engine.Evaluate <string>("test.TestStr = 'test'; test.TestStr"));
            Assert.AreEqual("null", engine.Evaluate <string>("test.TestStr = null; test.TestStr"));
            Assert.AreEqual("5", engine.Evaluate <string>("test.TestStr = 5; test.TestStr"));
        }
Example #12
0
        public void PropertyAttributes()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("test", new ClassWithProperty(engine));

            // IsEnumerable.
            Assert.AreEqual("TestStr,TestObj", engine.Evaluate <string>("array = []; for (var key in test) array.push(key); array.join(',')"));

            // IsConfigurable
            Assert.AreEqual(false, engine.Evaluate <bool>("delete test.TestStr"));
            Assert.AreEqual(true, engine.Evaluate <bool>("delete test.TestObj"));
        }
        public void ConsoleAPI1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.SetGlobalValue("console", new Barista.Jurassic.Library.FirebugConsole(engine));
        }
        public void ExecutingScript1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            engine.ExecuteFile(@"..\..\..\Barista.UnitTests.Jurassic\Core\Sample Files\execute1.js");
        }
        public void EvaluateExpression2()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            Assert.AreEqual(3, engine.Evaluate <int>("1.5 + 2.4"));
        }
        public void EvaluateExpression1()
        {
            var engine = new Barista.Jurassic.ScriptEngine();

            Assert.AreEqual(52, engine.Evaluate("5 * 10 + 2"));
        }