001/** 002 * Copyright 2005-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krad.util; 017 018import org.apache.commons.lang.StringUtils; 019import org.junit.Test; 020import org.kuali.rice.kns.util.WebUtils; 021import org.kuali.rice.krad.test.KRADTestCase; 022 023import static org.junit.Assert.*; 024 025/** 026 * Unit tests for the KNS {@link WebUtils} 027 * 028 * @author Kuali Rice Team (rice.collab@kuali.org) 029 * 030 */ 031public class WebUtilsTest extends KRADTestCase { 032 033 /** 034 * Tests WebUtils.getButtonImageUrl() 035 * 036 */ 037 @Test 038 public void testButtonImageUrl() { 039 final String test1 = "test1"; 040 final String test2 = "test2"; 041 042 final String test2Image = WebUtils.getButtonImageUrl(test2); 043 final String test2DefaultImage = WebUtils.getDefaultButtonImageUrl(test2); 044 assertEquals("test2 image did not equal default for test2", test2Image, test2DefaultImage); 045 046 final String test1Image = WebUtils.getButtonImageUrl(test1); 047 final String test1DefaultImage = WebUtils.getDefaultButtonImageUrl(test1); 048 assertNotSame("the test1 image should not be the default", test1Image, test1DefaultImage); 049 assertEquals("/test/images/test1.png", test1Image); 050 } 051 052 /** 053 * Tests the filterHtmlAndReplaceRiceMarkup method 054 */ 055 @Test 056 public void testFilterHtmlAndReplaceRiceMarkup() { 057 String questionText = ""; 058 059 // verify script markup does not make it through 060 questionText = "<script> function () </script>"; 061 String filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 062 assertTrue("Script tags not filtered out", !StringUtils.equals(questionText, filteredText)); 063 064 // verify supported tags get translated 065 questionText = "[p][/p]"; 066 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 067 assertEquals("Paragraph tag not translated to markup", "<p></p>", filteredText); 068 069 questionText = "[b][/b]"; 070 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 071 assertEquals("Bold tag not translated to markup", "<b></b>", filteredText); 072 073 questionText = "[br][/br]"; 074 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 075 assertEquals("Break tag not translated to markup", "<br></br>", filteredText); 076 077 questionText = "[tr][/tr]"; 078 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 079 assertEquals("Table row tag not translated to markup", "<tr></tr>", filteredText); 080 081 questionText = "[td][/td]"; 082 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 083 assertEquals("Table cell tag not translated to markup", "<td></td>", filteredText); 084 085 questionText = "[font #000000][/font]"; 086 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 087 assertEquals("Font with hex color tag not translated to markup", "<font color=\"#000000\"></font>", filteredText); 088 089 questionText = "[font red][/font]"; 090 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 091 assertEquals("Font with color name tag not translated to markup", "<font color=\"red\"></font>", filteredText); 092 093 questionText = "[table][/table]"; 094 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 095 assertEquals("Table tag not translated to markup", "<table></table>", filteredText); 096 097 questionText = "[table questionTable][/table]"; 098 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 099 assertEquals("Table with class tag not translated to markup", "<table class=\"questionTable\"></table>", filteredText); 100 101 questionText = "[td leftTd][/td]"; 102 filteredText = WebUtils.filterHtmlAndReplaceRiceMarkup(questionText); 103 assertEquals("Table cell with class tag not translated to markup", "<td class=\"leftTd\"></td>", filteredText); 104 } 105 106 @Test 107 public void testToAbsoluteURL() { 108 assertEquals("base/relative", WebUtils.toAbsoluteURL("base", "/relative")); 109 assertEquals("http://base/relative", WebUtils.toAbsoluteURL("http://base", "/relative")); 110 assertEquals("http://absolute", WebUtils.toAbsoluteURL("http://base", "http://absolute")); 111 assertEquals("https://absolute", WebUtils.toAbsoluteURL("http://base", "https://absolute")); 112 assertEquals("https://absolute", WebUtils.toAbsoluteURL(null, "https://absolute")); 113 assertEquals("", WebUtils.toAbsoluteURL("", "")); 114 assertEquals("base", WebUtils.toAbsoluteURL("base", "")); 115 assertEquals("base", WebUtils.toAbsoluteURL("base", null)); 116 } 117}