All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fitnesse.responders.editing.TemplateUtilTest Maven / Gradle / Ivy

There is a newer version: 20240707
Show newest version
package fitnesse.responders.editing;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import fitnesse.wiki.WikiPageUtil;
import org.junit.Before;
import org.junit.Test;

import fitnesse.http.MockRequest;
import fitnesse.testutil.FitNesseUtil;
import fitnesse.wiki.mem.InMemoryPage;
import fitnesse.wiki.PathParser;
import fitnesse.wiki.WikiPage;

public class TemplateUtilTest {
  
  private static final String REGULAR_PARENT_PATH = ".LibraryParent.TemplateLibrary.TemplateOne";
  private static final String ROOT_PARENT_PATH = ".TemplateLibrary.TemplateFromRoot";
  
  private WikiPage root;

  @Before public void setUp() throws Exception {
    root = InMemoryPage.makeRoot("root");
    FitNesseUtil.makeTestContext(root);
    MockRequest request = new MockRequest();
    EditResponder responder = new EditResponder();
  }
  
  @Test public void testGetTemplatesFromUncles() {
    WikiPageUtil.addPage(root, PathParser.parse(".TemplateLibrary"), "template library");
    WikiPageUtil.addPage(root, PathParser.parse(".TemplateLibrary.TemplateFromRoot"), "template from root");
    
    WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent"), "library parent");
    WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent.TemplateLibrary"), "template library 2");
    WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent.TemplateLibrary.TemplateOne"), "template 1");
    
    WikiPage childPage = WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent.ChildPage"), "library parent");
    
    List pathList = TemplateUtil.getTemplatesFromUncles(childPage);
    
    assertTrue(pathList.contains(REGULAR_PARENT_PATH));
    assertTrue(pathList.contains(ROOT_PARENT_PATH));
  }
  
  @Test public void testGetTemplatesFromUnclesDoesntTakeTemplatesChildren() {
    WikiPageUtil.addPage(root, PathParser.parse(".TemplateLibrary"), "template library");
    WikiPageUtil.addPage(root, PathParser.parse(".TemplateLibrary.TemplateFromRoot"), "template from root");
    WikiPageUtil.addPage(root, PathParser.parse(".TemplateLibrary.TemplateFromRoot.TemplateFromRootChild"), "template from root child");
    
    WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent"), "library parent");
    WikiPage childPage = WikiPageUtil.addPage(root, PathParser.parse(".LibraryParent.ChildPage"), "library parent");
    
    List pathList = TemplateUtil.getTemplatesFromUncles(childPage);
    
    assertTrue(pathList.contains(ROOT_PARENT_PATH));
    assertFalse(pathList.contains(ROOT_PARENT_PATH + ".TemplateFromRootChild"));
  }

  @Test public void testGetShortTemplateName() {
    String parsed = TemplateUtil.getShortTemplateName(REGULAR_PARENT_PATH);
    assertEquals("LibraryParent._.TemplateOne", parsed);
    
    String parsed2 = TemplateUtil.getShortTemplateName(ROOT_PARENT_PATH);
    assertEquals("._.TemplateFromRoot", parsed2);
  }
  
  @Test public void testGetShortTemplateNames() {
    List pathList = new ArrayList();
    pathList.add(REGULAR_PARENT_PATH);
    pathList.add(ROOT_PARENT_PATH);
    
    Map pathMap = TemplateUtil.getShortTemplateNames(pathList);
    assertEquals("LibraryParent._.TemplateOne", pathMap.get(REGULAR_PARENT_PATH));
    assertEquals("._.TemplateFromRoot", pathMap.get(ROOT_PARENT_PATH));
  }
  

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy