/*
* 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.coverage;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import junit.framework.TestCase;
import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.jstestdriver.Action;
import com.google.jstestdriver.ActionRunner;
import com.google.jstestdriver.FileInfo;
import com.google.jstestdriver.FlagsImpl;
import com.google.jstestdriver.JsTestDriverModule;
import com.google.jstestdriver.guice.BrowserActionProvider;
import com.google.jstestdriver.guice.DebugModule;
import com.google.jstestdriver.guice.TestResultPrintingModule;
import com.google.jstestdriver.model.BasePaths;
/**
* Smoke test. If you see smoke, it failed.
*
* @author corysmith@google.com (Cory Smith)
*
*/
public class CoverageModuleTest extends TestCase {
public void testGetActionRunner() throws Exception {
CoverageModule coverage = new CoverageModule(Collections.<String> emptyList());
TestResultPrintingModule printStream = new TestResultPrintingModule();
FlagsImpl flags = new FlagsImpl();
flags.setTests(Arrays.asList("test"));
flags.setBrowser(Arrays.asList("ff"));
JsTestDriverModule jsTestDriverModule =
new JsTestDriverModule(flags,
Collections.<FileInfo> emptySet(),
"http://127.0.0.1:42242",
"http://127.0.0.1:42242",
System.out,
new BasePaths(new File(".")),
2 * 60 * 60,
Collections.<FileInfo>emptyList(),
Collections.<FileInfo>emptyList(),
new JsonArray());
final Injector injector = Guice.createInjector(Lists.newArrayList(coverage, printStream,
new DebugModule(false), jsTestDriverModule));
injector.getInstance(ActionRunner.class);
List<Action> actions = injector.getInstance(new Key<List<Action>>() {});
assertTrue(actions.get(actions.size() - 1) instanceof CoverageReporterAction);
assertTrue(injector
.getInstance(BrowserActionProvider.class) instanceof CoverageThreadedActionProvider);
}
}