diff --git a/test/src/test/java/jenkins/security/ApiTokenPropertyTest.java b/test/src/test/java/jenkins/security/ApiTokenPropertyTest.java
index 8737d26974..24c2424144 100644
--- a/test/src/test/java/jenkins/security/ApiTokenPropertyTest.java
+++ b/test/src/test/java/jenkins/security/ApiTokenPropertyTest.java
@@ -9,7 +9,10 @@ import com.gargoylesoftware.htmlunit.HttpMethod;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.util.NameValuePair;
import hudson.Util;
+import hudson.model.Cause;
+import hudson.model.FreeStyleProject;
import hudson.model.User;
import hudson.security.ACL;
import hudson.security.ACLContext;
@@ -21,6 +24,8 @@ import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.JenkinsRule.WebClient;
+import java.net.URL;
+import java.util.ArrayList;
import java.util.concurrent.Callable;
import javax.annotation.Nonnull;
import org.jvnet.hudson.test.Issue;
@@ -128,17 +133,37 @@ public class ApiTokenPropertyTest {
assertEquals("Update token response is incorrect",
Messages.ApiTokenProperty_ChangeToken_SuccessHidden(), "
" + res.getBody().asText() + "
");
}
-
+
+ @Test
+ public void postWithUsernameAndTokenInBasicAuthHeader() throws Exception {
+ FreeStyleProject p = j.createFreeStyleProject("bar");
+ j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
+ User.get("foo");
+
+ WebClient wc = createClientForUser("foo");
+ WebRequest wr = new WebRequest(new URL(j.getURL(), "job/bar/build"), HttpMethod.POST);
+
+ assertEquals(201, wc.getPage(wr).getWebResponse().getStatusCode());
+
+ j.waitUntilNoActivity();
+
+ Cause.UserIdCause triggeredBy = p.getBuildByNumber(1).getCause(Cause.UserIdCause.class);
+ assertEquals("foo", triggeredBy.getUserId());
+ }
+
@Nonnull
private WebClient createClientForUser(final String username) throws Exception {
- User u = User.get(username);
- final ApiTokenProperty t = u.getProperty(ApiTokenProperty.class);
- // Yes, we use the insecure call in the test stuff
- final String token = t.getApiTokenInsecure();
-
+ final String token = getUserToken(username);
+
WebClient wc = j.createWebClient();
wc.addRequestHeader("Authorization", "Basic " + Scrambler.scramble(username + ":" + token));
return wc;
}
+ private String getUserToken(String username) {
+ User u = User.get(username);
+ final ApiTokenProperty t = u.getProperty(ApiTokenProperty.class);
+ // Yes, we use the insecure call in the test stuff
+ return t.getApiTokenInsecure();
+ }
}