001 package org.apache.turbine.services.pull.tools;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import junit.framework.Test;
023 import junit.framework.TestSuite;
024
025 import org.apache.commons.lang.ArrayUtils;
026 import org.apache.turbine.services.pull.PullService;
027 import org.apache.turbine.services.pull.TurbinePull;
028 import org.apache.turbine.test.BaseTurbineTest;
029 import org.apache.velocity.context.Context;
030
031
032 public class UIToolTest
033 extends BaseTurbineTest
034 {
035 public UIToolTest(String name)
036 throws Exception
037 {
038 super(name, "conf/test/CompleteTurbineResources.properties");
039 }
040
041 public static Test suite()
042 {
043 return new TestSuite(UIToolTest.class);
044 }
045
046 private UITool getTool()
047 {
048 PullService pullService = TurbinePull.getService();
049 assertNotNull(pullService);
050
051 Context globalContext = pullService.getGlobalContext();
052 assertNotNull(globalContext);
053
054 return (UITool) globalContext.get("ui");
055 }
056
057 public void testTool()
058 {
059 UITool ui = getTool();
060 assertNotNull(ui);
061 }
062
063 public void testCssSlashes()
064 {
065 UITool ui = getTool();
066
067 String cssUrl = ui.getStylecss();
068 assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/skins.css", cssUrl);
069 }
070
071 public void testImageSlashes()
072 {
073 UITool ui = getTool();
074
075 String img = "myimage.gif";
076
077 String imgUrl = ui.image(img);
078 assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img, imgUrl);
079
080 String img2 = "foo/myimage.gif";
081
082 String imgUrl2 = ui.image(img2);
083 assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img2, imgUrl2);
084
085 String img3 = "/foo/myimage.gif";
086
087 String imgUrl3 = ui.image(img3);
088 assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images" + img3, imgUrl3);
089 }
090
091 public void testPathologicalCases()
092 {
093 UITool ui = getTool();
094
095 String img = "";
096 String imgUrl = ui.image(img);
097 assertEquals("Could not strip empty String", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
098
099 img = "/";
100 imgUrl = ui.image(img);
101 assertEquals("Could not strip single Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
102
103 img = "//";
104 imgUrl = ui.image(img);
105 assertEquals("Could not strip double Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
106 }
107
108 public void testGetSkinNames()
109 {
110 UITool ui = getTool();
111
112 String[] skinNames = ui.getSkinNames();
113 // Remove the ".svn" dir that may be present.
114 skinNames = (String[]) ArrayUtils.removeElement(skinNames, ".svn");
115 assertEquals(2, skinNames.length);
116
117 assertTrue(ArrayUtils.contains(skinNames, "myotherskin"));
118 assertTrue(ArrayUtils.contains(skinNames, "myskin"));
119 }
120
121 public void testSkinValues()
122 {
123 UITool ui = getTool();
124
125 // Default skin
126 //skin_property_1 = skin_property_1_my_skin
127 assertEquals("skin_property_1_my_skin", ui.get("skin_property_1"));
128
129 ui.setSkin("myotherskin");
130 //skin_property_1 = skin_property_1_my_other_skin
131 assertEquals("skin_property_1_my_other_skin", ui.get("skin_property_1"));
132 }
133 }