use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class AnalysisCollectorPluginTest method should_checkout_pipeline_from_git.
/**
* Creates and builds a pipeline that is version controlled in Git. Basically the same test case as
* {@link AbstractAnalysisTest#should_navigate_to_result_action_from_pipeline()}. Rather than using the script
* text box a Git repository is connected.
*/
@Test
@WithPlugins({ "git", "workflow-basic-steps", "workflow-multibranch", "workflow-job", "workflow-durable-task-step" })
@WithDocker
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { CREDENTIALS_ID, KEY_FILENAME })
public void should_checkout_pipeline_from_git() {
String gitRepositoryUrl = createGitRepositoryInDockerContainer();
WorkflowJob job = jenkins.getJobs().create(WorkflowJob.class);
job.setJenkinsFileRepository(gitRepositoryUrl, CREDENTIALS_ID);
job.save();
Build build = buildSuccessfulJob(job);
verifyJobResults(job, build);
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class CheckStylePluginTest method should_show_warnings_per_user.
/**
* Verifies that blaming of warnings works on agents: creates a new project in a Git repository in a docker
* container. Registers the same docker container as slave agent to build the project. Uses the recorded build
* results in checkstyle-result.xml (no actual maven goal is invoked). Verifies that the blame information is
* correctly assigned for each of the warnings. Also checks, that the age is increased for yet another build.
*/
@Test
@WithPlugins({ "git", "dashboard-view", "analysis-core@1.88-SNAPSHOT", "ssh-slaves" })
@WithDocker
@Issue("JENKINS-6748")
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { CREDENTIALS_ID, CREDENTIALS_KEY })
public void should_show_warnings_per_user() {
// avoid JENKINS-49026
jenkins.restart();
DumbSlave agent = createDockerAgent();
String gitRepositoryUrl = createGitRepositoryInDockerContainer();
FreeStyleJob job = createFreeStyleJob(jenkins, null, settings -> settings.pattern.set("**/checkstyle-result.xml"));
job.configure(() -> {
job.useScm(GitScm.class).url(gitRepositoryUrl).credentials(CREDENTIALS_ID);
job.setLabelExpression(agent.getName());
});
buildSuccessfulJob(job);
CheckStyleAction action = new CheckStyleAction(job);
action.open();
SortedMap<String, Integer> expectedPeople = new TreeMap<>();
expectedPeople.put("Unknown authors", 1);
expectedPeople.put("Jenkins-ATH <jenkins-ath@example.org>", 11);
assertThat(action.getPeopleTabContents(), is(expectedPeople));
action.find(By.partialLinkText("Jenkins-ATH")).click();
assertThat(driver, hasContent("Checkstyle Warnings - Jenkins-ATH"));
action.open();
SortedMap<String, String> expectedOrigin = new TreeMap<>();
expectedOrigin.put("Main.java:0", "-");
expectedOrigin.put("Main.java:2", "Jenkins-ATH");
expectedOrigin.put("Main.java:4", "Jenkins-ATH");
expectedOrigin.put("Main.java:6", "Jenkins-ATH");
expectedOrigin.put("Main.java:9", "Jenkins-ATH");
expectedOrigin.put("Main.java:13", "Jenkins-ATH");
expectedOrigin.put("Main.java:18", "Jenkins-ATH");
expectedOrigin.put("Main.java:23", "Jenkins-ATH");
expectedOrigin.put("Main.java:24", "Jenkins-ATH");
expectedOrigin.put("Main.java:27", "Jenkins-ATH");
assertThat(action.getOriginTabContentsAsStrings(AUTHOR), is(expectedOrigin));
assertThatAgeIsAt(action, expectedOrigin, 1);
buildSuccessfulJob(job);
assertThatAgeIsAt(action, expectedOrigin, 2);
GraphConfigurationView view = action.configureTrendGraphForUser();
view.open();
view.setUserGraph();
view.save();
WebElement graph = find(getUsersTrendGraphXpath());
assertThat(graph.isDisplayed(), is(true));
verifyNoAuthors(action, true);
WebElement nothing = getElement(getUsersTrendGraphXpath());
assertThat(nothing, nullValue());
verifyNoAuthors(action, false);
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class SAMLPluginTest method authenticationOKFromURL.
@Test
@WithDocker
@WithPlugins({ "saml", "matrix-auth" })
public void authenticationOKFromURL() throws IOException, InterruptedException {
// navigate to root
jenkins.open();
String rootUrl = jenkins.getCurrentUrl();
SAMLContainer samlServer = startSimpleSAML(rootUrl);
GlobalSecurityConfig sc = new GlobalSecurityConfig(jenkins);
sc.open();
// Authentication
SamlSecurityRealm realm = configureBasicSettings(sc);
realm.setUrl(createIdPMetadataURL(samlServer));
configureEncrytion(realm);
configureAuthorization(sc);
// SAML service login page
waitFor().withTimeout(10, TimeUnit.SECONDS).until(() -> hasContent("Enter your username and password"));
// SAML server login
makeLoginWithUser1();
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class SAMLPluginTest method authenticationFail.
@Test
@WithDocker
@WithPlugins({ "saml", "matrix-auth" })
public void authenticationFail() throws IOException, InterruptedException {
// navigate to root
jenkins.open();
String rootUrl = jenkins.getCurrentUrl();
SAMLContainer samlServer = startSimpleSAML(rootUrl);
GlobalSecurityConfig sc = new GlobalSecurityConfig(jenkins);
sc.open();
// Authentication
SamlSecurityRealm realm = configureBasicSettings(sc);
String idpMetadata = readIdPMetadataFromURL(samlServer);
realm.setXml(idpMetadata);
configureEncrytion(realm);
configureAuthorization(sc);
// SAML service login page
waitFor().withTimeout(10, TimeUnit.SECONDS).until(() -> hasContent("Enter your username and password"));
// SAML server login
find(by.id("username")).sendKeys("user1");
find(by.id("password")).sendKeys("WrOnGpAsSwOrD");
find(by.button("Login")).click();
// wait for the login to propagate
waitFor().withTimeout(5, TimeUnit.SECONDS).until(() -> hasContent("Either no user with the given username could be found, or the password you gave was wrong").matchesSafely(driver));
assertThat(jenkins.getCurrentUrl(), containsString("simplesaml/module.php/core/loginuserpass.php"));
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class SAMLPluginTest method authenticationOK.
@Test
@WithDocker
@WithPlugins({ "saml", "matrix-auth" })
public void authenticationOK() throws IOException, InterruptedException {
// navigate to root
jenkins.open();
String rootUrl = jenkins.getCurrentUrl();
SAMLContainer samlServer = startSimpleSAML(rootUrl);
GlobalSecurityConfig sc = new GlobalSecurityConfig(jenkins);
sc.open();
// Authentication
SamlSecurityRealm realm = configureBasicSettings(sc);
String idpMetadata = readIdPMetadataFromURL(samlServer);
realm.setXml(idpMetadata);
realm.setBinding(SAML2_REDIRECT_BINDING_URI);
configureEncrytion(realm);
configureAuthorization(sc);
// SAML service login page
waitFor().withTimeout(10, TimeUnit.SECONDS).until(() -> hasContent("Enter your username and password"));
makeLoginWithUser1();
}
Aggregations