public void AudioSwitcher_getAudioDevices_Playback_IsPlayback()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device  = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
         var devices = engine.Evaluate <JavaScriptAudioDevice[]>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)").Value;
         Assert.True(devices.All(x => x.IsPlayback));
         Assert.True(device.IsPlayback);
     }
 }
 public void AudioSwitcher_getAudioDevices_Capture_IsCapture_Enum()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device  = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
         var devices = engine.Evaluate <IEnumerable <JavaScriptAudioDevice> >("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)").Value;
         Assert.True(devices.All(x => x.IsCapture));
         Assert.True(device.IsCapture);
     }
 }
        public void AudioSwitcher_AudioDevice_toggleMute()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0].toggleMute()";

                //Toggles the mute and tests non equality of state
                var isMuted = engine.Evaluate <bool>(js).Value;
                Assert.NotEqual(isMuted, engine.Evaluate <bool>(js).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_Exists()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0];";

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                Assert.NotEqual(null, engine.Evaluate <JavaScriptAudioDevice>(js));
                Assert.IsType <JavaScriptAudioDevice>(engine.Evaluate <JavaScriptAudioDevice>(js).Value);
            }
        }
 public void AudioSwitcher_AudioDevice_setMute_false()
 {
     using (var engine = new JsEngine())
     {
         const string js = @"AudioSwitcher.getAudioDevices()[0].mute(false)";
         Assert.Equal(false, engine.Evaluate <bool>(js).Value);
     }
 }
        public void AudioSwitcher_AudioDevice_setVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setTo10       = @"AudioSwitcher.getAudioDevices()[0].volume(10)";
                const string getVolume     = @"AudioSwitcher.getAudioDevices()[0].volume()";
                var          orignalVol    = engine.Evaluate <int>(getVolume).Value;
                string       setToOriginal = @"AudioSwitcher.getAudioDevices()[0].volume(" + orignalVol + ")";

                Assert.Equal(10, engine.Evaluate <int>(setTo10).Value);
                Assert.Equal(10, engine.Evaluate <int>(getVolume).Value);
                Assert.Equal(orignalVol, engine.Evaluate <int>(setToOriginal).Value);
            }
        }
        public void AudioSwitcher_AudioDevice_Exists()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0];";

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                Assert.NotEqual(null, engine.Evaluate<JavaScriptAudioDevice>(js));
                Assert.IsType<JavaScriptAudioDevice>(engine.Evaluate<JavaScriptAudioDevice>(js).Value);
            }
        }
Exemple #8
0
        public async Task EvalScript(CommandContext ctx,
                                     [RemainingText, Description("실행할 코드.")]
                                     string code)
        {
            await ctx.TriggerTypingAsync();

            await ctx.RespondAsync(JsEngine.Evaluate(code, TimeSpan.FromSeconds(5)));
        }
 public void AudioSwitcher_getAudioDevices_Capture()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         Assert.DoesNotThrow(() => engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)"));
         Assert.Equal(2, engine.Evaluate <int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE).length").Value);
     }
 }
 public void AudioSwitcher_getAudioDevices_All()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.ALL)");
         Assert.Equal(4, engine.Evaluate <int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.ALL).length").Value);
     }
 }
Exemple #11
0
        public void Engine_WithArgs()
        {
            string[] test = new string[]
            {
                "One",
                "Two"
            };

            var engine = new JsEngine();

            Assert.NotNull(engine.Evaluate <string[]>("args", test));
        }
Exemple #12
0
        public void Engine_WithArgs()
        {
            string[] test = new string[]
            {
                "One",
                "Two"
            };

            var engine = new JsEngine();

            Assert.NotNull(engine.Evaluate<string[]>("args", test));
        }
        public void Engine_Dynamic_Value_Exists()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));
                Assert.Equal(testLib.Property, engine.Evaluate <int>("Dyanmic.Property").Value);
            }
        }
        public void AudioSwitcher_AudioDevice_setMute_true()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0].mute(true)";

                //Sets to muted
                Assert.Equal(true, engine.Evaluate <bool>(js).Value);
            }
        }
        public void AudioSwitcher_getAudioDeviceByName_Capture_Flags()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevice(AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0].name, AudioSwitcher.DeviceType.CAPTURE);";

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                var audioDevice         = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
                var resolvedAudioDevice = engine.Evaluate <JavaScriptAudioDevice>(js).Value;

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType <JavaScriptAudioDevice>(resolvedAudioDevice);
                Assert.True(resolvedAudioDevice.IsCapture);
            }
        }
        public void AudioSwitcher_getAudioDeviceByName()
        {
            const string js = @"AudioSwitcher.getAudioDevice(AudioSwitcher.getAudioDevices()[0].name);";

            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                ExecutionResult result = null;
                Assert.DoesNotThrow(() => result = engine.Execute(js));
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);

                var audioDevice         = engine.Evaluate <JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices()[0]").Value;
                var resolvedAudioDevice = engine.Evaluate <JavaScriptAudioDevice>(js).Value;

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType <JavaScriptAudioDevice>(resolvedAudioDevice);
            }
        }
        public void AudioSwitcher_AudioDevice_setDefault_Capture_Comm()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setDefault   = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0].setAsDefaultComm()";
                const string checkDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0].isDefaultComm";

                engine.Execute(setDefault);

                Assert.Equal(true, engine.Evaluate <bool>(checkDefault).Value);
            }
        }
        public void Engine_Dynamic_Method_Returns()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate <string>("Dynamic.Method()");

                Assert.Equal(testLib.Method(), result.Value);
            }
        }
        public void Engine_Dynamic_Method_Returns_Clr()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate <int>("Dynamic.MethodReturnClr().Field");

                Assert.Equal(new ClrObject().Field, result.Value);
            }
        }
        public void Engine_Dynamic_Method_Func_Returns()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate<string>("Dynamic.MethodFunc()");

                Assert.NotNull(result.ExecutionException);
                //Assert.Equal(testLib.MethodFunc()(), result.Value);
            }
        }
        public void Engine_Dynamic_Delegate_Func_Fail()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.True(engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate <string>("Dynamic.DelegateWithArguments('Hello')");

                Assert.NotNull(result.ExecutionException);
                //Assert.Equal(testLib.DelegateWithArguments(), result.Value);
            }
        }
        public void Engine_Dynamic_Delegate_Func_Fail()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.True(engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate<string>("Dynamic.DelegateWithArguments('Hello')");

                Assert.NotNull(result.ExecutionException);
                //Assert.Equal(testLib.DelegateWithArguments(), result.Value);
            }
        }
        public void Engine_Dynamic_Delegate_Returns()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("import('Dyanmic');");

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate <int>("Dynamic.Delegate()");

                Assert.Equal(testLib.Property, result.Value);
            }
        }
        public void Engine_Dynamic_Delegate_Returns()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("import('Dyanmic');");

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate<int>("Dynamic.Delegate()");

                Assert.Equal(testLib.Property, result.Value);
            }
        }
        public void Engine_Dynamic_Value_Exists()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));
                Assert.Equal(testLib.Property, engine.Evaluate<int>("Dyanmic.Property").Value);
            }
        }
 public void AudioSwitcher_getAudioDevices_Playback_IsPlayback_Enum()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
         var devices = engine.Evaluate<IEnumerable<JavaScriptAudioDevice>>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)").Value;
         Assert.True(devices.All(x => x.IsPlayback));
         Assert.True(device.IsPlayback);
     }
 }
 public void AudioSwitcher_getAudioDevices_Playback()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         engine.Execute("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)");
         Assert.Equal(2, engine.Evaluate<int>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK).length").Value);
     }
 }
 public void AudioSwitcher_getAudioDevices_Capture_IsCapture_List()
 {
     using (var engine = new JsEngine())
     {
         engine.AddAudioSwitcherLibrary(GetAudioController());
         engine.Execute("AudioSwitcher = lib('AudioSwitcher');");
         var device = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)[0]").Value;
         var devices = engine.Evaluate<List<JavaScriptAudioDevice>>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.CAPTURE)").Value;
         Assert.IsAssignableFrom<IEnumerable<JavaScriptAudioDevice>>(devices);
         Assert.IsAssignableFrom<IList<JavaScriptAudioDevice>>(devices);
         Assert.IsType<List<JavaScriptAudioDevice>>(devices);
         Assert.True(devices.All(x => x.IsCapture));
         Assert.True(device.IsCapture);
     }
 }
        public void AudioSwitcher_AudioDevice_toggleMute()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0].toggleMute()";

                //Toggles the mute and tests non equality of state
                var isMuted = engine.Evaluate<bool>(js).Value;
                Assert.NotEqual(isMuted, engine.Evaluate<bool>(js).Value);
            }
        }
Exemple #30
0
        public string BuildJs(string content)
        {
            var buffer = new StringBuilder();


            int offset = 0;

            while (offset < content.Length)
            {
                int beginIndex = content.IndexOf('$', offset);

                if (beginIndex < 0)
                {
                    buffer.Append(content.Substring(offset, content.Length - offset));
                    break;
                }


                if (beginIndex > 0 && content[beginIndex - 1] == '\\')
                {
                    if (beginIndex > offset + 1)
                    {
                        buffer.Append(content.Substring(offset, beginIndex - offset - 1));
                    }

                    buffer.Append('$');

                    offset = beginIndex + 1;

                    continue;
                }


                int delimiterEnd = content.IndexOf('{', beginIndex + 1);

                if (delimiterEnd < beginIndex + 1)
                {
                    buffer.Append(content.Substring(offset, content.Length - offset));
                    break;
                }

                string delimiter = content.Substring(beginIndex + 1, delimiterEnd - beginIndex - 1);


                int endIndex = content.IndexOf("}" + delimiter, delimiterEnd + 1);

                if (endIndex < 0)
                {
                    buffer.Append(content.Substring(offset, delimiterEnd - offset + 1));

                    offset = delimiterEnd + 1;

                    continue;
                }


                string code = content.Substring(delimiterEnd + 1, endIndex - delimiterEnd - 1);

                string result = JsEngine.Evaluate(code, TimeSpan.FromSeconds(3));

                buffer.Append(content.Substring(offset, beginIndex - offset));
                buffer.Append(result);

                offset = endIndex + delimiter.Length + 1;
            }


            return(buffer.ToString());
        }
        public void AudioSwitcher_AudioDevice_setMute_true()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevices()[0].mute(true)";

                //Sets to muted
                Assert.Equal(true, engine.Evaluate<bool>(js).Value);
            }
        }
 public void AudioSwitcher_AudioDevice_setMute_false()
 {
     using (var engine = new JsEngine())
     {
         const string js = @"AudioSwitcher.getAudioDevices()[0].mute(false)";
         Assert.Equal(false, engine.Evaluate<bool>(js).Value);
     }
 }
        public void AudioSwitcher_AudioDevice_setDefault_Playback_Comm()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0].setAsDefaultComm()";
                const string checkDefault = @"AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0].isDefaultComm";

                engine.Execute(setDefault);

                Assert.Equal(true, engine.Evaluate<bool>(checkDefault).Value);
            }
        }
        public void AudioSwitcher_getAudioDeviceByName_Playback_Flags()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string js = @"AudioSwitcher.getAudioDevice(AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0].name, AudioSwitcher.DeviceType.PLAYBACK);";

                var result = engine.Execute(js);
                Assert.NotNull(result);
                Assert.Null(result.ExecutionException);
                Assert.True(result.Success);
                var audioDevice = engine.Evaluate<JavaScriptAudioDevice>("AudioSwitcher.getAudioDevices(AudioSwitcher.DeviceType.PLAYBACK)[0]").Value;
                var resolvedAudioDevice = engine.Evaluate<JavaScriptAudioDevice>(js).Value;

                Assert.NotEqual(null, resolvedAudioDevice);
                Assert.Equal(audioDevice.Id, resolvedAudioDevice.Id);
                Assert.IsType<JavaScriptAudioDevice>(resolvedAudioDevice);
                Assert.True(resolvedAudioDevice.IsPlayback);
            }
        }
        public void Engine_Dynamic_Method_WithArg_Returns()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate<string>("Dynamic.MethodWithArg('Hello')");

                Assert.Equal("Hello", result.Value);
            }
        }
        public void Engine_Dynamic_Method_Returns_ClrArray()
        {
            using (var engine = new JsEngine())
            {
                var testLib = new TestLibrary();
                engine.AddLibrary("Dynamic", testLib);

                engine.Execute("Dynamic = lib('Dynamic');");
                Assert.Equal(true, engine.InternalEngine.HasGlobalValue("Dynamic"));

                var result = engine.Evaluate<int>("Dynamic.MethodReturnClrArray().Length");

                Assert.Equal(2, result.Value);
            }
        }
        public void AudioSwitcher_AudioDevice_setVolume()
        {
            using (var engine = new JsEngine())
            {
                engine.AddAudioSwitcherLibrary(GetAudioController());
                engine.Execute("AudioSwitcher = lib('AudioSwitcher');");

                const string setTo10 = @"AudioSwitcher.getAudioDevices()[0].volume(10)";
                const string getVolume = @"AudioSwitcher.getAudioDevices()[0].volume()";
                var orignalVol = engine.Evaluate<int>(getVolume).Value;
                string setToOriginal = @"AudioSwitcher.getAudioDevices()[0].volume(" + orignalVol + ")";

                Assert.Equal(10, engine.Evaluate<int>(setTo10).Value);
                Assert.Equal(10, engine.Evaluate<int>(getVolume).Value);
                Assert.Equal(orignalVol, engine.Evaluate<int>(setToOriginal).Value);
            }
        }