Philip L. McMahon
2012-02-05 4e7813c54c8d735a337d36d411cd7864d420b040
Add protect-refs unit tests for branch/tag creation/deletion.
1 files modified
91 ■■■■■ changed files
tests/com/gitblit/tests/GroovyScriptTest.java 91 ●●●●● patch | view | raw | blame | history
tests/com/gitblit/tests/GroovyScriptTest.java
@@ -89,6 +89,97 @@
    }
    
    @Test
    public void testProtectRefsCreateBranch() throws Exception {
        MockGitblit gitblit = new MockGitblit();
        MockLogger logger = new MockLogger();
        List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
        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();
        MockLogger logger = new MockLogger();