| package com.atlassian.uwc.converters.sharepoint; |
| |
| import junit.framework.TestCase; |
| |
| import org.apache.log4j.Logger; |
| import org.apache.log4j.PropertyConfigurator; |
| import org.dom4j.Attribute; |
| import org.dom4j.Element; |
| import org.dom4j.Node; |
| import org.dom4j.Text; |
| import org.dom4j.tree.DefaultText; |
| |
| import com.atlassian.uwc.converters.sharepoint.ColorConverter.Color; |
| |
| public class ColorConverterTest extends TestCase { |
| |
| ColorConverter tester = null; |
| Logger log = Logger.getLogger(this.getClass()); |
| protected void setUp() throws Exception { |
| tester = new ColorConverter(); |
| PropertyConfigurator.configure("log4j.properties"); |
| } |
| |
| public void testConvertColor() { |
| String input, expected, actual; |
| //color in span |
| input = "<html><span color=\"#ffff00\">Testing</span></html>"; |
| expected = "<html>{color:#ffff00}Testing{color}</html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //simple color in font |
| input = "<font size=\"5\" color=\"#ffff00\">Testing</font>"; |
| expected = "<font size=\"5\">" + |
| "{color:#ffff00}Testing{color}" + |
| "</font>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //bgcolor in div |
| input = "<html><div align=\"left\" dir=\"ltr\" style=\"background-color:rgb(255, 192, 203)\">\n" + |
| "Testing</div></html>"; |
| expected = "<html>{panel:bgColor=#ffc0cb}\n" + |
| "Testing{panel}</html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //bgcolor in span |
| input = "<html><span style=\"background-color:rgb(255, 240, 200)\">\n" + |
| "Testing span</span>\n</html>"; |
| expected = "<html>{panel:bgColor=#fff0c8}\n" + |
| "Testing span{panel}\n</html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //color and background at same time |
| input = "<html>" + |
| "<font size=\"7\" color=\"#8b0000\">" + |
| "\n" + |
| "<span style=\"background-color:rgb(50, 0, 255)\">" + |
| "\n" + |
| "Testing both</span>" + |
| "\n" + |
| "</font>" + |
| "</html>"; |
| expected = "<html>" + |
| "<font size=\"7\">" + |
| "{panel:bgColor=#3200ff}" + |
| "{color:#8b0000}" + |
| "\n" + |
| "\n" + |
| "Testing both" + |
| "{color}" + |
| "{panel}\n" + |
| "</font></html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //same ones back to back |
| input = "<html><span style=\"background-color:rgb(255, 192, 203)\">" + |
| "It\'s my " + |
| "</span>" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "*party *" + |
| "</span>" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "and I\'ll </span>" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "_cry _" + |
| "</span>" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "if I want to.\n" + |
| "</span></html>"; |
| expected = "<html>{panel:bgColor=#ffc0cb}" + |
| "It\'s my *party *and I\'ll _cry _if I want to.\n" + |
| "{panel}</html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| //nesting |
| input = "<html><span style=\"background-color:rgb(255, 192, 203)\">" + |
| "Before " + |
| "<span style=\"background-color:rgb(0, 0, 255)\">" + |
| " middle " + |
| "</span>" + |
| "after.\n" + |
| "</span>" + |
| "</html>"; |
| expected = "<html>{panel:bgColor=#ffc0cb}" + |
| "Before {panel}" + |
| "{panel:bgColor=#0000ff}" + |
| " middle " + |
| "{panel}" + |
| "{panel:bgColor=#ffc0cb}" + |
| "after.\n" + |
| "{panel}</html>"; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| } |
| |
| public void testGetColor() { |
| String input = "<font size=\"7\" color=\"#8b0000\">\nTesting</font>"; |
| Element root = tester.getRootElement(input, false); |
| Attribute att = root.attribute("color"); |
| Color actualC = tester.getColor(att); |
| assertNotNull(actualC); |
| String expected = "#8b0000"; |
| String actual = actualC.getValue(); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testHasStyle() { |
| String input = "<span style=\"color:red;background-color:white;border:0px solid grey\">Testing</span>"; |
| Element root = tester.getRootElement(input, false); |
| Attribute att = root.attribute("style"); |
| assertTrue(tester.hasStyleColor(att)); |
| assertTrue(tester.hasStyleBackground(att)); |
| |
| input = "<span style=\"background-color:white;border:0px solid grey\">Testing</span>"; |
| root = tester.getRootElement(input, false); |
| att = root.attribute("style"); |
| assertFalse(tester.hasStyleColor(att)); |
| assertTrue(tester.hasStyleBackground(att)); |
| |
| input = "<span style=\"color:red;border:0px solid grey\">Testing</span>"; |
| root = tester.getRootElement(input, false); |
| att = root.attribute("style"); |
| assertTrue(tester.hasStyleColor(att)); |
| assertFalse(tester.hasStyleBackground(att)); |
| |
| input = "<span style=\"border:0px solid grey\">Testing</span>"; |
| root = tester.getRootElement(input, false); |
| att = root.attribute("style"); |
| assertFalse(tester.hasStyleColor(att)); |
| assertFalse(tester.hasStyleBackground(att)); |
| |
| |
| } |
| |
| public void testGetStyleColor() { |
| String input = "<span style=\"" + |
| "color:red;" + |
| "background-color:#00ffff;" + |
| "border:0px solid grey\">Testing</span>"; |
| Element root = tester.getRootElement(input, false); |
| Attribute att = root.attribute("style"); |
| ColorConverter.Color expected = (new ColorConverter()). new Color("red"); |
| ColorConverter.Color actual = tester.getStyleColor(att); |
| assertNotNull(actual); |
| assertTrue(expected.equals(actual)); |
| |
| ColorConverter.Background expectedBG = (new ColorConverter()). new Background("#00ffff"); |
| ColorConverter.Background actualBG = tester.getStyleBackground(att); |
| assertNotNull(actualBG); |
| assertTrue(expectedBG.equals(actualBG)); |
| |
| input = "<span style=\"background-color:rgb(0,255,0);" + |
| "border:0px solid grey\">Testing</span>"; |
| root = tester.getRootElement(input, false); |
| att = root.attribute("style"); |
| expectedBG = (new ColorConverter()). new Background("rgb(0,255,0)"); |
| actualBG = tester.getStyleBackground(att); |
| assertNotNull(actualBG); |
| assertTrue(expectedBG.equals(actualBG)); |
| |
| } |
| |
| public void testShouldSaveElement() { |
| String input = "font"; |
| assertTrue(tester.shouldSaveElement(input)); |
| input = "a"; |
| assertFalse(tester.shouldSaveElement(input)); |
| input = "span"; |
| assertFalse(tester.shouldSaveElement(input)); |
| input = "div"; |
| assertFalse(tester.shouldSaveElement(input)); |
| } |
| |
| public void testTransformContentAddChildTextNodes() { |
| String input = "<font size=\"5\" color=\"white\">Testing</font>"; |
| Element root = tester.getRootElement(input, false); |
| ColorConverter.Color color = new ColorConverter().new Color("white"); |
| ColorConverter.Background bg = null; |
| Element el = root; |
| tester.transformContentAddChildTextNodes(color, bg, el); |
| String expected = |
| "<font size=\"5\" color=\"white\">" + |
| "{color:white}" + |
| "Testing" + |
| "{color}" + |
| "</font>"; |
| String actual = tester.toString(root); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "<b><font size=\"5\" color=\"white\">Testing <span>123</span></font></b>"; |
| root = tester.getRootElement(input, false); |
| color = new ColorConverter().new Color("white"); |
| bg = null; |
| el = root.element("font"); |
| tester.transformContentAddChildTextNodes(color, bg, el); |
| expected = "<b>" + |
| "<font size=\"5\" color=\"white\">" + |
| "{color:white}" + |
| "Testing <span>123</span>" + |
| "{color}" + |
| "</font></b>" + |
| ""; |
| actual = tester.toString(root); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testTransformContentReplaceWithText() { |
| String input = "<html><span color=\"white\">Testing</span></html>"; |
| Element root = tester.getRootElement(input, false); |
| ColorConverter.Color color = new ColorConverter().new Color("white"); |
| ColorConverter.Background bg = null; |
| Element el = root.element("span"); |
| tester.transformContentReplaceWithText(color, bg, el); |
| String expected = "<html>" + |
| "{color:white}" + |
| "Testing" + |
| "{color}" + |
| "</html>"; |
| String actual = tester.toString(root); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "<b><span style=\"background-color:black\">Testing <span>123</span></span></b>"; |
| root = tester.getRootElement(input, false); |
| color = null; |
| bg = new ColorConverter().new Background("black"); |
| el = root.element("span"); |
| tester.transformContentReplaceWithText(color, bg, el); |
| expected = "<b>" + |
| "{panel:bgColor=black}" + |
| "Testing <span>123</span>" + |
| "{panel}" + |
| "</b>" + |
| ""; |
| actual = tester.toString(root); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testIsRgb() { |
| String input; |
| |
| input = "red"; |
| assertFalse(ColorConverter.isRGB(input)); |
| |
| input = "#ff0000"; |
| assertFalse(ColorConverter.isRGB(input)); |
| |
| input = "rgb(255, 0, 255)"; |
| assertTrue(ColorConverter.isRGB(input)); |
| } |
| |
| public void testRgb2Hex() { |
| String input, expected, actual; |
| input = "rgb(255, 0, 255)"; |
| expected = "#ff00ff"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(255,255, 255)"; |
| expected = "#ffffff"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(0,0,0)"; |
| expected = "#000000"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(50,0,255)"; |
| expected = "#3200ff"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(1,2,3)"; |
| expected = "#010203"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(012,123,234)"; |
| expected = "#0c7bea"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "rgb(255, 192, 203)"; |
| expected = "#ffc0cb"; |
| actual = ColorConverter.rgb2Hex(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| } |
| |
| public void testSwitchColorAndBackground() { |
| String input = "<html><span>Testing</span></html>"; |
| Element root = tester.getRootElement(input, false); |
| Element span = root.element("span"); |
| span.content().add(0,new DefaultText("{color:white}")); |
| span.content().add(1,new DefaultText("{panel:bgColor=black}")); |
| span.content().add(new DefaultText("{panel}")); |
| span.content().add(new DefaultText("{color}")); |
| |
| tester.switchColorAndBackground(span); |
| |
| assertNotNull(span); |
| assertTrue(span.content().size() == 5); |
| Text act0 = (Text) span.content().get(0); |
| Text act1 = (Text) span.content().get(1); |
| Text act2 = (Text) span.content().get(2); |
| Text act3 = (Text) span.content().get(3); |
| Text act4 = (Text) span.content().get(4); |
| assertNotNull(act0); |
| assertNotNull(act1); |
| assertNotNull(act2); |
| assertNotNull(act3); |
| assertNotNull(act4); |
| assertEquals("{panel:bgColor=black}", act0.getText()); |
| assertEquals("{color:white}", act1.getText()); |
| assertEquals("Testing", act2.getText()); |
| assertEquals("{color}", act3.getText()); |
| assertEquals("{panel}", act4.getText()); |
| } |
| |
| public void testGetPanelColor() { |
| String input = "{panel:bgColor=#ff00ee}Testing"; |
| String expected = "#ff00ee"; |
| String actual = tester.getPanelColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "{panel}"; |
| actual = tester.getPanelColor(input); |
| assertNull(actual); |
| |
| input = "something else"; |
| actual = tester.getPanelColor(input); |
| assertNull(actual); |
| |
| input = "something else {panel:bgColor=red}"; |
| expected = "red"; |
| actual = tester.getPanelColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| } |
| |
| public void testSample4() { |
| String input = "<html>\n" + |
| "\n" + |
| "<font size=\"7\" color=\"#8b0000\">\n" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">\n" + |
| "It\'s my </span>\n" + |
| "*party *\n" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">\n" + |
| "and I\'ll </span>\n" + |
| "_cry _\n" + |
| "<span style=\"background-color:rgb(255, 192, 203)\">\n" + |
| "if I want to.</span>\n" + |
| "</font>\n" + |
| "\n" + |
| "<ul>\n" + |
| "<li>\n" + |
| "<font size=\"5\" color=\"#8b0000\">\n" + |
| "Cry if I want to</font>\n" + |
| "</li>\n" + |
| "<li>\n" + |
| "<font size=\"7\" color=\"#8b0000\">\n" + |
| "Cry <font size=\"4\">\n" + |
| "if I want to</font>\n" + |
| "</font>\n" + |
| "</li>\n" + |
| "</ul>\n" + |
| "<blockquote>\n" + |
| "<font size=\"7\" color=\"#8b0000\">\n" + |
| "<font size=\"4\" face=\"Times New Roman\">\n" + |
| "Formatting oddities of SharePoint have not changed!</font>\n" + |
| "\n" + |
| "</font>\n" + |
| "</blockquote>\n" + |
| "<font size=\"7\" color=\"#8b0000\">\n" + |
| "But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\" color=\"#000000\">\n" + |
| "Let\'s create a [child page|mytestwiki:child page]\n" + |
| ".</font>\n" + |
| "\n" + |
| "</font>\n" + |
| "\n" + |
| "</html>"; |
| String expected = "<html>\n" + |
| "\n" + |
| "<font size=\"7\">" + |
| "{panel:bgColor=#ffc0cb}" + |
| "{color:#8b0000}" + |
| "\n\n" + |
| "It\'s my \n" + |
| "*party *\n" + |
| "\n" + |
| "and I\'ll \n" + |
| "_cry _\n" + |
| "\n" + |
| "if I want to." + |
| "{color}" + |
| "{panel}\n" + |
| "</font>\n" + |
| "\n" + |
| "<ul>\n" + |
| "<li>\n" + |
| "<font size=\"5\">{color:#8b0000}\n" + |
| "Cry if I want to{color}</font>\n" + |
| "</li>\n" + |
| "<li>\n" + |
| "<font size=\"7\">{color:#8b0000}\n" + |
| "Cry <font size=\"4\">\n" + |
| "if I want to</font>\n" + |
| "{color}</font>\n" + |
| "</li>\n" + |
| "</ul>\n" + |
| "<blockquote>\n" + |
| "<font size=\"7\">{color:#8b0000}\n" + |
| "<font size=\"4\" face=\"Times New Roman\">\n" + |
| "Formatting oddities of SharePoint have not changed!</font>\n" + |
| "\n" + |
| "{color}</font>\n" + |
| "</blockquote>\n" + |
| "<font size=\"7\">{color:#8b0000}\n" + |
| "But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\">{color:#000000}\n" + |
| "Let\'s create a [child page|mytestwiki:child page]\n" + |
| ".{color}</font>\n" + |
| "\n" + |
| "{color}</font>\n" + |
| "\n" + |
| "</html>"; |
| String actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testConvertColor2() { |
| String input, expected, actual; |
| input = "<html><font size=\"7\" color=\"#8b0000\"><span style=" + |
| "\"background-color:rgb(255, 192, 203)\">" + |
| "It\'s my</span> *party* " + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "and I\'ll</span> _cry_ " + |
| "<span style=\"background-color:rgb(255, 192, 203)\">" + |
| "if I want to.</span>\n" + |
| "</font><ul><li><font size=\"5\" color=\"#8b0000\">" + |
| "Cry if I want to</font></li><li><font size=\"7\" color=\"#8b0000\">" + |
| "Cry <font size=\"4\">if I want to</font></font></li><li/></ul>" + |
| "<blockquote><font size=\"7\" color=\"#8b0000\"><font size=\"4\" " + |
| "face=\"Times New Roman\">Formatting oddities of SharePoint have not changed!</font>\n" + |
| "\n" + |
| "</font></blockquote><font size=\"7\" color=\"#8b0000\">But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\" color=\"#000000\">Let\'s create a [child page|mytestwiki:child page].</font>\n" + |
| "\n" + |
| "</font></html>\n" + |
| ""; |
| expected = "<html>" + |
| "<font size=\"7\">" + |
| "{panel:bgColor=#ffc0cb}{color:#8b0000}" + |
| "It\'s my *party* and I\'ll _cry_ if I want to." + |
| "{color}{panel}\n" + |
| "</font>" + |
| "<ul>" + |
| "<li><font size=\"5\">" + |
| "{color:#8b0000}Cry if I want to{color}" + |
| "</font></li>" + |
| "<li><font size=\"7\">" + |
| "{color:#8b0000}Cry <font size=\"4\">if I want to</font>{color}" + |
| "</font></li>" + |
| "<li/>" + |
| "</ul>" + |
| "<blockquote>" + |
| "<font size=\"7\">" + |
| "{color:#8b0000}" + |
| "<font size=\"4\" face=\"Times New Roman\">" + |
| "Formatting oddities of SharePoint have not changed!" + |
| "</font>\n" + |
| "\n" + |
| "{color}" + |
| "</font>" + |
| "</blockquote>" + |
| "<font size=\"7\">" + |
| "{color:#8b0000}But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\">" + |
| "{color:#000000}Let\'s create a [child page|mytestwiki:child page]." + |
| "{color}" + |
| "</font>\n" + |
| "\n" + |
| "{color}" + |
| "</font></html>" + |
| ""; |
| actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testConvertColorHeaderList() { |
| String input, expected, actual; |
| QuoteWSConverter quoter = new QuoteWSConverter(); |
| HeaderConverter header = new HeaderConverter(); |
| ListConverter lister = new ListConverter(); |
| |
| input = "<html>" + |
| "<font size=\"7\" color=\"#8b0000\">But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\" color=\"#000000\">Let\'s create a [child page|mytestwiki:child page].</font>\n" + |
| "\n" + |
| "</font></html>\n" + |
| ""; |
| expected = "<html>" +"{color:#8b0000}" + |
| "But even so the editor is not bad.\n" + |
| "\n" + |
| "{color}\n" + |
| "h3. {color:#000000}Let\'s create a [child page|mytestwiki:child page].{color}\n" + |
| "{color:#8b0000}\n" + |
| "\n" + |
| "{color}</html>"; |
| actual = tester.convertColor(input); |
| actual = quoter.convertQuoteWS(actual); |
| actual = header.convertHeaders(actual); |
| actual = quoter.convertQuoteWS(actual); |
| |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "<html><font size=\"7\" color=\"#8b0000\"><span style=\"background-color:rgb(255, 192, 203)\">It\'s my</span> *party* <span style=\"background-color:rgb(255, 192, 203)\">and I\'ll</span> _cry_ <span style=\"background-color:rgb(255, 192, 203)\">if I want to.</span>\n" + |
| "</font><ul><li><font size=\"5\" color=\"#8b0000\">Cry if I want to</font></li><li><font size=\"7\" color=\"#8b0000\">Cry <font size=\"4\">if I want to</font></font></li><li/></ul>{quote}<font size=\"7\" color=\"#8b0000\"><font size=\"4\" face=\"Times New Roman\">Formatting oddities of SharePoint have not changed!</font>\n" + |
| "\n" + |
| "</font>{quote}<font size=\"7\" color=\"#8b0000\">But even so the editor is not bad.\n" + |
| "\n" + |
| "<font size=\"5\" color=\"#000000\">Let\'s create a [child page|mytestwiki:child page].</font>\n" + |
| "\n" + |
| "</font></html>\n" + |
| ""; |
| expected = "<html>{panel:bgColor=#ffc0cb}{color:#8b0000}It\'s my *party* and I\'ll _cry_ if I want to.{color}{panel}\n" + |
| "\n" + |
| "* h3. {color:#8b0000}Cry if I want to{color}\n" + |
| "* {color:#8b0000}Cry if I want to{color}\n" + |
| "\n" + |
| "\n" + |
| "{quote}\n" + |
| "h4. {color:#8b0000}Formatting oddities of SharePoint have not changed!" + |
| "\n" + |
| "\n" + |
| "{color}\n" + |
| "{quote}\n" + |
| "{color:#8b0000}" + |
| "But even so the editor is not bad.\n" + |
| "\n" + |
| "{color}\n" + |
| "h3. {color:#000000}Let\'s create a [child page|mytestwiki:child page].{color}\n" + |
| "{color:#8b0000}\n" + |
| "\n" + |
| "{color}</html>"; |
| |
| actual = tester.convertColor(input); |
| actual = quoter.convertQuoteWS(actual); |
| actual = header.convertHeaders(actual); |
| actual = lister.convertLists(actual); |
| actual = quoter.convertQuoteWS(actual); |
| |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "<html>\n" + |
| "<span style=\"color:black\"><font face=\"Arial\" size=\"2\">xxxxxx \"xxxxxx\" xxxxxx</font></span>\n" + |
| "\n" + |
| "<span style=\"color:black\"><font face=\"Arial\" size=\"2\">xxxxxx</font></span>\n" + |
| "\n" + |
| "</html>"; |
| expected = "<html>\n" + |
| "h6. {color:black}xxxxxx \"xxxxxx\" xxxxxx{color}\n" + |
| "\n" + |
| "h6. {color:black}xxxxxx{color}\n" + |
| "\n" + |
| "</html>"; |
| actual = tester.convertColor(input); |
| actual = quoter.convertQuoteWS(actual); |
| actual = header.convertHeaders(actual); |
| actual = quoter.convertQuoteWS(actual); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testDisallowNestingColor() { |
| String input = "<html>Before\n" + |
| "{color:red}Red\n" + |
| "\n" + |
| "Mid\n" + |
| "{color:blue}Blue{color}\n" + |
| "\n" + |
| "After\n" + |
| "{color}</html>"; |
| String expected = "<html>Before\n" + |
| "{color:red}Red\n" + |
| "\n" + |
| "Mid\n" + |
| "{color}{color:blue}Blue{color}{color:red}\n" + |
| "\n" + |
| "After\n" + |
| "{color}</html>"; |
| Element root = tester.getRootElement(input, false); |
| tester.disallowNestingColor(root); |
| String actual = root.asXML(); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testDontRemoveTableTags() { |
| String input = "<html>\n" + |
| "<table><tbody>" + |
| "<tr>" + |
| "<td rowspan=\"1\" colspan=\"1\">*r1c1*</td>" + |
| "<td rowspan=\"1\" colspan=\"1\"><font color=\"#00ff00\">r1c2</font></td>" + |
| "</tr>" + |
| "<tr>" + |
| "<td colspan=\"1\" style=\"background-color:rgb(255, 215, 0)\" rowspan=\"1\">ær2c1</td>" + |
| "<td colspan=\"1\" rowspan=\"1\"><font size=\"6\">r2c2</font>æ</td>" + |
| "</tr>" + |
| "</tbody></table>\n" + |
| "</html>"; |
| String expected = "<html>\n" + |
| "<table><tbody>" + |
| "<tr>" + |
| "<td rowspan=\"1\" colspan=\"1\">*r1c1*</td>" + |
| "<td rowspan=\"1\" colspan=\"1\"><font>{color:#00ff00}r1c2{color}</font></td>" + |
| "</tr>" + |
| "<tr>" + |
| "<td colspan=\"1\" rowspan=\"1\">" + |
| "{panel:bgColor=#ffd700}ær2c1{panel}</td>" + |
| "<td colspan=\"1\" rowspan=\"1\"><font size=\"6\">r2c2</font>æ</td>" + |
| "</tr>" + |
| "</tbody></table>\n" + |
| "</html>"; |
| String actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testComplexListItems() { |
| String input = "<html>\n" + |
| "<ul type=\"disc\">" + |
| "<li class=\"MsoNormal\" style=\"margin:0in 0in 0pt;color:black;tab-stops:list .5in\">" + |
| "<font face=\"Arial\" size=\"2\">xxxxxx</font>" + |
| "</li>" + |
| "</ul>\n" + |
| "</html>"; |
| String expected = "<html>\n" + |
| "<ul type=\"disc\">" + |
| "<li class=\"MsoNormal\">" + |
| "{color:black}<font face=\"Arial\" size=\"2\">xxxxxx</font>{color}" + |
| "</li>" + |
| "</ul>\n" + |
| "</html>"; |
| String actual = tester.convertColor(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| } |