More unit tests.

This commit is contained in:
akwizgran
2011-06-22 16:58:03 +01:00
parent eb1c855278
commit dad1b4fcb9
11 changed files with 296 additions and 50 deletions

View File

@@ -1,13 +0,0 @@
package net.sf.briar.setup;
import net.sf.briar.api.setup.SetupWorkerFactory;
import com.google.inject.AbstractModule;
public class SetupModule extends AbstractModule {
@Override
protected void configure() {
bind(SetupWorkerFactory.class).to(SetupWorkerFactoryImpl.class);
}
}

View File

@@ -5,7 +5,6 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.security.CodeSource;
import net.sf.briar.api.i18n.I18n;
import net.sf.briar.api.setup.SetupCallback;
@@ -18,18 +17,19 @@ class SetupWorker implements Runnable {
private static final String MAIN_CLASS =
"net.sf.briar.ui.invitation.InvitationMain";
private static final int EXE_HEADER_SIZE = 62976;
private final SetupCallback callback;
private final SetupParameters parameters;
private final I18n i18n;
private final File jar;
private final ZipUtils.Callback unzipCallback;
SetupWorker(final SetupCallback callback, SetupParameters parameters,
I18n i18n) {
I18n i18n, File jar) {
this.parameters = parameters;
this.callback = callback;
this.i18n = i18n;
this.jar = jar;
unzipCallback = new ZipUtils.Callback() {
public void processingFile(File f) {
callback.extractingFile(f);
@@ -38,6 +38,10 @@ class SetupWorker implements Runnable {
}
public void run() {
if(!jar.isFile()) {
callback.error("Not running from jar");
return;
}
File dir = parameters.getChosenLocation();
assert dir != null;
if(!dir.exists()) {
@@ -66,8 +70,6 @@ class SetupWorker implements Runnable {
return;
}
try {
if(callback.isCancelled()) return;
File jar = getJar();
if(callback.isCancelled()) return;
copyInstaller(jar, data);
if(callback.isCancelled()) return;
@@ -86,14 +88,6 @@ class SetupWorker implements Runnable {
callback.installed(dir);
}
private File getJar() throws IOException {
CodeSource c = FileUtils.class.getProtectionDomain().getCodeSource();
File jar = new File(c.getLocation().getPath());
assert jar.exists();
if(!jar.isFile()) throw new IOException("Not running from a jar");
return jar;
}
private void copyInstaller(File jar, File dir) throws IOException {
File dest = new File(dir, "setup.dat");
callback.copyingFile(dest);
@@ -103,7 +97,7 @@ class SetupWorker implements Runnable {
private void extractFiles(File jar, File dir, String regex)
throws IOException {
FileInputStream in = new FileInputStream(jar);
in.skip(EXE_HEADER_SIZE);
in.skip(parameters.getExeHeaderSize());
ZipUtils.unzipStream(in, dir, regex, unzipCallback);
}

View File

@@ -1,23 +1,27 @@
package net.sf.briar.setup;
import java.io.File;
import java.security.CodeSource;
import net.sf.briar.api.i18n.I18n;
import net.sf.briar.api.setup.SetupCallback;
import net.sf.briar.api.setup.SetupParameters;
import net.sf.briar.api.setup.SetupWorkerFactory;
import com.google.inject.Inject;
import net.sf.briar.util.FileUtils;
public class SetupWorkerFactoryImpl implements SetupWorkerFactory {
private final I18n i18n;
@Inject
public SetupWorkerFactoryImpl(I18n i18n) {
this.i18n = i18n;
}
public Runnable createWorker(SetupCallback callback,
SetupParameters parameters) {
return new SetupWorker(callback, parameters, i18n);
CodeSource c = FileUtils.class.getProtectionDomain().getCodeSource();
File jar = new File(c.getLocation().getPath());
assert jar.exists();
return new SetupWorker(callback, parameters, i18n, jar);
}
}