blob: 28757d890b09edf3078f5e78e5c294351782b2f4 [file] [log] [blame]
/*
* Copyright 2000-2013 JetBrains s.r.o.
*
* 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.intellij.util.text;
import com.intellij.util.containers.ContainerUtil;
import org.junit.Assert;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
/**
* @author Sergey Simonchik
*/
public class MarkdownUtilTest {
@Test
public void testReplaceHeaders() throws Exception {
List<String> markdown = ContainerUtil.newArrayList("# Hello1", "## Hello2##", "### Hello3#");
MarkdownUtil.replaceHeaders(markdown);
Assert.assertEquals(ContainerUtil.newArrayList("<h1>Hello1</h1>", "<h2>Hello2</h2>", "<h3>Hello3</h3>"), markdown);
}
@Test
public void testRemoveImage() throws Exception {
List<String> markdown = Arrays.asList(
"![logo](http://localhost/logo.png)",
"Hello, [node](http://nodejs.org). [![Build Status](https://secure.travis-ci.org/visionmedia/express.png)](http://travis-ci.org/visionmedia/express) [![Dependency Status](https://gemnasium.com/visionmedia/express.png)](https://gemnasium.com/visionmedia/express)"
);
MarkdownUtil.removeImages(markdown);
Assert.assertEquals(Arrays.asList(
"",
"Hello, [node](http://nodejs.org). "
), markdown);
}
@Test
public void testRemoveImageEdgeCase() throws Exception {
List<String> markdown = Arrays.asList("[![logo](http://localhost/logo.png)]");
MarkdownUtil.removeImages(markdown);
Assert.assertEquals(Arrays.asList("[]"),markdown);
}
@Test
public void testReplaceCodeBlocks() throws Exception {
List<String> markdown = Arrays.asList(" Create the app:",
"",
" $ npm install -g express",
" $ express /tmp/foo && cd /tmp/foo");
MarkdownUtil.replaceCodeBlock(markdown);
Assert.assertEquals(Arrays.asList(" Create the app:",
"",
"<pre><code>$ npm install -g express",
"$ express /tmp/foo && cd /tmp/foo</code></pre>"), markdown);
}
@Test
public void testReplaceCodeBlocks2() throws Exception {
List<String> markdown = Arrays.asList(
" text",
" code block",
"```",
" code block too",
"```",
"simple text",
" $ code",
"\t$ code continues",
"code done"
);
MarkdownUtil.replaceCodeBlock(markdown);
Assert.assertEquals(
Arrays.asList(
" text",
"<pre><code>code block</code></pre>",
"<pre><code>",
" code block too",
"</code></pre>",
"simple text",
"<pre><code>$ code",
"$ code continues</code></pre>",
"code done"
),
markdown
);
}
@Test
public void testReplaceLists1() throws Exception {
List<String> markdown = Arrays.asList(
"* Red",
"* Green",
"* Blue"
);
MarkdownUtil.generateLists(markdown);
Assert.assertEquals(
Arrays.asList(
"<ul><li>Red</li>",
"<li>Green</li>",
"<li>Blue</li></ul>"
),
markdown
);
}
@Test
public void testReplaceLists2() throws Exception {
List<String> markdown = Arrays.asList(
"1. Red",
"",
"2. Blue"
);
MarkdownUtil.generateLists(markdown);
Assert.assertEquals(
Arrays.asList(
"<ol><li>Red</li>",
"",
"<li>Blue</li></ol>"
),
markdown
);
}
@Test
public void testReplaceLists3() throws Exception {
List<String> markdown = Arrays.asList(
"1986\\. What a great season."
);
MarkdownUtil.generateLists(markdown);
Assert.assertEquals(
Arrays.asList(
"1986\\. What a great season."
),
markdown
);
}
@Test
public void testReplaceLists4() throws Exception {
List<String> markdown = Arrays.asList(
"+ one two",
"three",
"",
" four",
"+ five",
"six",
"",
"seven",
"",
"+ eight"
);
MarkdownUtil.generateLists(markdown);
Assert.assertEquals(
Arrays.asList(
"<ul><li>one two",
"three",
"",
"four</li>",
"<li>five",
"six</li></ul>",
"",
"seven",
"",
"<ul><li>eight</li></ul>"
),
markdown
);
}
}