diff --git a/core/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly b/core/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly index df17f92f2f744bbc5835ec31cded1ac66954dd48..d74ac54284d81c0675d5997f7ef12fefc83643fa 100644 --- a/core/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly +++ b/core/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly @@ -10,6 +10,7 @@ help="/help/maven/ignore-upstrem-changes.html" title="${%Build whenever a SNAPSHOT dependency is built}" checked="${h.defaultToTrue(!it.ignoreUpstremChanges())}" /> + diff --git a/test/src/test/java/hudson/bugs/seasar/Operation2174Test.java b/test/src/test/java/hudson/bugs/seasar/Operation2174Test.java new file mode 100644 index 0000000000000000000000000000000000000000..3789f93459f05deef75ac64c3367fe2b465e82a6 --- /dev/null +++ b/test/src/test/java/hudson/bugs/seasar/Operation2174Test.java @@ -0,0 +1,52 @@ +package hudson.bugs.seasar; + +import com.gargoylesoftware.htmlunit.html.HtmlButton; +import com.gargoylesoftware.htmlunit.html.HtmlForm; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import hudson.maven.MavenModuleSet; +import hudson.model.FreeStyleProject; +import hudson.tasks.BuildTrigger; +import org.jvnet.hudson.test.HudsonTestCase; + +import java.util.Collections; + +/** + * See http://ml.seasar.org/archives/operation/2008-November/004003.html + * + * @author Kohsuke Kawaguchi + */ +public class Operation2174Test extends HudsonTestCase { + /** + * Upstream/downstream relationship lost. + */ + public void testBuildChains() throws Exception { + FreeStyleProject up = createFreeStyleProject("up"); + MavenModuleSet dp = createMavenProject("dp"); + + // designate 'dp' as the downstream in 'up' + WebClient webClient = new WebClient(); + HtmlPage page = webClient.getPage(up,"configure"); + + HtmlForm form = page.getFormByName("config"); + + // configure downstream build + form.getInputByName(BuildTrigger.DESCRIPTOR.getJsonSafeClassName()).click(); + form.getInputByName("buildTrigger.childProjects").setValueAttribute("dp"); + + form.submit((HtmlButton)last(form.getHtmlElementsByTagName("button"))); + + // verify that the relationship is set up + BuildTrigger trigger = (BuildTrigger) up.getPublishersList().get(BuildTrigger.DESCRIPTOR); + assertEquals(trigger.getChildProjects(), Collections.singletonList(dp)); + + // now go ahead and edit the downstream + page = webClient.getPage(dp,"configure"); + form = page.getFormByName("config"); + form.submit((HtmlButton)last(form.getHtmlElementsByTagName("button"))); + + // verify that the relationship is set up + trigger = (BuildTrigger) up.getPublishersList().get(BuildTrigger.DESCRIPTOR); + assertNotNull(trigger); + assertEquals(trigger.getChildProjects(), Collections.singletonList(dp)); + } +} diff --git a/test/src/test/java/hudson/bugs/seasar/package-info.java b/test/src/test/java/hudson/bugs/seasar/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..875e2ef42ab2300daeb5cff53e035b22ebd03966 --- /dev/null +++ b/test/src/test/java/hudson/bugs/seasar/package-info.java @@ -0,0 +1,4 @@ +/** + * Bugs discovered in https://www.seasar.org/hudson/ + */ +package hudson.bugs.seasar; \ No newline at end of file