From 7c7e942e29be432c081ff71362a756769e6bbe17 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 14 Mar 2012 16:19:16 -0400
Subject: [PATCH] Removed reference to old css file

---
 tests/com/gitblit/tests/GroovyScriptTest.java |  123 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 119 insertions(+), 4 deletions(-)

diff --git a/tests/com/gitblit/tests/GroovyScriptTest.java b/tests/com/gitblit/tests/GroovyScriptTest.java
index 308160d..5051100 100644
--- a/tests/com/gitblit/tests/GroovyScriptTest.java
+++ b/tests/com/gitblit/tests/GroovyScriptTest.java
@@ -25,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -72,21 +73,135 @@
 		commands.add(new ReceiveCommand(ObjectId
 				.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId
 				.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master"));
+		commands.add(new ReceiveCommand(ObjectId
+				.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId
+				.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master2"));
 
-		test("sendmail.groovy", gitblit, logger, commands);
+		RepositoryModel repository = GitBlit.self().getRepositoryModel("helloworld.git");
+		repository.mailingLists.add("list@helloworld.git");
+
+		test("sendmail.groovy", gitblit, logger, commands, repository);
 		assertEquals(1, logger.messages.size());
 		assertEquals(1, gitblit.messages.size());
 		MockMail m = gitblit.messages.get(0);
 		assertEquals(5, m.toAddresses.size());
 		assertTrue(m.message.contains("BIT"));
 	}
+	
+	@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();
+		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());		
+
+		try {
+			test("blockpush.groovy", gitblit, logger, commands, repository);
+			assertTrue("blockpush should have failed!", false);
+		} catch (GitBlitException e) {
+			assertTrue(e.getMessage().contains("failed"));
+		}
+	}
 
 	private void test(String script, MockGitblit gitblit, MockLogger logger,
-			List<ReceiveCommand> commands) throws Exception {
+			List<ReceiveCommand> commands, RepositoryModel repository) throws Exception {
 
 		UserModel user = new UserModel("mock");
-		RepositoryModel repository = GitBlit.self().getRepositoryModel("helloworld.git");
-		repository.mailingLists.add("list@helloworld.git");
 
 		String gitblitUrl = GitBlitSuite.url;
 

--
Gitblit v1.9.1