PageRenderTime 28ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/src/com/atlassian/uwc/converters/socialtext/CombineMultipleWorkspacesConverterTest.java

https://bitbucket.org/iTux/universal-wiki-converter
Java | 265 lines | 233 code | 27 blank | 5 comment | 0 complexity | 4a8c852779872c5d3f96c8a87feeeae7 MD5 | raw file
  1. package com.atlassian.uwc.converters.socialtext;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  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 CombineMultipleWorkspacesConverterTest extends TestCase {
  10. CombineMultipleWorkspacesConverter tester = null;
  11. Logger log = Logger.getLogger(this.getClass());
  12. Page page;
  13. protected void setUp() throws Exception {
  14. PropertyConfigurator.configure("log4j.properties");
  15. tester = new CombineMultipleWorkspacesConverter();
  16. //create the page like we do in ConverterEngine
  17. File file = new File("sampleData/socialtext/junit_resources/many2onetest/many2onepage/20100414012345.txt");
  18. page = new Page(file);
  19. String pagePath = page.getFile().getPath();
  20. String path = pagePath.substring(0, pagePath.lastIndexOf(File.separator));
  21. page.setPath(path);
  22. page.setName("SampleSocialtext-InputMany2OneLinks"); //this will have been set in the pagename converter
  23. }
  24. public void testGetNewTitle() {
  25. String expected = " - many2onetest";
  26. String actual = tester.getNewTitle(page);
  27. assertNotNull(actual);
  28. assertEquals(expected, actual);
  29. }
  30. public void testConvertThisSpaceLinks() {
  31. String input, expected, actual;
  32. input = "[Sample Socialtext Links]\n" +
  33. "[Alias for this page|Sample Socialtext Links]"; //by the time this is run, they're already confluence links
  34. expected = "[Sample Socialtext Links - many2onetest]\n" +
  35. "[Alias for this page|Sample Socialtext Links - many2onetest]";
  36. actual = tester.convertThisSpaceLinks(input, " - many2onetest");
  37. assertNotNull(actual);
  38. assertEquals(expected, actual);
  39. }
  40. public void testConvertOtherSpaceLinks() {
  41. String input, expected, actual;
  42. input = "[Alias Tada|space1:Some Pagename]\n" +
  43. "[Alias Tada|space1:Some Pagename]";
  44. expected = "[Alias Tada|Some Pagename - space1]\n" +
  45. "[Alias Tada|Some Pagename - space1]";
  46. actual = tester.convertOtherSpaceLinks(input);
  47. assertNotNull(actual);
  48. assertEquals(expected, actual);
  49. }
  50. public void testConvertAnchorsSectionsHeaders() {
  51. String input, expected, actual;
  52. input = "[#anchor]\n" +
  53. "[#Header]\n" +
  54. "[Other Page#section]\n" +
  55. "[space2:Other Page#anchor]\n" +
  56. "[Alias - Header|#Header]\n" +
  57. "[Foo Bar|Something something something something#Something Something]\n" +
  58. "";
  59. expected = "[#anchor]\n" +
  60. "[#Header]\n" +
  61. "[Other Page - many2onetest#section]\n" +
  62. "[Other Page - space2#anchor]\n" +
  63. "[Alias - Header|#Header]\n" +
  64. "[Foo Bar|Something something something something - many2onetest#Something Something]\n" +
  65. "";
  66. actual = tester.convertThisSpaceLinks(input, " - many2onetest");
  67. actual = tester.convertOtherSpaceLinks(actual);
  68. assertNotNull(actual);
  69. assertEquals(expected, actual);
  70. }
  71. public void testExemptionProp() {
  72. tester.getProperties().setProperty("many2one-exemption",
  73. "(What's the funny punctuation\\?)|(What if I make a mistake\\?)");
  74. //page titles
  75. assertFalse(tester.isExempt(page));
  76. page.setName("What if I make a mistake?");
  77. assertTrue(tester.isExempt(page));
  78. page.setName("What's the funny punctuation?");
  79. assertTrue(tester.isExempt(page));
  80. //links
  81. String input = "[Sample Socialtext Links]\n" +
  82. "[What if I make a mistake?]\n" +
  83. "[space2:Other Page#anchor]\n" +
  84. "[space2:What's the funny punctuation?#anchor]\n" +
  85. "!What if I make a mistake?^abc.gif!\n" +
  86. "[space2:What if I make a mistake?^abc.gif]\n";
  87. String expected = "[Sample Socialtext Links - many2onetest]\n" +
  88. "[What if I make a mistake?]\n" +
  89. "[Other Page - space2#anchor]\n" +
  90. "[What's the funny punctuation?#anchor]\n" +
  91. "!What if I make a mistake?^abc.gif!\n" +
  92. "[What if I make a mistake?^abc.gif]\n";
  93. String actual = tester.convertThisSpaceLinks(input, " - many2onetest");
  94. actual = tester.convertOtherSpaceLinks(actual);
  95. assertNotNull(actual);
  96. assertEquals(expected, actual);
  97. }
  98. public void testDelimProp() {
  99. tester.getProperties().setProperty("many2one-delimiter", "--");
  100. String expected = " -- many2onetest";
  101. String actual = tester.getNewTitle(page);
  102. assertNotNull(actual);
  103. assertEquals(expected, actual);
  104. tester.getProperties().setProperty("many2one-delimiter", "");
  105. expected = " many2onetest";
  106. actual = tester.getNewTitle(page);
  107. assertNotNull(actual);
  108. assertEquals(expected, actual);
  109. }
  110. public void testImages() {
  111. String input, expected, actual;
  112. input = "!abc.gif!\n" +
  113. "!pagename^cow.jpg!\n" +
  114. "!space2:pagename^cow.jpg!\n" +
  115. "[^cow.jpg]\n" +
  116. "[pagename^cow.jpg]\n" +
  117. "[space2:pagename^cow.jpg]\n" +
  118. "[Alias|space2:pagename^double facepalm.jpg]\n" +
  119. "!space2:pagename^double facepalm.jpg|width=20%!\n" +
  120. "\n" +
  121. "*External*\n" +
  122. "!http://localhost:8082/download/attachments/426023/double+facepalm.jpg!\n" +
  123. "";
  124. expected = "!abc.gif!\n" +
  125. "!pagename - many2onetest^cow.jpg!\n" +
  126. "!pagename - space2^cow.jpg!\n" +
  127. "[^cow.jpg]\n" +
  128. "[pagename - many2onetest^cow.jpg]\n" +
  129. "[pagename - space2^cow.jpg]\n" +
  130. "[Alias|pagename - space2^double facepalm.jpg]\n" +
  131. "!pagename - space2^double facepalm.jpg|width=20%!\n" +
  132. "\n" +
  133. "*External*\n" +
  134. "!http://localhost:8082/download/attachments/426023/double+facepalm.jpg!\n" +
  135. "";
  136. page.setOriginalText(input);
  137. page.setConvertedText(input);
  138. tester.convert(page);
  139. actual = page.getConvertedText();
  140. assertNotNull(actual);
  141. assertEquals(expected, actual);
  142. }
  143. public void testMacros() { //macros are handled after this, so we need socialtext syntax
  144. String input, expected, actual;
  145. //include
  146. input = "{include: [Pagename]}\n" +
  147. "\n" +
  148. "{include: workspace [Pagename]}\n" +
  149. "\n" +
  150. "{include: [Foo:Bar]}\n" +
  151. "\n" +
  152. "Illegal Pagename Characters:\n" +
  153. "[Foo/Bar]\n" +
  154. "{include: [Foo/Bar]}\n" +
  155. "";
  156. expected = "{include: [Pagename - abc]}\n" +
  157. "\n" +
  158. "{include: [Pagename - workspace]}\n" +
  159. "\n" +
  160. "{include: [Foo:Bar - abc]}\n" +
  161. "\n" +
  162. "Illegal Pagename Characters:\n" +
  163. "[Foo/Bar]\n" +
  164. "{include: [Foo/Bar - abc]}\n" +
  165. "";
  166. actual = tester.convertMacros(input, " - abc");
  167. assertNotNull(actual);
  168. assertEquals(expected, actual);
  169. //recent changes
  170. input = "{recent_changes: }\n" +
  171. "\n" +
  172. "{recent_changes: workspace}\n" +
  173. "";
  174. expected = "{recent_changes: }\n" +
  175. "\n" +
  176. "{recent_changes: }\n" +
  177. "";
  178. actual = tester.convertMacros(input, " -- def");
  179. assertNotNull(actual);
  180. assertEquals(expected, actual);
  181. }
  182. public void testNoChangeExternalLinks() {
  183. String input, expected, actual;
  184. input = "http://www.google.com\n" +
  185. "https://mail.google.com\n" +
  186. "laura.kolker@gmail.com\n" +
  187. "[Google|http://www.google.com]\n" +
  188. "[Gmail|https://mail.google.com]\n" +
  189. "[Email|mailto:laura.kolker@gmail.com]\n" +
  190. "[# Foo Bar|http://www.something123.com/]";
  191. expected = input;
  192. page.setOriginalText(input);
  193. tester.convert(page);
  194. actual = page.getConvertedText();
  195. assertNotNull(actual);
  196. assertEquals(expected, actual);
  197. }
  198. public void testIncludeProperty() {
  199. tester.getProperties().setProperty("many2one-exemption", "^A");
  200. tester.getProperties().setProperty("many2one-include", "^B");
  201. String testfile = "sampleData/socialtext/junit_resources/many2onetest/exemptiontest/20100414123456.txt";
  202. Page pageA = new Page(new File(testfile));
  203. Page pageB = new Page(new File(testfile));
  204. Page pageC = new Page(new File(testfile));
  205. pageA.setName("Abc");
  206. pageB.setName("Bar");
  207. pageC.setName("Foo");
  208. pageA.setPath(getPath(pageA));
  209. pageB.setPath(getPath(pageB));
  210. pageC.setPath(getPath(pageC));
  211. String input, expected, actual;
  212. input = "http://www.google.com\n" +
  213. "https://mail.google.com\n" +
  214. "laura.kolker@gmail.com\n" +
  215. "[Google|http://www.google.com]\n" +
  216. "[Gmail|https://mail.google.com]\n" +
  217. "[Email|mailto:laura.kolker@gmail.com]\n" +
  218. "[# Foo Bar|http://www.something123.com/]";
  219. expected = input;
  220. pageA.setOriginalText(input);
  221. pageB.setOriginalText(input);
  222. pageC.setOriginalText(input);
  223. tester.convert(pageA);
  224. tester.convert(pageB);
  225. tester.convert(pageC);
  226. assertEquals("Abc", pageA.getName());
  227. assertEquals("Bar - many2onetest", pageB.getName());
  228. assertEquals("Foo", pageC.getName());//if you're not included, you're exempted;
  229. assertEquals(expected, pageA.getConvertedText());
  230. assertEquals(expected, pageB.getConvertedText());
  231. assertEquals(expected, pageC.getConvertedText());
  232. }
  233. private String getPath(Page input) {
  234. String pagePath = input.getFile().getPath();
  235. String path = pagePath.substring(0, pagePath.lastIndexOf(File.separator));
  236. return path;
  237. }
  238. }