You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/02/15 01:40:57 UTC

svn commit: r507757 - in /tapestry/tapestry4/trunk: tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/ tapestry-framework/src/java/org/apache/tapestry/multipart/ tapestry-framework/src/test/org/apache/tapestry/multipart/

Author: jkuhnert
Date: Wed Feb 14 16:40:56 2007
New Revision: 507757

URL: http://svn.apache.org/viewvc?view=rev&rev=507757
Log:
Resolves TAPESTRY-1227.

UploadPart was incorrectly reporting the fileName uploaded to be the full path string given on windows client platforms.

Added:
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/multipart/TestUploadPart.java
Modified:
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortImage.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortImage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortImage.java?view=diff&rev=507757&r1=507756&r2=507757
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortImage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortImage.java Wed Feb 14 16:40:56 2007
@@ -14,15 +14,12 @@
 
 package org.apache.tapestry.contrib.table.components.inserted;
 
-import org.apache.hivemind.ApplicationRuntimeException;
-import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.tapestry.BaseComponent;
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.Tapestry;
 import org.apache.tapestry.contrib.table.components.Table;
 import org.apache.tapestry.contrib.table.components.TableColumns;
-import org.apache.tapestry.contrib.table.components.TableMessages;
 import org.apache.tapestry.contrib.table.model.ITableColumn;
 import org.apache.tapestry.contrib.table.model.ITableModel;
 import org.apache.tapestry.contrib.table.model.ITableModelSource;
@@ -40,17 +37,17 @@
 public abstract class SimpleTableColumnSortImage extends BaseComponent
         implements PageDetachListener, ITableRendererListener
 {
-    public abstract Table getTable();
-
     // transient
     private ITableModelSource m_objModelSource;
     private ITableColumn m_objColumn;
-
+    
     public SimpleTableColumnSortImage()
     {
         init();
     }
 
+    public abstract Table getTable();
+    
     /**
      * @see org.apache.tapestry.event.PageDetachListener#pageDetached(PageEvent)
      */

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java?view=diff&rev=507757&r1=507756&r2=507757
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java Wed Feb 14 16:40:56 2007
@@ -35,8 +35,6 @@
 public abstract class SimpleTableColumnSortLink extends BaseComponent
         implements ITableRendererListener, PageDetachListener
 {
-    public abstract Table getTable();
-    
     // transient
     private ITableColumn m_objColumn;
     private ITableModelSource m_objModelSource;
@@ -46,6 +44,8 @@
         init();
     }
 
+    public abstract Table getTable();
+    
     /**
      * @see org.apache.tapestry.event.PageDetachListener#pageDetached(PageEvent)
      */

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java?view=diff&rev=507757&r1=507756&r2=507757
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java Wed Feb 14 16:40:56 2007
@@ -19,6 +19,7 @@
 import java.io.InputStream;
 
 import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.util.Defense;
 import org.apache.tapestry.Tapestry;
@@ -53,7 +54,7 @@
      */
     public String getFileName()
     {
-        File file = new File(this.getFilePath());
+        File file = new File(FilenameUtils.separatorsToSystem(getFilePath()));
 
         return file.getName();
     }

Added: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/multipart/TestUploadPart.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/multipart/TestUploadPart.java?view=auto&rev=507757
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/multipart/TestUploadPart.java (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/multipart/TestUploadPart.java Wed Feb 14 16:40:56 2007
@@ -0,0 +1,58 @@
+// Copyright 2004, 2005 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry.multipart;
+
+import static org.easymock.EasyMock.*;
+
+import org.apache.commons.fileupload.FileItem;
+import org.testng.annotations.Test;
+
+import com.javaforge.tapestry.testng.TestBase;
+
+
+/**
+ *  Tests functionality of {@link UploadPart}.
+ */
+@Test
+public class TestUploadPart extends TestBase
+{
+
+    public void test_Windows_File_Name()
+    {
+        FileItem item = newMock(FileItem.class);
+        
+        expect(item.getName()).andReturn("C:\\\\documents\\things\\image.png");
+        
+        replay();
+        
+        UploadPart part = new UploadPart(item);
+        assertEquals(part.getFileName(), "image.png");
+        
+        verify();
+    }
+    
+    public void test_Windows_File_Path()
+    {
+        FileItem item = newMock(FileItem.class);
+        
+        expect(item.getName()).andReturn("C:\\\\documents\\things\\image.png");
+        
+        replay();
+        
+        UploadPart part = new UploadPart(item);
+        assertEquals(part.getFilePath(), "C:\\\\documents\\things\\image.png");
+        
+        verify();
+    }
+}