Skip to content

Commit 4ef54be

Browse files
committed
Added test for string function #26
1 parent 619b9cd commit 4ef54be

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

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

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,5 +132,64 @@ public async Task AddAndInvokeClickHandlerWillChangeCapturedValue()
132132
var clicked = service.Engine.GetOrCreateJint(document).GetValue("clicked").AsBoolean();
133133
Assert.IsTrue(clicked);
134134
}
135+
136+
[Test]
137+
public async Task AddAndInvokeClickHandlerWithStringFunctionWontWork()
138+
{
139+
var service = new JavaScriptProvider();
140+
var cfg = Configuration.Default.With(service);
141+
var html = @"<!doctype html>
142+
<html>
143+
<body>
144+
<script>
145+
var clicked = false;
146+
document.onclick = 'clicked = true;';
147+
document.onclick();
148+
</script>
149+
</body>";
150+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
151+
var clicked = service.Engine.GetOrCreateJint(document).GetValue("clicked").AsBoolean();
152+
Assert.IsFalse(clicked);
153+
}
154+
155+
[Test]
156+
public async Task SetTimeoutWithNormalFunction()
157+
{
158+
var service = new JavaScriptProvider();
159+
var cfg = Configuration.Default.With(service);
160+
var html = @"<!doctype html>
161+
<html>
162+
<body>
163+
<script>
164+
var completed = false;
165+
setTimeout(function () {
166+
completed = true;
167+
}, 0);
168+
</script>
169+
</body>";
170+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
171+
await Task.Delay(100);
172+
var result = service.Engine.GetOrCreateJint(document).GetValue("completed").AsBoolean();
173+
Assert.IsTrue(result);
174+
}
175+
176+
[Test]
177+
public async Task SetTimeoutWithStringAsFunction()
178+
{
179+
var service = new JavaScriptProvider();
180+
var cfg = Configuration.Default.With(service);
181+
var html = @"<!doctype html>
182+
<html>
183+
<body>
184+
<script>
185+
var completed = false;
186+
setTimeout('completed = true;', 0);
187+
</script>
188+
</body>";
189+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
190+
await Task.Delay(100);
191+
var result = service.Engine.GetOrCreateJint(document).GetValue("completed").AsBoolean();
192+
Assert.IsTrue(result);
193+
}
135194
}
136195
}

0 commit comments

Comments
 (0)