1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.internal.filter.output

File DocumentInstanceOutputFilterStreamTest.java

 

Code metrics

0
194
7
1
394
269
7
0.04
27.71
7
1

Classes

Class Line # Actions
DocumentInstanceOutputFilterStreamTest 52 194 0% 7 0
1.0100%
 

Contributing tests

This file is covered by 7 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package com.xpn.xwiki.internal.filter.output;
21   
22    import java.text.ParseException;
23    import java.util.Arrays;
24    import java.util.List;
25    import java.util.Locale;
26    import java.util.Map;
27   
28    import org.junit.Assert;
29    import org.junit.Test;
30    import org.xwiki.filter.FilterException;
31    import org.xwiki.filter.instance.output.DocumentInstanceOutputProperties;
32    import org.xwiki.model.reference.DocumentReference;
33    import org.xwiki.rendering.syntax.Syntax;
34    import org.xwiki.rendering.syntax.SyntaxType;
35    import org.xwiki.test.annotation.AllComponents;
36   
37    import com.xpn.xwiki.XWikiException;
38    import com.xpn.xwiki.doc.XWikiAttachment;
39    import com.xpn.xwiki.doc.XWikiDocument;
40    import com.xpn.xwiki.internal.filter.AbstractInstanceFilterStreamTest;
41    import com.xpn.xwiki.internal.filter.output.DocumentInstanceOutputFilterStream;
42    import com.xpn.xwiki.objects.BaseObject;
43    import com.xpn.xwiki.objects.classes.BaseClass;
44    import com.xpn.xwiki.objects.classes.NumberClass;
45   
46    /**
47    * Validate {@link DocumentInstanceOutputFilterStream}.
48    *
49    * @version $Id: 8328a5dff82f537c8c7beee2b0b52d1790cbad6b $
50    */
51    @AllComponents
 
52    public class DocumentInstanceOutputFilterStreamTest extends AbstractInstanceFilterStreamTest
53    {
54    // Tests
55   
 
56  1 toggle @Test
57    public void testImportDocumentsPreserveVersion() throws FilterException, XWikiException, ParseException
58    {
59  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
60   
61  1 outputProperties.setVersionPreserved(true);
62  1 outputProperties.setVerbose(false);
63   
64  1 importFromXML("document1", outputProperties);
65   
66  1 XWikiDocument document =
67    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
68    this.oldcore.getXWikiContext());
69   
70  1 Assert.assertFalse(document.isNew());
71   
72  1 Assert.assertEquals(Locale.ENGLISH, document.getDefaultLocale());
73  1 Assert.assertEquals(new DocumentReference("wiki", "space", "parent"), document.getParentReference());
74  1 Assert.assertEquals("customclass", document.getCustomClass());
75  1 Assert.assertEquals("title", document.getTitle());
76  1 Assert.assertEquals("defaultTemplate", document.getDefaultTemplate());
77  1 Assert.assertEquals("validationScript", document.getValidationScript());
78  1 Assert.assertEquals(new Syntax(new SyntaxType("syntax", "syntax"), "1.0"), document.getSyntax());
79  1 Assert.assertEquals(true, document.isHidden());
80  1 Assert.assertEquals("content", document.getContent());
81   
82  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "creator"), document.getCreatorReference());
83  1 Assert.assertEquals(toDate("2000-01-01 00:00:00.0 UTC"), document.getCreationDate());
84  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "author"), document.getAuthorReference());
85  1 Assert.assertEquals(toDate("2000-01-02 00:00:00.0 UTC"), document.getDate());
86  1 Assert.assertEquals(toDate("2000-01-03 00:00:00.0 UTC"), document.getContentUpdateDate());
87  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "contentAuthor"),
88    document.getContentAuthorReference());
89  1 Assert.assertEquals(true, document.isMinorEdit());
90  1 Assert.assertEquals("comment", document.getComment());
91  1 Assert.assertEquals("1.42", document.getVersion());
92   
93    // Attachment
94   
95  1 Assert.assertEquals(1, document.getAttachmentList().size());
96  1 XWikiAttachment attachment = document.getAttachment("attachment.txt");
97  1 Assert.assertEquals("attachment.txt", attachment.getFilename());
98  1 Assert.assertEquals(10, attachment.getFilesize());
99  1 Assert.assertTrue(Arrays.equals(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
100    attachment.getContent(this.oldcore.getXWikiContext())));
101   
102  1 Assert.assertEquals("XWiki.attachmentAuthor", attachment.getAuthor());
103  1 Assert.assertEquals(toDate("2000-01-05 00:00:00.0 UTC"), attachment.getDate());
104  1 Assert.assertEquals("1.1", attachment.getVersion());
105  1 Assert.assertEquals("attachment comment", attachment.getComment());
106   
107    // XClass
108   
109  1 BaseClass xclass = document.getXClass();
110  1 Assert.assertEquals(1, xclass.getFieldList().size());
111  1 Assert.assertEquals("customClass", xclass.getCustomClass());
112  1 Assert.assertEquals("customMapping", xclass.getCustomMapping());
113  1 Assert.assertEquals("defaultViewSheet", xclass.getDefaultViewSheet());
114  1 Assert.assertEquals("defaultEditSheet", xclass.getDefaultEditSheet());
115  1 Assert.assertEquals("defaultWeb", xclass.getDefaultWeb());
116  1 Assert.assertEquals("nameField", xclass.getNameField());
117  1 Assert.assertEquals("validationScript", xclass.getValidationScript());
118   
119  1 NumberClass numberFiled = (NumberClass) xclass.getField("prop1");
120  1 Assert.assertEquals("prop1", numberFiled.getName());
121  1 Assert.assertEquals(false, numberFiled.isDisabled());
122  1 Assert.assertEquals(1, numberFiled.getNumber());
123  1 Assert.assertEquals("long", numberFiled.getNumberType());
124  1 Assert.assertEquals("Prop1", numberFiled.getPrettyName());
125  1 Assert.assertEquals(30, numberFiled.getSize());
126  1 Assert.assertEquals(false, numberFiled.isUnmodifiable());
127   
128    // Objects
129   
130  1 Map<DocumentReference, List<BaseObject>> objects = document.getXObjects();
131  1 Assert.assertEquals(2, objects.size());
132   
133    // Object 1
134   
135  1 List<BaseObject> documentObjects = objects.get(new DocumentReference("wiki", "space", "page"));
136  1 Assert.assertEquals(1, documentObjects.size());
137  1 BaseObject documentObject = documentObjects.get(0);
138  1 Assert.assertEquals(0, documentObject.getNumber());
139  1 Assert.assertEquals(new DocumentReference("wiki", "space", "page"), documentObject.getXClassReference());
140  1 Assert.assertEquals("e2167721-2a64-430c-9520-bac1c0ee68cb", documentObject.getGuid());
141   
142  1 Assert.assertEquals(1, documentObject.getFieldList().size());
143  1 Assert.assertEquals(1, documentObject.getIntValue("prop1"));
144   
145    // Object 2
146   
147  1 List<BaseObject> otherObjects = objects.get(new DocumentReference("wiki", "otherspace", "otherclass"));
148  1 Assert.assertEquals(1, otherObjects.size());
149  1 BaseObject otherObject = otherObjects.get(0);
150  1 Assert.assertEquals(0, otherObject.getNumber());
151  1 Assert
152    .assertEquals(new DocumentReference("wiki", "otherspace", "otherclass"), otherObject.getXClassReference());
153  1 Assert.assertEquals("8eaeac52-e2f2-47b2-87e1-bc6909597b39", otherObject.getGuid());
154   
155  1 Assert.assertEquals(1, otherObject.getFieldList().size());
156  1 Assert.assertEquals(2, otherObject.getIntValue("prop2"));
157    }
158   
 
159  1 toggle @Test
160    public void testImportDocumentsWithoutLocaleAndRevision() throws FilterException, XWikiException, ParseException
161    {
162  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
163   
164  1 outputProperties.setVersionPreserved(true);
165  1 outputProperties.setVerbose(false);
166   
167  1 importFromXML("document1-2", outputProperties);
168   
169  1 XWikiDocument document =
170    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
171    this.oldcore.getXWikiContext());
172   
173  1 Assert.assertFalse(document.isNew());
174   
175  1 Assert.assertEquals(Locale.ENGLISH, document.getDefaultLocale());
176  1 Assert.assertEquals(new DocumentReference("wiki", "space", "parent"), document.getParentReference());
177  1 Assert.assertEquals("customclass", document.getCustomClass());
178  1 Assert.assertEquals("title", document.getTitle());
179  1 Assert.assertEquals("defaultTemplate", document.getDefaultTemplate());
180  1 Assert.assertEquals("validationScript", document.getValidationScript());
181  1 Assert.assertEquals(new Syntax(new SyntaxType("syntax", "syntax"), "1.0"), document.getSyntax());
182  1 Assert.assertEquals(true, document.isHidden());
183  1 Assert.assertEquals("content", document.getContent());
184   
185  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "creator"), document.getCreatorReference());
186  1 Assert.assertEquals(toDate("2000-01-01 00:00:00.0 UTC"), document.getCreationDate());
187  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "author"), document.getAuthorReference());
188  1 Assert.assertEquals(toDate("2000-01-02 00:00:00.0 UTC"), document.getDate());
189  1 Assert.assertEquals(toDate("2000-01-03 00:00:00.0 UTC"), document.getContentUpdateDate());
190  1 Assert.assertEquals(new DocumentReference("wiki", "XWiki", "contentAuthor"),
191    document.getContentAuthorReference());
192  1 Assert.assertEquals(true, document.isMinorEdit());
193  1 Assert.assertEquals("comment", document.getComment());
194  1 Assert.assertEquals("1.1", document.getVersion());
195   
196    // Attachment
197   
198  1 Assert.assertEquals(1, document.getAttachmentList().size());
199  1 XWikiAttachment attachment = document.getAttachment("attachment.txt");
200  1 Assert.assertEquals("attachment.txt", attachment.getFilename());
201  1 Assert.assertEquals(10, attachment.getFilesize());
202  1 Assert.assertTrue(Arrays.equals(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
203    attachment.getContent(this.oldcore.getXWikiContext())));
204   
205  1 Assert.assertEquals("XWiki.attachmentAuthor", attachment.getAuthor());
206  1 Assert.assertEquals(toDate("2000-01-05 00:00:00.0 UTC"), attachment.getDate());
207  1 Assert.assertEquals("1.1", attachment.getVersion());
208  1 Assert.assertEquals("attachment comment", attachment.getComment());
209   
210    // XClass
211   
212  1 BaseClass xclass = document.getXClass();
213  1 Assert.assertEquals("customClass", xclass.getCustomClass());
214  1 Assert.assertEquals("customMapping", xclass.getCustomMapping());
215  1 Assert.assertEquals("defaultViewSheet", xclass.getDefaultViewSheet());
216  1 Assert.assertEquals("defaultEditSheet", xclass.getDefaultEditSheet());
217  1 Assert.assertEquals("defaultWeb", xclass.getDefaultWeb());
218  1 Assert.assertEquals("nameField", xclass.getNameField());
219  1 Assert.assertEquals("validationScript", xclass.getValidationScript());
220  1 Assert.assertEquals(1, xclass.getFieldList().size());
221   
222  1 NumberClass numberFiled = (NumberClass) xclass.getField("prop1");
223  1 Assert.assertEquals("prop1", numberFiled.getName());
224  1 Assert.assertEquals(false, numberFiled.isDisabled());
225  1 Assert.assertEquals(1, numberFiled.getNumber());
226  1 Assert.assertEquals("long", numberFiled.getNumberType());
227  1 Assert.assertEquals("Prop1", numberFiled.getPrettyName());
228  1 Assert.assertEquals(30, numberFiled.getSize());
229  1 Assert.assertEquals(false, numberFiled.isUnmodifiable());
230   
231    // Objects
232   
233  1 Map<DocumentReference, List<BaseObject>> objects = document.getXObjects();
234  1 Assert.assertEquals(2, objects.size());
235   
236    // Object 1
237   
238  1 List<BaseObject> documentObjects = objects.get(new DocumentReference("wiki", "space", "page"));
239  1 Assert.assertEquals(1, documentObjects.size());
240  1 BaseObject documentObject = documentObjects.get(0);
241  1 Assert.assertEquals(0, documentObject.getNumber());
242  1 Assert.assertEquals(new DocumentReference("wiki", "space", "page"), documentObject.getXClassReference());
243  1 Assert.assertEquals("e2167721-2a64-430c-9520-bac1c0ee68cb", documentObject.getGuid());
244   
245  1 Assert.assertEquals(1, documentObject.getFieldList().size());
246  1 Assert.assertEquals(1, documentObject.getIntValue("prop1"));
247   
248    // Object 2
249   
250  1 List<BaseObject> otherObjects = objects.get(new DocumentReference("wiki", "otherspace", "otherclass"));
251  1 Assert.assertEquals(1, otherObjects.size());
252  1 BaseObject otherObject = otherObjects.get(0);
253  1 Assert.assertEquals(0, otherObject.getNumber());
254  1 Assert
255    .assertEquals(new DocumentReference("wiki", "otherspace", "otherclass"), otherObject.getXClassReference());
256  1 Assert.assertEquals("8eaeac52-e2f2-47b2-87e1-bc6909597b39", otherObject.getGuid());
257   
258  1 Assert.assertEquals(1, otherObject.getFieldList().size());
259  1 Assert.assertEquals(2, otherObject.getIntValue("prop2"));
260    }
261   
 
262  1 toggle @Test
263    public void testDocumentwithunexistingobjectproperty() throws FilterException, XWikiException, ParseException
264    {
265  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
266   
267  1 outputProperties.setVerbose(false);
268   
269  1 importFromXML("documentwithunexistingobjectproperty", outputProperties);
270   
271  1 XWikiDocument document =
272    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
273    this.oldcore.getXWikiContext());
274   
275  1 Assert.assertFalse(document.isNew());
276   
277    // Objects
278   
279  1 Map<DocumentReference, List<BaseObject>> objects = document.getXObjects();
280  1 Assert.assertEquals(1, objects.size());
281   
282  1 List<BaseObject> documentObjects = objects.get(new DocumentReference("wiki", "space", "page"));
283  1 Assert.assertEquals(1, documentObjects.size());
284  1 BaseObject documentObject = documentObjects.get(0);
285  1 Assert.assertEquals(0, documentObject.getNumber());
286  1 Assert.assertEquals(new DocumentReference("wiki", "space", "page"), documentObject.getXClassReference());
287   
288  1 Assert.assertEquals(1, documentObject.getFieldList().size());
289  1 Assert.assertEquals(1, documentObject.getIntValue("prop1"));
290    }
291   
 
292  1 toggle @Test
293    public void testDocumentwithnumberversion() throws FilterException, XWikiException, ParseException
294    {
295  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
296   
297  1 outputProperties.setVerbose(false);
298   
299  1 importFromXML("documentwithnumberversion", outputProperties);
300   
301  1 XWikiDocument document =
302    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
303    this.oldcore.getXWikiContext());
304   
305  1 Assert.assertFalse(document.isNew());
306   
307    // Version
308   
309  1 Assert.assertEquals("1.1", document.getVersion());
310    }
311   
 
312  1 toggle @Test
313    public void testDocumentwithoutauthorandcreator() throws FilterException, XWikiException, ParseException
314    {
315  1 DocumentReference contextUser = new DocumentReference("wiki", "XWiki", "contextuser");
316  1 this.oldcore.getXWikiContext().setUserReference(contextUser);
317   
318  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
319   
320  1 outputProperties.setVerbose(false);
321  1 outputProperties.setAuthorPreserved(true);
322   
323  1 importFromXML("documentwithnumberversion", outputProperties);
324   
325  1 XWikiDocument document =
326    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
327    this.oldcore.getXWikiContext());
328   
329  1 Assert.assertFalse(document.isNew());
330   
331  1 Assert.assertEquals(contextUser, document.getCreatorReference());
332  1 Assert.assertEquals(contextUser, document.getAuthorReference());
333  1 Assert.assertEquals(contextUser, document.getContentAuthorReference());
334    }
335   
 
336  1 toggle @Test
337    public void testDocumentwithattachmentwithoutdate() throws FilterException, XWikiException, ParseException
338    {
339  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
340   
341  1 outputProperties.setVerbose(false);
342   
343  1 importFromXML("documentwithattachmentwithoutdate", outputProperties);
344   
345  1 XWikiDocument document =
346    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
347    this.oldcore.getXWikiContext());
348   
349  1 Assert.assertFalse(document.isNew());
350   
351    // Attachment
352   
353  1 Assert.assertEquals(1, document.getAttachmentList().size());
354  1 XWikiAttachment attachment = document.getAttachment("attachment.txt");
355  1 Assert.assertEquals("attachment.txt", attachment.getFilename());
356  1 Assert.assertEquals(10, attachment.getFilesize());
357  1 Assert.assertTrue(Arrays.equals(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
358    attachment.getContent(this.oldcore.getXWikiContext())));
359   
360  1 Assert.assertNotNull(attachment.getDate());
361  1 Assert.assertEquals("1.1", attachment.getVersion());
362  1 Assert.assertEquals("", attachment.getComment());
363    }
364   
 
365  1 toggle @Test
366    public void testDocumentwithunknownclassproperty() throws FilterException, XWikiException, ParseException
367    {
368  1 DocumentInstanceOutputProperties outputProperties = new DocumentInstanceOutputProperties();
369   
370  1 outputProperties.setVerbose(false);
371   
372  1 importFromXML("documentwithunknownClassproperty", outputProperties);
373   
374  1 XWikiDocument document =
375    this.oldcore.getSpyXWiki().getDocument(new DocumentReference("wiki", "space", "page"),
376    this.oldcore.getXWikiContext());
377   
378  1 Assert.assertFalse(document.isNew());
379   
380    // Objects
381   
382  1 Map<DocumentReference, List<BaseObject>> objects = document.getXObjects();
383  1 Assert.assertEquals(1, objects.size());
384   
385  1 List<BaseObject> documentObjects = objects.get(new DocumentReference("wiki", "space", "page"));
386  1 Assert.assertEquals(1, documentObjects.size());
387  1 BaseObject documentObject = documentObjects.get(0);
388  1 Assert.assertEquals(0, documentObject.getNumber());
389  1 Assert.assertEquals(new DocumentReference("wiki", "space", "page"), documentObject.getXClassReference());
390   
391  1 Assert.assertEquals(1, documentObject.getFieldList().size());
392  1 Assert.assertEquals(1, documentObject.getIntValue("prop1"));
393    }
394    }