private void assertSniff(String user, String sniffed, boolean ok) throws Exception { AuthSniffer sniffer = new AuthSniffer(); URL sniffURL = sniffer.start(); try { JenkinsRule.WebClient wc = r.createWebClient().login(user); String checkUrl = "job/p/descriptorByName/hudson.scm.listtagsparameter.ListSubversionTagsParameterDefinition/checkCredentialsId?value=svncreds&tagsDir=" + URLEncoder.encode(sniffURL.toString(), "UTF-8"); System.err.println("Connecting to " + checkUrl + " as " + user); // TODO createCrumbedUrl does not work as it does not notice the existing query string String formValidation = wc.getPage(wc.addCrumb(new WebRequest(new URL(r.getURL(), checkUrl), HttpMethod.POST))).getWebResponse().getContentAsString(); System.err.println("Response: " + formValidation); if (ok) { assertEquals("<div/>", formValidation); } else { assertNotEquals("<div/>", formValidation); } // GET accesses not permitted in any event: wc.assertFails(checkUrl, HttpURLConnection.HTTP_BAD_METHOD); } finally { assertEquals(sniffed, sniffer.stop()); } } private static class AuthSniffer {