01: // Copyright © 2004-2007 ASERT. Released under the Canoo Webtest license.
02: package com.canoo.webtest.extension;
03:
04: import com.canoo.webtest.engine.StepExecutionException;
05: import com.canoo.webtest.engine.StepFailedException;
06: import com.canoo.webtest.self.TestBlock;
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.gargoylesoftware.htmlunit.html.HtmlInput;
12: import com.gargoylesoftware.htmlunit.html.HtmlPage;
13:
14: /**
15: * Test class for {@link ForceHiddenInputField}.<p>
16: *
17: * @author Paul King
18: */
19: public class ForceHiddenInputFieldTest extends BaseStepTestCase {
20: private ForceHiddenInputField fStep;
21:
22: protected Step createStep() {
23: return new ForceHiddenInputField();
24: }
25:
26: protected void setUp() throws Exception {
27: super .setUp();
28: fStep = (ForceHiddenInputField) getStep();
29: }
30:
31: public void testVerifyParameterUsage() {
32: TestBlock block = new TestBlock() {
33: public void call() throws Exception {
34: executeStep(fStep);
35: }
36: };
37: // <ForceHiddenInputField value="someValue"/>
38: fStep.setName(null);
39: fStep.setValue("someValue");
40: String message = ThrowAssert.assertThrows(
41: StepExecutionException.class, block);
42: assertTrue(message
43: .indexOf(AbstractSetFieldStep.MESSAGE_ARGUMENT_MISSING) != -1);
44: // <ForceHiddenInputField name="someName" />
45: fStep.setName("someName");
46: fStep.setValue(null);
47: // can't use assertStepRejects because of custom message due to inner text possibility
48: message = ThrowAssert.assertThrows(
49: StepExecutionException.class, block);
50: assertTrue(message.indexOf("\"" + "value" + "\" must be set") != -1);
51: }
52:
53: public void testVerifyParametersWithoutPreviousPage() {
54: fStep.setValue("someValue");
55: fStep.setName("someName");
56: assertStepRejectsNullResponse(fStep);
57: }
58:
59: public void testSetField() {
60: final HtmlPage page = getDummyPage("<html></html>");
61: ThrowAssert.assertThrows(StepFailedException.class,
62: new TestBlock() {
63: public void call() throws Throwable {
64: fStep.setValue("foo");
65: fStep.setField(page.createHtmlElement("img"));
66: }
67: });
68:
69: final HtmlInput input = (HtmlInput) page
70: .createHtmlElement("input");
71: fStep.setValue("foo");
72: fStep.setField(input);
73: assertEquals("foo", input.getValueAttribute());
74: }
75: }
|