// Released under the Canoo WebTest license
package com.canoo.webtest.steps.form;
/**
* @author Denis N. Antonioli
*/
import com.canoo.webtest.engine.StepFailedException;
import com.canoo.webtest.self.TestBlock;
import com.canoo.webtest.self.ThrowAssert;
import com.canoo.webtest.steps.StepTest;
import com.gargoylesoftware.htmlunit.html.HtmlBase;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractSetFieldStepTest extends StepTest {
public void testXPathAccessor() {
AbstractSetFieldStep step = (AbstractSetFieldStep) getStep();
final String xpath = "//form/input";
step.setXpath(xpath);
assertEquals(xpath, step.getXpath());
}
public void testHtmlIdAccessor() {
AbstractSetFieldStep step = (AbstractSetFieldStep) getStep();
final String htmlId = "id";
step.setHtmlId(htmlId);
assertEquals(htmlId, step.getHtmlId());
}
public void testNameAccessor() {
AbstractSetFieldStep step = (AbstractSetFieldStep) getStep();
final String name = "nom";
step.setName(name);
assertEquals(name, step.getName());
}
public void testSelectField() {
final List fieldList = new ArrayList();
ThrowAssert.assertThrows(StepFailedException.class, new TestBlock() {
public void call() {
AbstractSetFieldStep.selectField(fieldList, "", null);
}
});
final HtmlPage page = getDummyPage("<html></html>");
final HtmlBase element0 = (HtmlBase) page.createElement("base");
fieldList.add(element0);
final HtmlBase element1 = (HtmlBase) page.createElement("base");
fieldList.add(element1);
fieldList.add(page.createElement("base"));
ThrowAssert.assertThrows(StepFailedException.class, new TestBlock() {
public void call() {
AbstractSetFieldStep.selectField(fieldList, "3", null);
}
});
ThrowAssert.assertThrows(StepFailedException.class, new TestBlock() {
public void call() {
AbstractSetFieldStep.selectField(fieldList, "-1", null);
}
});
assertSame(element0, AbstractSetFieldStep.selectField(fieldList, "", null));
assertSame(element1, AbstractSetFieldStep.selectField(fieldList, "1", null));
}
}