You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2019/11/29 14:51:11 UTC

[netbeans-html4j] branch master updated: Launching the Show.show always on the background

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 <ja...@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-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists