/*=============================================================================#
# Copyright (c) 2015-2016 David Green 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:
# David Green - initial API and implementation in Mylyn
# Stephan Wahlbrink (WalWare.de)
#=============================================================================*/
package de.walware.docmlet.wikitext.internal.commonmark.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import de.walware.docmlet.wikitext.internal.commonmark.core.ProcessingContext.UriWithTitle;
public class ProcessingContextTest {
@Rule
public final ExpectedException thrown = ExpectedException.none();
public ProcessingContextTest() {
}
@Test
public void empty() {
ProcessingContext context = CommonmarkAsserts.newContext();
assertNotNull(context);
assertFalse(context.hasNamedUri());
}
@Test
public void referenceDefinition() {
ProcessingContext context = CommonmarkAsserts.newContext();
context.addUriDefinition(context.normalizeLabel("onE"), "/uri", "a title");
assertNotNull(context);
assertTrue(context.hasNamedUri());
assertNotNull(context.getNamedUri("one"));
assertNotNull(context.getNamedUri("One"));
UriWithTitle link = context.getNamedUri("ONE");
// assertEquals("onE", link.getName());
assertEquals("/uri", link.getUri());
assertEquals("a title", link.getTitle());
assertNull(context.getNamedUri("Unknown"));
}
public void referenceDefinitionEmptyName() {
ProcessingContext context = CommonmarkAsserts.newContext();
context.addUriDefinition("", "one", "two");
assertFalse(context.hasNamedUri());
}
@Test
public void referenceDefinitionDuplicate() {
ProcessingContext context = CommonmarkAsserts.newContext();
context.addUriDefinition("a", "/uri", "a title");
context.addUriDefinition("a", "/uri2", "a title2");
UriWithTitle uriWithTitle = context.getNamedUri("a");
assertEquals("/uri", uriWithTitle.getUri());
}
@Test
public void generateHeadingId() {
ProcessingContext processingContext = CommonmarkAsserts.newContext();
processingContext.setMode(ProcessingContext.EMIT_DOCUMENT);
assertEquals("a", processingContext.generateHeadingId(1, "a"));
assertEquals("a2", processingContext.generateHeadingId(1, "a"));
assertEquals("a3", processingContext.generateHeadingId(2, "a"));
assertEquals("h1-3", processingContext.generateHeadingId(1, null));
assertEquals("h1-4", processingContext.generateHeadingId(1, ""));
}
}