/* * Copyright 2011 gitblit.com. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.gitblit.tests; import java.util.HashMap; import java.util.Map; import org.junit.Test; import com.gitblit.IStoredSettings; import com.gitblit.Keys; import com.gitblit.tests.mock.MemorySettings; import com.gitblit.utils.MarkdownUtils; public class MarkdownUtilsTest extends GitblitUnitTest { @Test public void testMarkdown() throws Exception { assertEquals("<h1>H1</h1>", MarkdownUtils.transformMarkdown("# H1")); assertEquals("<h2>H2</h2>", MarkdownUtils.transformMarkdown("## H2")); assertEquals("<p><strong>THIS</strong> is a test</p>", MarkdownUtils.transformMarkdown("**THIS** is a test")); assertEquals("<p>** THIS ** is a test</p>", MarkdownUtils.transformMarkdown("** THIS ** is a test")); assertEquals("<p>**THIS ** is a test</p>", MarkdownUtils.transformMarkdown("**THIS ** is a test")); assertEquals("<p>** THIS** is a test</p>", MarkdownUtils.transformMarkdown("** THIS** is a test")); assertEquals("<table><tr><td>test</td></tr></table>", MarkdownUtils.transformMarkdown("<table><tr><td>test</td></tr></table>")); assertEquals("<table><tr><td><test></td></tr></table>", MarkdownUtils.transformMarkdown("<table><tr><td><test></td></tr></table>")); } @Test public void testUserMentions() { IStoredSettings settings = getSettings(); String repositoryName = "test3"; String mentionHtml = "<strong><a href=\"http://localhost/user/%1$s\">@%1$s</a></strong>"; String input = "@j.doe"; String output = "<p>" + String.format(mentionHtml, "j.doe") + "</p>"; assertEquals(output, MarkdownUtils.transformGFM(settings, input, repositoryName)); input = " @j.doe"; output = "<p>" + String.format(mentionHtml, "j.doe") + "</p>"; assertEquals(output, MarkdownUtils.transformGFM(settings, input, repositoryName)); input = "@j.doe."; output = "<p>" + String.format(mentionHtml, "j.doe") + ".</p>"; assertEquals(output, MarkdownUtils.transformGFM(settings, input, repositoryName)); input = "To @j.doe: ask @jim.beam!"; output = "<p>To " + String.format(mentionHtml, "j.doe") + ": ask " + String.format(mentionHtml, "jim.beam") + "!</p>"; assertEquals(output, MarkdownUtils.transformGFM(settings, input, repositoryName)); input = "@sta.rt\n" + "\n" + "User mentions in tickets are broken.\n" + "So:\n" + "@mc_guyver can fix this.\n" + "@j.doe, can you test after the fix by @m+guyver?\n" + "Please review this, @jim.beam!\n" + "Was reported by @jill and @j!doe from jane@doe yesterday.\n" + "\n" + "@jack.daniels can vote for john@wayne.name hopefully.\n" + "@en.de"; output = "<p>" + String.format(mentionHtml, "sta.rt") + "</p>" + "<p>" + "User mentions in tickets are broken.<br/>" + "So:<br/>" + String.format(mentionHtml, "mc_guyver") + " can fix this.<br/>" + String.format(mentionHtml, "j.doe") + ", can you test after the fix by " + String.format(mentionHtml, "m+guyver") + "?<br/>" + "Please review this, " + String.format(mentionHtml, "jim.beam") + "!<br/>" + "Was reported by " + String.format(mentionHtml, "jill") + " and " + String.format(mentionHtml, "j!doe") + " from <a href=\"mailto:jane@doe\">jane@doe</a> yesterday." + "</p>" + "<p>" + String.format(mentionHtml, "jack.daniels") + " can vote for " + "<a href=\"mailto:john@wayne.name\">john@wayne.name</a> hopefully.<br/>" + String.format(mentionHtml, "en.de") + "</p>"; assertEquals(output, MarkdownUtils.transformGFM(settings, input, repositoryName)); } private MemorySettings getSettings() { Map<String, Object> backingMap = new HashMap<String, Object>(); backingMap.put(Keys.web.canonicalUrl, "http://localhost"); backingMap.put(Keys.web.shortCommitIdLength, "7"); MemorySettings ms = new MemorySettings(backingMap); return ms; } }