@TestExtension public static class XStreamPickleFactory extends SingleTypedPickleFactory<Describable<?>> { @Override @Nonnull protected Pickle pickle(@Nonnull Describable<?> d) { return new XStreamPickle(d); } }
@TestExtension public static class RejectTestProperty extends DeclarativeValidatorContributor { @Override public String validateElement(@Nonnull ModelASTOption option, @CheckForNull FlowExecution execution) { if (option.getName() != null && option.getName().equals("testProperty")) { return "testProperty is rejected"; } else { return null; } } }
@TestExtension public static class WhenConditionPickleFactory extends SingleTypedPickleFactory<DeclarativeStageConditional<?>> { @Override @Nonnull protected Pickle pickle(DeclarativeStageConditional<?> d) { return new XStreamPickle(d); } }
@TestExtension("changingEnvironment") public static class EnvAdder extends EnvironmentContributor { public static String value = "before"; private int count; @SuppressWarnings("rawtypes") @Override public void buildEnvironmentFor(Run r, EnvVars envs, TaskListener listener) throws IOException, InterruptedException { listener.getLogger().println("buildEnvironmentFor #" + count++); envs.put("VAR", value); } }
@TestExtension("trustedShell_control") public static class UntrustedShellDecorator extends GroovyShellDecorator { @Override public void configureShell(@CheckForNull CpsFlowExecution context, GroovyShell shell) { try { URL u = TrustedShell.class.getClassLoader().getResource("trusted/foo.groovy"); shell.getClassLoader().addURL(new URL(u,".")); } catch (MalformedURLException e) { throw new AssertionError(e); } } }
@TestExtension public static class DescriptorImpl extends AbstractStepDescriptorImpl { public DescriptorImpl() { super(Execution.class); } @Override public String getFunctionName() { return "synchronousExceptionInBody"; } }
@TestExtension("flattenGString2") public static class DescriptorImpl extends StepDescriptor { @Override public String getFunctionName() { return "pops"; } @Override public Set<? extends Class<?>> getRequiredContext() { return Collections.emptySet(); } } }
@TestExtension public static class DescriptorImpl extends AbstractStepDescriptorImpl { public DescriptorImpl() { super(Execution.class); } @Override public String getFunctionName() { return "unkillable"; } } }
@TestExtension("applicableSCMs") public static class DescriptorImpl extends SCMDescriptor<OldSCM> { public DescriptorImpl() { super(null); } @Override public String getDisplayName() { return "OldSCM"; } } }
@TestExtension("interruptProgramLoad") public static class BadThingPickleFactory extends SingleTypedPickleFactory<BadThing> { @Override protected Pickle pickle(BadThing object) { return new BadThingPickle(); } }
@TestExtension("currentExecutions") public static class DescriptorImpl extends AbstractStepDescriptorImpl { public DescriptorImpl() {super(Execution.class);} @Override public String getFunctionName() {return "retainsBody";} @Override public boolean takesImplicitBlockArgument() {return true;} } public static class Execution extends AbstractStepExecutionImpl {
@TestExtension public static class DescriptorImpl extends JobPropertyDescriptor { @Override public boolean isApplicable(Class<? extends Job> jobType) { return FreeStyleProject.class.isAssignableFrom(jobType); } @Override public String getDisplayName() { return null; } } }
@TestExtension public static final class DescriptorImpl extends StepDescriptor { @Override public String getFunctionName() { return "slowBlock"; } @Override public Set<? extends Class<?>> getRequiredContext() { return Collections.singleton(TaskListener.class); } @Override public boolean takesImplicitBlockArgument() { return true; } } }
@TestExtension("authenticationInSynchronousStep") public static final class DescriptorImpl extends AbstractStepDescriptorImpl { public DescriptorImpl() { super(Execution.class); } @Override public String getFunctionName() { return "auth"; } @Override public String getDisplayName() { return getFunctionName(); } } public static final class Execution extends AbstractSynchronousNonBlockingStepExecution<String> {
@TestExtension("contextClassLoader") public static class DescriptorImpl extends StepDescriptor { @Override public String getFunctionName() { return "classLoad"; } @Override public Set<? extends Class<?>> getRequiredContext() { return Collections.emptySet(); } } }
@TestExtension public static class DescriptorImpl extends AbstractFolderDescriptor { private static final ChildNameGeneratorImpl GENERATOR = new ChildNameGeneratorImpl(); @Override public TopLevelItem newInstance(ItemGroup parent, String name) { return new ComputedFolderImpl(parent, name); } @Override public <I extends TopLevelItem> ChildNameGenerator<AbstractFolder<I>, I> childNameGenerator() { return (ChildNameGenerator<AbstractFolder<I>, I>) GENERATOR; } }
/** * Insert trusted/ dir into the trusted shell to enable trusted code execution */ @TestExtension("trustedShell") public static class TrustedShell extends GroovyShellDecorator { @Override public GroovyShellDecorator forTrusted() { return new UntrustedShellDecorator(); } }
@TestExtension public static class WhenConditionPickleFactory extends WhenStageTest.WhenConditionPickleFactory { } }
@TestExtension @Symbol("multiArgCtorProp") public static class MultiArgCtorPropDescriptor extends JobPropertyDescriptor { @Override @Nonnull public String getDisplayName() { return "Test property with multiple parameters to DataBoundConstructor"; } } }
@TestExtension @Symbol("testProperty") public static class DescriptorImpl extends OptionalJobPropertyDescriptor { @Override @Nonnull public String getDisplayName() { return "Test job property to be rejected by a validator contributor."; } } }