Skip to content

Commit 46f3fef

Browse files
committed
Add Jenkins test case for user impersonation extension.
1 parent 226d2a1 commit 46f3fef

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

src/main/kotlin/org/jenkinsci/plugins/slacktrigger/JenkinsExtensions.kt

+1-5
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ package org.jenkinsci.plugins.slacktrigger
33
import hudson.model.User
44
import hudson.security.ACL
55
import jenkins.model.Jenkins
6-
import org.acegisecurity.Authentication
76

87
fun Jenkins.configUrl() = this.rootUrl + "configure"
98

10-
inline fun <R> User?.runAs(block: () -> R): R =
11-
this?.let { impersonate().runAs { block() } } ?: block()
12-
13-
inline fun <R> Authentication.runAs(block: () -> R): R =
9+
inline fun <R> User?.runAs(block: () -> R) =
1410
ACL.`as`(this).use { block() }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.jenkinsci.plugins.slacktrigger
2+
3+
import hudson.model.User
4+
import org.amshove.kluent.shouldEqual
5+
import org.junit.Rule
6+
import org.junit.Test
7+
import org.jvnet.hudson.test.JenkinsRule
8+
9+
class JenkinsExtensionsTest {
10+
11+
@get:Rule
12+
val j = JenkinsRule()
13+
14+
@Test
15+
fun `runAs without a valid user should execute as anonymous`() {
16+
(null as User?).runAs {
17+
User.current()?.id shouldEqual null
18+
}
19+
}
20+
21+
@Test
22+
fun `runAs with a valid user should execute as that user`() {
23+
j.jenkins.securityRealm = j.createDummySecurityRealm()
24+
25+
User.get("foo").runAs {
26+
User.current()?.id shouldEqual "foo"
27+
}
28+
}
29+
30+
}

0 commit comments

Comments
 (0)