Title: [1203] trunk/web/web-selenium/src/test/java/org/jbehave/web/selenium: Added SeleniumStepsMonitor

Diff

Modified: trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsConfiguration.java (1202 => 1203)

--- trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsConfiguration.java	2009-08-26 20:37:00 UTC (rev 1202)
+++ trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsConfiguration.java	2009-08-26 20:37:05 UTC (rev 1203)
@@ -1,20 +1,19 @@
 package org.jbehave.web.selenium;
 
 import org.jbehave.scenario.steps.SilentStepMonitor;
+import org.jbehave.scenario.steps.StepMonitor;
 import org.jbehave.scenario.steps.StepsConfiguration;
 
 import com.thoughtworks.selenium.Selenium;
 
 public class SeleniumStepsConfiguration extends StepsConfiguration {
 
-	public SeleniumStepsConfiguration(final Selenium selenium, final SeleniumContext seleniumContext) {
-		useMonitor(new SilentStepMonitor(){
-			@Override
-			public void performing(String step){
-				String context = seleniumContext.getCurrentScenario() + "<br>" + step;
-				selenium.setContext(context);
-			}
-		});
+	public SeleniumStepsConfiguration(Selenium selenium, SeleniumContext seleniumContext) {
+		this(selenium, seleniumContext, new SilentStepMonitor());
 	}
 
+	public SeleniumStepsConfiguration(Selenium selenium, SeleniumContext seleniumContext, StepMonitor stepMonitor) {
+		useMonitor(new SeleniumStepsMonitor(selenium, seleniumContext, stepMonitor));
+	}
+
 }

Modified: trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsMonitor.java (1202 => 1203)

--- trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsMonitor.java	2009-08-26 20:37:00 UTC (rev 1202)
+++ trunk/web/web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumStepsMonitor.java	2009-08-26 20:37:05 UTC (rev 1203)
@@ -1,6 +1,3 @@
-/**
- * 
- */
 package org.jbehave.web.selenium;
 
 import java.lang.reflect.Type;
@@ -9,12 +6,12 @@
 
 import com.thoughtworks.selenium.Selenium;
 
-class SeleniumStepsMonitor implements StepMonitor {
+public class SeleniumStepsMonitor implements StepMonitor {
 	private final Selenium selenium;
 	private final SeleniumContext seleniumContext;
 	private final StepMonitor delegate;
 
-	SeleniumStepsMonitor(Selenium selenium,
+	public SeleniumStepsMonitor(Selenium selenium,
 			SeleniumContext seleniumContext, StepMonitor delegate) {
 		this.selenium = selenium;
 		this.seleniumContext = seleniumContext;

Modified: trunk/web/web-selenium/src/test/java/org/jbehave/web/selenium/SeleniumStepsConfigurationTest.java (1202 => 1203)

--- trunk/web/web-selenium/src/test/java/org/jbehave/web/selenium/SeleniumStepsConfigurationTest.java	2009-08-26 20:37:00 UTC (rev 1202)
+++ trunk/web/web-selenium/src/test/java/org/jbehave/web/selenium/SeleniumStepsConfigurationTest.java	2009-08-26 20:37:05 UTC (rev 1203)
@@ -1,5 +1,6 @@
 package org.jbehave.web.selenium;
 
+import org.jbehave.scenario.steps.StepMonitor;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 import org.jmock.integration.junit4.JMock;
@@ -13,20 +14,40 @@
 
 	private Mockery mockery = new Mockery();
 
-	private final Selenium selenium = mockery.mock(Selenium.class);
+	private Selenium selenium = mockery.mock(Selenium.class);
+	private StepMonitor stepMonitor = mockery.mock(StepMonitor.class);
 
 	@Test
 	public void canConfigureSeleniumContextToShowCurrentScenario() throws Throwable{
 		SeleniumContext seleniumContext = new SeleniumContext();
 		String currentScenario = "current scenario";
-		String step = "a step";
+		final String step = "a step";
 		final String context = currentScenario + "<br>" + step;
 		mockery.checking(new Expectations(){{
 			one(selenium).setContext(context);
+			one(stepMonitor).performing(step);
 		}});
-		SeleniumStepsConfiguration configuration = new SeleniumStepsConfiguration(selenium, seleniumContext);
+		SeleniumStepsConfiguration configuration = new SeleniumStepsConfiguration(selenium, seleniumContext, stepMonitor);
 		seleniumContext.setCurrentScenario(currentScenario);
 		configuration.getMonitor().performing(step);		
 	}
 
+	@Test
+	public void canDelegateOtherSeleniumStepsMonitorCalls() throws Throwable{
+		final String step = "a step";
+		final String value = "value";
+		final Class<String> type = String.class;
+		final String converted = "converted";
+		final Class<String> converterClass = String.class;
+		final String pattern = "pattern";
+		final boolean matches = true;
+		mockery.checking(new Expectations(){{
+			one(stepMonitor).convertedValueOfType(value, type, converted, converterClass);
+			one(stepMonitor).stepMatchesPattern(step, matches, pattern);
+		}});
+		SeleniumStepsMonitor monitor = new SeleniumStepsMonitor(selenium, new SeleniumContext(), stepMonitor);
+		monitor.convertedValueOfType(value, type, converted, converterClass);
+		monitor.stepMatchesPattern(step, matches, pattern);
+	}
+
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to