use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class SAMLPluginTest method authenticationOKPostBinding.
@Test
@WithDocker
@WithPlugins({ "saml", "matrix-auth" })
public void authenticationOKPostBinding() 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_POST_BINDING_URI);
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 WarningsPluginTest method detailsTabContentWithOneWarningTest.
@Test
@WithDocker
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { CREDENTIALS_ID, CREDENTIALS_KEY })
@WithPlugins("ssh-slaves")
public void detailsTabContentWithOneWarningTest() throws ExecutionException, InterruptedException {
WarningsAction action = createAndBuildCompileJobOnAgent(resource("/warnings_plugin/WarningMain2.java"), "javac -Xlint:all WarningMain2.java");
SortedMap<String, String> details = action.getDetailsTabContents();
assertThat("Assert the proper detail count.", details.entrySet(), hasSize(1));
assertThatDetailsAre(details, "redundant cast to TextClass", "WarningMain2.java:9");
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_scan_files_on_slave.
@Test
@WithDocker
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { CREDENTIALS_ID, CREDENTIALS_KEY })
@WithPlugins("ssh-slaves")
public void should_scan_files_on_slave() {
DumbSlave dockerSlave = createDockerAgent();
FreeStyleJob job = prepareDockerSlave(dockerSlave);
job.configure();
job.copyResource(resource("/warnings_plugin/out.txt"));
job.addPublisher(WarningsPublisher.class).addWorkspaceFileScanner(JAVA_ID, "out.txt");
job.save();
Build build = job.startBuild().shouldSucceed();
assertThatActionExists(job, build, "Java Warnings");
build.open();
assertThat(driver, hasContent("Java Warnings: " + 2));
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class WarningsPluginTest method should_have_correct_details.
@Test
@WithDocker
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { CREDENTIALS_ID, CREDENTIALS_KEY })
@WithPlugins("ssh-slaves")
public void should_have_correct_details() throws ExecutionException, InterruptedException {
WarningsAction action = createAndBuildCompileJobOnAgent(resource("/warnings_plugin/WarningMain.java"), "javac -Xlint:all WarningMain.java");
SortedMap<String, String> details = action.getDetailsTabContents();
assertThat("Assert the proper detail count.", details.entrySet(), hasSize(3));
assertThatDetailsAre(details, "redundant cast to TextClass", "WarningMain.java:10");
// removing tested entry from details.
details.remove(details.firstKey());
assertThatDetailsAre(details, "redundant cast to TextClass", "WarningMain.java:11");
// removing tested entry from details.
details.remove(details.firstKey());
assertThatDetailsAre(details, "division by zero", "WarningMain.java:14");
}
use of org.jenkinsci.test.acceptance.junit.WithDocker in project acceptance-test-harness by jenkinsci.
the class AnalysisCollectorPluginTest method should_open_links_in_folder_dashboard_and_nested_views.
/**
* Sets up a nested view that contains a dashboard view with a warnings-per-project portlet.
* Creates a folder in this view and a multi-branch job in this folder.
* The multi-branch job is based on a git repository with two branches (master and branch).
* Each branch contains a Jenkinsfile and several warnings results files.
* Builds the jobs and verifies that the portlet is correctly filled and that all links open the correct page.
*/
@Test
@Issue({ "JENKINS-39950" })
@WithPlugins({ "dashboard-view", "nested-view", "git", "workflow-job", "workflow-cps", "workflow-basic-steps", "workflow-durable-task-step", "workflow-multibranch" })
@WithDocker
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { "warnings", "/org/jenkinsci/test/acceptance/docker/fixtures/GitContainer/unsafe" })
public void should_open_links_in_folder_dashboard_and_nested_views() {
// avoid JENKINS-49026
checkExtensionAreDeployed("hudson.plugins.analysis.dashboard.AbstractPortlet", Collections.EMPTY_SET);
// Given
NestedView nested = jenkins.getViews().create(NestedView.class);
DashboardView dashboard = nested.getViews().create(DashboardView.class);
dashboard.configure(() -> {
dashboard.matchAllJobs();
dashboard.checkRecurseIntoFolders();
addWarningsPortlet(dashboard);
});
Folder folder = dashboard.jobs.create(Folder.class);
folder.save();
folder.open();
String repoUrl = createGitRepositoryInDockerContainer();
WorkflowMultiBranchJob job = folder.getJobs().create(WorkflowMultiBranchJob.class);
GitBranchSource branchSource = job.addBranchSource(GitBranchSource.class);
branchSource.setRemote(repoUrl);
branchSource.setCredentials("warnings");
job.save();
job.waitForBranchIndexingFinished(20);
// When
List<String> jobs = Arrays.asList("master", "branch");
for (String name : jobs) {
buildBranch(job, name);
}
// Then
dashboard.open();
for (String name : jobs) {
verifyWarningsCountInPortlet(name, dashboard);
}
for (AnalysisPlugin plugin : ANALYSIS_PLUGINS) {
for (String name : jobs) {
dashboard.open();
findPortletLink(dashboard, name, plugin.getId()).click();
assertThat(driver, hasContent(plugin.getName()));
}
}
}
Aggregations