package com.cloudbees.hudson.plugins.folder.tasks; import net.serenitybdd.screenplay.Actor; import net.serenitybdd.screenplay.Task; import net.serenitybdd.screenplay.actions.Click; import net.serenitybdd.screenplay.actions.Enter; import net.serenitybdd.screenplay.jenkins.actions.Choose; import net.serenitybdd.screenplay.jenkins.targets.RadioButton; import net.serenitybdd.screenplay.jenkins.user_interface.NewJobPage; import net.serenitybdd.screenplay.jenkins.user_interface.navigation.SidePanel; import net.thucydides.core.annotations.Step; import static net.serenitybdd.screenplay.Tasks.instrumented; import static net.serenitybdd.screenplay.jenkins.user_interface.navigation.Buttons.Save; import static org.openqa.selenium.Keys.ENTER; public class CreateAFolder implements Task { public static CreateAFolder called(String name) { return instrumented(CreateAFolder.class, name); } @Override @Step("{0} creates a '#name' folder") public <T extends Actor> void performAs(T actor) { actor.attemptsTo( Click.on(SidePanel.New_Item_Link), Choose.the(RadioButton.withLabel("Folder")), Enter.theValue(name).into(NewJobPage.Item_Name_Field).thenHit(ENTER), Click.on(Save) ); } public CreateAFolder(String jobName) { this.name = jobName; } private final String name; }