Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.41 KB | None | 0 0
  1. <pre style="background:#000;color:#f8f8f8">package fitnesse.<span style="color:#dad085">html</span>;
  2. <span style="color:#e28964">import</span> fitnesse.responders.run.SuiteResponder;
  3. <span style="color:#e28964">import</span> fitnesse.wiki.<span style="color:#e28964">*</span>;
  4. <span style="color:#e28964">public</span> <span style="color:#99cf50">class</span> <span style="text-decoration:underline">SetupTeardownIncluder</span> {
  5. <span style="color:#e28964">private</span> PageData pageData;
  6. <span style="color:#e28964">private</span> boolean isSuite;
  7. <span style="color:#e28964">private</span> WikiPage testPage;
  8. <span style="color:#e28964">private</span> StringBuffer newPageContent;
  9. <span style="color:#e28964">private</span> PageCrawler pageCrawler;
  10. <span style="color:#e28964">public</span> <span style="color:#e28964">static</span> <span style="color:#99cf50">String</span> render(PageData pageData) throws Exception {
  11. <span style="color:#e28964">return</span> render(pageData, <span style="color:#3387cc">false</span>);
  12. }
  13. <span style="color:#e28964">public</span> <span style="color:#e28964">static</span> <span style="color:#99cf50">String</span> render(PageData pageData, boolean isSuite) throws Exception {
  14. <span style="color:#e28964">return</span> <span style="color:#e28964">new</span> SetupTeardownIncluder(pageData).render(isSuite);
  15. }
  16. <span style="color:#e28964">private</span> SetupTeardownIncluder(PageData pageData) {
  17. <span style="color:#dad085">this</span>.pageData <span style="color:#e28964">=</span> pageData;
  18. testPage <span style="color:#e28964">=</span> pageData.getWikiPage();
  19. pageCrawler <span style="color:#e28964">=</span> testPage.getPageCrawler();
  20. newPageContent <span style="color:#e28964">=</span> <span style="color:#e28964">new</span> StringBuffer();
  21. }
  22. <span style="color:#e28964">private</span> <span style="color:#99cf50">String</span> render(boolean isSuite) throws Exception {
  23. <span style="color:#dad085">this</span>.isSuite <span style="color:#e28964">=</span> isSuite;
  24. <span style="color:#e28964">if</span> (isTestPage())
  25. includeSetupAndTeardownPages();
  26. <span style="color:#e28964">return</span> pageData.getHtml();
  27. }
  28. <span style="color:#e28964">private</span> boolean isTestPage() throws Exception {
  29. <span style="color:#e28964">return</span> pageData.hasAttribute(<span style="color:#65b042">"Test"</span>);
  30. }
  31. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupAndTeardownPages() throws Exception {
  32. includeSetupPages();
  33. includePageContent();
  34. includeTeardownPages();
  35. updatePageContent();
  36. }
  37. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupPages() throws Exception {
  38. <span style="color:#e28964">if</span> (isSuite)
  39. includeSuiteSetupPage();
  40. includeSetupPage();
  41. }
  42. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSuiteSetupPage() throws Exception {
  43. include(SuiteResponder.SUITE_SETUP_NAME, <span style="color:#65b042">"-setup"</span>);
  44. }
  45. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupPage() throws Exception {
  46. include(<span style="color:#65b042">"SetUp"</span>, <span style="color:#65b042">"-setup"</span>);
  47. }
  48. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includePageContent() throws Exception {
  49. newPageContent.append(pageData.<span style="color:#dad085">getContent</span>());
  50. }
  51. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeTeardownPages() throws Exception {
  52. includeTeardownPage();
  53. <span style="color:#e28964">if</span> (isSuite)
  54. includeSuiteTeardownPage();
  55. }
  56. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeTeardownPage() throws Exception {
  57. include(<span style="color:#65b042">"TearDown"</span>, <span style="color:#65b042">"-teardown"</span>);
  58. }
  59. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSuiteTeardownPage() throws Exception {
  60. include(SuiteResponder.SUITE_TEARDOWN_NAME, <span style="color:#65b042">"-teardown"</span>);
  61. }
  62. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> updatePageContent() throws Exception {
  63. pageData.<span style="color:#dad085">setContent</span>(newPageContent.<span style="color:#dad085">toString</span>());
  64. }
  65. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> include(<span style="color:#99cf50">String</span> pageName, <span style="color:#99cf50">String</span> arg) throws Exception {
  66. WikiPage inheritedPage <span style="color:#e28964">=</span> findInheritedPage(pageName);
  67. <span style="color:#e28964">if</span> (inheritedPage <span style="color:#e28964">!</span><span style="color:#e28964">=</span> <span style="color:#3387cc">null</span>) {
  68. <span style="color:#99cf50">String</span> pagePathName <span style="color:#e28964">=</span> getPathNameForPage(inheritedPage);
  69. buildIncludeDirective(pagePathName, arg);
  70. }
  71. }
  72. <span style="color:#e28964">private</span> WikiPage findInheritedPage(<span style="color:#99cf50">String</span> pageName) throws Exception {
  73. <span style="color:#e28964">return</span> PageCrawlerImpl.getInheritedPage(pageName, testPage);
  74. }
  75. <span style="color:#e28964">private</span> <span style="color:#99cf50">String</span> getPathNameForPage(WikiPage page) throws Exception {
  76. WikiPagePath pagePath <span style="color:#e28964">=</span> pageCrawler.getFullPath(page);
  77. <span style="color:#e28964">return</span> PathParser.render(pagePath);
  78. }
  79. <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> buildIncludeDirective(<span style="color:#99cf50">String</span> pagePathName, <span style="color:#99cf50">String</span> arg) {
  80. newPageContent
  81. .append(<span style="color:#65b042">"<span style="color:#ddf2a4">\n</span>!include "</span>)
  82. .append(arg)
  83. .append(<span style="color:#65b042">" ."</span>)
  84. .append(pagePathName)
  85. .append(<span style="color:#65b042">"<span style="color:#ddf2a4">\n</span>"</span>);
  86. }
  87.  
  88. }
  89. </pre>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement