From 96b850e27c0c2cb4bd76b027c123a2e0a7c6c260 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Mon, 15 May 2023 17:32:39 +0200
Subject: [PATCH] Resolving bug on creating main window

---
 src/main/java/ui/MainGUI.java              |   8 +
 src/main/java/ui/window/JFrameAI.java      |   3 +-
 ttool/src/test/java/test/AbstractTest.java | 269 +++++++++++----------
 3 files changed, 150 insertions(+), 130 deletions(-)

diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 2275c4ca47..f79026ecb1 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -353,6 +353,10 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         experimentalOn = _experimental;
         picoZebre = _picoZebre;
 
+        if (picoZebre) {
+            handlePicoZebre();
+        }
+
         currentInvariant = null;
 
         pbt = new PeriodicBehaviorThread(this, 120000); // save every two minutes
@@ -5998,6 +6002,10 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         }
     }
 
+    public void  handlePicoZebre() {
+
+    }
+
     public void pmAUT() {
         showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
     }
diff --git a/src/main/java/ui/window/JFrameAI.java b/src/main/java/ui/window/JFrameAI.java
index 168ab270e1..78a1ea527e 100644
--- a/src/main/java/ui/window/JFrameAI.java
+++ b/src/main/java/ui/window/JFrameAI.java
@@ -294,7 +294,8 @@ public class JFrameAI extends JFrame implements ActionListener, Runnable {
         }
         String[] names = {"pico", "zebre", "pingouin", "chien", "minou", "kitty", "chaton", "whatsapp", "Luke Skywalker",
                 "macareux", "ours", "italien", "paris-brest", "belle-mère", "apéro (l'abus d'alcool est dangereux pour la santé)",
-                "carpe", "crocodile", "psychologue", "dr emacs", "3615-TTool", "100 balles et 1 mars"};
+                "carpe", "crocodile", "psychologue", "dr emacs", "3615-TTool", "100 balles et 1 mars",
+                "opéra (l’abus d’Alcôve est dangereux pour la santé)"};
         int x = (int)(Math.random()*names.length);
         return names[x];
     }
diff --git a/ttool/src/test/java/test/AbstractTest.java b/ttool/src/test/java/test/AbstractTest.java
index 6ff9039779..174057c33b 100644
--- a/ttool/src/test/java/test/AbstractTest.java
+++ b/ttool/src/test/java/test/AbstractTest.java
@@ -1,145 +1,156 @@
 package test;
 
-import static org.junit.Assert.fail;
-
-import java.io.*;
+import myutil.Conversion;
+import myutil.FileException;
+import myutil.FileUtils;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
+
+import static java.io.File.pathSeparator;
+import static java.lang.System.getenv;
+import static java.nio.file.Files.isExecutable;
+import static java.util.regex.Pattern.quote;
+import static org.junit.Assert.fail;
 
-import myutil.Conversion;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
+public abstract class AbstractTest {
 
-import myutil.FileException;
-import myutil.FileUtils;
+    protected static final String TXT_EXT = ".txt";
+    protected static final String XML_EXT = ".xml";
+    protected static String RESOURCES_DIR = "";
+    protected static String INPUT_DIR;
+    protected static String EXPECTED_CODE_DIR;
+    protected static String ACTUAL_CODE_DIR;
 
-public abstract class AbstractTest {
-	
-	protected static String RESOURCES_DIR = "";
-	protected static String INPUT_DIR;
-	protected static String EXPECTED_CODE_DIR;
-	protected static String ACTUAL_CODE_DIR;
-	protected static final String TXT_EXT = ".txt";
-	protected static final String XML_EXT = ".xml";
-
-	protected static String getBaseResourcesDir() {
-    	final String systemPropResDir = System.getProperty( "resources_dir" );
-    	
-    	if ( systemPropResDir == null ) {
-    		return "resources/test/";
-    	}
-
-   		return systemPropResDir;
-	}
-	
-	protected void checkResult( final String actualCode,
-								final String fileName ) {
-		try {
-			final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + TXT_EXT );
-
-			if ( !expectedCode.equals( actualCode ) ) {
-				saveActualResults( fileName + TXT_EXT, actualCode );
-			}
-		}
-		catch ( FileException ex ) {
-			handleException( ex );
-		}
-	}
-	
-	protected void checkResultXml( 	final String actualCode,
-									final String fileName ) {
-
-		System.out.println("Comparing with " + actualCode.substring(0, 30) + " with file: " + fileName);
-
-		// Since this function fails because tasks are not always in the same order, it is deactivated
-
-
-
-		try {
-			final String expectedCode = FileUtils.loadFile( EXPECTED_CODE_DIR + fileName + XML_EXT );
-
-			//FileUtils.saveFile(EXPECTED_CODE_DIR + fileName + XML_EXT, actualCode);
-			
-			if ( !compareXml( actualCode, expectedCode ) ) {
-				saveActualResults( fileName + XML_EXT, actualCode );
-			}
-		}
-		catch ( ParserConfigurationException | SAXException | IOException | FileException ex ) {
-			handleException( ex );
-		}
-	}
-	
-	private void saveActualResults( final String fileName,
-									final String actualCode ) {
-		final String filePath = ACTUAL_CODE_DIR + fileName;
-		final File fileToSave = new File( filePath );
-		final File dir = fileToSave.getParentFile();
-		
-		if (!dir.exists() ) {
-			dir.mkdirs();
-		}
-
-		try {
-			FileUtils.saveFile( filePath, actualCode );
-			fail( "Differences were found between actual and expected code!!" );
-		}
-		catch( final FileException ex ) {
-			handleException( ex );
-		}
-	}
-	
-	protected boolean compareXml( 	final String result,
-									final String expected ) 
-	throws ParserConfigurationException, SAXException, IOException {
-		DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
-		documentFactory.setNamespaceAware( true );
-		documentFactory.setCoalescing( true );
-		documentFactory.setIgnoringElementContentWhitespace( true );
-		documentFactory.setIgnoringComments( true );
-		DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
-		
-		final Document doc1 = documentBuilder.parse( new ByteArrayInputStream( result.getBytes() ) );
-		doc1.normalizeDocument();
-
-		final Document doc2 = documentBuilder.parse( new ByteArrayInputStream( expected.getBytes() ) );
-		doc2.normalizeDocument();
-		
-		return doc1.isEqualNode( doc2 );
-	}
-
-	protected void handleException( final Throwable th ) {
+    protected static String getBaseResourcesDir() {
+        final String systemPropResDir = System.getProperty("resources_dir");
+
+        if (systemPropResDir == null) {
+            return "resources/test/";
+        }
+
+        return systemPropResDir;
+    }
+
+    public static boolean canExecute(final String exe) {
+        boolean existsInPath = Stream.of(System.getenv("PATH").
+                        split(Pattern.quote(File.pathSeparator)))
+                .map(Paths::get)
+                .anyMatch(path -> Files.exists(path.resolve(exe)));
+        return existsInPath;
+    }
+
+    protected void checkResult(final String actualCode,
+                               final String fileName) {
+        try {
+            final String expectedCode = FileUtils.loadFile(EXPECTED_CODE_DIR + fileName + TXT_EXT);
+
+            if (!expectedCode.equals(actualCode)) {
+                saveActualResults(fileName + TXT_EXT, actualCode);
+            }
+        } catch (FileException ex) {
+            handleException(ex);
+        }
+    }
+
+    protected void checkResultXml(final String actualCode,
+                                  final String fileName) {
+
+        System.out.println("Comparing with " + actualCode.substring(0, 30) + " with file: " + fileName);
+
+        // Since this function fails because tasks are not always in the same order, it is deactivated
+
+
+        try {
+            final String expectedCode = FileUtils.loadFile(EXPECTED_CODE_DIR + fileName + XML_EXT);
+
+            //FileUtils.saveFile(EXPECTED_CODE_DIR + fileName + XML_EXT, actualCode);
+
+            if (!compareXml(actualCode, expectedCode)) {
+                saveActualResults(fileName + XML_EXT, actualCode);
+            }
+        } catch (ParserConfigurationException | SAXException | IOException | FileException ex) {
+            handleException(ex);
+        }
+    }
+
+    private void saveActualResults(final String fileName,
+                                   final String actualCode) {
+        final String filePath = ACTUAL_CODE_DIR + fileName;
+        final File fileToSave = new File(filePath);
+        final File dir = fileToSave.getParentFile();
+
+        if (!dir.exists()) {
+            dir.mkdirs();
+        }
+
+        try {
+            FileUtils.saveFile(filePath, actualCode);
+            fail("Differences were found between actual and expected code!!");
+        } catch (final FileException ex) {
+            handleException(ex);
+        }
+    }
+
+    protected boolean compareXml(final String result,
+                                 final String expected)
+            throws ParserConfigurationException, SAXException, IOException {
+        DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
+        documentFactory.setNamespaceAware(true);
+        documentFactory.setCoalescing(true);
+        documentFactory.setIgnoringElementContentWhitespace(true);
+        documentFactory.setIgnoringComments(true);
+        DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
+
+        final Document doc1 = documentBuilder.parse(new ByteArrayInputStream(result.getBytes()));
+        doc1.normalizeDocument();
+
+        final Document doc2 = documentBuilder.parse(new ByteArrayInputStream(expected.getBytes()));
+        doc2.normalizeDocument();
+
+        return doc1.isEqualNode(doc2);
+    }
+
+    protected void handleException(final Throwable th) {
         th.printStackTrace();
-        fail( th.getLocalizedMessage() );
+        fail(th.getLocalizedMessage());
     }
 
     protected String reworkStringForComparison(String input) {
-		String ret = Conversion.replaceAllString(input, "\n", "");
-		ret = Conversion.replaceAllString(ret, "\t", "");
-		ret = Conversion.replaceAllString(ret, " ", "");
-		return ret;
-
-
-	}
-
-	protected void monitorError(Process proc) {
-		BufferedReader proc_err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
-		new Thread() {
-			@Override public void run() {
-				String line;
-				try {
-					while ((line = proc_err.readLine()) != null) {
-						System.out.println("NOC executing err: " + line);
-					}
-				} catch (Exception e) {
-					//System.out.println("FAILED reading errors");
-					return;
-				}
-
-			}
-		}.start();
-	}
+        String ret = Conversion.replaceAllString(input, "\n", "");
+        ret = Conversion.replaceAllString(ret, "\t", "");
+        ret = Conversion.replaceAllString(ret, " ", "");
+        return ret;
+
+
+    }
+
+    protected void monitorError(Process proc) {
+        BufferedReader proc_err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+        new Thread() {
+            @Override
+            public void run() {
+                String line;
+                try {
+                    while ((line = proc_err.readLine()) != null) {
+                        System.out.println("NOC executing err: " + line);
+                    }
+                } catch (Exception e) {
+                    //System.out.println("FAILED reading errors");
+                    return;
+                }
+
+            }
+        }.start();
+    }
 
 
 }
-- 
GitLab