package org.bsc.confluence.model;
import org.bsc.confluence.model.Site;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.hamcrest.CoreMatchers.not;
import org.hamcrest.core.IsNull;
import static org.junit.Assert.*;
import static org.junit.matchers.JUnitMatchers.containsString;
public class SiteTest {
@Test
public void shouldSupportReferenceNode() throws IOException {
final InputStream stream = getClass().getClassLoader().getResourceAsStream("withRefLink.md");
assertThat( stream, IsNull.notNullValue());
final InputStream inputStream = Site.processMarkdown(stream, "Test");
assertThat( inputStream, IsNull.notNullValue());
final String converted = IOUtils.toString(inputStream);
assertThat(converted, containsString("[rel|Test - relativeagain]"));
assertThat(converted, containsString("[more complex google|http://google.com|Other google]"));
assertThat(converted, containsString("[google|http://google.com]"));
}
@Test
public void shouldSupportImgRefLink() throws IOException {
final InputStream stream = getClass().getClassLoader().getResourceAsStream("withImgRefLink.md");
assertThat( stream, IsNull.notNullValue());
final InputStream inputStream = Site.processMarkdown(stream, "Test IMG");
assertThat( inputStream, IsNull.notNullValue());
final String converted = IOUtils.toString(inputStream);
assertThat(converted, containsString("!http://www.lewe.com/wp-content/uploads/2016/03/conf-icon-64.png|alt=\"conf-icon\"|title=\"My conf-icon\"!"));
assertThat(converted, containsString("!conf-icon-64.png|alt=\"conf-icon\"|title=\"My conf-icon\"!"));
assertThat(converted, containsString("!conf-icon-64.png|alt=\"conf-icon\"!"));
assertThat(converted, containsString("!http://www.lewe.com/wp-content/uploads/2016/03/conf-icon-64.png|alt=\"conf-icon-y\"|title=\"My conf-icon\"!"));
assertThat(converted, containsString("!http://www.lewe.com/wp-content/uploads/2016/03/conf-icon-64.png|alt=\"conf-icon-y1\"!"));
assertThat(converted, containsString("!conf-icon-64.png|alt=\"conf-icon-y2\"!"));
assertThat(converted, containsString("!conf-icon-64.png|alt=\"conf-icon-none\"!"));
}
@Test
public void shouldSupportSimpleNode() throws IOException {
final InputStream stream = getClass().getClassLoader().getResourceAsStream("simpleNodes.md");
assertThat( stream, IsNull.notNullValue());
final InputStream inputStream = Site.processMarkdown(stream, "Test");
assertThat( inputStream, IsNull.notNullValue());
final String converted = IOUtils.toString(inputStream);
assertThat("All forms of HRules should be supported", converted, containsString("----\n1\n----\n2\n----\n3\n----\n4\n----"));
/* only when Extensions.SMARTS is activated
assertThat(converted, containsString("…"));
assertThat(converted, containsString("–"));
assertThat(converted, containsString("—"));
*/
assertThat(converted, containsString("Forcing a line-break\nNext line in the list"));
assertThat(converted, containsString(" "));
}
@Test
public void shouldCreateSpecificNoticeBlock() throws IOException {
final InputStream stream = getClass().getClassLoader().getResourceAsStream("createSpecificNoticeBlock.md");
assertThat( stream, IsNull.notNullValue());
final InputStream inputStream = Site.processMarkdown(stream, "Test Macro");
assertThat( inputStream, IsNull.notNullValue());
final String converted = IOUtils.toString(inputStream);
assertThat(converted, containsString("{info:title=About me}\n"));
assertThat("Should not generate unneeded param 'title'", converted, not(containsString("{note:title=}\n")));
assertThat(converted, containsString("{tip:title=About you}\n"));
assertThat(converted, containsString("bq. test a simple blockquote"));
assertThat(converted, containsString("{quote}\n"));
assertThat(converted, containsString("* one\n* two"));
assertThat(converted, containsString("a *strong* and _pure_ feeling"));
}
}