Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,11 @@
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>12.0</version>
</dependency>
</dependencies>
</project>
13 changes: 3 additions & 10 deletions src/main/java/jsjunit/jetty/ResultServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -49,21 +51,12 @@ 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)
));
}
}

return result;
}

private static String stringify(LinkedList<String> queue) {
StringBuilder builder = new StringBuilder();
for (String result : queue) {
if (builder.length() > 0) { builder.append(", "); }
builder.append(result);
}
return builder.toString();
}

}
30 changes: 11 additions & 19 deletions src/main/java/jsjunit/qunit/QUnitTestRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<TestJS> {

private final RunnerService runnerService;
Expand Down Expand Up @@ -92,18 +94,8 @@ protected List<TestJS> 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
Expand All @@ -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()
Expand All @@ -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);
}
}
}
Expand Down
23 changes: 6 additions & 17 deletions src/main/java/jsjunit/service/PhantomJS.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down Expand Up @@ -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);
}
}

Expand Down
57 changes: 17 additions & 40 deletions src/main/java/jsjunit/service/WorkspaceManager.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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<InputStream> input = new InputSupplier<InputStream>() {
@Override
public InputStream getInput() throws IOException {
return getClass().getClassLoader().getResourceAsStream(name);
}
};
Files.copy(input, dest);
}

private void clean(File dir) {
Expand All @@ -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();
}

}