From: Philip L. McMahon Date: Sun, 5 Feb 2012 06:02:32 +0000 (-0800) Subject: Add protect-refs unit tests for branch/tag creation/deletion. X-Git-Tag: v0.9.0~98^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F7%2Fhead;p=gitblit.git Add protect-refs unit tests for branch/tag creation/deletion. --- diff --git a/tests/com/gitblit/tests/GroovyScriptTest.java b/tests/com/gitblit/tests/GroovyScriptTest.java index b21c7e7d..5051100a 100644 --- a/tests/com/gitblit/tests/GroovyScriptTest.java +++ b/tests/com/gitblit/tests/GroovyScriptTest.java @@ -88,6 +88,97 @@ public class GroovyScriptTest { assertTrue(m.message.contains("BIT")); } + @Test + public void testProtectRefsCreateBranch() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + } + + @Test + public void testProtectRefsCreateTag() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/tags/v1.0")); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + assertEquals(0, logger.messages.size()); + } + + @Test + public void testProtectRefsFastForward() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + commands.add(new ReceiveCommand(ObjectId + .fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master")); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + assertEquals(0, logger.messages.size()); + } + + @Test + public void testProtectRefsDeleteMasterBranch() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + ReceiveCommand command = new ReceiveCommand(ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(), + "refs/heads/master"); + commands.add(command); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + assertEquals(ReceiveCommand.Result.REJECTED_NODELETE, command.getResult()); + assertEquals(0, logger.messages.size()); + } + + @Test + public void testProtectRefsDeleteOtherBranch() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + commands.add(new ReceiveCommand(ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(), + "refs/heads/other")); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + assertEquals(0, logger.messages.size()); + } + + @Test + public void testProtectRefsDeleteTag() throws Exception { + MockGitblit gitblit = new MockGitblit(); + MockLogger logger = new MockLogger(); + List commands = new ArrayList(); + ReceiveCommand command = new ReceiveCommand(ObjectId + .fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(), + "refs/tags/v1.0"); + commands.add(command); + + RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date()); + + test("protect-refs.groovy", gitblit, logger, commands, repository); + assertEquals(ReceiveCommand.Result.REJECTED_NODELETE, command.getResult()); + assertEquals(0, logger.messages.size()); + } + @Test public void testBlockPush() throws Exception { MockGitblit gitblit = new MockGitblit();