This is an automated email from the ASF dual-hosted git repository. jtulach pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git
The following commit(s) were added to refs/heads/master by this push: new 31d4adc Launching the Show.show always on the background 31d4adc is described below commit 31d4adc80587e756be67edd8f12a9958e664acf8 Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org> AuthorDate: Fri Nov 29 15:50:31 2019 +0100 Launching the Show.show always on the background --- .../html/presenters/browser/ServerTest.java | 69 +++++++++++++++------- 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java index a127f3c..e3e5274 100644 --- a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java +++ b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java @@ -18,17 +18,25 @@ */ package org.netbeans.html.presenters.browser; -import org.netbeans.html.presenters.browser.Browser; import org.netbeans.html.presenters.render.Show; import java.io.IOException; import java.io.InputStream; +import java.net.HttpURLConnection; import java.net.ServerSocket; import java.net.URI; import java.net.URL; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import net.java.html.boot.BrowserBuilder; import net.java.html.js.JavaScriptBody; import org.testng.Assert; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import org.testng.annotations.Test; @@ -76,7 +84,10 @@ public class ServerTest { server.close(); try { - InputStream unavailable = connect.openStream(); + HttpURLConnection url = (HttpURLConnection) connect.openConnection(); + url.setConnectTimeout(3000); + url.setReadTimeout(3000); + InputStream unavailable = url.getInputStream(); fail("Stream can no longer be opened: " + unavailable); } catch (IOException ex) { // OK @@ -105,27 +116,41 @@ public class ServerTest { private static native void closeSoon(int ms); private static void show(URI page) throws IOException { - IOException one, two; - try { - String ui = System.getProperty("os.name").contains("Mac") - ? "Cocoa" : "GTK"; - Show.show(ui, page); - return; - } catch (IOException ex) { - one = ex; - } - try { - Show.show("AWT", page); - return; - } catch (IOException ex) { - two = ex; - } + ExecutorService background = Executors.newSingleThreadExecutor(); + Future<Void> future = background.submit((Callable<Void>) () -> { + IOException one, two; + try { + String ui = System.getProperty("os.name").contains("Mac") + ? "Cocoa" : "GTK"; + Show.show(ui, page); + return null; + } catch (IOException ex) { + one = ex; + } + try { + Show.show("AWT", page); + return null; + } catch (IOException ex) { + two = ex; + } + try { + Show.show(null, page); + } catch (IOException ex) { + two.initCause(one); + ex.initCause(two); + throw ex; + } + return null; + }); + try { - Show.show(null, page); - } catch (IOException ex) { - two.initCause(one); - ex.initCause(two); - throw ex; + Void ignore = future.get(2, TimeUnit.SECONDS); + assertNull(ignore); + background.shutdown(); + } catch (InterruptedException | ExecutionException ex) { + throw new AssertionError(ex); + } catch (TimeoutException ex) { + // OK } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists