Support for scripting menus and seeing more information about various list types, and partially working toolbars
80 lines
2.5 KiB
Java
80 lines
2.5 KiB
Java
package org.synthuse.test;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
|
|
// This class doesn't contain Test, only some methods that are used by the unit tests
|
|
public class UnitTestHelper {
|
|
|
|
static Process runningApp = null;
|
|
public static void RunApp(String ResourceFilePath) {
|
|
String tempFilename = ExtractFileFromJar(ResourceFilePath);
|
|
Runtime runtime = Runtime.getRuntime();
|
|
try {
|
|
runningApp = runtime.exec(tempFilename);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static void DestroyApp() {
|
|
if (runningApp != null)
|
|
runningApp.destroy();
|
|
}
|
|
|
|
public static String ExtractFileFromJar(String path) {
|
|
// Obtain filename from path
|
|
String[] parts = path.split("/");
|
|
String filename = (parts.length > 1) ? parts[parts.length - 1] : null;
|
|
// Split filename to prexif and suffix (extension)
|
|
String prefix = "";
|
|
String suffix = null;
|
|
if (filename != null) {
|
|
parts = filename.split("\\.", 2);
|
|
prefix = parts[0];
|
|
suffix = (parts.length > 1) ? "."+parts[parts.length - 1] : null;
|
|
}
|
|
File temp = null;
|
|
try {
|
|
// Prepare temporary file
|
|
temp = File.createTempFile(prefix, suffix);
|
|
temp.deleteOnExit();
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
if (!temp.exists()) { //some reason the temp file wasn't create so abort
|
|
System.out.println("File " + temp.getAbsolutePath() + " does not exist.");
|
|
return null;
|
|
}
|
|
|
|
// Prepare buffer for data copying
|
|
byte[] buffer = new byte[1024];
|
|
int readBytes;
|
|
// Open and check input stream
|
|
InputStream is = WpfBridgeTest.class.getResourceAsStream(path);
|
|
if (is == null) { //check if valid
|
|
System.out.println("File " + path + " was not found inside JAR.");
|
|
return null;
|
|
}
|
|
// Open output stream and copy data between source file in JAR and the temporary file
|
|
OutputStream os = null;
|
|
try {
|
|
os = new FileOutputStream(temp);
|
|
while ((readBytes = is.read(buffer)) != -1) {
|
|
os.write(buffer, 0, readBytes);
|
|
}
|
|
os.close();
|
|
is.close();
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return temp.getAbsolutePath();
|
|
// Finally, load the library
|
|
//System.load(temp.getAbsolutePath());
|
|
}
|
|
|
|
}
|