Skip to content

Commit

Permalink
[JENKINS-20940] Added a test to reproduce JENKINS-20940. Fails to cop…
Browse files Browse the repository at this point in the history
…y from a matrix project in the same folder.
  • Loading branch information
ikedam committed Jun 17, 2014
1 parent 1cc07c2 commit db1e878
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 0 deletions.
7 changes: 7 additions & 0 deletions pom.xml
Expand Up @@ -28,6 +28,13 @@
<version>1.509</version>
<optional>true</optional>
</dependency>
<!-- Used for UI test -->
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
Expand Down
72 changes: 72 additions & 0 deletions src/test/java/hudson/plugins/copyartifact/CopyArtifactTest.java
Expand Up @@ -30,6 +30,7 @@
import hudson.matrix.Combination;
import hudson.matrix.MatrixBuild;
import hudson.matrix.MatrixProject;
import hudson.matrix.TextAxis;
import hudson.matrix.MatrixRun;
import hudson.maven.MavenModuleSet;
import hudson.model.*;
Expand Down Expand Up @@ -64,6 +65,8 @@
import org.jvnet.hudson.test.UnstableBuilder;
import org.jvnet.hudson.test.recipes.LocalData;

import com.cloudbees.hudson.plugins.folder.Folder;

import static org.junit.Assert.assertTrue;

/*
Expand Down Expand Up @@ -1087,6 +1090,75 @@ public void testRelativeFromFolder() throws Exception {
assertFile(true, "foo.txt", b);
}

public void testSameFolder() throws Exception {
Folder folder = jenkins.createProject(Folder.class, "folder");
FreeStyleProject src = folder.createProject(FreeStyleProject.class, "src");
src.getBuildersList().add(new ArtifactBuilder());
src.getPublishersList().add(new ArtifactArchiver("**", "", false, false));
assertBuildStatusSuccess(src.scheduleBuild2(0));

FreeStyleProject dest = folder.createProject(FreeStyleProject.class, "dest");
dest.getBuildersList().add(new CopyArtifact(src.getName(), null, new StatusBuildSelector(true), "", "", false, false, true));
FreeStyleBuild b = dest.scheduleBuild2(0).get();
assertBuildStatusSuccess(b);
assertFile(true, "foo.txt", b);

WebClient wc = createWebClient();
submit(wc.getPage(dest, "configure").getFormByName("config"));

dest = jenkins.getItemByFullName(dest.getFullName(), FreeStyleProject.class);
CopyArtifact ca = (CopyArtifact)dest.getBuildersList().get(0);
assertEquals(src.getName(), ca.getProjectName());
}

public void testSameFolderFromMatrix() throws Exception {
Folder folder = jenkins.createProject(Folder.class, "folder");
MatrixProject src = folder.createProject(MatrixProject.class, "src");
src.setAxes(new AxisList(new TextAxis("axis1", "value1", "value2")));
src.getBuildersList().add(new ArtifactBuilder());
src.getPublishersList().add(new ArtifactArchiver("**", "", false, false));
assertBuildStatusSuccess(src.scheduleBuild2(0));

String projectNameToCopyFrom = String.format("%s/axis1=value1", src.getName());
FreeStyleProject dest = folder.createProject(FreeStyleProject.class, "dest");
dest.getBuildersList().add(new CopyArtifact(projectNameToCopyFrom, null, new StatusBuildSelector(true), "", "", false, false, true));
FreeStyleBuild b = dest.scheduleBuild2(0).get();
assertBuildStatusSuccess(b);
assertFile(true, "foo.txt", b);

WebClient wc = createWebClient();
submit(wc.getPage(dest, "configure").getFormByName("config"));

dest = jenkins.getItemByFullName(dest.getFullName(), FreeStyleProject.class);
CopyArtifact ca = (CopyArtifact)dest.getBuildersList().get(0);
assertEquals(projectNameToCopyFrom, ca.getProjectName());
}

@Bug(20940)
public void testSameFolderToMatrix() throws Exception {
Folder folder = jenkins.createProject(Folder.class, "foler");
FreeStyleProject src = folder.createProject(FreeStyleProject.class, "src");
src.getBuildersList().add(new ArtifactBuilder());
src.getPublishersList().add(new ArtifactArchiver("**", "", false, false));
assertBuildStatusSuccess(src.scheduleBuild2(0));

MatrixProject dest = folder.createProject(MatrixProject.class, "dest");
dest.setAxes(new AxisList(new TextAxis("axis1", "value1", "value2")));
dest.getBuildersList().add(new CopyArtifact(src.getName(), null, new StatusBuildSelector(true), "", "", false, false, true));
MatrixBuild b = dest.scheduleBuild2(0).get();
assertBuildStatusSuccess(b);
for(MatrixRun r: b.getExactRuns()) {
assertFile(true, "foo.txt", r);
}

WebClient wc = createWebClient();
submit(wc.getPage(dest, "configure").getFormByName("config"));

dest = jenkins.getItemByFullName(dest.getFullName(), MatrixProject.class);
CopyArtifact ca = (CopyArtifact)dest.getBuildersList().get(0);
assertEquals(src.getName(), ca.getProjectName());
}

@Test
@LocalData
public void testOldCopyArtifactConfigIsLoadedCorrectly() throws Exception {
Expand Down

0 comments on commit db1e878

Please sign in to comment.