001: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
002: // Released under the terms of the GNU General Public License version 2 or later.
003: package fitnesse.html;
004:
005: import fitnesse.testutil.RegexTest;
006: import fitnesse.wiki.*;
007:
008: public class HtmlUtilTest extends RegexTest {
009: private static final String endl = HtmlElement.endl;
010:
011: private WikiPage root;
012:
013: public void setUp() throws Exception {
014: root = InMemoryPage.makeRoot("root");
015: }
016:
017: public void testBreadCrumbsWithCurrentPageLinked() throws Exception {
018: String trail = "1.2.3.4";
019: HtmlTag breadcrumbs = HtmlUtil
020: .makeBreadCrumbsWithCurrentPageLinked(trail);
021: String expected = getBreadCrumbsWithLastOneLinked();
022: assertEquals(expected, breadcrumbs.html());
023: }
024:
025: public void testBreadCrumbsWithCurrentPageNotLinked()
026: throws Exception {
027: String trail = "1.2.3.4";
028: HtmlTag breadcrumbs = HtmlUtil
029: .makeBreadCrumbsWithCurrentPageNotLinked(trail);
030: String expected = getBreadCrumbsWithLastOneNotLinked();
031: assertEquals(expected, breadcrumbs.html());
032: }
033:
034: public void testBreadCrumbsWithPageType() throws Exception {
035: String trail = "1.2.3.4";
036: HtmlTag breadcrumbs = HtmlUtil.makeBreadCrumbsWithPageType(
037: trail, "Some Type");
038: String expected = getBreadCrumbsWithLastOneLinked()
039: + "<br/><span class=\"page_type\">Some Type</span>"
040: + endl;
041: assertEquals(expected, breadcrumbs.html());
042: }
043:
044: private String getBreadCrumbsWithLastOneLinked() {
045: return getFirstThreeBreadCrumbs()
046: + "<br/><a href=\"/1.2.3.4\" class=\"page_title\">4</a>"
047: + endl;
048: }
049:
050: private String getBreadCrumbsWithLastOneNotLinked() {
051: return getFirstThreeBreadCrumbs()
052: + "<br/><span class=\"page_title\">4</span>" + endl;
053: }
054:
055: private String getFirstThreeBreadCrumbs() {
056: return "<a href=\"/1\">1</a>." + endl
057: + "<a href=\"/1.2\">2</a>." + endl
058: + "<a href=\"/1.2.3\">3</a>." + endl;
059: }
060:
061: public void testMakeFormTag() throws Exception {
062: HtmlTag formTag = HtmlUtil.makeFormTag("method", "action");
063: assertSubString("method", formTag.getAttribute("method"));
064: assertSubString("action", formTag.getAttribute("action"));
065: }
066:
067: public void testTestableHtml() throws Exception {
068: WikiPage root = InMemoryPage.makeRoot("RooT");
069: PageCrawler crawler = root.getPageCrawler();
070: crawler.addPage(root, PathParser.parse("SetUp"), "setup");
071: crawler.addPage(root, PathParser.parse("TearDown"), "teardown");
072: WikiPage page = crawler.addPage(root, PathParser
073: .parse("TestPage"), "the content");
074:
075: String html = HtmlUtil.testableHtml(page.getData());
076: assertSubString(".SetUp", html);
077: assertSubString("setup", html);
078: assertSubString(".TearDown", html);
079: assertSubString("teardown", html);
080: assertSubString("the content", html);
081: assertSubString("class=\"collapsable\"", html);
082: }
083:
084: public void testMakeDivTag() throws Exception {
085: String expected = "<div class=\"myClass\"></div>"
086: + HtmlElement.endl;
087: assertEquals(expected, HtmlUtil.makeDivTag("myClass").html());
088: }
089:
090: public void testMakeBreadCrumbsWithCurrentPageLinkedWithEmptyArray()
091: throws Exception {
092: try {
093: HtmlUtil.makeBreadCrumbsWithCurrentPageLinked(".");
094: HtmlUtil.makeBreadCrumbsWithCurrentPageLinked("");
095: } catch (Exception e) {
096: fail("should not throw exception");
097: }
098: }
099:
100: public void testMakeDefaultActions() throws Exception {
101: String pageName = "SomePage";
102: String html = getActionsHtml(pageName);
103: verifyDefaultLinks(html, "SomePage");
104: }
105:
106: public void testMakeActionsWithTestButton() throws Exception {
107: String pageName = "TestSomething";
108: String html = getActionsHtml(pageName);
109: verifyDefaultLinks(html, pageName);
110: assertSubString("<a href=\"" + pageName
111: + "?test\" accesskey=\"t\">Test</a>", html);
112: }
113:
114: public void testMakeActionsWithSuiteButton() throws Exception {
115: String pageName = "SuiteNothings";
116: String html = getActionsHtml(pageName);
117: verifyDefaultLinks(html, pageName);
118: assertSubString("<a href=\"" + pageName
119: + "?suite\" accesskey=\"\">Suite</a>", html);
120: }
121:
122: private String getActionsHtml(String pageName) throws Exception {
123: root.addChildPage(pageName);
124: PageData pageData = new PageData(root.getChildPage(pageName));
125: return HtmlUtil
126: .makeActions(pageData, pageName, pageName, false)
127: .html();
128: }
129:
130: private void verifyDefaultLinks(String html, String pageName) {
131: assertSubString("<a href=\"" + pageName
132: + "?edit\" accesskey=\"e\">Edit</a>", html);
133: assertSubString("<a href=\"" + pageName
134: + "?versions\" accesskey=\"v\">Versions</a>", html);
135: assertSubString("<a href=\"" + pageName
136: + "?properties\" accesskey=\"p\">Properties</a>", html);
137: assertSubString("<a href=\"" + pageName
138: + "?refactor\" accesskey=\"r\">Refactor</a>", html);
139: assertSubString("<a href=\"" + pageName
140: + "?whereUsed\" accesskey=\"w\">Where Used</a>", html);
141: assertSubString("<a href=\"/files\" accesskey=\"f\">Files</a>",
142: html);
143: assertSubString(
144: "<a href=\"?searchForm\" accesskey=\"s\">Search</a>",
145: html);
146: assertSubString(
147: "<a href=\"/RecentChanges\" accesskey=\"\">RecentChanges</a>",
148: html);
149: }
150: }
|