1.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/SystemTest.java Mon Sep 30 17:11:18 2013 +0200
1.2 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/SystemTest.java Tue Dec 10 17:14:15 2013 +0100
1.3 @@ -17,6 +17,9 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.tck;
1.6
1.7 +import java.io.ByteArrayOutputStream;
1.8 +import java.io.PrintStream;
1.9 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.10 import org.apidesign.bck2brwsr.vmtest.Compare;
1.11 import org.apidesign.bck2brwsr.vmtest.VMTest;
1.12 import org.testng.annotations.Factory;
1.13 @@ -30,6 +33,30 @@
1.14 return System.getProperty("os.name") != null;
1.15 }
1.16
1.17 + @Compare public String captureStdOut() throws Exception {
1.18 + Object capture = initCapture();
1.19 + System.out.println("Ahoj");
1.20 + return textCapture(capture);
1.21 + }
1.22 +
1.23 + @JavaScriptBody(args = {}, body = ""
1.24 + + "var lines = [];"
1.25 + + "console.log = function(l) { lines.push(l); };"
1.26 + + "return lines;")
1.27 + Object initCapture() {
1.28 + ByteArrayOutputStream os = new ByteArrayOutputStream();
1.29 + PrintStream ps = new PrintStream(os);
1.30 +
1.31 + System.setOut(ps);
1.32 + return os;
1.33 + }
1.34 +
1.35 + @JavaScriptBody(args = { "o" }, body = "return o.join('');")
1.36 + String textCapture(Object o) throws java.io.IOException {
1.37 + ByteArrayOutputStream b = (ByteArrayOutputStream) o;
1.38 + return new String(b.toByteArray(), "UTF-8");
1.39 + }
1.40 +
1.41 @Factory public static Object[] create() {
1.42 return VMTest.create(SystemTest.class);
1.43 }