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