Puts more emphasis on the commit title in published messages

- Alters the message formatting to put more emphasis on the commit
  title.
- Adds a new title field on the MessageTemplate Class.
- Uses StringUtils to determine the title and body of a commit
  message.
- Renames escape to clean to reflect additional functionality.
- Misc. refactoring.

Change-Id: I07dc5cb430c714f8a357f031f7ae754a530649cf
diff --git a/src/main/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGenerator.java b/src/main/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGenerator.java
index 85d75bb..9b6c052 100644
--- a/src/main/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGenerator.java
+++ b/src/main/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGenerator.java
@@ -22,6 +22,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.commons.lang.StringUtils.substringBefore;
+
 /**
  * A specific MessageGenerator implementation that can generate a message for
  * a change merged event.
@@ -81,7 +83,7 @@
             template.setProject(event.change.get().project);
             template.setBranch(event.change.get().branch);
             template.setUrl(event.change.get().url);
-            template.setMessage(event.change.get().commitMessage.split("\n")[0]);
+            template.setTitle(substringBefore(event.change.get().commitMessage, "\n"));
 
             message = template.render();
         }
diff --git a/src/main/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGenerator.java b/src/main/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGenerator.java
index 663d154..6dff8c4 100644
--- a/src/main/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGenerator.java
+++ b/src/main/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGenerator.java
@@ -18,11 +18,12 @@
 package com.cisco.gerrit.plugins.slack.message;
 
 import com.cisco.gerrit.plugins.slack.config.ProjectConfig;
-import com.google.common.base.Ascii;
 import com.google.gerrit.server.events.CommentAddedEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.commons.lang.StringUtils.substringBefore;
+
 /**
  * A specific MessageGenerator implementation that can generate a message for
  * a comment added event.
@@ -71,6 +72,9 @@
         String message;
         message = "";
 
+        LOGGER.info(substringBefore(event.change.get().commitMessage, "\n"));
+        LOGGER.info(event.comment);
+
         try
         {
             MessageTemplate template;
@@ -79,11 +83,12 @@
             template.setChannel(config.getChannel());
             template.setName(event.author.get().name);
             template.setAction("commented on");
-            template.setNumber(event.change.get().number);
             template.setProject(event.change.get().project);
             template.setBranch(event.change.get().branch);
             template.setUrl(event.change.get().url);
-            template.setMessage(Ascii.truncate(event.comment, 200, "..."));
+            template.setNumber(event.change.get().number);
+            template.setTitle(substringBefore(event.change.get().commitMessage, "\n"));
+            template.setMessage(event.comment);
 
             message = template.render();
         }
diff --git a/src/main/java/com/cisco/gerrit/plugins/slack/message/MessageTemplate.java b/src/main/java/com/cisco/gerrit/plugins/slack/message/MessageTemplate.java
index f73517b..993a37a 100644
--- a/src/main/java/com/cisco/gerrit/plugins/slack/message/MessageTemplate.java
+++ b/src/main/java/com/cisco/gerrit/plugins/slack/message/MessageTemplate.java
@@ -38,16 +38,17 @@
     private String channel;
     private String name;
     private String action;
-    private int number;
     private String project;
     private String branch;
     private String url;
+    private int number;
+    private String title;
     private String message;
 
 
     public String getChannel()
     {
-        return escape(channel);
+        return clean(channel);
     }
 
     public void setChannel(String channel)
@@ -57,7 +58,7 @@
 
     public String getName()
     {
-        return escape(name);
+        return clean(name);
     }
 
     public void setName(String name)
@@ -67,7 +68,7 @@
 
     public String getAction()
     {
-        return escape(action);
+        return clean(action);
     }
 
     public void setAction(String action)
@@ -75,6 +76,36 @@
         this.action = action;
     }
 
+    public String getProject()
+    {
+        return clean(project);
+    }
+
+    public void setProject(String project)
+    {
+        this.project = project;
+    }
+
+    public String getBranch()
+    {
+        return clean(branch);
+    }
+
+    public void setBranch(String branch)
+    {
+        this.branch = branch;
+    }
+
+    public String getUrl()
+    {
+        return clean(url);
+    }
+
+    public void setUrl(String url)
+    {
+        this.url = url;
+    }
+
     public int getNumber()
     {
         return number;
@@ -85,29 +116,19 @@
         this.number = number;
     }
 
-    public String getProject()
+    public String getTitle()
     {
-        return escape(project);
+        return clean(title);
     }
 
-    public void setProject(String project)
+    public void setTitle(String title)
     {
-        this.project = project;
-    }
-
-    public String getBranch()
-    {
-        return escape(branch);
-    }
-
-    public void setBranch(String branch)
-    {
-        this.branch = branch;
+        this.title = title;
     }
 
     public String getMessage()
     {
-        return escape(message);
+        return clean(message);
     }
 
     public void setMessage(String message)
@@ -115,16 +136,6 @@
         this.message = message;
     }
 
-    public String getUrl()
-    {
-        return escape(url);
-    }
-
-    public void setUrl(String url)
-    {
-        this.url = url;
-    }
-
 
     /**
      * Renders the message template into a String.
@@ -143,8 +154,8 @@
                     "message-template.json");
 
             result = String.format(template, getChannel(), getName(),
-                    getAction(), getProject(), getBranch(), getNumber(),
-                    getUrl(), getMessage(), "good");
+                    getAction(), getProject(), getBranch(), getUrl(),
+                    getNumber(), getTitle(), getMessage(), "good");
         }
         catch (IOException e)
         {
@@ -155,19 +166,25 @@
     }
 
     /**
-     * Escapes the double quote character.
+     * Cleans up the provided string to make it acceptable for using in a
+     * Slack message template. It escapes any double quote characters,
+     * trims all leading/trailing whitespace and returns an empty string if
+     * the provided string was null.
      *
-     * @param str The message in which to search escape double quote
-     *            characters
+     * @param str The string to process.
      *
      * @return The message with all occurrences of the double quote character
-     * escaped.
+     * escaped and leading/trailing whitespace trimmed
      */
-    private String escape(String str)
+    private String clean(String str)
     {
         if (str != null)
         {
-            str = str.replace("\"", "\\\"");
+            str = str.replace("\"", "\\\"").trim();
+        }
+        else
+        {
+            str = "";
         }
 
         return str;
diff --git a/src/main/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGenerator.java b/src/main/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGenerator.java
index b3d119b..d7b010f 100644
--- a/src/main/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGenerator.java
+++ b/src/main/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGenerator.java
@@ -25,6 +25,8 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static org.apache.commons.lang.StringUtils.substringBefore;
+
 /**
  * A specific MessageGenerator implementation that can generate a message for a
  * patchset created event.
@@ -106,7 +108,7 @@
             template.setProject(event.change.get().project);
             template.setBranch(event.change.get().branch);
             template.setUrl(event.change.get().url);
-            template.setMessage(event.change.get().commitMessage.split("\n")[0]);
+            template.setTitle(substringBefore(event.change.get().commitMessage, "\n"));
 
             message = template.render();
         }
diff --git a/src/main/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGenerator.java b/src/main/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGenerator.java
index ef9413d..d1c7870 100644
--- a/src/main/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGenerator.java
+++ b/src/main/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGenerator.java
@@ -22,6 +22,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.commons.lang.StringUtils.substringBefore;
+
 /**
  * A specific MessageGenerator implementation that can generate a message for
  * a reviewer added event.
@@ -81,7 +83,7 @@
             template.setProject(event.change.get().project);
             template.setBranch(event.change.get().branch);
             template.setUrl(event.change.get().url);
-            template.setMessage(event.change.get().commitMessage.split("\n")[0]);
+            template.setTitle(substringBefore(event.change.get().commitMessage, "\n"));
 
             message = template.render();
         }
diff --git a/src/main/resources/message-template.json b/src/main/resources/message-template.json
index 8cddda1..5dd8038 100644
--- a/src/main/resources/message-template.json
+++ b/src/main/resources/message-template.json
@@ -2,12 +2,12 @@
   "channel": "#%1$s",
   "attachments": [
     {
-      "fallback": "%2$s %3$s - %4$s (%5$s) - %7$s - %8$s",
-      "pretext": "%2$s %3$s",
-      "title": "%4$s (%5$s) - change %6$s",
-      "title_link": "%7$s",
-      "text": "%8$s",
-      "color": "%9$s"
+      "fallback": "%2$s %3$s %4$s (%5$s) %6$s: %8$s",
+      "pretext": "%2$s %3$s <%6$s|%4$s (%5$s) change %7$s>",
+      "title": "%8$s",
+      "title_link": "%6$s",
+      "text": "%9$s",
+      "color": "%10$s"
     }
   ]
 }
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/PublishEventListenerTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/PublishEventListenerTest.java
index 50b3f16..2afaf0e 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/PublishEventListenerTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/PublishEventListenerTest.java
@@ -43,7 +43,7 @@
     @Test
     public void handlesPatchSetCreatedEvents() throws Exception
     {
-        // Wat? Placeholder, as I need to think about out how to test...
+        // TODO: Add actual tests here
         assertTrue(true);
     }
 }
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/client/WebhookClientIntegrationTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/client/WebhookClientIntegrationTest.java
index 2b2b284..29fa2af 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/client/WebhookClientIntegrationTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/client/WebhookClientIntegrationTest.java
@@ -50,11 +50,50 @@
         template.setChannel("general");
         template.setName("Integration Tester");
         template.setAction("proposed");
-        template.setNumber(1234);
         template.setProject("project");
         template.setBranch("master");
         template.setUrl("http://gerrit/1234");
-        template.setMessage("This is a really great commit.");
+        template.setNumber(1234);
+        template.setTitle("Adds a test commit message");
+
+        String webhookUrl;
+        webhookUrl = properties.getProperty("webhook-url");
+
+        assertTrue(client.publish(template.render(), webhookUrl));
+    }
+
+    @Test
+    public void canPublishMessageWithLongMessage() throws Exception
+    {
+        WebhookClient client;
+        client = new WebhookClient();
+
+        InputStream testProperties;
+        testProperties = ResourceHelper.loadNamedResourceAsStream(
+                "test.properties");
+
+        Properties properties;
+        properties = new Properties();
+        properties.load(testProperties);
+
+        testProperties.close();
+
+        MessageTemplate template;
+        template = new MessageTemplate();
+
+        template.setChannel("general");
+        template.setName("Integration Tester");
+        template.setAction("commented on");
+        template.setProject("project");
+        template.setBranch("master");
+        template.setUrl("http://gerrit/1234");
+        template.setNumber(1234);
+        template.setTitle("Adds a test commit message");
+        template.setMessage("It provides a bunch of really great things. " +
+                "I am mostly trying to fill out a really long comment to " +
+                "test message rendering. Slack should do the right thing " +
+                "but this will be on multiple lines in IRC.\n\n\n\n\n" +
+                "This is hidden.");
 
         String webhookUrl;
         webhookUrl = properties.getProperty("webhook-url");
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGeneratorTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGeneratorTest.java
index 78f3ad7..7ccbe73 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGeneratorTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/message/ChangeMergedMessageGeneratorTest.java
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ChangeAttribute;
-import com.google.gerrit.server.data.PatchSetAttribute;
 import com.google.gerrit.server.events.ChangeMergedEvent;
 import org.junit.Before;
 import org.junit.Test;
@@ -187,7 +186,7 @@
         mockChange.project = "testproject";
         mockChange.branch = "master";
         mockChange.url = "https://change/";
-        mockChange.commitMessage = "This is a title\nand a the body.";
+        mockChange.commitMessage = "This is the title\nThis is the message body.";
 
         mockAccount.name = "Unit Tester";
 
@@ -201,11 +200,11 @@
                 "  \"channel\": \"#testchannel\",\n" +
                 "  \"attachments\": [\n" +
                 "    {\n" +
-                "      \"fallback\": \"Unit Tester merged - testproject (master) - https://change/ - This is a title\",\n" +
-                "      \"pretext\": \"Unit Tester merged\",\n" +
-                "      \"title\": \"testproject (master) - change 1234\",\n" +
+                "      \"fallback\": \"Unit Tester merged testproject (master) https://change/: This is the title\",\n" +
+                "      \"pretext\": \"Unit Tester merged <https://change/|testproject (master) change 1234>\",\n" +
+                "      \"title\": \"This is the title\",\n" +
                 "      \"title_link\": \"https://change/\",\n" +
-                "      \"text\": \"This is a title\",\n" +
+                "      \"text\": \"\",\n" +
                 "      \"color\": \"good\"\n" +
                 "    }\n" +
                 "  ]\n" +
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGeneratorTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGeneratorTest.java
index a2fc138..371373e 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGeneratorTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/message/CommentAddedMessageGeneratorTest.java
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ChangeAttribute;
-import com.google.gerrit.server.data.PatchSetAttribute;
 import com.google.gerrit.server.events.CommentAddedEvent;
 import org.junit.Before;
 import org.junit.Test;
@@ -182,7 +181,7 @@
         mockEvent.change = Suppliers.ofInstance(mockChange);
         mockEvent.author = Suppliers.ofInstance(mockAccount);
 
-        mockEvent.comment = "This is the first line\nAnd the second line.";
+        mockEvent.comment = "This is the comment body.";
 
         mockChange.number = 1234;
         mockChange.project = "testproject";
@@ -191,6 +190,8 @@
         mockChange.owner = mockOwner;
         mockOwner.name = "Owner";
 
+        mockChange.commitMessage = "This is the title\nThis is the message body.";
+
         mockAccount.name = "Unit Tester";
 
         // Test
@@ -203,60 +204,11 @@
                 "  \"channel\": \"#testchannel\",\n" +
                 "  \"attachments\": [\n" +
                 "    {\n" +
-                "      \"fallback\": \"Unit Tester commented on - testproject (master) - https://change/ - This is the first line\nAnd the second line.\",\n" +
-                "      \"pretext\": \"Unit Tester commented on\",\n" +
-                "      \"title\": \"testproject (master) - change 1234\",\n" +
+                "      \"fallback\": \"Unit Tester commented on testproject (master) https://change/: This is the title\",\n" +
+                "      \"pretext\": \"Unit Tester commented on <https://change/|testproject (master) change 1234>\",\n" +
+                "      \"title\": \"This is the title\",\n" +
                 "      \"title_link\": \"https://change/\",\n" +
-                "      \"text\": \"This is the first line\n" +
-                "And the second line.\",\n" +
-                "      \"color\": \"good\"\n" +
-                "    }\n" +
-                "  ]\n" +
-                "}\n";
-
-        String actualResult;
-        actualResult = messageGenerator.generate();
-
-        assertThat(actualResult, is(equalTo(expectedResult)));
-    }
-
-    @Test
-    public void generatesExpectedMessageForLongComment() throws Exception
-    {
-        // Setup mocks
-        ProjectConfig config = getConfig();
-        mockEvent.change = Suppliers.ofInstance(mockChange);
-        mockEvent.author = Suppliers.ofInstance(mockAccount);
-
-        mockEvent.comment = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
-                "Integer tristique ligula nec dapibus lobortis. Nulla venenatis, lacus quis vulputate volutpat, " +
-                "sem neque ornare eros, vel sodales magna risus et diam. Maecenas ultricies justo dictum orci " +
-                "scelerisque consequat a vel purus.";
-
-        mockChange.number = 1234;
-        mockChange.project = "testproject";
-        mockChange.branch = "master";
-        mockChange.url = "https://change/";
-        mockChange.owner = mockOwner;
-        mockOwner.name = "Owner";
-
-        mockAccount.name = "Unit Tester";
-
-        // Test
-        MessageGenerator messageGenerator;
-        messageGenerator = MessageGeneratorFactory.newInstance(
-                mockEvent, config);
-
-        String expectedResult;
-        expectedResult = "{\n" +
-                "  \"channel\": \"#testchannel\",\n" +
-                "  \"attachments\": [\n" +
-                "    {\n" +
-                "      \"fallback\": \"Unit Tester commented on - testproject (master) - https://change/ - " + mockEvent.comment.substring(0, 197) + "...\",\n" +
-                "      \"pretext\": \"Unit Tester commented on\",\n" +
-                "      \"title\": \"testproject (master) - change 1234\",\n" +
-                "      \"title_link\": \"https://change/\",\n" +
-                "      \"text\": \"" + mockEvent.comment.substring(0, 197) + "...\",\n" +
+                "      \"text\": \"This is the comment body.\",\n" +
                 "      \"color\": \"good\"\n" +
                 "    }\n" +
                 "  ]\n" +
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/message/MessageTemplateTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/message/MessageTemplateTest.java
index 0e30b93..3ad1733 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/message/MessageTemplateTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/message/MessageTemplateTest.java
@@ -27,15 +27,13 @@
         MessageTemplate template;
         template = new MessageTemplate();
 
-        template.setChannel("general");
-        template.setName("Mr. Developer");
+        template.setChannel("testchannel");
+        template.setName("Unit Tester");
         template.setAction("proposed");
-        template.setNumber(1234);
         template.setProject("project");
         template.setBranch("master");
-        template.setUrl("https://gerrit-review.googlesource.com/#/admin/projects/plugins/slack-integration");
+        template.setUrl("https://change/");
+        template.setNumber(1234);
         template.setMessage("This is a really great commit.");
-
-        System.out.println(template.render());
     }
 }
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGeneratorTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGeneratorTest.java
index caf2301..7e0bf48 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGeneratorTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/message/PatchSetCreatedMessageGeneratorTest.java
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ChangeAttribute;
-import com.google.gerrit.server.data.PatchSetAttribute;
 import com.google.gerrit.server.events.PatchSetCreatedEvent;
 import org.junit.Before;
 import org.junit.Test;
@@ -197,7 +196,7 @@
         mockChange.project = "testproject";
         mockChange.branch = "master";
         mockChange.url = "https://change/";
-        mockChange.commitMessage = "This is a title\nand a the body.";
+        mockChange.commitMessage = "This is the title\nThis is the message body.";
 
         mockAccount.name = "Unit Tester";
 
@@ -211,11 +210,11 @@
                 "  \"channel\": \"#testchannel\",\n" +
                 "  \"attachments\": [\n" +
                 "    {\n" +
-                "      \"fallback\": \"Unit Tester proposed - testproject (master) - https://change/ - This is a title\",\n" +
-                "      \"pretext\": \"Unit Tester proposed\",\n" +
-                "      \"title\": \"testproject (master) - change 1234\",\n" +
+                "      \"fallback\": \"Unit Tester proposed testproject (master) https://change/: This is the title\",\n" +
+                "      \"pretext\": \"Unit Tester proposed <https://change/|testproject (master) change 1234>\",\n" +
+                "      \"title\": \"This is the title\",\n" +
                 "      \"title_link\": \"https://change/\",\n" +
-                "      \"text\": \"This is a title\",\n" +
+                "      \"text\": \"\",\n" +
                 "      \"color\": \"good\"\n" +
                 "    }\n" +
                 "  ]\n" +
diff --git a/src/test/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGeneratorTest.java b/src/test/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGeneratorTest.java
index 30358f6..74f97a5 100644
--- a/src/test/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGeneratorTest.java
+++ b/src/test/java/com/cisco/gerrit/plugins/slack/message/ReviewerAddedMessageGeneratorTest.java
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.data.AccountAttribute;
 import com.google.gerrit.server.data.ChangeAttribute;
-import com.google.gerrit.server.data.PatchSetAttribute;
 import com.google.gerrit.server.events.ReviewerAddedEvent;
 import org.junit.Before;
 import org.junit.Test;
@@ -167,7 +166,7 @@
         mockChange.number = 1234;
         mockChange.project = "testproject";
         mockChange.branch = "master";
-        mockChange.commitMessage = "This is the first line\nAnd the second line.";
+        mockChange.commitMessage = "This is the title\nThis is the message body.";
         mockChange.url = "https://change/";
 
         mockAccount.name = "Unit Tester";
@@ -182,11 +181,11 @@
                 "  \"channel\": \"#testchannel\",\n" +
                 "  \"attachments\": [\n" +
                 "    {\n" +
-                "      \"fallback\": \"Unit Tester was added to review - testproject (master) - https://change/ - This is the first line\",\n" +
-                "      \"pretext\": \"Unit Tester was added to review\",\n" +
-                "      \"title\": \"testproject (master) - change 1234\",\n" +
+                "      \"fallback\": \"Unit Tester was added to review testproject (master) https://change/: This is the title\",\n" +
+                "      \"pretext\": \"Unit Tester was added to review <https://change/|testproject (master) change 1234>\",\n" +
+                "      \"title\": \"This is the title\",\n" +
                 "      \"title_link\": \"https://change/\",\n" +
-                "      \"text\": \"This is the first line\",\n" +
+                "      \"text\": \"\",\n" +
                 "      \"color\": \"good\"\n" +
                 "    }\n" +
                 "  ]\n" +