Files
jlibwinapi/src/org/synthuse/test/UnitTestHelper.java
Edward Jakubowski b5082e2b22 Added support for scripting menus, and showing counts for lists, comboboxes, treeviews, listviews
Support for scripting menus and seeing more information about various
list types, and partially working toolbars
2014-04-19 21:17:35 -04:00

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());
}
}