package br.com.caelum.vraptor.mydvds; import static java.util.Arrays.asList; import static org.jbehave.core.io.CodeLocations.codeLocationFromClass; import static org.jbehave.core.reporters.StoryReporterBuilder.Format.HTML; import static org.jbehave.core.reporters.StoryReporterBuilder.Format.IDE_CONSOLE; import static org.jbehave.core.reporters.StoryReporterBuilder.Format.TXT; import static org.jbehave.core.reporters.StoryReporterBuilder.Format.XML; import java.util.List; import org.jbehave.core.Embeddable; import org.jbehave.core.configuration.Configuration; import org.jbehave.core.io.CodeLocations; import org.jbehave.core.io.LoadFromClasspath; import org.jbehave.core.io.StoryFinder; import org.jbehave.core.junit.JUnitStories; import org.jbehave.core.reporters.StoryReporterBuilder; import org.jbehave.core.steps.CandidateSteps; import org.jbehave.core.steps.InstanceStepsFactory; import org.jbehave.core.steps.SilentStepMonitor; import org.jbehave.web.selenium.ContextView; import org.jbehave.web.selenium.DefaultWebDriverFactory; import org.jbehave.web.selenium.LocalFrameContextView; import org.jbehave.web.selenium.SeleniumConfiguration; import org.jbehave.web.selenium.SeleniumContext; import org.jbehave.web.selenium.SeleniumStepMonitor; import org.jbehave.web.selenium.WebDriverFactory; import br.com.caelum.vraptor.mydvds.pages.PageFactory; public class MyDvdsStories extends JUnitStories { private final WebDriverFactory driverFactory = new DefaultWebDriverFactory(); private final PageFactory pageFactory = new PageFactory(driverFactory); private final SeleniumContext context = new SeleniumContext(); private final ContextView contextView = new LocalFrameContextView().sized(500, 100); @Override public Configuration configuration() { Class<? extends Embeddable> embeddableClass = this.getClass(); SeleniumStepMonitor monitor = new SeleniumStepMonitor(contextView, context, new SilentStepMonitor()); StoryReporterBuilder builder = new MyBuilder(context, contextView); builder = builder.withCodeLocation( CodeLocations.codeLocationFromClass(embeddableClass)) .withDefaultFormats().withFormats(IDE_CONSOLE, TXT, HTML, XML); return new SeleniumConfiguration().useSeleniumContext(context) .useWebDriverFactory(driverFactory).useStepMonitor(monitor) .useStoryLoader(new LoadFromClasspath(embeddableClass)) .useStoryReporterBuilder(builder); } @Override public List<CandidateSteps> candidateSteps() { return new InstanceStepsFactory(configuration(), new MyDvdsSteps( pageFactory), new FailingScenarioScreenshotCapture( driverFactory)).createCandidateSteps(); } @Override protected List<String> storyPaths() { return new StoryFinder().findPaths(codeLocationFromClass( this.getClass()).getFile(), asList("**/*.story"), null); } }