use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.
the class JobDslPluginTest method executeRemovedJobAction.
/**
* Let a seed job run a Job DSL script that do not reference a previous generated job anymore.
* @param action The action what to do when a previously generated job is not referenced anymore.
* @return The executed seed job.
*/
private FreeStyleJob executeRemovedJobAction(JobDslRemovedJobAction action) {
FreeStyleJob seedJob = createSeedJob();
JobDslBuildStep jobDsl = seedJob.addBuildStep(JobDslBuildStep.class);
jobDsl.setScript("job('Old_Job')");
seedJob.save();
seedJob.scheduleBuild().shouldSucceed();
seedJob.configure(() -> {
jobDsl.setScript("job('New_Job')");
jobDsl.setRemovedJobAction(action);
});
return seedJob;
}
use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.
the class JobDslPluginTest method should_fail_on_missing_plugin.
/**
* Verifies whether the build will be marked as failed or unstable if a plugin must
* be installed to support all features used in the DSL script.
*/
@Test
public void should_fail_on_missing_plugin() {
assumeTrue("This test requires a restartable Jenkins", jenkins.canRestart());
// check if plugin is installed. if true, disable plugin
PluginSpec pluginSpec = new PluginSpec("chucknorris");
PluginManager pm = jenkins.getPluginManager();
if (pm.isInstalled(pluginSpec)) {
pm.enablePlugin(pluginSpec.getName(), false);
jenkins.restart();
}
FreeStyleJob seedJob = createSeedJob();
JobDslBuildStep jobDsl = seedJob.addBuildStep(JobDslBuildStep.class);
jobDsl.setScript("job('New_Job') {\n" + " publishers {\n" + " chucknorris()\n" + " }\n" + "}");
seedJob.save();
Build build = seedJob.scheduleBuild().shouldBeUnstable();
assertThat(build.getConsole(), containsString("plugin 'chucknorris' needs to be installed"));
seedJob.configure(() -> jobDsl.setFailOnMissingPlugin(true));
build = seedJob.scheduleBuild().shouldFail();
assertThat(build.getConsole(), containsString("plugin 'chucknorris' needs to be installed"));
}
use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.
the class JobDslPluginTest method should_ignore_missing_files.
/**
* Verifies whether missing files will be ignored or fail the build step.
* If 'Ignore missing files' is checked, missing files are ignored.
* Otherwise the build step will fail.
*/
@Test
public void should_ignore_missing_files() {
FreeStyleJob seedJob = createSeedJob();
JobDslBuildStep jobDsl = seedJob.addBuildStep(JobDslBuildStep.class);
jobDsl.setScriptTargetsOnFilesystem("CreateFolder.groovy");
seedJob.save();
seedJob.scheduleBuild().shouldFail();
seedJob.configure(() -> jobDsl.setIgnoreMissingFiles(true));
seedJob.scheduleBuild().shouldSucceed();
}
use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.
the class JobDslPluginTest method should_run_grooy_sandbox_as_particular_user.
/**
* Verifies that Groovy sandbox can only used if 'Access Control for Builds'
* is configured. The DSL job needs to run as a particular user.
*/
@Test
@WithPlugins({ "matrix-auth@2.3", "mock-security-realm", "authorize-project" })
public void should_run_grooy_sandbox_as_particular_user() {
GlobalSecurityConfig sc = setUpSecurity();
jenkins.login().doLogin(USER);
FreeStyleJob seedJob = createSeedJob();
JobDslBuildStep jobDsl = seedJob.addBuildStep(JobDslBuildStep.class);
jobDsl.setScript("job('New_Job')");
jobDsl.setUseSandbox(true);
seedJob.save();
// Build should fail because script runs in sandbox but no particular user is specified
// which should run the build
Build build = seedJob.scheduleBuild().shouldFail();
assertThat(build.getConsole(), containsString("You must configure the DSL job to run as a specific user in order to use the Groovy sandbox"));
runBuildAsUserWhoTriggered(sc);
jenkins.login().doLogin(USER);
// Build should succeed because now a particular user is specified
seedJob.scheduleBuild().shouldSucceed();
}
use of org.jenkinsci.test.acceptance.po.FreeStyleJob in project acceptance-test-harness by jenkinsci.
the class JobDslPluginTest method openNewlyCreatedListView.
/**
* Opens a newly created ListView. The View gets created by a seed job via Job DSL script.
* @param script The Job DSL script
*/
private View openNewlyCreatedListView(String script, String viewName) {
FreeStyleJob seed = createJobAndSetJobDslScript(script, true);
seed.scheduleBuild().shouldSucceed();
seed.open();
View view = getView(viewName);
view.open();
return view;
}
Aggregations