// Copyright � 2004-2005 ASERT. Released under the Canoo Webtest license. package com.canoo.webtest.steps.form; import java.io.File; import com.canoo.webtest.engine.StepExecutionException; import com.canoo.webtest.self.ThrowAssert; import com.canoo.webtest.steps.BaseStepTestCase; import com.canoo.webtest.steps.Step; import com.canoo.webtest.steps.form.AbstractSetFieldStep; import com.canoo.webtest.steps.form.SetFileField; /** * Test class for {@link SetFileField}. * @author Paul King * @author Marc Guillemot */ public class SetFileFieldTest extends BaseStepTestCase { private SetFileField fStep; protected Step createStep() { return new SetFileField(); } protected void setUp() throws Exception { super.setUp(); fStep = (SetFileField) getStep(); } public void testVerifyParameterUsage() { // <setFileField name="someName" /> fStep.setFileName(null); fStep.setName("someName"); assertStepRejectsNullParam("fileName", getExecuteStepTestBlock()); // <setFileField fileName="someFileName" /> fStep.setFileName(new File("someFileName")); fStep.setName(null); String msg = ThrowAssert.assertThrows(StepExecutionException.class, getExecuteStepTestBlock()); assertTrue(msg.indexOf(AbstractSetFieldStep.MESSAGE_ARGUMENT_MISSING) != -1); // bad index fStep.setName(null); fStep.setFieldIndex("blah"); ThrowAssert.assertThrows(StepExecutionException.class, getExecuteStepTestBlock()); } public void testVerifyParametersWithoutPreviousPage() { fStep.setFileName(new File("someFileName")); fStep.setName("someName"); assertStepRejectsNullResponse(fStep); } public void testErrorWithXmlPage() throws Exception { final File existingFile = new File("foo") { public boolean exists() { return true; } }; fStep.setName("someName"); fStep.setFileName(existingFile); assertErrorOnExecuteIfCurrentPageIsXml(fStep); } }