Skip to content

Commit f7d8d0a

Browse files
committed
Added tests for script execution
1 parent e5dda41 commit f7d8d0a

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

AngleSharp.Scripting.JavaScript.Tests/FireEventTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace AngleSharp.Scripting.JavaScript.Tests
22
{
33
using AngleSharp.Dom.Events;
4+
using AngleSharp.Scripting.JavaScript.Services;
45
using NUnit.Framework;
56
using System.Threading.Tasks;
67

AngleSharp.Scripting.JavaScript.Tests/InteractionTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace AngleSharp.Scripting.JavaScript.Tests
22
{
3+
using AngleSharp.Scripting.JavaScript.Services;
34
using Jint.Runtime;
45
using NUnit.Framework;
56
using System;

AngleSharp.Scripting.JavaScript.Tests/ScriptEvalTests.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using AngleSharp.Dom.Html;
44
using AngleSharp.Extensions;
5+
using AngleSharp.Scripting.JavaScript.Dom;
56
using AngleSharp.Scripting.JavaScript.Tests.Mocks;
67
using NUnit.Framework;
78
using System;
@@ -137,5 +138,33 @@ public async Task SetContentOfIFrameElement()
137138
var result = document.GetElementById("myframe") as IHtmlInlineFrameElement;
138139
Assert.AreEqual("Hello world.", result.ContentDocument.Body.TextContent);
139140
}
141+
142+
[Test]
143+
public async Task RunMainScriptFromHtml5Test()
144+
{
145+
var script = @"var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
146+
e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
147+
e|=(e&16&&({}.toString).toString().indexOf(""\n"")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
148+
f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
149+
p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
150+
s.src='//api.whichbrowser.net/rel/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);";
151+
var result = await EvaluateComplexScriptAsync(script, SetResult("p.join('').toString()"));
152+
Assert.AreNotEqual("undefined", result);
153+
}
154+
155+
[Test]
156+
public async Task QueryUserAgentShouldMatchAgent()
157+
{
158+
var userAgent = new Navigator().UserAgent;
159+
var result = await EvaluateComplexScriptAsync(SetResult("navigator.userAgent"));
160+
Assert.AreEqual(userAgent, result);
161+
}
162+
163+
[Test]
164+
public async Task ScreenPixelDepthShouldYield24()
165+
{
166+
var result = await EvaluateComplexScriptAsync(SetResult("screen.pixelDepth.toString()"));
167+
Assert.AreEqual("24", result);
168+
}
140169
}
141170
}

0 commit comments

Comments
 (0)