Skip to content

Commit 1c53dd0

Browse files
committed
Merged with previous version
2 parents beff230 + b3915f1 commit 1c53dd0

File tree

14 files changed

+277
-27
lines changed

14 files changed

+277
-27
lines changed

src/AngleSharp.Scripting.CSharp.Tests/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[assembly: AssemblyConfiguration("")]
77
[assembly: AssemblyCompany("AngleSharp")]
88
[assembly: AssemblyProduct("AngleSharp.Scripting")]
9-
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2015")]
9+
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2013-2016")]
1010
[assembly: AssemblyTrademark("")]
1111
[assembly: AssemblyCulture("")]
1212
[assembly: ComVisible(false)]

src/AngleSharp.Scripting.CSharp/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
[assembly: AssemblyTrademark("")]
1212
[assembly: AssemblyCulture("")]
1313
[assembly: ComVisible(false)]
14-
[assembly: AssemblyVersion("0.1.0.*")]
15-
[assembly: AssemblyFileVersion("0.1.0")]
14+
[assembly: AssemblyVersion("0.1.1.*")]
15+
[assembly: AssemblyFileVersion("0.1.6")]
1616
[assembly: InternalsVisibleToAttribute("AngleSharp.Scripting.CSharp.Tests")]

src/AngleSharp.Scripting.JavaScript.Generator/AngleSharp.Scripting.JavaScript.Generator.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
<AppDesignerFolder>Properties</AppDesignerFolder>
1010
<RootNamespace>AngleSharp.Scripting.JavaScript.Generator</RootNamespace>
1111
<AssemblyName>AngleSharp.Scripting.JavaScript.Generator</AssemblyName>
12-
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
12+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
1313
<FileAlignment>512</FileAlignment>
14+
<TargetFrameworkProfile />
1415
</PropertyGroup>
1516
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1617
<DebugSymbols>true</DebugSymbols>

src/AngleSharp.Scripting.JavaScript.Generator/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[assembly: AssemblyConfiguration("")]
88
[assembly: AssemblyCompany("AngleSharp")]
99
[assembly: AssemblyProduct("AngleSharp.Scripting")]
10-
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2013-2015")]
10+
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2013-2016")]
1111
[assembly: AssemblyTrademark("")]
1212
[assembly: AssemblyCulture("")]
1313
[assembly: ComVisible(false)]

src/AngleSharp.Scripting.JavaScript.Tests/AngleSharp.Scripting.JavaScript.Tests.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<AppDesignerFolder>Properties</AppDesignerFolder>
99
<RootNamespace>AngleSharp.Scripting.JavaScript.Tests</RootNamespace>
1010
<AssemblyName>AngleSharp.Scripting.JavaScript.Tests</AssemblyName>
11-
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
11+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
1212
<FileAlignment>512</FileAlignment>
1313
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
1414
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
@@ -79,6 +79,7 @@
7979
<Otherwise />
8080
</Choose>
8181
<ItemGroup>
82+
<Compile Include="ComponentTests.cs" />
8283
<Compile Include="FireEventTests.cs" />
8384
<Compile Include="GeneratorTests.cs" />
8485
<Compile Include="Helpers.cs" />
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
namespace AngleSharp.Scripting.JavaScript.Tests
2+
{
3+
using AngleSharp.Scripting.JavaScript.Services;
4+
using NUnit.Framework;
5+
using System;
6+
using System.Threading.Tasks;
7+
8+
[TestFixture]
9+
public class ComponentTests
10+
{
11+
static async Task<String> RunScriptComponent(String script)
12+
{
13+
var service = new ScriptingService();
14+
var cfg = Configuration.Default.With(service);
15+
var html = String.Concat("<!doctype html><script>", script, "</script>");
16+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
17+
var value = service.Engine.GetJint(document).GetValue("assert");
18+
return value.AsString();
19+
}
20+
21+
[Test]
22+
public async Task DomParserShouldWorkWithHtml()
23+
{
24+
var script = @"var htmlSource = '<span>Hello World!</span>';
25+
var parser = new DOMParser();
26+
var doc = parser.parseFromString(htmlSource, 'text/html');
27+
var assert = doc.querySelector('span').textContent;";
28+
var value = await RunScriptComponent(script);
29+
Assert.AreEqual("Hello World!", value);
30+
}
31+
32+
[Test]
33+
public async Task DomParserShouldWorkWithXml()
34+
{
35+
var script = @"var xmlSource = '<parsererror xmlns=""http://www.mozilla.org/newlayout/xml/parsererror.xml"">(error description)<sourcetext></sourcetext></parsererror>';
36+
var parser = new DOMParser();
37+
var doc = parser.parseFromString(xmlSource, 'application/xml');
38+
var assert = doc.querySelector('parsererror').textContent;";
39+
var value = await RunScriptComponent(script);
40+
Assert.AreEqual("(error description)", value);
41+
}
42+
43+
[Test]
44+
public void DomParserShouldNotWorkWithMathMl()
45+
{
46+
var script = @"var xmlSource = '<math> <mrow> <msup><mi> a </mi><mn>2</mn></msup> <mo> + </mo> <msup><mi> b </mi><mn>2</mn></msup> <mo> = </mo> <msup><mi> c </mi><mn>2</mn></msup> </mrow> </math>';
47+
var parser = new DOMParser();
48+
var doc = parser.parseFromString(xmlSource, 'application/mathml+xml');
49+
var assert = 'failed';";
50+
Assert.CatchAsync<ArgumentException>(async () =>
51+
{
52+
var value = await RunScriptComponent(script);
53+
});
54+
}
55+
56+
[Test]
57+
public async Task DomParserShouldShowErrorDescriptionForMalformedXml()
58+
{
59+
var script = @"var xmlSource = '<foo>';
60+
var parser = new DOMParser();
61+
var doc = parser.parseFromString(xmlSource, 'application/xml');
62+
var assert = doc.querySelector('parsererror').textContent;";
63+
var value = await RunScriptComponent(script);
64+
Assert.AreEqual("Error while parsing the provided XML document.", value);
65+
}
66+
}
67+
}

src/AngleSharp.Scripting.JavaScript.Tests/Helpers.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
namespace AngleSharp.Scripting.JavaScript.Tests
22
{
3+
using NUnit.Framework;
34
using System;
45
using System.Collections.Generic;
56
using System.IO;
7+
using System.Net.NetworkInformation;
68
using System.Text;
79
using System.Threading.Tasks;
810

@@ -28,5 +30,49 @@ public static async Task<String> EvalScriptsAsync(this IEnumerable<String> sourc
2830
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
2931
return document.GetElementById("result").InnerHtml;
3032
}
33+
34+
public static Boolean IsNetworkAvailable()
35+
{
36+
if (IsNetworkAvailable(0))
37+
{
38+
return true;
39+
}
40+
41+
Assert.Inconclusive("No network has been detected. Test skipped.");
42+
return false;
43+
}
44+
45+
public static Boolean IsNetworkAvailable(Int64 minimumSpeed)
46+
{
47+
if (NetworkInterface.GetIsNetworkAvailable())
48+
{
49+
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
50+
{
51+
// discard because of standard reasons
52+
if ((ni.OperationalStatus != OperationalStatus.Up) ||
53+
(ni.NetworkInterfaceType == NetworkInterfaceType.Loopback) ||
54+
(ni.NetworkInterfaceType == NetworkInterfaceType.Tunnel))
55+
continue;
56+
57+
// this allow to filter modems, serial, etc.
58+
// I use 10000000 as a minimum speed for most cases
59+
if (ni.Speed < minimumSpeed)
60+
continue;
61+
62+
// discard virtual cards (virtual box, virtual pc, etc.)
63+
if ((ni.Description.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0) ||
64+
(ni.Name.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0))
65+
continue;
66+
67+
// discard "Microsoft Loopback Adapter", it will not show as NetworkInterfaceType.Loopback but as Ethernet Card.
68+
if (ni.Description.Equals("Microsoft Loopback Adapter", StringComparison.OrdinalIgnoreCase))
69+
continue;
70+
71+
return true;
72+
}
73+
}
74+
75+
return false;
76+
}
3177
}
3278
}
Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,38 @@
11
namespace AngleSharp.Scripting.JavaScript.Tests
22
{
3+
using AngleSharp.Dom;
34
using NUnit.Framework;
5+
using System;
46
using System.Threading.Tasks;
57

68
[TestFixture]
79
public class IntegrationTests
810
{
11+
static Task<IDocument> LoadPage(String url)
12+
{
13+
var configuration = Configuration.Default.WithDefaultLoader().WithCss().WithCookies().WithJavaScript();
14+
var context = BrowsingContext.New(configuration);
15+
return context.OpenAsync(url);
16+
}
17+
918
[Test]
1019
public async Task PageEcoEnergyShouldLoadFine()
1120
{
12-
var config = Configuration.Default.WithDefaultLoader().WithCss().WithCookies().WithJavaScript();
13-
var context = BrowsingContext.New(config);
14-
var document = await context.OpenAsync("http://www.eco2energie.biz/");
15-
Assert.IsNotNull(document);
21+
if (Helpers.IsNetworkAvailable())
22+
{
23+
var document = await LoadPage("http://www.eco2energie.biz/");
24+
Assert.IsNotNull(document);
25+
}
26+
}
27+
28+
[Test]
29+
public async Task PageGamestarShouldLoadFine()
30+
{
31+
if (Helpers.IsNetworkAvailable())
32+
{
33+
var document = await LoadPage("http://www.gamestar.de/index.cfm?pid=103&op=10");
34+
Assert.IsNotNull(document);
35+
}
1636
}
1737
}
1838
}
Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,42 @@
11
namespace AngleSharp.Scripting.JavaScript.Tests
22
{
3+
using AngleSharp.Dom;
34
using NUnit.Framework;
5+
using System;
46
using System.Threading.Tasks;
57

68
[TestFixture]
79
public class PageTests
810
{
11+
static Task<IDocument> LoadPage(String url)
12+
{
13+
var configuration = Configuration.Default.WithJavaScript().WithCss().WithDefaultLoader(setup => setup.IsResourceLoadingEnabled = true);
14+
var context = BrowsingContext.New(configuration);
15+
return context.OpenAsync(url);
16+
}
17+
918
//[Test]
1019
public async Task RunHtml5Test()
1120
{
12-
var target = "http://html5test.com";
13-
var config = Configuration.Default.WithJavaScript().WithCss().WithDefaultLoader(setup => setup.IsResourceLoadingEnabled = true);
14-
var context = BrowsingContext.New(config);
15-
var document = await context.OpenAsync(target);
16-
var points = document.QuerySelector("#score > .pointsPanel > h2 > strong").TextContent;
17-
Assert.AreNotEqual("0", points);
21+
if (Helpers.IsNetworkAvailable())
22+
{
23+
var target = "http://html5test.com";
24+
var document = await LoadPage(target);
25+
var points = document.QuerySelector("#score > .pointsPanel > h2 > strong").TextContent;
26+
Assert.AreNotEqual("0", points);
27+
}
1828
}
1929

2030
//[Test]
2131
public async Task RunTaobao()
2232
{
23-
var target = "https://meadjohnson.world.tmall.com/search.htm?search=y&orderType=defaultSort&scene=taobao_shop";
24-
var config = Configuration.Default.WithJavaScript().WithCss().WithDefaultLoader(setup => setup.IsResourceLoadingEnabled = true);
25-
var context = BrowsingContext.New(config);
26-
var document = await context.OpenAsync(target);
27-
var prices = document.QuerySelectorAll("span.c-price");
28-
Assert.AreNotEqual(0, prices.Length);
33+
if (Helpers.IsNetworkAvailable())
34+
{
35+
var target = "https://meadjohnson.world.tmall.com/search.htm?search=y&orderType=defaultSort&scene=taobao_shop";
36+
var document = await LoadPage(target);
37+
var prices = document.QuerySelectorAll("span.c-price");
38+
Assert.AreNotEqual(0, prices.Length);
39+
}
2940
}
3041
}
3142
}

src/AngleSharp.Scripting.JavaScript.Tests/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[assembly: AssemblyConfiguration("")]
77
[assembly: AssemblyCompany("AngleSharp")]
88
[assembly: AssemblyProduct("AngleSharp.Scripting")]
9-
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2015")]
9+
[assembly: AssemblyCopyright("Copyright © AngleSharp, 2013-2016")]
1010
[assembly: AssemblyTrademark("")]
1111
[assembly: AssemblyCulture("")]
1212
[assembly: ComVisible(false)]

0 commit comments

Comments
 (0)