diff --git a/pom.xml b/pom.xml
index 1a80f0e..0b76f04 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,5 +97,11 @@
junit
4.10
+
+
+ com.google.guava
+ guava
+ 12.0
+
diff --git a/src/main/java/jsjunit/jetty/ResultServlet.java b/src/main/java/jsjunit/jetty/ResultServlet.java
index 71c48d9..970bb4a 100644
--- a/src/main/java/jsjunit/jetty/ResultServlet.java
+++ b/src/main/java/jsjunit/jetty/ResultServlet.java
@@ -9,6 +9,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.google.common.base.Joiner;
+
public class ResultServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -49,7 +51,7 @@ public static String getResult() {
throw new IllegalStateException(String.format(
"QUnit.done() was called %d times. Sent informations are:[%s]",
resultQue.size(),
- stringify(resultQue)
+ Joiner.on(", ").join(resultQue)
));
}
}
@@ -57,13 +59,4 @@ public static String getResult() {
return result;
}
- private static String stringify(LinkedList queue) {
- StringBuilder builder = new StringBuilder();
- for (String result : queue) {
- if (builder.length() > 0) { builder.append(", "); }
- builder.append(result);
- }
- return builder.toString();
- }
-
}
diff --git a/src/main/java/jsjunit/qunit/QUnitTestRunner.java b/src/main/java/jsjunit/qunit/QUnitTestRunner.java
index 36075bd..e2d4335 100644
--- a/src/main/java/jsjunit/qunit/QUnitTestRunner.java
+++ b/src/main/java/jsjunit/qunit/QUnitTestRunner.java
@@ -22,6 +22,8 @@
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.Statement;
+import com.google.common.base.Joiner;
+
public class QUnitTestRunner extends ParentRunner {
private final RunnerService runnerService;
@@ -92,18 +94,8 @@ protected List getChildren() {
@Override
protected Description describeChild(TestJS child) {
- StringBuilder sb = new StringBuilder();
- for (String js : child.value()) {
- if (sb.length() == 0) {
- sb.append(js);
- } else {
- sb.append(",");
- sb.append(js);
- }
- }
-
return Description.createTestDescription(getTestClass().getJavaClass(),
- " [" + sb.toString() + "]");
+ " [" + Joiner.on(',').join(child.value()) + "]");
}
@Override
@@ -126,7 +118,7 @@ protected void runChild(TestJS child, RunNotifier notifier) {
notifier.fireTestFailure(failure);
return;
}
-
+
if (child.total() >= 0 && child.total() != testResult.getTotal()) {
JSTestFailure failure = new JSTestFailure(describeChild(child),
url, "test total count should be " + child.total()
@@ -145,22 +137,22 @@ protected void runChild(TestJS child, RunNotifier notifier) {
private String buildMessage(QUnitResult result) {
StringBuilder sb = new StringBuilder();
- sb.append("TEST FAILED : " + result.getPassed() + "/"
- + result.getTotal() + CR);
+ sb.append("TEST FAILED : ").append(result.getPassed()).append("/")
+ .append(result.getTotal()).append(CR);
for (QUnitTestResult tr : result.getChildren()) {
if (tr.getModule() != null) {
sb.append("[");
sb.append(tr.getModule());
sb.append("] ");
}
- sb.append(tr.getName() + " (" + tr.getPassed() + "/"
- + tr.getTotal() + ")" + CR);
+ sb.append(tr.getName()).append(" (").append(tr.getPassed()).append("/")
+ .append(tr.getTotal()).append(")").append(CR);
for (QUnitTestDetail detail : tr.getDetails()) {
if (!detail.isResult()) {
- sb.append(" " + detail.getMessage());
- sb.append(": expected '" + detail.getExpected()
- + "' but actual '" + detail.getActual() + "'" + CR);
+ sb.append(" ").append(detail.getMessage());
+ sb.append(": expected '").append(detail.getExpected())
+ .append("' but actual '").append(detail.getActual()).append("'").append(CR);
}
}
}
diff --git a/src/main/java/jsjunit/service/PhantomJS.java b/src/main/java/jsjunit/service/PhantomJS.java
index a8114e5..75e7c22 100644
--- a/src/main/java/jsjunit/service/PhantomJS.java
+++ b/src/main/java/jsjunit/service/PhantomJS.java
@@ -13,6 +13,8 @@
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
+import com.google.common.io.Closeables;
+
public final class PhantomJS {
private static class ProcessDestroyer extends TimerTask {
@@ -102,27 +104,14 @@ public void run() {
String line = null;
try {
while ((line = reader.readLine()) != null) {
- writer.write(line + "\n");
+ writer.write(line);
+ writer.write("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
+ Closeables.closeQuietly(reader);
+ Closeables.closeQuietly(writer);
}
}
diff --git a/src/main/java/jsjunit/service/WorkspaceManager.java b/src/main/java/jsjunit/service/WorkspaceManager.java
index 3e7e0f4..460e575 100644
--- a/src/main/java/jsjunit/service/WorkspaceManager.java
+++ b/src/main/java/jsjunit/service/WorkspaceManager.java
@@ -1,15 +1,17 @@
package jsjunit.service;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.WildcardFileFilter;
+import com.google.common.io.Files;
+import com.google.common.io.InputSupplier;
+import com.google.common.io.Resources;
+
final class WorkspaceManager {
private final File runner;
@@ -126,40 +128,19 @@ private void copyLibraries(File dir) throws IOException {
copy(dir, QUNIT_NAME);
}
- private void copy(File dir, String name) throws IOException {
- InputStream in = null;
- try {
- in = this.getClass().getResourceAsStream("/" + name);
-
- if (in == null) {
- throw new IllegalStateException("can not find " + name);
- }
-
- BufferedInputStream is = new BufferedInputStream(in);
-
- File dest = new File(dir, name);
- if (!dest.exists()) {
- BufferedOutputStream bos = null;
- try {
-
- bos = new BufferedOutputStream(new FileOutputStream(dest));
-
- for (int data = is.read(); data > 0; data = is.read()) {
- bos.write(data);
- }
- bos.flush();
- } finally {
- if (bos != null) {
- bos.close();
- }
- }
- }
- } finally {
- if (in != null) {
- in.close();
- }
+ private void copy(File dir, final String name) throws IOException {
+ File dest = new File(dir, name);
+ if (dest.exists()) {
+ return;
}
+ InputSupplier input = new InputSupplier() {
+ @Override
+ public InputStream getInput() throws IOException {
+ return getClass().getClassLoader().getResourceAsStream(name);
+ }
+ };
+ Files.copy(input, dest);
}
private void clean(File dir) {
@@ -173,17 +154,13 @@ private void delete(File f) {
return;
}
- if (f.isFile()) {
- f.delete();
- }
-
if (f.isDirectory()) {
File[] files = f.listFiles();
for (File file : files) {
delete(file);
}
- f.delete();
}
+ f.delete();
}
}