| /* | |
| * 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; | |
| } | |
| } |