You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by se...@apache.org on 2007/05/06 12:59:44 UTC

svn commit: r535597 - in /jakarta/turbine/core/branches/TURBINE_2_3_BRANCH: conf/test/ conf/test/turbine-resources/ conf/test/turbine-resources/turbine-skins/ conf/test/turbine-resources/turbine-skins/myotherskin/ conf/test/turbine-resources/turbine-sk...

Author: seade
Date: Sun May  6 03:59:43 2007
New Revision: 535597

URL: http://svn.apache.org/viewvc?view=rev&rev=535597
Log:
UITool.getSkinNames() was broken.  Added a test aces for this and one to test retrieval of properties.

Added:
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/skin.props
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/skin.props
Modified:
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/TurbineResources.properties
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/ui/TurbineUIService.java
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java
    jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/util/UIManagerTest.java

Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/TurbineResources.properties
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/TurbineResources.properties?view=diff&rev=535597&r1=535596&r2=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/TurbineResources.properties (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/TurbineResources.properties Sun May  6 03:59:43 2007
@@ -363,7 +363,7 @@
 # on each request (request tools aren't ever, because they're
 # instantiated for the request only anyway).
 services.PullService.tools.per.request.refresh=true
-services.PullService.tools.resources.dir = /turbine-resources/
+services.PullService.tools.resources.dir = /conf/test/turbine-resources/
 
 # These are tools that are placed in the context by the service
 # These tools will be made available to all your
@@ -416,7 +416,7 @@
 #               stored in the user's temporary hashtable. Tool should be
 #               threadsafe.
 #
-#   persistent: tool is instantitated once for each use session, and
+#   persistent: tool is instantiated once for each use session, and
 #               is stored in the user's permanent hashtable. This means
 #               for a logged in user the tool will be persisted in the
 #               user's objectdata. Tool should be threadsafe and
@@ -432,7 +432,7 @@
 ## The following is the old deprecated version.  It is being added as uimanager
 ## so that it can still be tested.
 tool.global.uimanager = org.apache.turbine.services.pull.util.UIManager
-
+## These properties apply to both the old UIManager and the newer UIService
 tool.ui.dir.skin = /turbine-skins/
 tool.ui.dir.image = /turbine-images/
 tool.ui.skin = myskin

Added: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/skin.props
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/skin.props?view=auto&rev=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/skin.props (added)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myotherskin/skin.props Sun May  6 03:59:43 2007
@@ -0,0 +1 @@
+skin_property_1 = skin_property_1_my_other_skin
\ No newline at end of file

Added: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/skin.props
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/skin.props?view=auto&rev=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/skin.props (added)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/conf/test/turbine-resources/turbine-skins/myskin/skin.props Sun May  6 03:59:43 2007
@@ -0,0 +1 @@
+skin_property_1 = skin_property_1_my_skin
\ No newline at end of file

Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/ui/TurbineUIService.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/ui/TurbineUIService.java?view=diff&rev=535597&r1=535596&r2=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/ui/TurbineUIService.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/ui/TurbineUIService.java Sun May  6 03:59:43 2007
@@ -21,11 +21,13 @@
 
 import java.io.File;
 import java.io.FilenameFilter;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Properties;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -57,23 +59,7 @@
         extends TurbineBaseService
         implements UIService
 {
-    /**
-     * A FilenameFilter that returns only directories.
-     * TODO Replace with commons-io DirectoryFileFilter
-     */
-    private class DirectoryFileFilter implements FilenameFilter
-    {
-        public boolean accept(File dir, String fileName)
-        {
-            File file = new File(dir, fileName);
-            if (file.isDirectory())
-            {
-                return true;
-            }
-            return false;
-        }
-    }
-
+    /** Logging. */
     private static Log log = LogFactory.getLog(TurbineUIService.class);
 
     /**
@@ -123,13 +109,15 @@
     public static final String SKIN_PROPERTY_DEFAULT = "default";
 
     /**
-     * The skins directory.
+     * The skins directory, qualified by the resources directory (which is
+     * relative to the webapp context). This is used for constructing URIs and
+     * for retrieving skin files.
      */
     private String skinsDirectory;
 
     /**
-     * The file within the skin directory that actually contains the name/value 
-     * pairs for the skin.
+     * The file within the skin directory that contains the name/value pairs for
+     * the skin.
      */
     private static final String SKIN_PROPS_FILE = "skin.props";
 
@@ -139,13 +127,19 @@
     private static final String DEFAULT_SKIN_CSS_FILE = "skin.css";
 
     /**
-     * This the resources directory relative to the webapp context. Used for
-     * constructing correct URIs for retrieving skin files.
+     * The directory within the skin directory that contains the skin images.
      */
-    private String resourcesDirectory;
     private String imagesDirectory;
+
+    /**
+     * The name of the css file within the skin directory.
+     */
     private String cssFile;
 
+    /**
+     * The flag that determines if the links that are returned are are absolute
+     * or relative.
+     */
     private boolean wantRelative = false;
 
     /**
@@ -235,7 +229,7 @@
     public String[] getSkinNames()
     {
         File skinsDir = new File(skinsDirectory);
-        return skinsDir.list(new DirectoryFileFilter());
+        return skinsDir.list(DirectoryFileFilter.INSTANCE);
     }
 
     /**
@@ -291,7 +285,6 @@
         Properties skinProperties = new Properties(defaultSkinProperties);
         
         StringBuffer sb = new StringBuffer();
-        sb.append('/').append(resourcesDirectory);
         sb.append('/').append(skinsDirectory);
         sb.append('/').append(skinName);
         sb.append('/').append(SKIN_PROPS_FILE);
@@ -302,6 +295,8 @@
 
         try
         {
+            // This will NPE if the directory associated with the skin does not
+            // exist, but it is habdled correctly below.
             InputStream is = TurbineServlet.getResourceAsStream(sb.toString());
 
             skinProperties.load(is);
@@ -480,8 +475,7 @@
     private String getSkinResource(ServerData serverData, String skinName,
             String subDir, String resourceName)
     {
-        StringBuffer sb = new StringBuffer(resourcesDirectory);
-        sb.append("/").append(skinsDirectory);
+        StringBuffer sb = new StringBuffer(skinsDirectory);
         sb.append("/").append(skinName);
         if (subDir != null)
         {
@@ -505,10 +499,15 @@
 
         // Get the resources directory that is specified in the TR.props or 
         // default to "resources", relative to the webapp.
-        resourcesDirectory = stripSlashes(TurbinePull.getResourcesDirectory());
+        StringBuffer sb = new StringBuffer();
+        sb.append(stripSlashes(TurbinePull.getResourcesDirectory()));
+        sb.append("/");
+        sb.append(stripSlashes(
+                cfg.getString(SKINDIR_PROPERTY, SKINS_DIRECTORY)));
+        skinsDirectory = sb.toString();
 
-        skinsDirectory = stripSlashes(cfg.getString(SKINDIR_PROPERTY, SKINS_DIRECTORY));
-        imagesDirectory = stripSlashes(cfg.getString(IMAGEDIR_PROPERTY, IMAGES_DIRECTORY));
+        imagesDirectory = stripSlashes(
+                cfg.getString(IMAGEDIR_PROPERTY, IMAGES_DIRECTORY));
         cssFile = cfg.getString(CSS_PROPERTY, DEFAULT_SKIN_CSS_FILE);
         wantRelative = cfg.getBoolean(RELATIVE_PROPERTY, false);
 

Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java?view=diff&rev=535597&r1=535596&r2=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/tools/UIToolTest.java Sun May  6 03:59:43 2007
@@ -64,7 +64,7 @@
         UITool ui = getTool();
 
         String cssUrl = ui.getStylecss();
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/skins.css", cssUrl);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/skins.css", cssUrl);
     }
 
     public void testImageSlashes()
@@ -74,17 +74,17 @@
         String img = "myimage.gif";
 
         String imgUrl = ui.image(img);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images/" + img, imgUrl);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img, imgUrl);
 
         String img2 = "foo/myimage.gif";
 
         String imgUrl2 = ui.image(img2);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images/" + img2, imgUrl2);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img2, imgUrl2);
 
         String img3 = "/foo/myimage.gif";
 
         String imgUrl3 = ui.image(img3);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images" + img3, imgUrl3);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images" + img3, imgUrl3);
     }
 
     public void testPathologicalCases()
@@ -93,14 +93,39 @@
 
     	String img = "";
         String imgUrl = ui.image(img);
-        assertEquals("Could not strip empty String", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip empty String", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
 
     	img = "/";
         imgUrl = ui.image(img);
-        assertEquals("Could not strip single Slash", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip single Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
 
     	img = "//";
         imgUrl = ui.image(img);
-        assertEquals("Could not strip double Slash", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip double Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+    }
+
+    public void testGetSkinNames()
+    {
+        UITool ui = getTool();
+
+        String[] skinNames = ui.getSkinNames();
+        assertEquals(2, skinNames.length);
+
+        // Not completely sure this will always be in the same order.
+        assertEquals("myotherskin", skinNames[0]);
+        assertEquals("myskin", skinNames[1]);
+    }
+
+    public void testSkinValues()
+    {
+        UITool ui = getTool();
+
+        // Default skin
+        //skin_property_1 = skin_property_1_my_skin
+        assertEquals("skin_property_1_my_skin", ui.get("skin_property_1"));
+        
+        ui.setSkin("myotherskin");
+        //skin_property_1 = skin_property_1_my_other_skin
+        assertEquals("skin_property_1_my_other_skin", ui.get("skin_property_1"));
     }
 }

Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/util/UIManagerTest.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/util/UIManagerTest.java?view=diff&rev=535597&r1=535596&r2=535597
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/util/UIManagerTest.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/pull/util/UIManagerTest.java Sun May  6 03:59:43 2007
@@ -64,7 +64,7 @@
         UIManager ui = getTool();
 
         String cssUrl = ui.getStylecss();
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/skins.css", cssUrl);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/skins.css", cssUrl);
     }
 
     public void testImageSlashes()
@@ -74,17 +74,17 @@
         String img = "myimage.gif";
 
         String imgUrl = ui.image(img);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images/" + img, imgUrl);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img, imgUrl);
 
         String img2 = "foo/myimage.gif";
 
         String imgUrl2 = ui.image(img2);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images/" + img2, imgUrl2);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/" + img2, imgUrl2);
 
         String img3 = "/foo/myimage.gif";
 
         String imgUrl3 = ui.image(img3);
-        assertEquals("CSS URL does not match", "http:///turbine-resources/turbine-skins/myskin/turbine-images" + img3, imgUrl3);
+        assertEquals("CSS URL does not match", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images" + img3, imgUrl3);
     }
 
     public void testPathologicalCases()
@@ -93,14 +93,14 @@
 
     	String img = "";
         String imgUrl = ui.image(img);
-        assertEquals("Could not strip empty String", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip empty String", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
 
     	img = "/";
         imgUrl = ui.image(img);
-        assertEquals("Could not strip single Slash", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip single Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
 
     	img = "//";
         imgUrl = ui.image(img);
-        assertEquals("Could not strip double Slash", "http:///turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
+        assertEquals("Could not strip double Slash", "http:///conf/test/turbine-resources/turbine-skins/myskin/turbine-images/", imgUrl);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org