Package com.google.jstestdriver.output

Source Code of com.google.jstestdriver.output.DefaultListenerTest

/*
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.jstestdriver.output;

import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;

import junit.framework.TestCase;

import com.google.gson.Gson;
import com.google.jstestdriver.BrowserInfo;
import com.google.jstestdriver.JsException;
import com.google.jstestdriver.TestResult;

public class DefaultListenerTest extends TestCase {

  private static final String NEW_LINE = System.getProperty("line.separator");
  private final Gson gson = new Gson();
  private OutputStream buf = new ByteArrayOutputStream();
  private PrintStream out = new PrintStream(buf, true);

  public void testEachPassedTestPrintsDotEorFFailuresOnClose() throws Exception {
    DefaultListener printer = new DefaultListener(out, false);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.onTestComplete(testResult(browser, "passed", "", "", "A", "d", 1));
    printer.onTestComplete(testResult(browser, "failed", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "", "B", "e", 2));
    printer.onTestComplete(testResult(browser, "error", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "", "C", "f", 3));
    printer.finish();
    assertEquals(".FE" + NEW_LINE +
        "Total 3 tests (Passed: 1; Fails: 1; Errors: 1) (6.00 ms)" + NEW_LINE +
        "  TB 1 os: Run 3 tests (Passed: 1; Fails: 1; Errors 1) (6.00 ms)" + NEW_LINE +
        "    B.e failed (2.00 ms): abc" + NEW_LINE + "      stack" + NEW_LINE + NEW_LINE +
        "    C.f error (3.00 ms): abc" + NEW_LINE + "      stack" + NEW_LINE + NEW_LINE,
        buf.toString());
  }

  public void testEachTestPrintsDotAndWrapsLongLine() throws Exception {
    DefaultListener printer = new DefaultListener(out, false);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.setLineLength(1);
    TestResult result = new TestResult(browser, "passed", "", "", "", "", 0);

    printer.onTestComplete(result);
    printer.onTestComplete(result);
    printer.onTestComplete(result);
    assertEquals("." + NEW_LINE + "." + NEW_LINE + "." + NEW_LINE, buf.toString());
  }

  public void testNotVerbosePassAndLog() throws Exception {
    DefaultListener printer = new DefaultListener(out, false);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.onTestComplete(testResult(browser, "passed", "", "[LOG] some log", "A", "d", 1));
    printer.finish();
    assertEquals("." + NEW_LINE +
        "Total 1 tests (Passed: 1; Fails: 0; Errors: 0) (1.00 ms)" + NEW_LINE +
        "  TB 1 os: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (1.00 ms)" + NEW_LINE +
        "    A.d passed (1.00 ms)" + NEW_LINE +
        "      [LOG] some log" + NEW_LINE, buf.toString());
  }

  public void testVerbosePassAndLog() throws Exception {
    DefaultListener printer = new DefaultListener(out, true);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.onTestComplete(testResult(browser, "passed", "", "[LOG] some log", "A", "d", 1));
    printer.finish();
    assertEquals("TB 1 os [PASSED] A.d" + NEW_LINE +
        "  [LOG] some log" + NEW_LINE +
        "Total 1 tests (Passed: 1; Fails: 0; Errors: 0) (1.00 ms)" + NEW_LINE +
        "  TB 1 os: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (1.00 ms)" + NEW_LINE,
        buf.toString());
  }

  public void testNotVerbosePassFailErrorAndLog() throws Exception {

    DefaultListener printer = new DefaultListener(out, false);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.onTestComplete(testResult(browser, "passed", "", "[LOG] some log", "A", "d", 1));
    printer.onTestComplete(testResult(browser, "failed", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "[LOG] failed log", "B", "e", 2));
    printer.onTestComplete(testResult(browser, "error", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "[LOG] error log", "C", "f", 3));
    printer.finish();
    assertEquals(".FE" + NEW_LINE +
        "Total 3 tests (Passed: 1; Fails: 1; Errors: 1) (6.00 ms)" + NEW_LINE +
        "  TB 1 os: Run 3 tests (Passed: 1; Fails: 1; Errors 1) (6.00 ms)" + NEW_LINE +
        "    A.d passed (1.00 ms)" + NEW_LINE +
        "      [LOG] some log" + NEW_LINE +
        "    B.e failed (2.00 ms): abc" + NEW_LINE +
        "      stack" + NEW_LINE + NEW_LINE +
        "      [LOG] failed log" + NEW_LINE +
        "    C.f error (3.00 ms): abc" + NEW_LINE +
        "      stack" + NEW_LINE + NEW_LINE +
        "      [LOG] error log" + NEW_LINE, buf.toString());
  }
 
  private TestResult testResult(BrowserInfo browser, String result, String message, String log,
      String testCaseName, String testName, float time) {
    final TestResult testResult =
      new TestResult(browser, result, message, log, testCaseName, testName, time);
    if (!"passed".equals(result)) {
      final JsException exception = gson.fromJson(message, JsException.class);
     
      testResult.setParsedMessage(exception.getMessage());
      testResult.setStack(exception.getStack());
    }
    return testResult;
  }

  public void testVerbosePassFailErrorAndLog() throws Exception {
    DefaultListener printer = new DefaultListener(out, true);
    BrowserInfo browser = new BrowserInfo();

    browser.setName("TB");
    browser.setVersion("1");
    browser.setOs("os");
    printer.onTestComplete(testResult(browser, "passed", "", "[LOG] some log", "A", "d", 1));
    printer.onTestComplete(testResult(browser, "failed", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "[LOG] failed log", "B", "e", 2));
    printer.onTestComplete(testResult(browser, "error", gson.toJson(new JsException("name", "abc",
        "fileName", 1L, "stack")), "[LOG] error log", "C", "f", 3));
    printer.finish();
    assertEquals("TB 1 os [PASSED] A.d" + NEW_LINE +
        "  [LOG] some log" + NEW_LINE +
        "TB 1 os [FAILED] B.e" + NEW_LINE +
        "  [LOG] failed log" + NEW_LINE +
        "TB 1 os [ERROR] C.f" + NEW_LINE +
        "  [LOG] error log" + NEW_LINE +
        "Total 3 tests (Passed: 1; Fails: 1; Errors: 1) (6.00 ms)" + NEW_LINE +
        "  TB 1 os: Run 3 tests (Passed: 1; Fails: 1; Errors 1) (6.00 ms)" + NEW_LINE +
        "    B.e failed (2.00 ms): abc" + NEW_LINE +
        "      stack" + NEW_LINE + NEW_LINE +
        "    C.f error (3.00 ms): abc" + NEW_LINE +
        "      stack" + NEW_LINE + NEW_LINE , buf.toString());
  }
}
TOP

Related Classes of com.google.jstestdriver.output.DefaultListenerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.