public void Test() { var scriptEngine = new TestScriptEngine(); IIfTestScriptEngine IF = scriptEngine; IDoTestScriptEngine DO = scriptEngine; //Basic IF.Test1(); DO.Begin(); DO.DoTestAction(); DO.End(); //Advanced IF.Test1(); DO.Begin(); IF.OrGroup(); DO.DoTestAction(); IF.EndGroup(); IF.AndGroup(); IF.Test1(); IF.Test1(); IF.EndGroup(); DO.Begin(); DO.DoTestAction(); DO.End(); DO.End(); }
public void CreateConfig() { configuration = new Configuration(); scripting = new TestScriptEngine(); configuration.IsScripting = true; configuration.Register(scripting); }
public void DocumentWriteDynamicallyWithCustomScriptEngineAndText() { var scripting = new TestScriptEngine(options => options.Document.Write("<b>Dynamically written</b>")); var config = Configuration.Default.With(new TestScriptService(scripting)); var source = "<title>Some title</title><body><script type='c-sharp'>//...</script>"; var doc = source.ToHtmlDocument(config); Assert.IsNotNull(doc); Assert.IsNotNull(doc.Body.TextContent); Assert.AreEqual("//...Dynamically written", doc.Body.TextContent); Assert.AreEqual(1, doc.QuerySelectorAll("b").Length); var bold = doc.QuerySelector("b"); Assert.AreEqual("Dynamically written", bold.TextContent); }
public async Task DocumentWriteDynamicallyWithCustomScriptEngineAndSource() { var scripting = new TestScriptEngine(options => options.Document.Write("<b>Dynamically written</b>")); var mockRequester = new MockRequester(); var config = Configuration.Default .With(new TestScriptService(scripting)) .WithDefaultLoader(setup => setup.IsResourceLoadingEnabled = true, new[] { mockRequester }); var baseAddress = "http://www.example.com"; var filename = "foo.cs"; var hasFoo = false; mockRequester.OnRequest = request => hasFoo = request.Address.Href == baseAddress + "/" + filename; var source = "<title>Some title</title><body><script type='c-sharp' src='" + filename + "'></script>"; var doc = await BrowsingContext.New(config).OpenAsync(m => m.Content(source).Address(baseAddress)); Assert.IsTrue(hasFoo); Assert.AreEqual("Dynamically written", doc.Body.TextContent); Assert.AreEqual(1, doc.QuerySelectorAll("b").Length); var bold = doc.QuerySelector("b"); Assert.AreEqual("Dynamically written", bold.TextContent); }
public async Task DocumentWriteDynamicallyWithCustomScriptEngineAndSourceNested() { var index = 0; var content = new[] { "<script type='c-sharp' src='foo2.cs'></script>", "<b>Dynamically written</b>" }; var scripting = new TestScriptEngine(options => options.Document.Write(content[index++])); var mockRequester = new MockRequester(); var config = Configuration.Default .With(new TestScriptService(scripting)) .WithDefaultLoader(setup => setup.IsResourceLoadingEnabled = true, new[] { mockRequester }); var source = "<title>Some title</title><body><script type='c-sharp' src='foo.cs'></script>"; var doc = await BrowsingContext.New(config).OpenAsync(m => m.Content(source).Address("http://www.example.com")); Assert.AreEqual("Dynamically written", doc.Body.TextContent); Assert.AreEqual(1, doc.QuerySelectorAll("b").Length); var bold = doc.QuerySelector("b"); Assert.AreEqual("Dynamically written", bold.TextContent); Assert.AreEqual(2, index); }
public void DestroyConfig() { configuration = null; scripting = null; }
public TestScriptService(TestScriptEngine engine) { _engine = engine; }
public void CreateConfig() { scripting = new TestScriptEngine(); configuration = Configuration.Default.With(new TestScriptService(scripting)); }