@@ -114,6 +114,31 @@ class MyTestCase {
public void app_should_work() {}
}

@Test
public void a_test_suite_can_be_started_directly_using_a_story_class() {
BaseStepListener stepListener = new BaseStepListener(FirefoxDriver.class, outputDirectory);
stepListener.testSuiteStarted(MyStory.class);
stepListener.testStarted("app_should_work");
assertThat(stepListener.getCurrentTestOutcome().getUserStory().getName(), is("My story"));
}

@Test
public void a_test_suite_can_be_started_directly_using_a_story_class_without_a_test_class() {
BaseStepListener stepListener = new BaseStepListener(FirefoxDriver.class, outputDirectory);
stepListener.testSuiteStarted(MyStory.class);
stepListener.testStarted("the app should work");
assertThat(stepListener.getCurrentTestOutcome().getUserStory().getName(), is("My story"));
}

@Test
public void a_test_suite_can_be_started_directly_using_a_story_instance_without_a_test_class() {
BaseStepListener stepListener = new BaseStepListener(FirefoxDriver.class, outputDirectory);
net.thucydides.core.model.Story story = net.thucydides.core.model.Story.from(MyStory.class);
stepListener.testSuiteStarted(story);
stepListener.testStarted("the app should work");
assertThat(stepListener.getCurrentTestOutcome().getUserStory().getName(), is("My story"));
}

@Test
public void should_keep_track_of_when_a_test_has_failed() {
BaseStepListener stepListener = new BaseStepListener(FirefoxDriver.class, outputDirectory);
@@ -226,7 +226,7 @@ public void should_record_when_a_test_starts_and_finishes() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -244,10 +244,10 @@ public void should_record_nested_test_steps() {
"TEST a_test\n"
+ "-step4\n"
+ "--step5\n"
+ "--step5 done\n"
+ "----> STEP DONE\n"
+ "--step6\n"
+ "--step6 done\n"
+ "-step4 done\n"
+ "----> STEP DONE\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -264,34 +264,34 @@ public void should_record_groups_as_nested_test_steps() {
"TEST a_test\n"
+ "-nested_steps\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--nested_steps1\n"
+ "---step1\n"
+ "---step1 done\n"
+ "-----> STEP DONE\n"
+ "---nested_steps2\n"
+ "----step1\n"
+ "----step1 done\n"
+ "------> STEP DONE\n"
+ "----step4\n"
+ "-----step5\n"
+ "-----step5 done\n"
+ "-------> STEP DONE\n"
+ "-----step6\n"
+ "-----step6 done\n"
+ "----step4 done\n"
+ "---nested_steps2 done\n"
+ "-------> STEP DONE\n"
+ "------> STEP DONE\n"
+ "-----> STEP DONE\n"
+ "---step4\n"
+ "----step5\n"
+ "----step5 done\n"
+ "------> STEP DONE\n"
+ "----step6\n"
+ "----step6 done\n"
+ "---step4 done\n"
+ "--nested_steps1 done\n"
+ "------> STEP DONE\n"
+ "-----> STEP DONE\n"
+ "----> STEP DONE\n"
+ "--step4\n"
+ "---step5\n"
+ "---step5 done\n"
+ "-----> STEP DONE\n"
+ "---step6\n"
+ "---step6 done\n"
+ "--step4 done\n"
+ "-nested_steps done\n"
+ "-----> STEP DONE\n"
+ "----> STEP DONE\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";

assertThat(sampleStepListener.toString(), is(expectedSteps));
@@ -308,12 +308,12 @@ public void should_record_deeply_nested_test_steps() {
"TEST a_test\n"
+ "-legacyStepGroup\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--step2\n"
+ "--step2 done\n"
+ "----> STEP DONE\n"
+ "--step3\n"
+ "--step3 done\n"
+ "-legacyStepGroup done\n"
+ "----> STEP DONE\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -330,7 +330,7 @@ public void should_record_step_failures() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-failingStep\n"
+ "---> STEP FAILED\n"
+ "TEST DONE\n";
@@ -349,7 +349,7 @@ public void should_record_pending_steps() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-pendingStep\n"
+ "---> STEP PENDING\n"
+ "TEST DONE\n";
@@ -369,10 +369,10 @@ public void should_record_nested_step_failures() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-step8\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--failingStep\n"
+ "----> STEP FAILED\n"
+ "--step4\n"
@@ -381,7 +381,7 @@ public void should_record_nested_step_failures() {
+ "---step6\n"
+ "-----> STEP IGNORED\n"
+ "----> STEP IGNORED\n"
+ "-step8 done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";

System.out.println(sampleStepListener.toString());
@@ -402,19 +402,19 @@ public void should_record_nested_pending_steps() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-step9\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--pendingStep\n"
+ "----> STEP PENDING\n"
+ "--step4\n"
+ "---step5\n"
+ "---step5 done\n"
+ "-----> STEP DONE\n"
+ "---step6\n"
+ "---step6 done\n"
+ "--step4 done\n"
+ "-step9 done\n"
+ "-----> STEP DONE\n"
+ "----> STEP DONE\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";

System.out.println(sampleStepListener.toString());
@@ -435,15 +435,15 @@ public void should_skip_steps_after_a_step_failure() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-step7\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--failingStep\n"
+ "----> STEP FAILED\n"
+ "--step2\n"
+ "----> STEP IGNORED\n"
+ "-step7 done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -460,15 +460,15 @@ public void should_skip_nested_steps_after_a_step_failure() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-step7\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--failingStep\n"
+ "----> STEP FAILED\n"
+ "--step2\n"
+ "----> STEP IGNORED\n"
+ "-step7 done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -485,15 +485,15 @@ public void should_not_use_the_browser() {
String expectedSteps =
"TEST a_test\n"
+ "-step1\n"
+ "-step1 done\n"
+ "---> STEP DONE\n"
+ "-step7\n"
+ "--step1\n"
+ "--step1 done\n"
+ "----> STEP DONE\n"
+ "--failingStep\n"
+ "----> STEP FAILED\n"
+ "--step2\n"
+ "----> STEP IGNORED\n"
+ "-step7 done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -509,11 +509,11 @@ public void a_step_can_return_a_step_object() {
String expectedSteps =
"TEST a_test\n"
+ "-stepThatReturnsAStep\n"
+ "-stepThatReturnsAStep done\n"
+ "---> STEP DONE\n"
+ "-stepThatReturnsAStep\n"
+ "-stepThatReturnsAStep done\n"
+ "---> STEP DONE\n"
+ "-stepThatReturnsAStep\n"
+ "-stepThatReturnsAStep done\n"
+ "---> STEP DONE\n"
+ "TEST DONE\n";
assertThat(sampleStepListener.toString(), is(expectedSteps));
}
@@ -3,6 +3,7 @@
import net.thucydides.core.webdriver.SupportedWebDriver;
import net.thucydides.core.webdriver.WebDriverFactory;
import net.thucydides.core.webdriver.WebdriverInstanceFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
@@ -23,21 +24,28 @@ public class WhenInstanciatingANewFirefoxDriver {

WebdriverInstanceFactory webdriverInstanceFactory;

WebDriver driver;

@Before
public void createFactory() {
webdriverInstanceFactory = new WebdriverInstanceFactory();
}

@After
public void closeFirefox() {
driver.quit();
}

@Test
public void should_support_creating_a_firefox_driver() throws Exception {
WebDriver driver = webdriverInstanceFactory.newInstanceOf(FirefoxDriver.class);
driver = webdriverInstanceFactory.newInstanceOf(FirefoxDriver.class);
assertThat(driver, instanceOf(FirefoxDriver.class));
}

@Test
public void should_support_creating_a_firefox_driver_with_a_profile() throws Exception {
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = webdriverInstanceFactory.newInstanceOf(FirefoxDriver.class, profile);
driver = webdriverInstanceFactory.newInstanceOf(FirefoxDriver.class, profile);
assertThat(driver, instanceOf(FirefoxDriver.class));
}
}