From c7acc2e1fa86102bb87e715c8fe4e336329fbcc6 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 23 Jan 2013 08:42:20 -0500
Subject: [PATCH] Include issue tracker hooks in builds

---
 tests/com/gitblit/tests/GroovyScriptTest.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/tests/com/gitblit/tests/GroovyScriptTest.java b/tests/com/gitblit/tests/GroovyScriptTest.java
index 3d3621d..2954fa1 100644
--- a/tests/com/gitblit/tests/GroovyScriptTest.java
+++ b/tests/com/gitblit/tests/GroovyScriptTest.java
@@ -30,6 +30,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -67,6 +68,53 @@
 		if (started.get()) {
 			GitBlitSuite.stopGitblit();
 		}
+	}
+
+	@Test
+	public void testFogbugz() throws Exception {
+		MockGitblit gitblit = new MockGitblit();
+		MockLogger logger = new MockLogger();
+		MockClientLogger clientLogger = new MockClientLogger();
+		List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
+		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"));
+
+		RepositoryModel repository = GitBlit.self().getRepositoryModel("helloworld.git");
+		repository.customFields = new HashMap<String,String>();
+		repository.customFields.put( "fogbugzUrl", "http://bugs.test.com" );
+		repository.customFields.put( "fogbugzRepositoryId", "1" );
+		repository.customFields.put( "fogbugzCommitMessageRegex", "\\s*[Bb][Uu][Gg][(Zz)(Ss)]*\\s*[(IDs)]*\\s*[#:; ]+((\\d+[ ,:;#]*)+)" );
+
+		test("fogbugz.groovy", gitblit, logger, clientLogger, commands, repository);
+	}
+
+	@Test
+	public void testSendHtmlMail() throws Exception {
+		MockGitblit gitblit = new MockGitblit();
+		MockLogger logger = new MockLogger();
+		MockClientLogger clientLogger = new MockClientLogger();
+		List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
+		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"));
+
+		RepositoryModel repository = GitBlit.self().getRepositoryModel("helloworld.git");
+		repository.mailingLists.add("list@helloworld.git");
+
+		test("sendmail-html.groovy", gitblit, logger, clientLogger, 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"));
+		assertTrue(m.message.contains("<html>"));
 	}
 
 	@Test
@@ -296,6 +344,9 @@
 		public void sendMail(String subject, String message, Collection<String> toAddresses) {
 			messages.add(new MockMail(subject, message, toAddresses));
 		}
+		public void sendHtmlMail(String subject, String message, Collection<String> toAddresses) {
+			messages.add(new MockMail(subject, message, toAddresses));
+		}
 	}
 
 	class MockLogger {

--
Gitblit v1.9.1