PageRenderTime 43ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/src/com/atlassian/uwc/converters/mediawiki/AttachmentConverterTest.java

https://bitbucket.org/bowmanb1/universal-wiki-converter
Java | 298 lines | 266 code | 30 blank | 2 comment | 10 complexity | 256da165915bff778320dbf735f99df5 MD5 | raw file
  1. package com.atlassian.uwc.converters.mediawiki;
  2. import java.io.File;
  3. import java.util.Set;
  4. import java.util.TreeSet;
  5. import java.util.Vector;
  6. import junit.framework.TestCase;
  7. import org.apache.log4j.Logger;
  8. import org.apache.log4j.PropertyConfigurator;
  9. import com.atlassian.uwc.ui.Page;
  10. public class AttachmentConverterTest extends TestCase {
  11. AttachmentConverter tester = null;
  12. Logger log = Logger.getLogger(this.getClass());
  13. protected void setUp() throws Exception {
  14. PropertyConfigurator.configure("log4j.properties");
  15. tester = new AttachmentConverter();
  16. }
  17. public void testFoundFileBasic() {
  18. String filename = "page.txt";
  19. Vector<String> files = new Vector<String>();
  20. files.add(filename);
  21. boolean expected = true;
  22. boolean actual = tester.foundFile(files, filename);
  23. assertEquals(expected, actual);
  24. String otherFilename = "page2.txt";
  25. expected = false;
  26. actual = tester.foundFile(files, otherFilename);
  27. assertEquals(expected, actual);
  28. }
  29. public void testFoundFileCaseInsensitive() {
  30. String filename = "page.txt";
  31. String caseFilename = "Page.txt";
  32. Vector<String> files = new Vector<String>();
  33. files.add(filename);
  34. boolean expected = true;
  35. boolean actual = tester.foundFile(files, caseFilename);
  36. assertEquals(expected, actual);
  37. }
  38. public void testFoundFileMedia() {
  39. Page page = new Page(new File(""));
  40. String input = "[^Wiki.png]";
  41. page.setOriginalText(input);
  42. Vector<String> actual = tester.getSoughtAttachmentNames(page);
  43. assertNotNull(actual);
  44. assertEquals(1, actual.size());
  45. assertEquals("Wiki.png", actual.get(0));
  46. input = "[alias|^Wiki.png]";
  47. page.setOriginalText(input);
  48. actual = tester.getSoughtAttachmentNames(page);
  49. assertNotNull(actual);
  50. assertEquals(1, actual.size());
  51. assertEquals("Wiki.png", actual.get(0));
  52. }
  53. public void testGetNamesFromLinkSyntax() {
  54. String input = "[^Wiki.png]";
  55. Set<String> set = new TreeSet<String>();
  56. Set<String> actualSet = tester.getNamesFromLinkSyntax(set, input);
  57. assertNotNull(actualSet);
  58. assertEquals(1, actualSet.size());
  59. String actualName = null;
  60. for (String name : actualSet) {
  61. actualName = name;
  62. }
  63. assertEquals("Wiki.png", actualName);
  64. input = "[alias|^Wiki.png]";
  65. actualSet = new TreeSet<String>();
  66. actualSet = tester.getNamesFromLinkSyntax(set, input);
  67. assertNotNull(actualSet);
  68. assertEquals(1, actualSet.size());
  69. actualName = null;
  70. for (String name : actualSet) {
  71. actualName = name;
  72. }
  73. assertEquals("Wiki.png", actualName);
  74. }
  75. public void testAttachingMedia() {
  76. String input = "[^Wiki.png]";
  77. Page page = new Page(new File(""));
  78. page.setOriginalText(input);
  79. String attachmentDirectory = "/Users/laura/Code/Workspace/mediawiki/images";
  80. tester.addAttachmentsToPage(page, attachmentDirectory);
  81. Set<File> attachments = page.getAttachments();
  82. assertNotNull(attachments);
  83. assertEquals(1, attachments.size());
  84. File file = null;
  85. for (File attachment : attachments) {
  86. file = attachment;
  87. }
  88. assertNotNull(file);
  89. assertTrue(file.exists());
  90. assertTrue(file.isFile());
  91. assertEquals("Wiki.png", file.getName());
  92. }
  93. public void testAttachingImage() {
  94. String input = "!Wiki.png!";
  95. Page page = new Page(new File(""));
  96. page.setOriginalText(input);
  97. String attachmentDirectory = "/Users/laura/Code/Workspace/mediawiki/images";
  98. tester.addAttachmentsToPage(page, attachmentDirectory);
  99. Set<File> attachments = page.getAttachments();
  100. assertNotNull(attachments);
  101. assertEquals(1, attachments.size());
  102. File file = null;
  103. for (File attachment : attachments) {
  104. file = attachment;
  105. }
  106. assertNotNull(file);
  107. assertTrue(file.exists());
  108. assertTrue(file.isFile());
  109. assertEquals("Wiki.png", file.getName());
  110. }
  111. public void testAttachingImageWithContext() {
  112. String input = "uwc-100: attachment converter for mediawiki images is case sensitive when the syntax isn't\n" +
  113. "!Wiki.png!\n" +
  114. "!wiki.png!\n" +
  115. "\n" +
  116. "uwc-101: Mediawiki image conversion syntax needs to be case insensitive\n" +
  117. "!Wiki.png!\n" +
  118. "!Wiki.png!\n";
  119. Page page = new Page(new File(""));
  120. page.setOriginalText(input);
  121. String attachmentDirectory = "/Users/laura/Code/Workspace/mediawiki/images";
  122. tester.addAttachmentsToPage(page, attachmentDirectory);
  123. Set<File> attachments = page.getAttachments();
  124. assertNotNull(attachments);
  125. assertEquals(1, attachments.size());
  126. File file = null;
  127. for (File attachment : attachments) {
  128. file = attachment;
  129. }
  130. assertNotNull(file);
  131. assertTrue(file.exists());
  132. assertTrue(file.isFile());
  133. assertEquals("Wiki.png", file.getName());
  134. }
  135. public void testGettingAttachmentPathsWithAliases() {
  136. String input = "uwc-100: attachment converter for mediawiki images is case sensitive when the syntax isn't\n" +
  137. "!Wiki.png!\n" +
  138. "!wiki.png!\n" +
  139. "\n" +
  140. "uwc-101: Mediawiki image conversion syntax needs to be case insensitive\n" +
  141. "!Wiki.png!\n" +
  142. "!Wiki.png|thumbnail!\n";
  143. Page page = new Page(new File(""));
  144. page.setOriginalText(input);
  145. Vector actual = tester.getSoughtAttachmentNames(page);
  146. //can be two here, as only the one with the correct
  147. //caps on the filesystem will get uploaded
  148. assertEquals(2, actual.size());
  149. assertNotNull(actual);
  150. assertEquals("Wiki.png", actual.get(0));
  151. }
  152. public void testAttachingImage_WhitespacevsUnderscore() {
  153. String input = "!moo cow.jpg!\n" + //attachment filename is moo_cow.jpg
  154. "[^double_facepalm.jpg]"; //attachment filename is "double facepalm.jpg"
  155. Page page = new Page(new File(""));
  156. page.setOriginalText(input);
  157. String attachmentDirectory = "/Users/laura/Pictures/test/";
  158. tester.addAttachmentsToPage(page, attachmentDirectory);
  159. Set<File> attachments = page.getAttachments();
  160. assertNotNull(attachments);
  161. assertEquals(2, attachments.size());
  162. for (File attachment : attachments) {
  163. assertNotNull(attachment);
  164. assertTrue(attachment.exists());
  165. assertTrue(attachment.isFile());
  166. assertTrue("moo_cow.jpg".equals(attachment.getName())
  167. ||"double facepalm.jpg".equals(attachment.getName()));
  168. }
  169. String actual = page.getConvertedText();
  170. String expected = "!moo_cow.jpg!\n" + //fix attachment name in text ref
  171. "[^double facepalm.jpg]";
  172. assertNotNull(actual);
  173. assertEquals(expected, actual);
  174. }
  175. public void testAttachingImage_WhitespacevsUnderscore_FixContent() {
  176. String input = "!moo_cow.jpg!\n" + //attachment filename is moo_cow.jpg
  177. "[alias|^moo cow.jpg]";
  178. Page page = new Page(new File(""));
  179. page.setOriginalText(input);
  180. String attachmentDirectory = "/Users/laura/Pictures/test/";
  181. tester.addAttachmentsToPage(page, attachmentDirectory);
  182. Set<File> attachments = page.getAttachments();
  183. assertNotNull(attachments);
  184. assertEquals(1, attachments.size());
  185. for (File attachment : attachments) {
  186. assertNotNull(attachment);
  187. assertTrue(attachment.exists());
  188. assertTrue(attachment.isFile());
  189. assertTrue("moo_cow.jpg".equals(attachment.getName()));
  190. }
  191. String actual = page.getConvertedText();
  192. String expected = "!moo_cow.jpg!\n" + //fix attachment name in text ref
  193. "[alias|^moo_cow.jpg]";
  194. assertNotNull(actual);
  195. assertEquals(expected, actual);
  196. }
  197. public void testAttachingImage_WhitespacevsUnderscore_FixContent2() {
  198. String input = "!double facepalm.jpg!\n" + //attachment filename is moo_cow.jpg
  199. "[alias|^double_facepalm.jpg]" +
  200. "";
  201. Page page = new Page(new File(""));
  202. page.setOriginalText(input);
  203. String attachmentDirectory = "/Users/laura/Pictures/test/";
  204. tester.addAttachmentsToPage(page, attachmentDirectory);
  205. Set<File> attachments = page.getAttachments();
  206. assertNotNull(attachments);
  207. assertEquals(1, attachments.size());
  208. for (File attachment : attachments) {
  209. assertNotNull(attachment);
  210. assertTrue(attachment.exists());
  211. assertTrue(attachment.isFile());
  212. assertTrue("double facepalm.jpg".equals(attachment.getName()));
  213. }
  214. String actual = page.getConvertedText();
  215. String expected = "!double facepalm.jpg!\n" + //fix attachment name in text ref
  216. "[alias|^double facepalm.jpg]";
  217. assertNotNull(actual);
  218. assertEquals(expected, actual);
  219. }
  220. public void testAttachingImage_WhitespacevsUnderscore_CaseInsensitiveToo() {
  221. String input = "!Moo Cow.jpg!\n" + //attachment filename is moo_cow.jpg
  222. "[^Double_Facepalm.jpg]"; //attachment filename is "double facepalm.jpg"
  223. Page page = new Page(new File(""));
  224. page.setOriginalText(input);
  225. String attachmentDirectory = "/Users/laura/Pictures/test/";
  226. tester.addAttachmentsToPage(page, attachmentDirectory);
  227. Set<File> attachments = page.getAttachments();
  228. assertNotNull(attachments);
  229. assertEquals(2, attachments.size());
  230. for (File attachment : attachments) {
  231. assertNotNull(attachment);
  232. assertTrue(attachment.exists());
  233. assertTrue(attachment.isFile());
  234. assertTrue("moo_cow.jpg".equals(attachment.getName())
  235. ||"double facepalm.jpg".equals(attachment.getName()));
  236. }
  237. String actual = page.getConvertedText();
  238. String expected = "!moo_cow.jpg!\n" + //fix attachment name in text ref
  239. "[^double facepalm.jpg]";
  240. assertNotNull(actual);
  241. assertEquals(expected, actual);
  242. }
  243. public void testAttachingImage_FixingContent_InconsistentWsUs() {
  244. String input = "moo_moo moo moo.jpg\n" +
  245. "[^moo_moo moo moo.jpg]\n" +
  246. "[^moo_moo_moo moo.jpg]\n" +
  247. ""; //attachment filename is "moo_moo_moo_moo.jpg"
  248. Page page = new Page(new File(""));
  249. page.setOriginalText(input);
  250. String attachmentDirectory = "/Users/laura/Pictures/test/";
  251. tester.addAttachmentsToPage(page, attachmentDirectory);
  252. Set<File> attachments = page.getAttachments();
  253. assertNotNull(attachments);
  254. assertEquals(1, attachments.size());
  255. for (File attachment : attachments) {
  256. assertNotNull(attachment);
  257. assertTrue(attachment.exists());
  258. assertTrue(attachment.isFile());
  259. assertTrue("moo_moo_moo_moo.jpg".equals(attachment.getName()));
  260. }
  261. String actual = page.getConvertedText();
  262. String expected = "moo_moo_moo_moo.jpg\n" +
  263. "[^moo_moo_moo_moo.jpg]\n" +
  264. "[^moo_moo_moo_moo.jpg]\n";
  265. assertNotNull(actual);
  266. assertEquals(expected, actual);
  267. }
  268. }