PageRenderTime 25ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://bitbucket.org/appfusions/universal-wiki-converter
Java | 159 lines | 140 code | 17 blank | 2 comment | 3 complexity | 406b12a75d5dbacd8731ee7c10d683be MD5 | raw file
  1. package com.atlassian.uwc.converters.xwiki;
  2. import java.io.File;
  3. import java.util.Set;
  4. import java.util.Vector;
  5. import junit.framework.TestCase;
  6. import org.apache.log4j.Logger;
  7. import org.apache.log4j.PropertyConfigurator;
  8. import com.atlassian.uwc.ui.Page;
  9. public class AttachmentConverterTest extends TestCase {
  10. private static final String ATT_DIR = "./tmp/";
  11. AttachmentConverter tester = null;
  12. Logger log = Logger.getLogger(this.getClass());
  13. protected void setUp() throws Exception {
  14. tester = new AttachmentConverter();
  15. PropertyConfigurator.configure("log4j.properties");
  16. }
  17. public void tearDown() {
  18. File file = new File(ATT_DIR + "TestPage/test.png");
  19. if (file.exists()) {
  20. file.delete();
  21. }
  22. file = new File(ATT_DIR + "TestPage/img.png");
  23. if (file.exists()) {
  24. file.delete();
  25. }
  26. file = new File(ATT_DIR + "TestPage");
  27. if (file.exists()) {
  28. file.delete();
  29. }
  30. }
  31. String TEST_FILE_XML = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
  32. "\n" +
  33. "<xwikidoc>\n" +
  34. "<attachment>\n" +
  35. "<filename>img.png</filename>\n" +
  36. "<filesize>959</filesize>\n" +
  37. "<author>XWiki.Admin</author>\n" +
  38. "<date>1216844290000</date>\n" +
  39. "<version>1.2</version>\n" +
  40. "<comment></comment>\n" +
  41. "<content>iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAAAAADgE0Q3AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfWBxcOEy+3/bdlAAADUElEQVRIx52WTW/cVBSG32tfezxJZiaT0EwnCkVKgVZI3cFAVYkFLEFCKoI/wz9Bgh/ApqqEWLQLFmUHAtJKqKIqMKhSJ50R+aCTTHzPey4L2/PVIru9C8u6Po/f83XtYzxefAUvwcACAMZPjrXc1gfJVm0VgPHA+HCQGmOMKcfQ6jYypeO/jQ1tWAGCng1sHRY4ehzYuBbUwzIojb1nOkmMBf5xNonW46iCUhoxPY3WLPBvEK826lFQAUq8xhawgNrE1muBqZJsFwVQWMAE8Vq0xIxv7a+rjhN38Z3Ezu3HQORgPO6G7VYSLjD9Gx92SJK8e//z15KFF3qJAgBmOZz+d5+ec8455+TSe18/mCw8NEAAPFvXGx9Z55yIiHPr79/suwq9d+fd0ImIc86JuFbrx5EvhwY7LndORCS9uPfo7HkNu7goQiWZXWhOn5wmpZB3M4JK6kTKleAKHVGSozAMKkCS6YiSSh4mjbiyUu4b03qjVpq98eMs3yLihCKj+lpUqvRzV0hRKkmlsjV8epaUKR2tO+co4kQoItJ1fx2Vutc9dCJ5F4mI7FPKO2JrNI+IjNrbjVLovP81s6aIk8HoaXc7KYXsZ40D5hhl8OjC5XNhKWQ2r0ym7k2423urgfLixu2sGZTKk/obVzq2AgRkZVKqnq502hZVoFcPEyU9VVVXl3vo//4aTVJIISmTqBaiktKBcapUVVXWrKkGfdNkjmhkjDcVoOGXJioYjf54uL1iyqDht7+3QdUsD/TRzb2Pdxc/lzAe9+xGM9/t//bLSQuFilIzsvN275VZaC6ag/o//MkVy4Iorqr0Pn7zg0tJsAyN7txn02R29My8o5+iCC/0crkCSm/3NyLmZizc0iIyVQAIbOdarxMUUP2r8wHpqXO+Kf0UmZ7BcOuLTbjIAsDDDQinxpr7VUQ2d2w5fLBZpHzsnV8MfuagLhx1OZjWSZpHupjnWUyLVdxJ84Y1uPa6kJSsRUmhZvdcZnD1kxyqAX6XuX1mKxSKyDNML/sVGo/RsN38CXv76mflVFX1y8jOVVwHXBgYj5NR1EqC732+FF7hvX/OTHd91ns4OV4tn3Gm+QsNjAcwUSSm2vBhYTIlAGk1xmQzinmZcfQ/40v+ffqYGLoAAAAASUVORK5CYII=</content>\n" +
  42. "</attachment>\n" +
  43. "</xwikidoc>\n";
  44. public void testConvert() {
  45. tester.setAttachmentDirectory(ATT_DIR);
  46. String input;
  47. input = TEST_FILE_XML;
  48. Page page = new Page(null);
  49. page.setOriginalText(input);
  50. page.setName("TestPage");
  51. tester.convert(page);
  52. Set<File> actual = page.getAttachments();
  53. assertNotNull(actual);
  54. assertEquals(1, actual.size());
  55. Vector<File> v = new Vector<File>();
  56. v.addAll(actual);
  57. File file = v.get(0);
  58. assertNotNull(file);
  59. assertTrue(file.exists());
  60. assertEquals("img.png", file.getName());
  61. assertTrue(file.length() > 0);
  62. }
  63. public void testGetAllAttachmentXml() {
  64. //one attachment
  65. String input;
  66. input = TEST_FILE_XML;
  67. Vector<String> actual = tester.getAllAttachmentXml(input);
  68. assertNotNull(actual);
  69. assertEquals(1, actual.size());
  70. assertTrue(actual.get(0).startsWith("<attachment>"));
  71. assertTrue(actual.get(0).contains("<filename>img.png</filename>"));
  72. //three attachments
  73. input = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
  74. "\n" +
  75. "<xwikidoc>\n" +
  76. "<attachment>\n" +
  77. "<filename>a.png</filename>\n" +
  78. "<filesize>15830</filesize>\n" +
  79. "<author>XWiki.Admin</author>\n" +
  80. "<date>1216844288000</date>\n" +
  81. "<version>1.3</version>\n" +
  82. "<comment></comment>\n" +
  83. "<content>notvalid</content>\n" +
  84. "</attachment>\n" +
  85. "<attachment>\n" +
  86. "<filename>b.png</filename>\n" +
  87. "<filesize>15830</filesize>\n" +
  88. "<author>XWiki.Admin</author>\n" +
  89. "<date>1216844288000</date>\n" +
  90. "<version>1.3</version>\n" +
  91. "<comment></comment>\n" +
  92. "<content>notvalid2</content>\n" +
  93. "</attachment>\n" +
  94. "<attachment>\n" +
  95. "<filename>c.png</filename>\n" +
  96. "<filesize>15830</filesize>\n" +
  97. "<author>XWiki.Admin</author>\n" +
  98. "<date>1216844288000</date>\n" +
  99. "<version>1.3</version>\n" +
  100. "<comment></comment>\n" +
  101. "<content>notvalid3</content>\n" +
  102. "</attachment>\n" +
  103. "</xwikidoc>\n";
  104. actual = tester.getAllAttachmentXml(input);
  105. assertNotNull(actual);
  106. assertEquals(3, actual.size());
  107. assertTrue(actual.get(0).startsWith("<attachment>"));
  108. assertTrue(actual.get(0).contains("<filename>a.png</filename>"));
  109. assertTrue(actual.get(1).startsWith("<attachment>"));
  110. assertTrue(actual.get(1).contains("<filename>b.png</filename>"));
  111. assertTrue(actual.get(2).startsWith("<attachment>"));
  112. assertTrue(actual.get(2).contains("<filename>c.png</filename>"));
  113. }
  114. public void testGetAttachmentName() {
  115. String input, expected, actual;
  116. input = TEST_FILE_XML;
  117. expected = "img.png";
  118. actual = tester.getAttachmentName(input);
  119. assertNotNull(actual);
  120. assertEquals(expected, actual);
  121. }
  122. public void testGetAttachmentContents() {
  123. String input, expected, actual;
  124. input = TEST_FILE_XML;
  125. expected = "iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAAAAADgE0Q3AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfWBxcOEy+3/bdlAAADUElEQVRIx52WTW/cVBSG32tfezxJZiaT0EwnCkVKgVZI3cFAVYkFLEFCKoI/wz9Bgh/ApqqEWLQLFmUHAtJKqKIqMKhSJ50R+aCTTHzPey4L2/PVIru9C8u6Po/f83XtYzxefAUvwcACAMZPjrXc1gfJVm0VgPHA+HCQGmOMKcfQ6jYypeO/jQ1tWAGCng1sHRY4ehzYuBbUwzIojb1nOkmMBf5xNonW46iCUhoxPY3WLPBvEK826lFQAUq8xhawgNrE1muBqZJsFwVQWMAE8Vq0xIxv7a+rjhN38Z3Ezu3HQORgPO6G7VYSLjD9Gx92SJK8e//z15KFF3qJAgBmOZz+d5+ec8455+TSe18/mCw8NEAAPFvXGx9Z55yIiHPr79/suwq9d+fd0ImIc86JuFbrx5EvhwY7LndORCS9uPfo7HkNu7goQiWZXWhOn5wmpZB3M4JK6kTKleAKHVGSozAMKkCS6YiSSh4mjbiyUu4b03qjVpq98eMs3yLihCKj+lpUqvRzV0hRKkmlsjV8epaUKR2tO+co4kQoItJ1fx2Vutc9dCJ5F4mI7FPKO2JrNI+IjNrbjVLovP81s6aIk8HoaXc7KYXsZ40D5hhl8OjC5XNhKWQ2r0ym7k2423urgfLixu2sGZTKk/obVzq2AgRkZVKqnq502hZVoFcPEyU9VVVXl3vo//4aTVJIISmTqBaiktKBcapUVVXWrKkGfdNkjmhkjDcVoOGXJioYjf54uL1iyqDht7+3QdUsD/TRzb2Pdxc/lzAe9+xGM9/t//bLSQuFilIzsvN275VZaC6ag/o//MkVy4Iorqr0Pn7zg0tJsAyN7txn02R29My8o5+iCC/0crkCSm/3NyLmZizc0iIyVQAIbOdarxMUUP2r8wHpqXO+Kf0UmZ7BcOuLTbjIAsDDDQinxpr7VUQ2d2w5fLBZpHzsnV8MfuagLhx1OZjWSZpHupjnWUyLVdxJ84Y1uPa6kJSsRUmhZvdcZnD1kxyqAX6XuX1mKxSKyDNML/sVGo/RsN38CXv76mflVFX1y8jOVVwHXBgYj5NR1EqC732+FF7hvX/OTHd91ns4OV4tn3Gm+QsNjAcwUSSm2vBhYTIlAGk1xmQzinmZcfQ/40v+ffqYGLoAAAAASUVORK5CYII=";
  126. actual = tester.getAttachmentContents(input);
  127. assertNotNull(actual);
  128. assertEquals(expected, actual);
  129. }
  130. public void testCreateFile() {
  131. String name = "test.png";
  132. String contents = "iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAAAAADgE0Q3AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfWBxcOEy+3/bdlAAADUElEQVRIx52WTW/cVBSG32tfezxJZiaT0EwnCkVKgVZI3cFAVYkFLEFCKoI/wz9Bgh/ApqqEWLQLFmUHAtJKqKIqMKhSJ50R+aCTTHzPey4L2/PVIru9C8u6Po/f83XtYzxefAUvwcACAMZPjrXc1gfJVm0VgPHA+HCQGmOMKcfQ6jYypeO/jQ1tWAGCng1sHRY4ehzYuBbUwzIojb1nOkmMBf5xNonW46iCUhoxPY3WLPBvEK826lFQAUq8xhawgNrE1muBqZJsFwVQWMAE8Vq0xIxv7a+rjhN38Z3Ezu3HQORgPO6G7VYSLjD9Gx92SJK8e//z15KFF3qJAgBmOZz+d5+ec8455+TSe18/mCw8NEAAPFvXGx9Z55yIiHPr79/suwq9d+fd0ImIc86JuFbrx5EvhwY7LndORCS9uPfo7HkNu7goQiWZXWhOn5wmpZB3M4JK6kTKleAKHVGSozAMKkCS6YiSSh4mjbiyUu4b03qjVpq98eMs3yLihCKj+lpUqvRzV0hRKkmlsjV8epaUKR2tO+co4kQoItJ1fx2Vutc9dCJ5F4mI7FPKO2JrNI+IjNrbjVLovP81s6aIk8HoaXc7KYXsZ40D5hhl8OjC5XNhKWQ2r0ym7k2423urgfLixu2sGZTKk/obVzq2AgRkZVKqnq502hZVoFcPEyU9VVVXl3vo//4aTVJIISmTqBaiktKBcapUVVXWrKkGfdNkjmhkjDcVoOGXJioYjf54uL1iyqDht7+3QdUsD/TRzb2Pdxc/lzAe9+xGM9/t//bLSQuFilIzsvN275VZaC6ag/o//MkVy4Iorqr0Pn7zg0tJsAyN7txn02R29My8o5+iCC/0crkCSm/3NyLmZizc0iIyVQAIbOdarxMUUP2r8wHpqXO+Kf0UmZ7BcOuLTbjIAsDDDQinxpr7VUQ2d2w5fLBZpHzsnV8MfuagLhx1OZjWSZpHupjnWUyLVdxJ84Y1uPa6kJSsRUmhZvdcZnD1kxyqAX6XuX1mKxSKyDNML/sVGo/RsN38CXv76mflVFX1y8jOVVwHXBgYj5NR1EqC732+FF7hvX/OTHd91ns4OV4tn3Gm+QsNjAcwUSSm2vBhYTIlAGk1xmQzinmZcfQ/40v+ffqYGLoAAAAASUVORK5CYII=";
  133. String pagename = "TestPage";
  134. File actual = tester.createFile(name, contents, pagename, ATT_DIR);
  135. assertNotNull(actual);
  136. assertTrue(actual.exists());
  137. assertNotNull(actual.getAbsolutePath());
  138. assertTrue(!"".equals(actual.getAbsolutePath()));
  139. assertEquals(name, actual.getName());
  140. assertTrue(actual.length() > 0);
  141. }
  142. }