Skip to content

Commit 35ebdbc

Browse files
sratzHeikoKlare
authored andcommitted
Add browser regression test for calling evaluate requiring event loop
Regression test for #1771
1 parent cf8564d commit 35ebdbc

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
@@ -429,6 +429,27 @@ public void test_evalute_Cookies () {
429429
assertFalse(res.isEmpty());
430430
}
431431

432+
@Test
433+
public void test_evaluate_callingIntoSwt() throws Exception {
434+
AtomicBoolean initialLoad = new AtomicBoolean();
435+
AtomicBoolean openWindowListenerCalled = new AtomicBoolean();
436+
browser.addProgressListener(ProgressListener.completedAdapter(e -> initialLoad.set(true)));
437+
browser.addOpenWindowListener(event -> {
438+
event.required = true; // block default
439+
openWindowListenerCalled.set(true);
440+
});
441+
browser.setText("""
442+
<button id="button" onClick="window.open('https://eclipse.org');">open eclipse.org</button>
443+
""");
444+
waitForPassCondition(initialLoad::get);
445+
446+
browser.evaluate("""
447+
document.getElementById("button").click();
448+
""");
449+
450+
waitForPassCondition(openWindowListenerCalled::get);
451+
}
452+
432453
@Test
433454
public void test_ClearAllSessionCookies () {
434455
// clearSessions will only work for Webkit2 when >= 2.16

0 commit comments

Comments
 (0)