| package com.atlassian.uwc.converters.mediawiki; |
| |
| import java.io.File; |
| |
| import junit.framework.TestCase; |
| |
| import org.apache.log4j.Logger; |
| import org.apache.log4j.PropertyConfigurator; |
| |
| import com.atlassian.uwc.ui.Page; |
| |
| public class ImageConverterTest extends TestCase { |
| |
| ImageConverter tester = null; |
| Logger log = Logger.getLogger(this.getClass()); |
| protected void setUp() throws Exception { |
| PropertyConfigurator.configure("log4j.properties"); |
| tester = new ImageConverter(); |
| } |
| |
| public void testExistingImageConversion() { |
| String input = "[[Image:Wiki.png]]"; |
| String expected = "!Wiki.png!"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "[[Image:Wiki.png|thumb]]"; |
| expected = "!Wiki.png|thumbnail!"; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testHandleImageProperty() { |
| //thumb |
| String input = "Wiki.png|thumb"; |
| String expected = "Wiki.png|thumbnail"; |
| String actual = tester.handleImageProperty(input); |
| assertEquals(expected, actual); |
| |
| //none |
| input = "Wiki.png"; |
| expected = "Wiki.png"; |
| actual = tester.handleImageProperty(input); |
| assertEquals(expected, actual); |
| |
| //align |
| input = "Wiki.png|right"; |
| expected = "Wiki.png|align=right"; |
| actual = tester.handleImageProperty(input); |
| assertEquals(expected, actual); |
| |
| //thumb and align |
| input = "Wiki.png|center|thumb"; |
| expected = "Wiki.png|thumbnail,align=center"; |
| actual = tester.handleImageProperty(input); |
| assertEquals(expected, actual); |
| } |
| public void testImageConvertWithContext() { |
| String input = |
| "uwc-101: Mediawiki image conversion syntax needs to be case insensitive\n" + |
| "[[image:abcd.png|thumb]]\n" +"[[Image:abcd.png]]\n" + |
| "After\n"; |
| String expected = "uwc-101: Mediawiki image conversion syntax needs to be case insensitive\n" + |
| "!abcd.png|thumbnail!\n" + |
| "!abcd.png!\n" + |
| "After\n"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| Page page = new Page(new File("")); |
| page.setOriginalText(input); |
| tester.convert(page); |
| actual = page.getConvertedText(); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "Thumbnail image\n" + |
| "\n" + |
| "[[Image:Wiki.png|thumb]]\n" + |
| "\n" + |
| "After\n" + |
| "\n"; |
| expected = "Thumbnail image\n" + |
| "\n" + |
| "!Wiki.png|thumbnail!\n" + |
| "\n" + |
| "After\n" + |
| "\n"; |
| page.setOriginalText(input); |
| tester.convert(page); |
| actual = page.getConvertedText(); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| } |
| |
| public void testAlignmentPreservation() { |
| String input = "[[Image:Wiki.png|right]]"; |
| String expected = "!Wiki.png|align=right!"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testAlignmentPreservationWithPropsMethod() { |
| String input = "Wiki.png|right"; |
| String expected = "Wiki.png|align=right"; |
| String actual = tester.handleImageProperty(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "Wiki.png|right|thumb"; |
| expected = "Wiki.png|thumbnail,align=right"; |
| actual = tester.handleImageProperty(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testDontFailOnColon() { |
| // This is a way to link to the description page. Something Confluence doesn't have. |
| String input = "[[:Image:Wiki.png]]"; |
| String expected = "!Wiki.png!"; //FIXME Probably should be [^Wiki.png] |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testAltText() { |
| //We don't have anywhere to put alt text, so just lose it |
| String input = "[[Image:Wiki.png|jigsaw globe]]"; |
| String expected = "!Wiki.png!"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testResize() { |
| String input = "[[Image:Wiki.png|30 px]]"; |
| String expected = "!Wiki.png|width=30px!"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "[[Image:Wiki.png|130px]]"; |
| expected = "!Wiki.png|width=130px!"; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "[[Image:example.png|200x200px]]"; |
| expected = "!example.png|width=200px,height=200px!"; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "[[Image:example.jpg|frame|250px]]"; |
| expected = "!example.jpg|align=right,width=250px!"; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| input = "[[Image:example.jpg|150px|frame]]"; |
| expected = "!example.jpg|align=right,width=150px!"; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testFrame() { |
| //treat frame as align right for now |
| String input = "[[Image:Wiki.png|frame|Wikipedia Encyclopedia]]"; |
| String expected = "!Wiki.png|align=right!"; |
| String actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testCreateConfluenceImage() { |
| String img = "Wiki.png"; |
| boolean thumbnail = false; |
| ImageConverter.Alignment align = ImageConverter.Alignment.LEFT; |
| String expected = "Wiki.png"; |
| String actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumbnail = true; |
| expected = "Wiki.png|thumbnail"; |
| actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumbnail = false; |
| align = ImageConverter.Alignment.CENTER; |
| expected = "Wiki.png|align=center"; |
| actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumbnail = true; |
| expected = "Wiki.png|thumbnail,align=center"; |
| actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumbnail=false; |
| align = ImageConverter.Alignment.RIGHT; |
| expected = "Wiki.png|align=right"; |
| actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumbnail=true; |
| expected = "Wiki.png|thumbnail,align=right"; |
| actual = tester.createConfluenceImage(img, thumbnail, align); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| |
| } |
| |
| public void testHandleThumb() { |
| boolean thumb = true; |
| String expected = "|thumbnail"; |
| String actual = tester.handleThumbnail(thumb); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| thumb = false; |
| expected = ""; |
| actual = tester.handleThumbnail(thumb); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testHandleAlign() { |
| ImageConverter.Alignment align = ImageConverter.Alignment.LEFT; |
| String expected = ""; |
| String actual = tester.handleAlignment(align, "|"); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| align = ImageConverter.Alignment.CENTER; |
| expected = "|align=center"; |
| actual = tester.handleAlignment(align, "|"); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| |
| align = ImageConverter.Alignment.RIGHT; |
| expected = "|align=right"; |
| actual = tester.handleAlignment(align, "|"); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| |
| public void testImagesInTables() { |
| String input, expected, actual; |
| input = "|| foo || bar ||\n" + |
| "| [[Image:abc-a2.png | 200px]] | abc (foo) |\n" + |
| "| [[Image:abc-a2.png | 200px]] | abc (foo) |\n" + |
| "| [[Image:abc-a2.png | 200px]] | abc (foo) |\n" + |
| "| [[Image:abc-a2.png | 200px]] | abc (foo) |\n" + |
| ""; |
| expected = "|| foo || bar ||\n" + |
| "| !abc-a2.png|width=200px! | abc (foo) |\n" + |
| "| !abc-a2.png|width=200px! | abc (foo) |\n" + |
| "| !abc-a2.png|width=200px! | abc (foo) |\n" + |
| "| !abc-a2.png|width=200px! | abc (foo) |\n" + |
| ""; |
| actual = tester.convertImages(input); |
| assertNotNull(actual); |
| assertEquals(expected, actual); |
| } |
| } |