blob: 368f0bea52303f4ef7f55ac240b61ba41b7e498e [file] [log] [blame]
package com.atlassian.uwc.converters.xwiki;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class XmlCleanerTest extends TestCase {
XmlCleaner tester = null;
Logger log = Logger.getLogger(this.getClass());
protected void setUp() throws Exception {
tester = new XmlCleaner();
PropertyConfigurator.configure("log4j.properties");
}
public void testCleanXml() {
String input, expected, actual;
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<web>XWiki</web>\n" +
"<name>WebHome</name>\n" +
"<language></language>\n" +
"<defaultLanguage>en</defaultLanguage>\n" +
"<translation>0</translation>\n" +
"<parent></parent>\n" +
"<creator>XWiki.Admin</creator>\n" +
"<author>XWiki.Admin</author>\n" +
"<customClass></customClass>\n" +
"<contentAuthor>XWiki.Admin</contentAuthor>\n" +
"<creationDate>1107138824000</creationDate>\n" +
"<date>1213882880000</date>\n" +
"<contentUpdateDate>1216844284000</contentUpdateDate>\n" +
"<content>#info(\"Testing 123.\")</content>\n" +
"</xwikidoc>\n" +
"";
expected = "#info(\"Testing 123.\")";
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
}
public void testCleanXmlWithAttachment() {
String input, expected, actual;
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<web>Main</web>\n" +
"<name>Sandbox</name>\n" +
"<language></language>\n" +
"<defaultLanguage>en</defaultLanguage>\n" +
"<translation>1</translation>\n" +
"<parent>Main.WebHome</parent>\n" +
"<creator>XWiki.Admin</creator>\n" +
"<author>XWiki.LauraKolker</author>\n" +
"<customClass></customClass>\n" +
"<contentAuthor>XWiki.LauraKolker</contentAuthor>\n" +
"<creationDate>1217012631000</creationDate>\n" +
"<date>1217362643000</date>\n" +
"<contentUpdateDate>1217362643000</contentUpdateDate>\n" +
"<version>9.1</version>\n" +
"<title></title>\n" +
"<template></template>\n" +
"<defaultTemplate></defaultTemplate>\n" +
"<validationScript></validationScript>\n" +
"<comment></comment>\n" +
"<minorEdit>false</minorEdit>\n" +
"<syntaxId>xwiki/1.0</syntaxId>\n" +
"<attachment>\n" +
"<filename>cow.jpg</filename>\n" +
"<filesize>23096</filesize>\n" +
"<author>XWiki.LauraKolker</author>\n" +
"<date>1217362578000</date>\n" +
"<version>1.1</version>\n" +
"<comment></comment>\n" +
"<content>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</content>\n" +
"</attachment>\n" +
"<object>\n" +
"<class>\n" +
"<name>XWiki.TagClass</name>\n" +
"<customClass></customClass>\n" +
"<customMapping></customMapping>\n" +
"<defaultViewSheet></defaultViewSheet>\n" +
"<defaultEditSheet></defaultEditSheet>\n" +
"<defaultWeb></defaultWeb>\n" +
"<nameField></nameField>\n" +
"<validationScript></validationScript>\n" +
"<tags>\n" +
"<cache>0</cache>\n" +
"<displayType>input</displayType>\n" +
"<multiSelect>1</multiSelect>\n" +
"<name>tags</name>\n" +
"<number>1</number>\n" +
"<prettyName>Tags</prettyName>\n" +
"<relationalStorage>1</relationalStorage>\n" +
"<separator> </separator>\n" +
"<separators> ,|</separators>\n" +
"<size>30</size>\n" +
"<unmodifiable>0</unmodifiable>\n" +
"<values></values>\n" +
"<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>\n" +
"</tags>\n" +
"</class>\n" +
"<name>Main.Sandbox</name>\n" +
"<number>0</number>\n" +
"<className>XWiki.TagClass</className>\n" +
"<property>\n" +
"<tags/>\n" +
"</property>\n" +
"</object>\n" +
"<content>\n" +
"{image:cow.jpg}\n" +
"</content>\n" +
"</xwikidoc>\n" +
"";
expected = "\n{image:cow.jpg}\n";
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
}
public void testCleanWithInternalXml() {
String input, expected, actual;
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<web>XWiki</web>\n" +
"<name>WebHome</name>\n" +
"<language></language>\n" +
"<defaultLanguage>en</defaultLanguage>\n" +
"<translation>0</translation>\n" +
"<parent></parent>\n" +
"<creator>XWiki.Admin</creator>\n" +
"<author>XWiki.Admin</author>\n" +
"<customClass></customClass>\n" +
"<contentAuthor>XWiki.Admin</contentAuthor>\n" +
"<creationDate>1107138824000</creationDate>\n" +
"<date>1213882880000</date>\n" +
"<contentUpdateDate>1216844284000</contentUpdateDate>\n" +
"<content>Before <sub>subscript</sub> After</content>\n" +
"</xwikidoc>\n" +
"";
expected = "Before <sub>subscript</sub> After";
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
}
//Xwiki output entities sometimes
public void testHandleEntities() {
String input, expected, actual;
String entity = "&gt;";
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<content>" +
entity +
"</content>\n" +
"</xwikidoc>\n";
expected = ">";
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
entity = "&lt;";
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<content>" +
entity +
"</content>\n" +
"</xwikidoc>\n";
expected = "<";
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
}
public void testHandleEntitiesWithinEntities() {
String input, expected, actual, entity;
entity = "&amp;nbsp;"; //XXX Yes, Xwiki really outputs this
input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"\n" +
"<xwikidoc>\n" +
"<content>Before" +
entity +
"After</content>\n" +
"</xwikidoc>\n";
expected = "BeforeƊAfter"; //XXX the ' ' space in this string is not a typical space.
actual = tester.cleanXml(input);
assertNotNull(actual);
assertEquals(expected, actual);
}
}