mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 06:55:54 +01:00
Fix testcase
This commit is contained in:
@@ -1,14 +1,16 @@
|
|||||||
package gitbucket.core.service
|
package gitbucket.core.service
|
||||||
|
|
||||||
|
import gitbucket.core.util.GitSpecUtil._
|
||||||
import org.specs2.mutable.Specification
|
import org.specs2.mutable.Specification
|
||||||
import org.eclipse.jgit.transport.ReceiveCommand
|
import org.eclipse.jgit.transport.{ReceivePack, ReceiveCommand}
|
||||||
import org.eclipse.jgit.lib.ObjectId
|
import org.eclipse.jgit.lib.ObjectId
|
||||||
import gitbucket.core.model.CommitState
|
import gitbucket.core.model.CommitState
|
||||||
import gitbucket.core.service.ProtectedBranchService.{ProtectedBranchReceiveHook, ProtectedBranchInfo}
|
import gitbucket.core.service.ProtectedBranchService.{ProtectedBranchReceiveHook, ProtectedBranchInfo}
|
||||||
|
import scalaz._, Scalaz._
|
||||||
|
|
||||||
class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with ProtectedBranchService with CommitStatusService {
|
class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with ProtectedBranchService with CommitStatusService {
|
||||||
|
|
||||||
val commitHook = new ProtectedBranchReceiveHook()
|
val receiveHook = new ProtectedBranchReceiveHook()
|
||||||
val now = new java.util.Date()
|
val now = new java.util.Date()
|
||||||
val sha = "0c77148632618b59b6f70004e3084002be2b8804"
|
val sha = "0c77148632618b59b6f70004e3084002be2b8804"
|
||||||
val sha2 = "0c77148632618b59b6f70004e3084002be2b8805"
|
val sha2 = "0c77148632618b59b6f70004e3084002be2b8805"
|
||||||
@@ -50,58 +52,70 @@ class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with
|
|||||||
}
|
}
|
||||||
"getBranchProtectedReason on force push from admin" in {
|
"getBranchProtectedReason on force push from admin" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
|
withTestRepository { git =>
|
||||||
|
val rp = new ReceivePack(git.getRepository) <| { _.setAllowNonFastForwards(true) }
|
||||||
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE_NONFASTFORWARD)
|
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE_NONFASTFORWARD)
|
||||||
generateNewUserWithDBRepository("user1", "repo1")
|
generateNewUserWithDBRepository("user1", "repo1")
|
||||||
commitHook.hook("user1", "repo1", true, rc, "user1") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Nil)
|
enableBranchProtection("user1", "repo1", "branch", false, Nil)
|
||||||
commitHook.hook("user1", "repo1", true, rc, "user1") must_== Some("Cannot force-push to a protected branch")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== Some("Cannot force-push to a protected branch")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"getBranchProtectedReason on force push from othre" in {
|
"getBranchProtectedReason on force push from othre" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
|
withTestRepository { git =>
|
||||||
|
val rp = new ReceivePack(git.getRepository) <| { _.setAllowNonFastForwards(true) }
|
||||||
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE_NONFASTFORWARD)
|
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE_NONFASTFORWARD)
|
||||||
generateNewUserWithDBRepository("user1", "repo1")
|
generateNewUserWithDBRepository("user1", "repo1")
|
||||||
commitHook.hook("user1", "repo1", true, rc, "user2") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Nil)
|
enableBranchProtection("user1", "repo1", "branch", false, Nil)
|
||||||
commitHook.hook("user1", "repo1", true, rc, "user2") must_== Some("Cannot force-push to a protected branch")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== Some("Cannot force-push to a protected branch")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"getBranchProtectedReason check status on push from othre" in {
|
"getBranchProtectedReason check status on push from othre" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
|
withTestRepository { git =>
|
||||||
|
val rp = new ReceivePack(git.getRepository) <| { _.setAllowNonFastForwards(false) }
|
||||||
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE)
|
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE)
|
||||||
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Seq("must"))
|
enableBranchProtection("user1", "repo1", "branch", false, Seq("must"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== Some("Required status check \"must\" is expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== Some("Required status check \"must\" is expected")
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Seq("must", "must2"))
|
enableBranchProtection("user1", "repo1", "branch", false, Seq("must", "must2"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== Some("2 of 2 required status checks are expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== Some("2 of 2 required status checks are expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "context", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "context", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== Some("2 of 2 required status checks are expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== Some("2 of 2 required status checks are expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "must", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "must", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== Some("Required status check \"must2\" is expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== Some("Required status check \"must2\" is expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "must2", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "must2", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user2") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user2") must_== None
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"getBranchProtectedReason check status on push from admin" in {
|
"getBranchProtectedReason check status on push from admin" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
|
withTestRepository { git =>
|
||||||
|
val rp = new ReceivePack(git.getRepository) <| { _.setAllowNonFastForwards(false) }
|
||||||
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE)
|
val rc = new ReceiveCommand(ObjectId.fromString(sha), ObjectId.fromString(sha2), "refs/heads/branch", ReceiveCommand.Type.UPDATE)
|
||||||
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Seq("must"))
|
enableBranchProtection("user1", "repo1", "branch", false, Seq("must"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", true, Seq("must"))
|
enableBranchProtection("user1", "repo1", "branch", true, Seq("must"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== Some("Required status check \"must\" is expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== Some("Required status check \"must\" is expected")
|
||||||
enableBranchProtection("user1", "repo1", "branch", false, Seq("must", "must2"))
|
enableBranchProtection("user1", "repo1", "branch", false, Seq("must", "must2"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== None
|
||||||
enableBranchProtection("user1", "repo1", "branch", true, Seq("must", "must2"))
|
enableBranchProtection("user1", "repo1", "branch", true, Seq("must", "must2"))
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== Some("2 of 2 required status checks are expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== Some("2 of 2 required status checks are expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "context", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "context", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== Some("2 of 2 required status checks are expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== Some("2 of 2 required status checks are expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "must", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "must", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== Some("Required status check \"must2\" is expected")
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== Some("Required status check \"must2\" is expected")
|
||||||
createCommitStatus("user1", "repo1", sha2, "must2", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha2, "must2", CommitState.SUCCESS, None, None, now, user1)
|
||||||
commitHook.hook("user1", "repo1", false, rc, "user1") must_== None
|
receiveHook.preReceive("user1", "repo1", rp, rc, "user1") must_== None
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,14 +123,14 @@ class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with
|
|||||||
"administrator is owner" in {
|
"administrator is owner" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
generateNewUserWithDBRepository("user1", "repo1")
|
generateNewUserWithDBRepository("user1", "repo1")
|
||||||
var x = ProtectedBranchInfo("user1", "repo1", true, Nil, false)
|
val x = ProtectedBranchInfo("user1", "repo1", true, Nil, false)
|
||||||
x.isAdministrator("user1") must_== true
|
x.isAdministrator("user1") must_== true
|
||||||
x.isAdministrator("user2") must_== false
|
x.isAdministrator("user2") must_== false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"administrator is manager" in {
|
"administrator is manager" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
var x = ProtectedBranchInfo("grp1", "repo1", true, Nil, false)
|
val x = ProtectedBranchInfo("grp1", "repo1", true, Nil, false)
|
||||||
x.createGroup("grp1", None)
|
x.createGroup("grp1", None)
|
||||||
generateNewAccount("user1")
|
generateNewAccount("user1")
|
||||||
generateNewAccount("user2")
|
generateNewAccount("user2")
|
||||||
@@ -131,7 +145,7 @@ class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with
|
|||||||
"unSuccessedContexts" in {
|
"unSuccessedContexts" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
||||||
var x = ProtectedBranchInfo("user1", "repo1", true, List("must"), false)
|
val x = ProtectedBranchInfo("user1", "repo1", true, List("must"), false)
|
||||||
x.unSuccessedContexts(sha) must_== Set("must")
|
x.unSuccessedContexts(sha) must_== Set("must")
|
||||||
createCommitStatus("user1", "repo1", sha, "context", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha, "context", CommitState.SUCCESS, None, None, now, user1)
|
||||||
x.unSuccessedContexts(sha) must_== Set("must")
|
x.unSuccessedContexts(sha) must_== Set("must")
|
||||||
@@ -148,7 +162,7 @@ class ProtectedBranchServiceSpec extends Specification with ServiceSpecBase with
|
|||||||
"unSuccessedContexts when empty" in {
|
"unSuccessedContexts when empty" in {
|
||||||
withTestDB { implicit session =>
|
withTestDB { implicit session =>
|
||||||
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
val user1 = generateNewUserWithDBRepository("user1", "repo1")
|
||||||
var x = ProtectedBranchInfo("user1", "repo1", true, Nil, false)
|
val x = ProtectedBranchInfo("user1", "repo1", true, Nil, false)
|
||||||
val sha = "0c77148632618b59b6f70004e3084002be2b8804"
|
val sha = "0c77148632618b59b6f70004e3084002be2b8804"
|
||||||
x.unSuccessedContexts(sha) must_== Nil
|
x.unSuccessedContexts(sha) must_== Nil
|
||||||
createCommitStatus("user1", "repo1", sha, "context", CommitState.SUCCESS, None, None, now, user1)
|
createCommitStatus("user1", "repo1", sha, "context", CommitState.SUCCESS, None, None, now, user1)
|
||||||
|
|||||||
Reference in New Issue
Block a user