Skip to content

Commit 050d7e4

Browse files
sratzHeikoKlare
authored andcommitted
Add browser regression test for calling evaluate requiring event loop
Regression test for #1771
1 parent 20084cc commit 050d7e4

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java

+21
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,27 @@ public void test_evalute_Cookies () {
440440
assertFalse(res.isEmpty());
441441
}
442442

443+
@Test
444+
public void test_evaluate_callingIntoSwt() throws Exception {
445+
AtomicBoolean initialLoad = new AtomicBoolean();
446+
AtomicBoolean openWindowListenerCalled = new AtomicBoolean();
447+
browser.addProgressListener(ProgressListener.completedAdapter(e -> initialLoad.set(true)));
448+
browser.addOpenWindowListener(event -> {
449+
event.required = true; // block default
450+
openWindowListenerCalled.set(true);
451+
});
452+
browser.setText("""
453+
<button id="button" onClick="window.open('https://eclipse.org');">open eclipse.org</button>
454+
""");
455+
waitForPassCondition(initialLoad::get);
456+
457+
browser.evaluate("""
458+
document.getElementById("button").click();
459+
""");
460+
461+
waitForPassCondition(openWindowListenerCalled::get);
462+
}
463+
443464
@Test
444465
public void test_ClearAllSessionCookies () {
445466
// clearSessions will only work for Webkit2 when >= 2.16

0 commit comments

Comments
 (0)