Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <pre style="background:#000;color:#f8f8f8">package fitnesse.<span style="color:#dad085">html</span>;
- <span style="color:#e28964">import</span> fitnesse.responders.run.SuiteResponder;
- <span style="color:#e28964">import</span> fitnesse.wiki.<span style="color:#e28964">*</span>;
- <span style="color:#e28964">public</span> <span style="color:#99cf50">class</span> <span style="text-decoration:underline">SetupTeardownIncluder</span> {
- <span style="color:#e28964">private</span> PageData pageData;
- <span style="color:#e28964">private</span> boolean isSuite;
- <span style="color:#e28964">private</span> WikiPage testPage;
- <span style="color:#e28964">private</span> StringBuffer newPageContent;
- <span style="color:#e28964">private</span> PageCrawler pageCrawler;
- <span style="color:#e28964">public</span> <span style="color:#e28964">static</span> <span style="color:#99cf50">String</span> render(PageData pageData) throws Exception {
- <span style="color:#e28964">return</span> render(pageData, <span style="color:#3387cc">false</span>);
- }
- <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 {
- <span style="color:#e28964">return</span> <span style="color:#e28964">new</span> SetupTeardownIncluder(pageData).render(isSuite);
- }
- <span style="color:#e28964">private</span> SetupTeardownIncluder(PageData pageData) {
- <span style="color:#dad085">this</span>.pageData <span style="color:#e28964">=</span> pageData;
- testPage <span style="color:#e28964">=</span> pageData.getWikiPage();
- pageCrawler <span style="color:#e28964">=</span> testPage.getPageCrawler();
- newPageContent <span style="color:#e28964">=</span> <span style="color:#e28964">new</span> StringBuffer();
- }
- <span style="color:#e28964">private</span> <span style="color:#99cf50">String</span> render(boolean isSuite) throws Exception {
- <span style="color:#dad085">this</span>.isSuite <span style="color:#e28964">=</span> isSuite;
- <span style="color:#e28964">if</span> (isTestPage())
- includeSetupAndTeardownPages();
- <span style="color:#e28964">return</span> pageData.getHtml();
- }
- <span style="color:#e28964">private</span> boolean isTestPage() throws Exception {
- <span style="color:#e28964">return</span> pageData.hasAttribute(<span style="color:#65b042">"Test"</span>);
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupAndTeardownPages() throws Exception {
- includeSetupPages();
- includePageContent();
- includeTeardownPages();
- updatePageContent();
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupPages() throws Exception {
- <span style="color:#e28964">if</span> (isSuite)
- includeSuiteSetupPage();
- includeSetupPage();
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSuiteSetupPage() throws Exception {
- include(SuiteResponder.SUITE_SETUP_NAME, <span style="color:#65b042">"-setup"</span>);
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSetupPage() throws Exception {
- include(<span style="color:#65b042">"SetUp"</span>, <span style="color:#65b042">"-setup"</span>);
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includePageContent() throws Exception {
- newPageContent.append(pageData.<span style="color:#dad085">getContent</span>());
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeTeardownPages() throws Exception {
- includeTeardownPage();
- <span style="color:#e28964">if</span> (isSuite)
- includeSuiteTeardownPage();
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeTeardownPage() throws Exception {
- include(<span style="color:#65b042">"TearDown"</span>, <span style="color:#65b042">"-teardown"</span>);
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> includeSuiteTeardownPage() throws Exception {
- include(SuiteResponder.SUITE_TEARDOWN_NAME, <span style="color:#65b042">"-teardown"</span>);
- }
- <span style="color:#e28964">private</span> <span style="color:#dad085">void</span> updatePageContent() throws Exception {
- pageData.<span style="color:#dad085">setContent</span>(newPageContent.<span style="color:#dad085">toString</span>());
- }
- <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 {
- WikiPage inheritedPage <span style="color:#e28964">=</span> findInheritedPage(pageName);
- <span style="color:#e28964">if</span> (inheritedPage <span style="color:#e28964">!</span><span style="color:#e28964">=</span> <span style="color:#3387cc">null</span>) {
- <span style="color:#99cf50">String</span> pagePathName <span style="color:#e28964">=</span> getPathNameForPage(inheritedPage);
- buildIncludeDirective(pagePathName, arg);
- }
- }
- <span style="color:#e28964">private</span> WikiPage findInheritedPage(<span style="color:#99cf50">String</span> pageName) throws Exception {
- <span style="color:#e28964">return</span> PageCrawlerImpl.getInheritedPage(pageName, testPage);
- }
- <span style="color:#e28964">private</span> <span style="color:#99cf50">String</span> getPathNameForPage(WikiPage page) throws Exception {
- WikiPagePath pagePath <span style="color:#e28964">=</span> pageCrawler.getFullPath(page);
- <span style="color:#e28964">return</span> PathParser.render(pagePath);
- }
- <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) {
- newPageContent
- .append(<span style="color:#65b042">"<span style="color:#ddf2a4">\n</span>!include "</span>)
- .append(arg)
- .append(<span style="color:#65b042">" ."</span>)
- .append(pagePathName)
- .append(<span style="color:#65b042">"<span style="color:#ddf2a4">\n</span>"</span>);
- }
- }
- </pre>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement