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