Author: jvdrean
Date: 2008-02-12 09:33:38 +0100 (Tue, 12 Feb 2008)
New Revision: 7532

Modified:
   xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/api/Document.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/UploadAction.java
   
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/XWikiTest.java
Log:
XWIKI-2102 : Attachments should not contain non-alphanumeric characters in the 
file name
XWIKI-2101 : XWiki.clearName strips dots when using ascii option even if 
stripDots option is set to false
XWIKI-2090 : Attaching images with a name containing special characters 
(?\195?\169 & ?\195?\168 ?\195?\160 ...) generates bugs (image are not 
displayed)
XWIKI-2087 : Attached files that we can't delete or link in the Wiki pages


Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java 
2008-02-11 23:02:08 UTC (rev 7531)
+++ xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java 
2008-02-12 08:33:38 UTC (rev 7532)
@@ -5566,7 +5566,7 @@
         }
 
         if (ascii) {
-            name = name.replaceAll("[^a-zA-Z0-9\\-_]", "");
+            name = name.replaceAll("[^a-zA-Z0-9\\-_\\.]", "");
         }
 
         if (name.length() > 250)

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/api/Document.java
  2008-02-11 23:02:08 UTC (rev 7531)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/api/Document.java
  2008-02-12 08:33:38 UTC (rev 7532)
@@ -1720,7 +1720,10 @@
             i = fileName.indexOf("/");
         }
         String filename = fileName.substring(i + 1);
-        filename = getXWikiContext().getWiki().clearName(filename, false, 
false, getXWikiContext());
+        
+        // TODO : avoid name clearing when encoding problems will be solved
+        // JIRA : http://jira.xwiki.org/jira/browse/XWIKI-94
+        filename = getXWikiContext().getWiki().clearName(filename, false, 
true, getXWikiContext());
 
         XWikiAttachment attachment = getDoc().getAttachment(filename);
         if (attachment == null) {

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/UploadAction.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/UploadAction.java
      2008-02-11 23:02:08 UTC (rev 7531)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/UploadAction.java
      2008-02-12 08:33:38 UTC (rev 7532)
@@ -85,6 +85,10 @@
         }
         filename = filename.replaceAll("\\+", " ");
 
+        // TODO : avoid name clearing when encoding problems will be solved
+        // JIRA : http://jira.xwiki.org/jira/browse/XWIKI-94
+        filename = context.getWiki().clearName(filename, false, true, context);
+
         XWikiDocument olddoc = (XWikiDocument) doc.clone();
         // Read XWikiAttachment
         XWikiAttachment attachment = olddoc.getAttachment(filename);

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/XWikiTest.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/XWikiTest.java 
    2008-02-11 23:02:08 UTC (rev 7531)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/XWikiTest.java 
    2008-02-12 08:33:38 UTC (rev 7532)
@@ -201,5 +201,25 @@
         assertFalse(xwiki.getDocument("XWiki.Skin", context).isNew());
         assertEquals(skin, xwiki.getDocument("XWiki.Skin", context));
         assertEquals("parsing a field", xwiki.parseTemplate("template.vm", 
context));
+    }
+    
+    public void testClearNameWithoutStripDotsWithoutAscii()
+    {
+        assertEquals("ee{&.txt", this.xwiki.clearName("\u00E9\u00EA{&.txt", 
false, false, context));
+    }
+
+    public void testClearNameWithoutStripDotsWithAscii()
+    {
+        assertEquals("ee.txt", this.xwiki.clearName("\u00E9\u00EA{&.txt", 
false, true, context));
+    }
+
+    public void testClearNameWithStripDotsWithoutAscii()
+    {
+        assertEquals("ee{&txt", this.xwiki.clearName("\u00E9\u00EA{&.txt", 
true, false, context));
+    }
+
+    public void testClearNameWithStripDotsWithAscii()
+    {
+        assertEquals("eetxt", this.xwiki.clearName("\u00E9\u00EA{&.txt", true, 
true, context));
     }
 }

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to