diff --git a/test/src/test/java/hudson/model/AbstractProjectTest.java b/test/src/test/java/hudson/model/AbstractProjectTest.java index a50c8f4b6779a38952b8a1217e7a4465cba8f7ee..cac0a791d77cb4463b587a769bbf4d404508f1af 100644 --- a/test/src/test/java/hudson/model/AbstractProjectTest.java +++ b/test/src/test/java/hudson/model/AbstractProjectTest.java @@ -24,6 +24,8 @@ package hudson.model; import com.gargoylesoftware.htmlunit.ElementNotFoundException; +import com.gargoylesoftware.htmlunit.HttpMethod; +import com.gargoylesoftware.htmlunit.WebRequestSettings; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; @@ -58,6 +60,7 @@ import java.util.concurrent.Future; import org.apache.commons.io.FileUtils; import java.lang.ref.WeakReference; import java.net.HttpURLConnection; +import java.net.URL; import org.jvnet.hudson.test.MockFolder; /** @@ -382,4 +385,19 @@ public class AbstractProjectTest extends HudsonTestCase { assertFalse(b.getRootDir().isDirectory()); } + public void testDeleteRedirect() throws Exception { + createFreeStyleProject("j1"); + assertEquals("", deleteRedirectTarget("job/j1")); + createFreeStyleProject("j2"); + Jenkins.getInstance().addView(new AllView("v1")); + assertEquals("view/v1/", deleteRedirectTarget("view/v1/job/j2")); + } + private String deleteRedirectTarget(String job) throws Exception { + WebClient wc = new WebClient(); + String base = wc.getContextPath(); + String loc = wc.getPage(wc.addCrumb(new WebRequestSettings(new URL(base + job + "/doDelete"), HttpMethod.POST))).getWebResponse().getUrl().toString(); + assertTrue(loc, loc.startsWith(base)); + return loc.substring(base.length()); + } + }