01: // Copyright © 2004-2005 ASERT. Released under the Canoo Webtest license.
02: package com.canoo.webtest.steps.form;
03:
04: import java.io.File;
05:
06: import com.canoo.webtest.engine.StepExecutionException;
07: import com.canoo.webtest.self.ThrowAssert;
08: import com.canoo.webtest.steps.BaseStepTestCase;
09: import com.canoo.webtest.steps.Step;
10: import com.canoo.webtest.steps.form.AbstractSetFieldStep;
11: import com.canoo.webtest.steps.form.SetFileField;
12:
13: /**
14: * Test class for {@link SetFileField}.
15: * @author Paul King
16: * @author Marc Guillemot
17: */
18: public class SetFileFieldTest extends BaseStepTestCase {
19: private SetFileField fStep;
20:
21: protected Step createStep() {
22: return new SetFileField();
23: }
24:
25: protected void setUp() throws Exception {
26: super .setUp();
27: fStep = (SetFileField) getStep();
28: }
29:
30: public void testVerifyParameterUsage() {
31: // <setFileField name="someName" />
32: fStep.setFileName(null);
33: fStep.setName("someName");
34: assertStepRejectsNullParam("fileName",
35: getExecuteStepTestBlock());
36: // <setFileField fileName="someFileName" />
37: fStep.setFileName(new File("someFileName"));
38: fStep.setName(null);
39: String msg = ThrowAssert
40: .assertThrows(StepExecutionException.class,
41: getExecuteStepTestBlock());
42: assertTrue(msg
43: .indexOf(AbstractSetFieldStep.MESSAGE_ARGUMENT_MISSING) != -1);
44: // bad index
45: fStep.setName(null);
46: fStep.setFieldIndex("blah");
47: ThrowAssert.assertThrows(StepExecutionException.class,
48: getExecuteStepTestBlock());
49: }
50:
51: public void testVerifyParametersWithoutPreviousPage() {
52: fStep.setFileName(new File("someFileName"));
53: fStep.setName("someName");
54: assertStepRejectsNullResponse(fStep);
55: }
56:
57: public void testErrorWithXmlPage() throws Exception {
58: final File existingFile = new File("foo") {
59: public boolean exists() {
60: return true;
61: }
62: };
63: fStep.setName("someName");
64: fStep.setFileName(existingFile);
65: assertErrorOnExecuteIfCurrentPageIsXml(fStep);
66: }
67:
68: }
|