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