Package com.google.jstestdriver

Source Code of com.google.jstestdriver.JsTestDriverTest$TestConfiguration

/*
* Copyright 2011 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;

import com.google.gson.JsonArray;
import com.google.jstestdriver.browser.DocType;
import com.google.jstestdriver.config.Configuration;
import com.google.jstestdriver.config.ConfigurationException;
import com.google.jstestdriver.config.ConfigurationParser;
import com.google.jstestdriver.config.ConfigurationSource;
import com.google.jstestdriver.config.DefaultConfiguration;
import com.google.jstestdriver.config.UserConfigurationSource;
import com.google.jstestdriver.config.YamlParser;
import com.google.jstestdriver.embedded.JsTestDriverBuilder;
import com.google.jstestdriver.hooks.ServerListener;
import com.google.jstestdriver.model.BasePaths;
import com.google.jstestdriver.model.HandlerPathPrefix;
import com.google.jstestdriver.runner.RunnerMode;

import junit.framework.TestCase;

import java.io.File;
import java.util.List;
import java.util.Set;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.TimeUnit;

/**
* @author corysmith@google.com (Cory Smith)
*
*/
public class JsTestDriverTest extends TestCase {

  private final class TestListener implements ServerListener {
    boolean serverStopped;
    boolean serverStarted;
    private final CountDownLatch startLatch;
    private final CountDownLatch stopLatch;

    /**
     * @param startLatch
     * @param stopLatch
     */
    public TestListener(CountDownLatch startLatch, CountDownLatch stopLatch) {
      this.startLatch = startLatch;
      this.stopLatch = stopLatch;
    }

    @Override
    public void serverStopped() {
      serverStopped = true;
      stopLatch.countDown();
    }

    @Override
    public void serverStarted() {
      serverStarted = true;
      startLatch.countDown();
    }

    @Override
    public void browserPanicked(BrowserInfo info) {
     
    }

    @Override
    public void browserCaptured(BrowserInfo info) {
     
    }
  }

  private final class TestConfiguration extends DefaultConfiguration {
    public TestConfiguration(File basePath) {
      super(new BasePaths(basePath));
    }
  }

  public void testServerStartAndStop() throws Exception {
    CountDownLatch startLatch = new CountDownLatch(1);
    CountDownLatch stopLatch = new CountDownLatch(1);
    TestListener testServerListener = new TestListener(startLatch, stopLatch);
    JsTestDriver jstd = new JsTestDriverBuilder()
        .setDefaultConfiguration(new TestConfiguration(new File(".")))
        .setRunnerMode(RunnerMode.DEBUG)
        .addServerListener(testServerListener)
        .setPort(8081)
        .build();
    jstd.startServer();
    startLatch.await(10, TimeUnit.SECONDS);
    assertTrue(testServerListener.serverStarted);
    jstd.stopServer();
    stopLatch.await(10, TimeUnit.SECONDS);
    assertTrue(testServerListener.serverStopped);
  }
 
  public void a_testDryRun() throws Exception {
    CountDownLatch startLatch = new CountDownLatch(1);
    CountDownLatch stopLatch = new CountDownLatch(1);
    TestListener testServerListener = new TestListener(startLatch, stopLatch);
    JsTestDriver jstd = new JsTestDriverBuilder()
        .setDefaultConfiguration(new TestConfiguration(new File(".")))
        .setRunnerMode(RunnerMode.DEBUG)
        .addServerListener(testServerListener)
        .setPort(8082)
        .build();
    jstd.startServer();
    startLatch.await(10, TimeUnit.SECONDS);
    assertTrue(testServerListener.serverStarted);
    Configuration configuration = new UserConfigurationSource(new File("./jsTestDriver.conf")).parse(new BasePaths(new File(".")), new YamlParser());
    jstd.getTestCasesFor(configuration);
    jstd.stopServer();
    stopLatch.await(10, TimeUnit.SECONDS);
    assertTrue(testServerListener.serverStopped);
  }
}
TOP

Related Classes of com.google.jstestdriver.JsTestDriverTest$TestConfiguration

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.