Skip to content

Commit 7eeea1a

Browse files
committed
Added tests for classical event wiring
1 parent 6ad2373 commit 7eeea1a

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

AngleSharp.Scripting.JavaScript.Tests/FireEventTests.cs

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,69 @@ public async Task InvokeLoadEventFromJsAndCustomEventFromJsAndCs()
6767
Assert.AreEqual("c", log.Get("2").AsString());
6868
Assert.AreEqual("d", log.Get("3").AsString());
6969
}
70+
71+
[Test]
72+
public async Task AddClickHandlerClassicallyWillExecute()
73+
{
74+
var service = new ScriptingService();
75+
var cfg = Configuration.Default.With(service);
76+
var html = @"<!doctype html>
77+
<html>
78+
<body>
79+
<script>
80+
var clicked = false;
81+
document.onclick = function () {
82+
clicked = true;
83+
};
84+
document.dispatchEvent(new MouseEvent('click'));
85+
</script>
86+
</body>";
87+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
88+
var clicked = service.Engine.GetJint(document).GetValue("clicked").AsBoolean();
89+
Assert.IsTrue(clicked);
90+
}
91+
92+
[Test]
93+
public async Task AddAndRemoveClickHandlerWontExecute()
94+
{
95+
var service = new ScriptingService();
96+
var cfg = Configuration.Default.With(service);
97+
var html = @"<!doctype html>
98+
<html>
99+
<body>
100+
<script>
101+
var clicked = false;
102+
document.onclick = function () {
103+
clicked = true;
104+
};
105+
document.onclick = undefined;
106+
document.dispatchEvent(new MouseEvent('click'));
107+
</script>
108+
</body>";
109+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
110+
var clicked = service.Engine.GetJint(document).GetValue("clicked").AsBoolean();
111+
Assert.IsFalse(clicked);
112+
}
113+
114+
[Test]
115+
public async Task AddAndInvokeClickHandlerWillChangeCapturedValue()
116+
{
117+
var service = new ScriptingService();
118+
var cfg = Configuration.Default.With(service);
119+
var html = @"<!doctype html>
120+
<html>
121+
<body>
122+
<script>
123+
var clicked = false;
124+
document.onclick = function () {
125+
clicked = true;
126+
};
127+
document.onclick();
128+
</script>
129+
</body>";
130+
var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
131+
var clicked = service.Engine.GetJint(document).GetValue("clicked").AsBoolean();
132+
Assert.IsTrue(clicked);
133+
}
70134
}
71135
}

0 commit comments

Comments
 (0)