Search in sources :

Example 76 with FreeStyleJob

use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.

the class JobDslPluginTest method should_ignore_existing_jobs.

/**
 * Verifies whether previously generated jobs will be ignored or updated.
 * By default, all previous generated jobs will be updated.
 * If existing jobs should be ignored, the plugin do not modify previous
 * generated jobs.
 */
@Test
public void should_ignore_existing_jobs() {
    FreeStyleJob seedJob = createSeedJob();
    JobDslBuildStep jobDsl = seedJob.addBuildStep(JobDslBuildStep.class);
    jobDsl.setScript("job('Existing_Job') {\n" + "   description('Existing description');\n" + "}");
    seedJob.save();
    seedJob.scheduleBuild().shouldSucceed();
    FreeStyleJob existingJob = getJob("Existing_Job");
    seedJob.configure(() -> {
        jobDsl.setScript("job('Existing_Job') {\n" + "   description('This is a description');\n" + "}");
        jobDsl.setIgnoreExisting(true);
    });
    Build build = seedJob.scheduleBuild().shouldSucceed();
    Pattern expected = Pattern.compile("Existing items:(\\s*)GeneratedJob[{]name='Existing_Job'}");
    assertThat(build.getConsole(), containsRegexp(expected));
    checkDescription(existingJob, "Existing description");
    seedJob.configure(() -> jobDsl.setIgnoreExisting(false));
    Build build2 = seedJob.scheduleBuild().shouldSucceed();
    assertThat(build2.getConsole(), containsRegexp(expected));
    checkDescription(existingJob, "This is a description");
}
Also used : Pattern(java.util.regex.Pattern) JobDslBuildStep(org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep) Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 77 with FreeStyleJob

use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.

the class JobDslPluginTest method should_show_job_dsl_api_reference.

/**
 * Verifies that the sidebar link 'Job DSL API Reference' on the project page of a job
 * is only shown if the job contains a Job DSL build step.
 * Further it checks that the API page could be shown if the link was clicked.
 */
@Test
public void should_show_job_dsl_api_reference() {
    String hrefLocator = "/plugin/job-dsl/api-viewer/index.html";
    FreeStyleJob seedJob = createSeedJob();
    seedJob.open();
    assertThat(driver, not(hasElement(by.href(hrefLocator))));
    seedJob.configure(() -> seedJob.addBuildStep(JobDslBuildStep.class));
    find(by.href(hrefLocator)).click();
    assertThat(driver, hasElement(by.link("Jenkins Job DSL Plugin")));
    seedJob.configure(seedJob::removeFirstBuildStep);
    assertThat(driver, not(hasElement(by.href(hrefLocator))));
}
Also used : JobDslBuildStep(org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 78 with FreeStyleJob

use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.

the class JobDslPluginTest method createJobThatFails.

/**
 * This method creates a job which uses a job DSL script that fails its build.
 * @return job that failed
 */
private Job createJobThatFails() {
    String jobDslScriptFailed = "fail";
    FreeStyleJob job = createJobAndSetJobDslScript(jobDslScriptFailed, false);
    job.scheduleBuild().shouldFail();
    return job;
}
Also used : CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob)

Example 79 with FreeStyleJob

use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.

the class JobDslPluginTest method should_ignore_removed_config_files.

/**
 * Verifies whether a previously generated config file will be ignored if it
 * is not referenced anymore.
 */
@Test
@WithPlugins("config-file-provider")
public void should_ignore_removed_config_files() {
    FreeStyleJob seedJob = executeRemovedConfigFilesAction(JobDslRemovedConfigFilesAction.IGNORE);
    Build build = seedJob.scheduleBuild().shouldSucceed();
    Pattern expected = Pattern.compile("Unreferenced config files:(\\s*)GeneratedConfigFile[{]name='Old_Config_File', id='123456789'}");
    assertThat(build.getConsole(), containsRegexp(expected));
    ConfigFileProvider configFileProvider = new ConfigFileProvider(jenkins);
    configFileProvider.open();
    assertThat(driver, hasElement(by.xpath("//a[@href='editConfig?id=123456789']")));
}
Also used : Pattern(java.util.regex.Pattern) Build(org.jenkinsci.test.acceptance.po.Build) ConfigFileProvider(org.jenkinsci.test.acceptance.plugins.config_file_provider.ConfigFileProvider) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Example 80 with FreeStyleJob

use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.

the class JobDslPluginTest method should_lookup_at_seed_job.

/**
 * Verifies that relative job names are interpreted relative to the folder in which
 * the seed job is located.
 */
@Test
@WithPlugins("cloudbees-folder")
public void should_lookup_at_seed_job() {
    Folder folder = runSeedJobInFolder("New_Job", JobDslLookupStrategy.SEED_JOB);
    FreeStyleJob newJob = getJob("New_Job");
    assertThat(newJob, pageObjectDoesNotExist());
    newJob = folder.getJobs().get(FreeStyleJob.class, "New_Job");
    assertThat(newJob, pageObjectExists());
}
Also used : FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) Folder(org.jenkinsci.test.acceptance.po.Folder) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Aggregations

FreeStyleJob (org.jenkinsci.test.acceptance.po.FreeStyleJob)263 Test (org.junit.Test)242 AbstractJUnitTest (org.jenkinsci.test.acceptance.junit.AbstractJUnitTest)170 Build (org.jenkinsci.test.acceptance.po.Build)105 DockerTest (org.jenkinsci.test.acceptance.junit.DockerTest)51 WithPlugins (org.jenkinsci.test.acceptance.junit.WithPlugins)37 Issue (org.jvnet.hudson.test.Issue)32 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)23 JobDslBuildStep (org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep)23 SmokeTest (org.jenkinsci.test.acceptance.junit.SmokeTest)21 Resource (org.jenkinsci.test.acceptance.junit.Resource)19 DashboardView (org.jenkinsci.test.acceptance.plugins.dashboard_view.DashboardView)19 File (java.io.File)17 DockerContainer (org.jenkinsci.test.acceptance.docker.DockerContainer)17 WithCredentials (org.jenkinsci.test.acceptance.junit.WithCredentials)17 PublishGlobalPublisher (org.jenkinsci.test.acceptance.plugins.publish_over.PublishGlobalPublisher)17 SvnContainer (org.jenkinsci.test.acceptance.docker.fixtures.SvnContainer)16 SubversionScm (org.jenkinsci.test.acceptance.plugins.subversion.SubversionScm)13 ListView (org.jenkinsci.test.acceptance.po.ListView)12 Pattern (java.util.regex.Pattern)11