Skip to content

Commit c531930

Browse files
committed
Added more tests
1 parent feb9b11 commit c531930

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

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

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,49 @@ public async Task BooleanConversionForNumbersTakesPlace()
6969
var option = document.QuerySelector<IHtmlOptionElement>("option");
7070
Assert.AreEqual(true, option.IsDisabled);
7171
}
72+
73+
[Test]
74+
public async Task BooleanConversionForObjectsTakesPlace()
75+
{
76+
var service = new JavaScriptProvider();
77+
var cfg = Configuration.Default.With(service);
78+
var html = "<!doctype html><option></option><script>document.querySelector('option').selected = this;</script>";
79+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
80+
var option = document.QuerySelector<IHtmlOptionElement>("option");
81+
Assert.AreEqual(true, option.IsSelected);
82+
}
83+
84+
[Test]
85+
public async Task BooleanConversionForArraysTakesPlace()
86+
{
87+
var service = new JavaScriptProvider();
88+
var cfg = Configuration.Default.With(service);
89+
var html = "<!doctype html><option></option><script>document.querySelector('option').selected = [];</script>";
90+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
91+
var option = document.QuerySelector<IHtmlOptionElement>("option");
92+
Assert.AreEqual(true, option.IsSelected);
93+
}
94+
95+
[Test]
96+
public async Task BooleanConversionForZeroIsFalse()
97+
{
98+
var service = new JavaScriptProvider();
99+
var cfg = Configuration.Default.With(service);
100+
var html = "<!doctype html><option></option><script>document.querySelector('option').selected =0;</script>";
101+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
102+
var option = document.QuerySelector<IHtmlOptionElement>("option");
103+
Assert.AreEqual(false, option.IsSelected);
104+
}
105+
106+
[Test]
107+
public async Task BooleanConversionForUndefinedIsFalse()
108+
{
109+
var service = new JavaScriptProvider();
110+
var cfg = Configuration.Default.With(service);
111+
var html = "<!doctype html><option></option><script>document.querySelector('option').selected = undefined;</script>";
112+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
113+
var option = document.QuerySelector<IHtmlOptionElement>("option");
114+
Assert.AreEqual(false, option.IsSelected);
115+
}
72116
}
73117
}

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,5 +217,47 @@ public async Task PrototypeObjectOfBodyIsCorrect()
217217
var result = await EvaluateComplexScriptAsync(SetResult("Object.getPrototypeOf(document.body).toString()"));
218218
Assert.AreEqual("[object HTMLBodyElement]", result);
219219
}
220+
221+
[Test]
222+
public async Task PrototypeObjectOfNavigatorIsCorrect()
223+
{
224+
var result = await EvaluateComplexScriptAsync(SetResult("Object.getPrototypeOf(navigator).toString()"));
225+
Assert.AreEqual("[object Navigator]", result);
226+
}
227+
228+
[Test]
229+
public async Task ConstructorOfHTMLDocumentIsAvailable()
230+
{
231+
var result = await EvaluateComplexScriptAsync(SetResult("HTMLDocument.toString()"));
232+
Assert.AreEqual("function HTMLDocument() { [native code] }", result);
233+
}
234+
235+
[Test]
236+
public async Task StringOfHTMLDocumentIsAvailable()
237+
{
238+
var result = await EvaluateComplexScriptAsync(SetResult("HTMLDocument.prototype.toString()"));
239+
Assert.AreEqual("[object HTMLDocument]", result);
240+
}
241+
242+
[Test]
243+
public async Task QuerySelectorOfHTMLDocumentPrototypeIsAvailable()
244+
{
245+
var result = await EvaluateComplexScriptAsync(SetResult("HTMLDocument.prototype.querySelector.toString()"));
246+
Assert.AreEqual("function querySelector() { [native code] }", result);
247+
}
248+
249+
[Test]
250+
public async Task StringOfMutationObserverIsAvailable()
251+
{
252+
var result = await EvaluateComplexScriptAsync(SetResult("MutationObserver.prototype.toString()"));
253+
Assert.AreEqual("[object MutationObserver]", result);
254+
}
255+
256+
[Test]
257+
public async Task ConstructorOfMutationObserverIsAvailable()
258+
{
259+
var result = await EvaluateComplexScriptAsync(SetResult("MutationObserver.toString()"));
260+
Assert.AreEqual("function MutationObserver() { [native code] }", result);
261+
}
220262
}
221263
}

0 commit comments

Comments
 (0)