public void Looks_up_a_n_part_identifier_path_from_the_scope() { //Assert var obj = new JavascriptObject { { "key", new JavascriptObject { { "key2", new JavascriptObject { { "key3", new JavascriptObject { { "key4", 42 } } } } } } } }; var method = _compiler.Parse <object>("key.key2.key3.key4"); method(obj, null).Should().Be(42); }
public Form1() { InitializeComponent(); CefSharp.CefSharpSettings.LegacyJavascriptBindingEnabled = true; //CefSharpSettings.WcfEnabled = true; //var obj = new CSObj(System.Threading.SynchronizationContext.Current); string url = "http://127.0.0.1:9090/page/index.html"; string rootPath = Application.StartupPath.ToString(); string filePath = rootPath + "\\web\\page\\index.html"; this.chromiumWebBrowser1.Load(url); //ChromiumWebBrowser webview = new ChromiumWebBrowser(url) //{ // Dock = DockStyle.Fill, //}; //webview.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; JavascriptObjectTest test = new JavascriptObjectTest(); JavascriptObject javascriptObject = new JavascriptObject(); chromiumWebBrowser1.JavascriptObjectRepository.Register("googleBrower", test, isAsync: true, options: BindingOptions.DefaultBinder); //webview.JavascriptObjectRepository.Register("googleBrower", new CSObj(), false, CefSharp.BindingOptions.DefaultBinder); this.Controls.Add(chromiumWebBrowser1); }
public void Can_created_with_dynamic_features() { //Assert var javascriptObject = new JavascriptObject(); javascriptObject.Should().BeAssignableTo(typeof(DynamicObject)); javascriptObject.Should().BeAssignableTo(typeof(IDictionary <string, object>)); }
public void Returns_undefined_on_non_defined_indexer() { //Assert // ReSharper disable once CollectionNeverUpdated.Local var obj = new JavascriptObject(); obj["nothing"].Should().BeSameAs(JavascriptObject.Undefined); }
public void Handles_undefined_on_2_part_identifier_path() { //Assert var obj = new JavascriptObject(); var method = _compiler.Parse <object>("key.key2"); method(obj, null).Should().BeSameAs(JavascriptObject.Undefined); }
public void Will_parse_this() { //Assert var scope = new JavascriptObject(); var method = _compiler.Parse <JavascriptObject>("this"); method(scope, null).Should().BeSameAs(scope); }
public void Returns_undefined_on_non_defined_dynamic() { //Assert var obj = new JavascriptObject(); dynamic dyn = obj; object nothing = dyn.nothing; nothing.Should().BeSameAs(JavascriptObject.Undefined); }
public void Looks_up_an_property_from_the_scope() { //Assert var method = _compiler.Parse <int>("aKey"); //Assert var obj = new JavascriptObject(); dynamic dyn = obj; dyn.aKey = 42; method(obj, null).Should().Be(42); }
public void Parses_a_computed_numeric_array_access() { //Assert var method = _compiler.Parse <object>("aKey[1]"); var scope = new JavascriptObject { { "aKey", new [] { 1, 2, 3 } } }; method(scope, null).Should().Be(2); }
public void Can_use_concrete_type_on_JavascriptObject() { var o = new DummyClass(0); var r = new JavascriptObject { { "AProperty", o } }; var method = _compiler.Parse <JavascriptObject, DummyClass, object>("AProperty.SetKey(42)"); method(r, null).Should().Be(42); o.Key.Should().Be(42); }
public void Parses_computed_property_access_on_this() { //Assert var obj = new JavascriptObject { { "key", 42 } }; var method = _compiler.Parse <int>("this['key']"); method(obj, null).Should().Be(42); }
public BattlelogBase(string battlelogURL, string battlefieldName, string battlefieldShortname, string[] executableNames, int originCode, string javascriptPath) { this.javascriptObject = new JavascriptObject(); this.javascriptURL = javascriptPath; this.battlelogURL = battlelogURL; this.battlefieldName = battlefieldName; this.battlefieldShortname = battlefieldShortname; this.executableNames = executableNames; this.gameId = originCode; this.InitListenGame(); }
public void Can_use_JavascriptObject_on_concrete_type() { var r = new JavascriptObject { { "AProperty", 42 } }; var o = new DummyClass(0) { DynamicProp = r }; var method = _compiler.Parse <DummyClass, DummyClass, object>("DynamicProp.AProperty"); method(o, null).Should().Be(42); }
public void Properties_should_be_settable_through_dynamic() { //Assert var javascriptObject = new JavascriptObject(); dynamic dyn = javascriptObject; dyn.a = 1; dyn.b = "c"; javascriptObject.ShouldBeEquivalentTo(new Dictionary <string, object>() { { "a", 1 }, { "b", "c" } }); }
public void Should_act_like_dictionary() { var javascriptObject = new JavascriptObject { { "a", 1 }, { "b", "c" } }; javascriptObject.ShouldBeEquivalentTo(new Dictionary <string, object>() { { "a", 1 }, { "b", "c" } }); }
public void Parses_a_function_call() { //Assert var value = new Func <int>(() => 42); var scope = new JavascriptObject { { "aFunction", value } }; var method = _compiler.Parse <int>("aFunction()"); method(scope, null).Should().Be(42); }
public void Parses_a_function_call_with_a_single_number_argument() { //Assert var value = new Func <double, double>(i => i); var scope = new JavascriptObject { { "aFunction", value } }; var method = _compiler.Parse <double>("aFunction(42)"); method(scope, null).Should().Be(42); }
public void Does_not_use_locals_instead_of_scope_when_no_matching_key() { //Assert var method = _compiler.Parse <int>("aKey"); var scope = new JavascriptObject { { "aKey", 43 } }; var locals = new JavascriptObject { { "anotherKey", 42 } }; method(scope, locals).Should().Be(43); }
public void Properties_should_be_gettable_through_dynamic() { //Assert var javascriptObject = new JavascriptObject { { "a", 1 }, { "b", "c" } }; dynamic dyn = javascriptObject; object a = dyn.a; object b = dyn.b; a.Should().Be(1); b.Should().Be("c"); }
public void Parses_a_simple_computed_property_access() { //Assert var obj = new JavascriptObject { { "key", new JavascriptObject { { "key2", 42 } } } }; var method = _compiler.Parse <int>("key['key2']"); method(obj, null).Should().Be(42); }
public void Can_assign_a_computed_object_property() { var o = new JavascriptObject { { "key", "property" }, { "property", 0 } }; var method = _compiler.Parse <object>("this[this.key] = 42"); method(o, null).Should().Be(42); o["property"].Should().Be(42); }
public void Uses_locals_instead_of_scope_when_the_first_part_matches() { //Assert var method = _compiler.Parse <object>("aKey.anotherKey"); var scope = new JavascriptObject { { "aKey", new JavascriptObject { { "anotherKey", 42 } } } }; var locals = new JavascriptObject { { "aKey", null } }; method(scope, locals).Should().Be(JavascriptObject.Undefined); }
public void Parses_a_computed_access_with_another_key_as_property() { //Assert var obj = new JavascriptObject { { "lock", new JavascriptObject { { "key2", 42 } } }, { "key", "key2" } }; var method = _compiler.Parse <int>("lock[key]"); method(obj, null).Should().Be(42); }
public void Parses_a_function_call_with_multiple_arguments() { var aFunction = new Func <double, double, double, double>((i, j, k) => i + j + k); var anotherFunction = new Func <double>(() => 30); var scope = new JavascriptObject { { "aFunction", aFunction }, { "anotherFunction", anotherFunction }, { "n", 10 } }; var method = _compiler.Parse <double>("aFunction(2, n, anotherFunction())"); method(scope, null).Should().Be(42); }