package hudson.plugins.promoted_builds;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.model.FreeStyleProject;
import hudson.plugins.promoted_builds.conditions.DownstreamPassCondition;
import hudson.tasks.JavadocArchiver;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.HudsonTestCase;
/**
* @author Seiji Sogabe
*/
public class ConfigurationDoCheckTest extends HudsonTestCase {
@Bug(7972)
public void testCheckProcessNameRequired() throws Exception {
FreeStyleProject down = createFreeStyleProject();
FreeStyleProject p = createFreeStyleProject();
JobPropertyImpl pp = new JobPropertyImpl(p);
p.addProperty(pp);
PromotionProcess proc = pp.addProcess("");
assertEquals(1,pp.getItems().size());
proc.conditions.add(new DownstreamPassCondition(down.getName()));
proc.getBuildSteps().add(new JavadocArchiver("somedir",true));
proc.icon = "star-blue";
WebClient client = new WebClient();
client.getOptions().setThrowExceptionOnFailingStatusCode(false);
HtmlPage page = submit(client.getPage(p, "configure").getFormByName("config"));
assertTrue(page.asText().contains("No name is specified"));
}
@Bug(7972)
public void testCheckInvalidProcessName() throws Exception {
FreeStyleProject down = createFreeStyleProject();
FreeStyleProject p = createFreeStyleProject();
JobPropertyImpl pp = new JobPropertyImpl(p);
p.addProperty(pp);
PromotionProcess proc = pp.addProcess("test/");
assertEquals(1,pp.getItems().size());
proc.conditions.add(new DownstreamPassCondition(down.getName()));
proc.getBuildSteps().add(new JavadocArchiver("somedir",true));
proc.icon = "star-blue";
WebClient client = new WebClient();
client.getOptions().setThrowExceptionOnFailingStatusCode(false);
HtmlPage page = submit(client.getPage(p, "configure").getFormByName("config"));
assertTrue(page.asText().contains("unsafe character"));
}
}