r1696 - in xwiki/trunk: core/src/main/java/com/xpn/xwiki/doc core/src/main/java/com/xpn/xwiki/plugin/lucene tests/java/com/xpn/xwiki/test web/standard/src/main/webapp/wiki_editor/plugins web/standard/src/main/webapp/wiki_editor_2/plugins

Ludovic Dubost ludovic at users.forge.objectweb.org
Thu Dec 7 17:08:28 CET 2006


Author: ludovic
Date: 2006-12-07 17:08:27 +0100 (Thu, 07 Dec 2006)
New Revision: 1696

Modified:
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/plugin/lucene/ObjectData.java
   xwiki/trunk/tests/java/com/xpn/xwiki/test/XWikiTest.java
   xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/core.js
   xwiki/trunk/web/standard/src/main/webapp/wiki_editor_2/plugins/core.js
Log:
Added tests for copyDocument
fix null pointer in lucene object indexing
fix null pointer in clone
fix euro characters in wysiwyg editor
(sorry no jira IDs)

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-12-07 12:27:34 UTC (rev 1695)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-12-07 16:08:27 UTC (rev 1696)
@@ -1458,8 +1458,10 @@
             XWikiAttachment attachment = (XWikiAttachment) attit.next();
             XWikiAttachment newattachment = (XWikiAttachment) attachment.clone();
             newattachment.setDoc(this);
-            newattachment.getAttachment_archive().setAttachment(newattachment);
-            newattachment.getAttachment_content().setContentDirty(true);
+            if (newattachment.getAttachment_archive()!=null)
+             newattachment.getAttachment_archive().setAttachment(newattachment);
+            if (newattachment.getAttachment_content()!=null)
+             newattachment.getAttachment_content().setContentDirty(true);
             getAttachmentList().add(newattachment);
         }
     }

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/plugin/lucene/ObjectData.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/plugin/lucene/ObjectData.java	2006-12-07 12:27:34 UTC (rev 1695)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/plugin/lucene/ObjectData.java	2006-12-07 16:08:27 UTC (rev 1696)
@@ -133,12 +133,14 @@
 
             while (itObj.hasNext()) {
                 baseObject = (BaseObject) itObj.next();
-                Object[] propertyNames = baseObject.getPropertyNames();
-                for (int i = 0; i < propertyNames.length; i++) {
-                    try {
-                        indexProperty(luceneDoc, baseObject, (String) propertyNames[i], context);
-                    } catch (Exception e) {
-                        LOG.error("error extracting fulltext for document " + this, e);
+                if (baseObject!=null) {
+                    Object[] propertyNames = baseObject.getPropertyNames();
+                    for (int i = 0; i < propertyNames.length; i++) {
+                        try {
+                            indexProperty(luceneDoc, baseObject, (String) propertyNames[i], context);
+                        } catch (Exception e) {
+                            LOG.error("error extracting fulltext for document " + this, e);
+                        }
                     }
                 }
             }

Modified: xwiki/trunk/tests/java/com/xpn/xwiki/test/XWikiTest.java
===================================================================
--- xwiki/trunk/tests/java/com/xpn/xwiki/test/XWikiTest.java	2006-12-07 12:27:34 UTC (rev 1695)
+++ xwiki/trunk/tests/java/com/xpn/xwiki/test/XWikiTest.java	2006-12-07 16:08:27 UTC (rev 1696)
@@ -30,6 +30,7 @@
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 
 import org.hibernate.HibernateException;
 
@@ -43,6 +44,7 @@
 import com.xpn.xwiki.objects.BaseObject;
 import com.xpn.xwiki.objects.classes.BaseClass;
 import com.xpn.xwiki.render.XWikiRenderingEngine;
+import com.xpn.xwiki.render.XWikiRenderer;
 import com.xpn.xwiki.render.filter.XWikiLinkFilter;
 import com.xpn.xwiki.web.XWikiServletURLFactory;
 
@@ -398,4 +400,66 @@
         text = "HelloJohnWayne";
         assertEquals("Replacement failed" + text, "Hello John Wayne", XWikiLinkFilter.convertWikiWords(text));
     }
+
+    public void testVirtualCopyDocument() throws XWikiException, HibernateException {
+        this.config.put("xwiki.virtual", "1");
+        Utils.createDoc(getXWiki().getHibernateStore(), "XWiki", "XWikiServerXwikitest2", getXWikiContext());
+        Utils.setStringValue("XWiki.XWikiServerXwikitest2", "XWiki.XWikiServerClass", "server", "127.0.0.1", getXWikiContext());
+
+        getXWikiContext().setDatabase("xwikitest2");
+        // TODO: Split into several tests if you need a new clean up.
+        StoreHibernateTest.cleanUp(getXWiki().getHibernateStore(), false, true, getXWikiContext());
+        getXWikiContext().setDatabase("xwikitest");
+        Utils.createDoc(getXWiki().getHibernateStore(), "Main", "CopyTest", getXWikiContext());
+        XWikiDocument sourcedoc = getXWiki().getDocument("Main.CopyTest", getXWikiContext());
+
+        getXWiki().copyDocument("Main.CopyTest", "Main.CopyTest","xwikitest", "xwikitest2", "en", true, false, getXWikiContext());
+        getXWiki().flushCache();
+
+        getXWikiContext().setDatabase("xwikitest2");
+        XWikiDocument targetdoc = getXWiki().getDocument("Main.CopyTest", getXWikiContext());
+
+        assertEquals("Content of doc is different", sourcedoc.getContent(), targetdoc.getContent());
+    }
+
+    public void testVirtualCopyDocumentWithAttachment() throws XWikiException, HibernateException, IOException {
+        this.config.put("xwiki.virtual", "1");
+        Utils.createDoc(getXWiki().getHibernateStore(), "XWiki", "XWikiServerXwikitest2", getXWikiContext());
+        Utils.setStringValue("XWiki.XWikiServerXwikitest2", "XWiki.XWikiServerClass", "server", "127.0.0.1", getXWikiContext());
+
+        getXWikiContext().setDatabase("xwikitest2");
+        StoreHibernateTest.cleanUp(getXWiki().getHibernateStore(), false, true, getXWikiContext());
+
+        getXWikiContext().setDatabase("xwikitest");
+        Utils.createDoc(getXWiki().getHibernateStore(), "Main", "CopyTest", getXWikiContext());
+        XWikiDocument sourcedoc = getXWiki().getDocument("Main.CopyTest", getXWikiContext());
+
+        XWikiAttachment attachment1 = new XWikiAttachment(sourcedoc, Utils.afilename);
+        byte[] attachcontent1 = Utils.getDataAsBytes(new File(Utils.filename));
+        attachment1.setContent(attachcontent1);
+        sourcedoc.saveAttachmentContent(attachment1, getXWikiContext());
+        sourcedoc.getAttachmentList().add(attachment1);
+        getXWiki().saveDocument(sourcedoc, getXWikiContext());
+
+        getXWiki().copyDocument("Main.CopyTest", "Main.CopyTest","xwikitest", "xwikitest2", "en", true, false, getXWikiContext());
+
+        getXWiki().flushCache();
+        getXWikiContext().setDatabase("xwikitest2");
+        XWikiDocument targetdoc = getXWiki().getDocument("Main.CopyTest", getXWikiContext());
+
+        assertEquals("Content of doc is different", sourcedoc.getContent(), targetdoc.getContent());
+
+        List attachlist = targetdoc.getAttachmentList();
+        assertEquals("Attachment is not listed", 1, attachlist.size());
+        XWikiAttachment attachment2 = (XWikiAttachment) attachlist.get(0);
+        assertEquals("Attachment name is not correct", Utils.afilename, attachment2.getFilename());
+        assertEquals("Attachment version is not correct", "1.1", attachment2.getVersion());
+        byte[] attachcontent2 = attachment2.getContent(getXWikiContext());
+        assertEquals("Attachment content size is not correct", attachcontent1.length, attachcontent2.length);
+        for (int i=0;i<attachcontent1.length;i++) {
+            assertEquals("Attachment content byte " + i + " is not correct", attachcontent1[i], attachcontent2[i]);
+        }
+
+    }
+
 }

Modified: xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/core.js
===================================================================
--- xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/core.js	2006-12-07 12:27:34 UTC (rev 1695)
+++ xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/core.js	2006-12-07 16:08:27 UTC (rev 1696)
@@ -58,10 +58,10 @@
                   "â|ã|ä|å|æ|ç|" +
                   "è|é|ê|ë|ì|í|" +
                   "î|ï|ñ|ò|ó|ô|" +
-                  "?|õ|ö|ø|ù|ú|" +
+                  "œ|õ|ö|ø|ù|ú|" +
                   "û|ü|ÿ|" +
                   // Commercial symbols:
-                  "?|©|®|¢|?|¥|" +
+                  "™|©|®|¢|€|¥|" +
                   "£|¤|" +
                   //Other characters
                   ">|<|&|\"";

Modified: xwiki/trunk/web/standard/src/main/webapp/wiki_editor_2/plugins/core.js
===================================================================
--- xwiki/trunk/web/standard/src/main/webapp/wiki_editor_2/plugins/core.js	2006-12-07 12:27:34 UTC (rev 1695)
+++ xwiki/trunk/web/standard/src/main/webapp/wiki_editor_2/plugins/core.js	2006-12-07 16:08:27 UTC (rev 1696)
@@ -59,10 +59,10 @@
                   "â|ã|ä|å|æ|ç|" +
                   "è|é|ê|ë|ì|í|" +
                   "î|ï|ñ|ò|ó|ô|" +
-                  "?|õ|ö|ø|ù|ú|" +
+                  "œ|õ|ö|ø|ù|ú|" +
                   "û|ü|ÿ|" +
                   // Commercial symbols:
-                  "?|©|®|¢|?|¥|" +
+                  "™|©|®|¢|€|¥|" +
                   "£|¤|" +
                   //Other characters
                   ">|<|&|\"";





More information about the Xwiki-notifications mailing list