Skip to content

Commit

Permalink
Merge pull request #92 from ikedam/feature/JENKINS-46700_AddTestsForS…
Browse files Browse the repository at this point in the history
…ymbols

[JENKINS-46700] Add tests for symbols
  • Loading branch information
ikedam committed Oct 29, 2017
2 parents 1affa83 + 39df7cc commit 62c07a9
Show file tree
Hide file tree
Showing 28 changed files with 613 additions and 56 deletions.
58 changes: 50 additions & 8 deletions pom.xml
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>2.5</version>
<version>2.35</version>
</parent>

<artifactId>copyartifact</artifactId>
Expand All @@ -22,9 +22,9 @@
</licenses>

<properties>
<jenkins.version>1.580.1</jenkins.version>
<java.level>6</java.level>
<workflow.version>1.4.2</workflow.version>
<!-- To support (and test) @Symbol annotations (requires workflow-cps >= 2.10) -->
<jenkins.version>1.642.3</jenkins.version>
<java.level>7</java.level>
</properties>

<dependencies>
Expand Down Expand Up @@ -53,6 +53,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>structs</artifactId>
<version>1.6</version>
</dependency>
<!-- Used for UI test -->
<dependency>
<groupId>org.jenkins-ci.main</groupId>
Expand Down Expand Up @@ -92,25 +97,62 @@
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-job</artifactId>
<version>${workflow.version}</version>
<version>2.11.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-basic-steps</artifactId>
<version>${workflow.version}</version>
<version>2.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-cps</artifactId>
<version>${workflow.version}</version>
<version>2.32</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-durable-task-step</artifactId>
<version>${workflow.version}</version>
<version>2.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-step-api</artifactId>
<version>2.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-support</artifactId>
<version>2.14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins.workflow</groupId>
<artifactId>workflow-api</artifactId>
<version>2.20</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>pipeline-build-step</artifactId>
<version>2.5.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>mailer</artifactId>
<version>1.20</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Required by maven-plugin -->
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/hudson/plugins/copyartifact/CopyArtifact.java
Expand Up @@ -68,6 +68,7 @@
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.apache.commons.lang.StringUtils;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
Expand Down Expand Up @@ -573,7 +574,7 @@ public String resolve(String name) {
return expected.equals(expanded);
}

@Extension
@Extension @Symbol("copyArtifacts")
public static final class DescriptorImpl extends BuildStepDescriptor<Builder> {

public FormValidation doCheckProjectName(
Expand Down
Expand Up @@ -30,6 +30,7 @@
import jenkins.model.Jenkins;

import org.apache.commons.lang.StringUtils;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.QueryParameter;
Expand Down Expand Up @@ -178,7 +179,7 @@ protected boolean isSelectable(Run<?, ?> run, EnvVars env) {
return false;
}

@Extension
@Extension @Symbol("downstream")
public static final class DescriptorImpl extends Descriptor<BuildSelector> {
@Override
public String getDisplayName() {
Expand Down
Expand Up @@ -28,6 +28,8 @@
import hudson.model.Descriptor;
import hudson.model.Result;
import hudson.model.Run;
import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;

/**
Expand All @@ -44,8 +46,17 @@ public boolean isSelectable(Run<?,?> run, EnvVars env) {
return true;
}

@Extension
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
LastCompletedBuildSelector.class, Messages._LastCompletedBuildSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension @Symbol("lastCompleted")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(LastCompletedBuildSelector.class, Messages._LastCompletedBuildSelector_DisplayName());
DESCRIPTOR = this;
}
}
}
Expand Up @@ -32,7 +32,9 @@
import hudson.model.Job;
import hudson.model.Run;

import jenkins.model.Jenkins;
import org.apache.commons.lang.StringUtils;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;

/**
Expand Down Expand Up @@ -102,8 +104,17 @@ private String resolveParameter(EnvVars env) {
return xml;
}

@Extension(ordinal=-20)
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
ParameterizedBuildSelector.class, Messages._ParameterizedBuildSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension(ordinal=-20) @Symbol("buildParameter")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(ParameterizedBuildSelector.class, Messages._ParameterizedBuildSelector_DisplayName());
DESCRIPTOR = this;
}
}
}
Expand Up @@ -32,6 +32,7 @@
import hudson.model.Run;
import hudson.util.ComboBoxModel;
import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.QueryParameter;
Expand All @@ -57,7 +58,7 @@ public Run<?,?> getBuild(Job<?, ?> job, EnvVars env, BuildFilter filter, Run<?,?
return (run != null && filter.isSelectable(run, env)) ? run : null;
}

@Extension
@Extension @Symbol("permalink")
public static class DescriptorImpl extends Descriptor<BuildSelector> {
@Override
public String getDisplayName() {
Expand Down
19 changes: 15 additions & 4 deletions src/main/java/hudson/plugins/copyartifact/SavedBuildSelector.java
Expand Up @@ -27,6 +27,8 @@
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Run;
import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;

/**
Expand All @@ -42,8 +44,17 @@ protected boolean isSelectable(Run<?,?> run, EnvVars env) {
return run.isKeepLog();
}

@Extension(ordinal=50)
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
SavedBuildSelector.class, Messages._SavedBuildSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension(ordinal=50) @Symbol("latestSavedBuild")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(SavedBuildSelector.class, Messages._SavedBuildSelector_DisplayName());
DESCRIPTOR = this;
}
}
}
Expand Up @@ -31,6 +31,9 @@
import hudson.model.Run;
import java.util.logging.Level;
import java.util.logging.Logger;

import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;

/**
Expand Down Expand Up @@ -94,8 +97,17 @@ public Run<?,?> getBuild(Job<?,?> job, EnvVars env, BuildFilter filter, Run<?,?>
return run;
}

@Extension(ordinal=-10)
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
SpecificBuildSelector.class, Messages._SpecificBuildSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension(ordinal=-10) @Symbol("specific")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(SpecificBuildSelector.class, Messages._SpecificBuildSelector_DisplayName());
DESCRIPTOR = this;
}
}
}
32 changes: 27 additions & 5 deletions src/main/java/hudson/plugins/copyartifact/StatusBuildSelector.java
Expand Up @@ -28,7 +28,10 @@
import hudson.model.Descriptor;
import hudson.model.Result;
import hudson.model.Run;
import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;

/**
* Copy artifacts from the latest successful or stable build.
Expand All @@ -37,11 +40,21 @@
public class StatusBuildSelector extends BuildSelector {
private Boolean stable;

@DataBoundConstructor
@Deprecated
public StatusBuildSelector(boolean stable) {
setStable(stable);
}

@DataBoundConstructor
public StatusBuildSelector() {
}

@DataBoundSetter
public void setStable(boolean stable) {
this.stable = stable ? Boolean.TRUE : null;
}


public boolean isStable() {
return stable != null && stable.booleanValue();
}
Expand All @@ -51,8 +64,17 @@ public boolean isSelectable(Run<?,?> run, EnvVars env) {
return isBuildResultBetterOrEqualTo(run, isStable() ? Result.SUCCESS : Result.UNSTABLE);
}

@Extension(ordinal=100)
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
StatusBuildSelector.class, Messages._StatusBuildSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension(ordinal=100) @Symbol("lastSuccessful")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(StatusBuildSelector.class, Messages._StatusBuildSelector_DisplayName());
DESCRIPTOR = this;
}
}
}
Expand Up @@ -41,6 +41,7 @@
import hudson.model.Run;
import net.sf.json.JSONObject;

import org.jenkinsci.Symbol;
import org.jvnet.localizer.Localizable;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
Expand Down Expand Up @@ -218,7 +219,7 @@ protected boolean isSelectable(Run<?,?> run, EnvVars env) {
return isFallbackToLastSuccessful() && isBuildResultBetterOrEqualTo(run, Result.SUCCESS);
}

@Extension(ordinal=25)
@Extension(ordinal=25) @Symbol("upstream")
public static class DescriptorImpl extends SimpleBuildSelectorDescriptor {
private UpstreamFilterStrategy globalUpstreamFilterStrategy;

Expand Down
21 changes: 17 additions & 4 deletions src/main/java/hudson/plugins/copyartifact/WorkspaceSelector.java
Expand Up @@ -31,6 +31,10 @@
import hudson.model.Run;
import java.io.IOException;
import java.io.PrintStream;

import jenkins.model.Jenkins;
import org.jenkinsci.Symbol;
import org.jvnet.localizer.Localizable;
import org.kohsuke.stapler.DataBoundConstructor;

/**
Expand Down Expand Up @@ -62,8 +66,17 @@ public boolean isSelectable(Run<?,?> run, EnvVars env) {
}
}

@Extension(ordinal=-20)
public static final Descriptor<BuildSelector> DESCRIPTOR =
new SimpleBuildSelectorDescriptor(
WorkspaceSelector.class, Messages._WorkspaceSelector_DisplayName());
/**
* @deprecated
* here for backward compatibility. Get it from {@link Jenkins#getDescriptor(Class)}
*/
public static /*almost final*/ Descriptor<BuildSelector> DESCRIPTOR;

@Extension(ordinal=-20) @Symbol("workspace")
public static final class DescriptorImpl extends SimpleBuildSelectorDescriptor {
public DescriptorImpl() {
super(WorkspaceSelector.class, Messages._WorkspaceSelector_DisplayName());
DESCRIPTOR = this;
}
}
}

0 comments on commit 62c07a9

Please sign in to comment.