/*******************************************************************************
* Copyright (c) 2015 Max Rydahl Andersen and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Max Rydahl Andersen - copied from markdown to get base for asciidoc
*******************************************************************************/
package org.eclipse.mylyn.internal.wikitext.asciidoc.tests;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
* Tests for asciidoc span elements.
*
* @author Max Rydahl Andersen
*/
public class AsciiDocLanguageSpanElementsTest extends AsciiDocLanguageTestBase {
@Test
public void strong() {
String html = parseToHtml("*foo bar*");
assertEquals("<p><strong>foo bar</strong></p>\n", html);
}
@Test
public void strongSurrounded() {
String html = parseToHtml("before *foo bar* after");
assertEquals("<p>before <strong>foo bar</strong> after</p>\n", html);
}
@Test
public void strongNoSpaceSurrounded() {
String html = parseToHtml("before*foo bar*after");
assertEquals("<p>before*foo bar*after</p>\n", html);
}
@Test
public void strongTwiceInLine() {
String html = parseToHtml("before *foo bar* after a *second time*");
assertEquals("<p>before <strong>foo bar</strong> after a <strong>second time</strong></p>\n", html);
}
@Test
public void strongTwiceInLineNoSpaceSurrounded() {
String html = parseToHtml("before *foo bar*after a *second time*");
assertEquals("<p>before <strong>foo bar*after a *second time</strong></p>\n", html);
}
@Test
public void strongNoWordBoundarySpaceSurrounded() {
String html = parseToHtml("before **foo bar** after");
assertEquals("<p>before <strong>foo bar</strong> after</p>\n", html);
}
@Test
public void strongNoWordBoundarySpaceSurroundedBegin() {
String html = parseToHtml("**foo bar** after");
assertEquals("<p><strong>foo bar</strong> after</p>\n", html);
}
@Test
public void strongNoWordBoundarySpaceSurroundedEnd() {
String html = parseToHtml("before **foo bar**");
assertEquals("<p>before <strong>foo bar</strong></p>\n", html);
}
@Test
public void strongNoWordBoundaryNoSpaceSurrounded() {
String html = parseToHtml("before**foo bar**after");
assertEquals("<p>before<strong>foo bar</strong>after</p>\n", html);
}
@Test
public void strongSpecialCharAfter() {
String html = parseToHtml("This *lorem*! And *ipsum*.");
assertEquals("<p>This <strong>lorem</strong>! And <strong>ipsum</strong>.</p>\n", html);
}
@Test
public void strongSpecialCharBefore() {
String html = parseToHtml("This %*foo bar* and -*bar foo*");
assertEquals("<p>This %<strong>foo bar</strong> and -<strong>bar foo</strong></p>\n", html);
}
@Test
public void notStrongUnderscoreBefore() {
String html = parseToHtml("before _*foo* after");
assertEquals("<p>before _*foo* after</p>\n", html);
}
@Test
public void escapedStrong() {
String html = parseToHtml("\\*foo bar*");
assertEquals("<p>*foo bar*</p>\n", html);
}
@Test
public void escapedStrongNoWordBoundary() {
String html = parseToHtml("before\\\\**foo bar**");
assertEquals("<p>before**foo bar**</p>\n", html);
}
@Test
public void emphasis() {
String html = parseToHtml("_foo bar_");
assertEquals("<p><em>foo bar</em></p>\n", html);
}
@Test
public void emphasisSurrounded() {
String html = parseToHtml("before _foo bar_ after");
assertEquals("<p>before <em>foo bar</em> after</p>\n", html);
}
@Test
public void emphasisNoSpaceSurrounded() {
String html = parseToHtml("before_foo bar_after");
assertEquals("<p>before_foo bar_after</p>\n", html);
}
@Test
public void emphasisTwiceInLine() {
String html = parseToHtml("before _foo bar_ after a _second time_");
assertEquals("<p>before <em>foo bar</em> after a <em>second time</em></p>\n", html);
}
@Test
public void emphasisTwiceInLineNoSpaceSurrounded() {
String html = parseToHtml("before _foo bar_after a _second time_");
assertEquals("<p>before <em>foo bar_after a _second time</em></p>\n", html);
}
@Test
public void emphasisNoWordBoundarySpaceSurrounded() {
String html = parseToHtml("before __foo bar__ after");
assertEquals("<p>before <em>foo bar</em> after</p>\n", html);
}
@Test
public void emphasisNoWordBoundarySpaceSurroundedBegin() {
String html = parseToHtml("__foo bar__ after");
assertEquals("<p><em>foo bar</em> after</p>\n", html);
}
@Test
public void emphasisNoWordBoundarySpaceSurroundedEnd() {
String html = parseToHtml("before __foo bar__");
assertEquals("<p>before <em>foo bar</em></p>\n", html);
}
@Test
public void emphasisNoWordBoundaryNoSpaceSurrounded() {
String html = parseToHtml("before__foo bar__after");
assertEquals("<p>before<em>foo bar</em>after</p>\n", html);
}
@Test
public void emphasisSpecialCharAfter() {
String html = parseToHtml("Try _lorem_{} and _ipsum_[]");
assertEquals("<p>Try <em>lorem</em>{} and <em>ipsum</em>[]</p>\n", html);
}
@Test
public void emphasisSpecialCharBefore() {
String html = parseToHtml("Try ()_lorem_ and <>_ipsum_");
assertEquals("<p>Try ()<em>lorem</em> and <><em>ipsum</em></p>\n", html);
}
@Test
public void escapedEmphasis() {
String html = parseToHtml("\\_foo bar_");
assertEquals("<p>_foo bar_</p>\n", html);
}
@Test
public void escapedEmphasisNoWordBoundary() {
String html = parseToHtml("before\\\\__foo bar__");
assertEquals("<p>before__foo bar__</p>\n", html);
}
@Test
public void plusSpan() {
String html = parseToHtml("+foo bar+");
assertEquals("<p><span>foo bar</span></p>\n", html);
}
@Test
public void plusSpanSurrounded() {
String html = parseToHtml("before +foo bar+ after");
assertEquals("<p>before <span>foo bar</span> after</p>\n", html);
}
@Test
public void plusSpanNoSpaceSurrounded() {
String html = parseToHtml("before+foo bar+after");
assertEquals("<p>before+foo bar+after</p>\n", html);
}
@Test
public void plusSpanTwiceInLine() {
String html = parseToHtml("before +foo bar+ after a +second time+");
assertEquals("<p>before <span>foo bar</span> after a <span>second time</span></p>\n", html);
}
@Test
public void plusSpanTwiceInLineNoSpaceSurrounded() {
String html = parseToHtml("before +foo bar+after a +second time+");
assertEquals("<p>before <span>foo bar+after a +second time</span></p>\n", html);
}
@Test
public void plusSpanNoWordBoundarySpaceSurrounded() {
String html = parseToHtml("before ++foo bar++ after");
assertEquals("<p>before <span>foo bar</span> after</p>\n", html);
}
@Test
public void plusSpanNoWordBoundarySpaceSurroundedBegin() {
String html = parseToHtml("++foo bar++ after");
assertEquals("<p><span>foo bar</span> after</p>\n", html);
}
@Test
public void plusSpanNoWordBoundarySpaceSurroundedEnd() {
String html = parseToHtml("before ++foo bar++");
assertEquals("<p>before <span>foo bar</span></p>\n", html);
}
@Test
public void plusSpanNoWordBoundaryNoSpaceSurrounded() {
String html = parseToHtml("before++foo bar++after");
assertEquals("<p>before<span>foo bar</span>after</p>\n", html);
}
@Test
public void escapedPlusSpan() {
String html = parseToHtml("\\+foo bar+");
assertEquals("<p>+foo bar+</p>\n", html);
}
@Test
public void escapedPlusSpanNoWordBoundary() {
String html = parseToHtml("before\\\\++foo bar++");
assertEquals("<p>before++foo bar++</p>\n", html);
}
@Test
public void codeBacktick() {
String html = parseToHtml("`foo bar`");
assertEquals("<p><code>foo bar</code></p>\n", html);
}
@Test
public void codeBacktickSurrounded() {
String html = parseToHtml("before `foo bar` after");
assertEquals("<p>before <code>foo bar</code> after</p>\n", html);
}
@Test
public void codeBacktickNoSpaceSurrounded() {
String html = parseToHtml("before`foo bar`after");
assertEquals("<p>before`foo bar`after</p>\n", html);
}
@Test
public void codeBacktickTwiceInLine() {
String html = parseToHtml("before `foo bar` after a `second time`");
assertEquals("<p>before <code>foo bar</code> after a <code>second time</code></p>\n", html);
}
@Test
public void codeBacktickTwiceInLineNoSpaceSurrounded() {
String html = parseToHtml("before `foo bar`after a `second time`");
assertEquals("<p>before <code>foo bar`after a `second time</code></p>\n", html);
}
@Test
public void codeBacktickNoWordBoundarySpaceSurrounded() {
String html = parseToHtml("before ``foo bar`` after");
assertEquals("<p>before <code>foo bar</code> after</p>\n", html);
}
@Test
public void codeBacktickNoWordBoundarySpaceSurroundedBegin() {
String html = parseToHtml("``foo bar`` after");
assertEquals("<p><code>foo bar</code> after</p>\n", html);
}
@Test
public void codeBacktickNoWordBoundarySpaceSurroundedEnd() {
String html = parseToHtml("before ``foo bar``");
assertEquals("<p>before <code>foo bar</code></p>\n", html);
}
@Test
public void codeBacktickNoWordBoundaryNoSpaceSurrounded() {
String html = parseToHtml("before``foo bar``after");
assertEquals("<p>before<code>foo bar</code>after</p>\n", html);
}
@Test
public void codeBacktickSpecialCharAfter() {
String html = parseToHtml("For `waitUntil` and `waitWhile`.");
assertEquals("<p>For <code>waitUntil</code> and <code>waitWhile</code>.</p>\n", html);
}
@Test
public void mixed() {
String html = parseToHtml("Here *we* _go_ *again*");
assertEquals("<p>Here <strong>we</strong> <em>go</em> <strong>again</strong></p>\n", html);
}
@Test
public void boldAndItalicWordBoundary() {
String html = parseToHtml("This should be *_italic bold_*");
assertEquals("<p>This should be <strong><em>italic bold</em></strong></p>\n", html);
}
@Test
public void italicAndBoldWordBoundary() {
String html = parseToHtml("This should be _*italic bold*_");
assertEquals("<p>This should be <em><strong>italic bold</strong></em></p>\n", html);
}
@Test
public void codeAndBoldWordBoundary() {
String html = parseToHtml("This should be `*italic bold*`");
assertEquals("<p>This should be <code><strong>italic bold</strong></code></p>\n", html);
}
@Test
public void boldAndCodeWordBoundary() {
String html = parseToHtml("This should be *`italic bold`*");
assertEquals("<p>This should be <strong><code>italic bold</code></strong></p>\n", html);
}
@Test
public void italicAndCodeWordBoundary() {
String html = parseToHtml("This should be _`italic bold`_");
assertEquals("<p>This should be <em><code>italic bold</code></em></p>\n", html);
}
@Test
public void codeAndItalicWordBoundary() {
String html = parseToHtml("This should be `_italic bold_`");
assertEquals("<p>This should be <code><em>italic bold</em></code></p>\n", html);
}
@Test
public void passThroughWordBoundary() {
String html = parseToHtml("This should be +++<strong>bold</strong>+++");
assertEquals("<p>This should be <span><strong>bold</strong></span></p>\n", html);
}
@Test
public void boldAndItalicNoWordBoundary() {
String html = parseToHtml("This should be**_italic bold_**no space");
assertEquals("<p>This should be<strong><em>italic bold</em></strong>no space</p>\n", html);
}
@Test
public void italicAndBoldNoWordBoundary() {
String html = parseToHtml("This should be__*italic bold*__no space");
assertEquals("<p>This should be<em><strong>italic bold</strong></em>no space</p>\n", html);
}
@Test
public void codeAndBoldNoWordBoundary() {
String html = parseToHtml("This should be``*code bold*``no space");
assertEquals("<p>This should be<code><strong>code bold</strong></code>no space</p>\n", html);
}
@Test
public void boldAndCodeNoWordBoundary() {
String html = parseToHtml("This should be**`code bold`**no space");
assertEquals("<p>This should be<strong><code>code bold</code></strong>no space</p>\n", html);
}
@Test
public void italicAndCodeNoWordBoundary() {
String html = parseToHtml("This should be__`italic code`__no space");
assertEquals("<p>This should be<em><code>italic code</code></em>no space</p>\n", html);
}
@Test
public void codeAndItalicNoWordBoundary() {
String html = parseToHtml("This should be``_italic code_``no space");
assertEquals("<p>This should be<code><em>italic code</em></code>no space</p>\n", html);
}
@Test
public void passThroughNoWordBoundary() {
String html = parseToHtml("This should be+++<strong>bold</strong>+++no space");
assertEquals("<p>This should be<span><strong>bold</strong></span>no space</p>\n", html);
}
@Test
public void superscript() {
String html = parseToHtml("Superscript: x^2**a**^ = *y*^_t_^z^*s*^");
assertEquals(
"<p>Superscript: x<sup>2<strong>a</strong></sup> = <strong>y</strong><sup><em>t</em></sup>z<sup><strong>s</strong></sup></p>\n",
html);
}
@Test
public void subscript() {
String html = parseToHtml("Subscript: x~2**a**~ = *y*~_t_~z~*s*~");
assertEquals(
"<p>Subscript: x<sub>2<strong>a</strong></sub> = <strong>y</strong><sub><em>t</em></sub>z<sub><strong>s</strong></sub></p>\n",
html);
}
}