0001-cmis-add-a-test-that-mock-http-requests-39597.patch
tests/data/cmis/cmis1.out.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<app:service xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" xmlns:app="http://www.w3.org/2007/app"> |
|
3 |
<app:workspace> |
|
4 |
<atom:title>test</atom:title> |
|
5 |
<app:collection href="http://example.com/cmisatom/test/children?id=%40root%40"> |
|
6 |
<cmisra:collectionType>root</cmisra:collectionType> |
|
7 |
<atom:title type="text">Root Collection</atom:title> |
|
8 |
<app:accept>application/atom+xml;type=entry</app:accept> |
|
9 |
<app:accept>application/cmisatom+xml</app:accept> |
|
10 |
</app:collection> |
|
11 |
<app:collection href="http://example.com/cmisatom/test/types"> |
|
12 |
<cmisra:collectionType>types</cmisra:collectionType> |
|
13 |
<atom:title type="text">Types Collection</atom:title> |
|
14 |
<app:accept/> |
|
15 |
</app:collection> |
|
16 |
<app:collection href="http://example.com/cmisatom/test/checkedout"> |
|
17 |
<cmisra:collectionType>checkedout</cmisra:collectionType> |
|
18 |
<atom:title type="text">Checked Out Collection</atom:title> |
|
19 |
<app:accept>application/cmisatom+xml</app:accept> |
|
20 |
</app:collection> |
|
21 |
<app:collection href="http://example.com/cmisatom/test/update"> |
|
22 |
<cmisra:collectionType>update</cmisra:collectionType> |
|
23 |
<atom:title type="text">Bulk Update Collection</atom:title> |
|
24 |
<app:accept>application/cmisatom+xml</app:accept> |
|
25 |
</app:collection> |
|
26 |
<cmisra:repositoryInfo> |
|
27 |
<cmis:repositoryId>test</cmis:repositoryId> |
|
28 |
<cmis:repositoryName>test</cmis:repositoryName> |
|
29 |
<cmis:repositoryDescription>test</cmis:repositoryDescription> |
|
30 |
<cmis:vendorName>OpenCMIS</cmis:vendorName> |
|
31 |
<cmis:productName>OpenCMIS FileShare</cmis:productName> |
|
32 |
<cmis:productVersion>1.1.0</cmis:productVersion> |
|
33 |
<cmis:rootFolderId>@root@</cmis:rootFolderId> |
|
34 |
<cmis:capabilities> |
|
35 |
<cmis:capabilityACL>discover</cmis:capabilityACL> |
|
36 |
<cmis:capabilityAllVersionsSearchable>false</cmis:capabilityAllVersionsSearchable> |
|
37 |
<cmis:capabilityChanges>none</cmis:capabilityChanges> |
|
38 |
<cmis:capabilityContentStreamUpdatability>anytime</cmis:capabilityContentStreamUpdatability> |
|
39 |
<cmis:capabilityGetDescendants>true</cmis:capabilityGetDescendants> |
|
40 |
<cmis:capabilityGetFolderTree>true</cmis:capabilityGetFolderTree> |
|
41 |
<cmis:capabilityOrderBy>common</cmis:capabilityOrderBy> |
|
42 |
<cmis:capabilityMultifiling>false</cmis:capabilityMultifiling> |
|
43 |
<cmis:capabilityPWCSearchable>false</cmis:capabilityPWCSearchable> |
|
44 |
<cmis:capabilityPWCUpdatable>false</cmis:capabilityPWCUpdatable> |
|
45 |
<cmis:capabilityQuery>none</cmis:capabilityQuery> |
|
46 |
<cmis:capabilityRenditions>none</cmis:capabilityRenditions> |
|
47 |
<cmis:capabilityUnfiling>false</cmis:capabilityUnfiling> |
|
48 |
<cmis:capabilityVersionSpecificFiling>false</cmis:capabilityVersionSpecificFiling> |
|
49 |
<cmis:capabilityJoin>none</cmis:capabilityJoin> |
|
50 |
<cmis:capabilityCreatablePropertyTypes/> |
|
51 |
<cmis:capabilityNewTypeSettableAttributes> |
|
52 |
<cmis:id>false</cmis:id> |
|
53 |
<cmis:localName>false</cmis:localName> |
|
54 |
<cmis:localNamespace>false</cmis:localNamespace> |
|
55 |
<cmis:displayName>false</cmis:displayName> |
|
56 |
<cmis:queryName>false</cmis:queryName> |
|
57 |
<cmis:description>false</cmis:description> |
|
58 |
<cmis:creatable>false</cmis:creatable> |
|
59 |
<cmis:fileable>false</cmis:fileable> |
|
60 |
<cmis:queryable>false</cmis:queryable> |
|
61 |
<cmis:fulltextIndexed>false</cmis:fulltextIndexed> |
|
62 |
<cmis:includedInSupertypeQuery>false</cmis:includedInSupertypeQuery> |
|
63 |
<cmis:controllablePolicy>false</cmis:controllablePolicy> |
|
64 |
<cmis:controllableACL>false</cmis:controllableACL> |
|
65 |
</cmis:capabilityNewTypeSettableAttributes> |
|
66 |
</cmis:capabilities> |
|
67 |
<cmis:aclCapability> |
|
68 |
<cmis:supportedPermissions>basic</cmis:supportedPermissions> |
|
69 |
<cmis:propagation>objectonly</cmis:propagation> |
|
70 |
<cmis:permissions> |
|
71 |
<cmis:permission>cmis:read</cmis:permission> |
|
72 |
<cmis:description>Read</cmis:description> |
|
73 |
</cmis:permissions> |
|
74 |
<cmis:permissions> |
|
75 |
<cmis:permission>cmis:write</cmis:permission> |
|
76 |
<cmis:description>Write</cmis:description> |
|
77 |
</cmis:permissions> |
|
78 |
<cmis:permissions> |
|
79 |
<cmis:permission>cmis:all</cmis:permission> |
|
80 |
<cmis:description>All</cmis:description> |
|
81 |
</cmis:permissions> |
|
82 |
<cmis:mapping> |
|
83 |
<cmis:key>canCreateDocument.Folder</cmis:key> |
|
84 |
<cmis:permission>cmis:read</cmis:permission> |
|
85 |
</cmis:mapping> |
|
86 |
<cmis:mapping> |
|
87 |
<cmis:key>canCreateFolder.Folder</cmis:key> |
|
88 |
<cmis:permission>cmis:read</cmis:permission> |
|
89 |
</cmis:mapping> |
|
90 |
<cmis:mapping> |
|
91 |
<cmis:key>canDeleteContent.Document</cmis:key> |
|
92 |
<cmis:permission>cmis:write</cmis:permission> |
|
93 |
</cmis:mapping> |
|
94 |
<cmis:mapping> |
|
95 |
<cmis:key>canDelete.Object</cmis:key> |
|
96 |
<cmis:permission>cmis:all</cmis:permission> |
|
97 |
</cmis:mapping> |
|
98 |
<cmis:mapping> |
|
99 |
<cmis:key>canDeleteTree.Folder</cmis:key> |
|
100 |
<cmis:permission>cmis:all</cmis:permission> |
|
101 |
</cmis:mapping> |
|
102 |
<cmis:mapping> |
|
103 |
<cmis:key>canGetACL.Object</cmis:key> |
|
104 |
<cmis:permission>cmis:read</cmis:permission> |
|
105 |
</cmis:mapping> |
|
106 |
<cmis:mapping> |
|
107 |
<cmis:key>canGetAllVersions.VersionSeries</cmis:key> |
|
108 |
<cmis:permission>cmis:read</cmis:permission> |
|
109 |
</cmis:mapping> |
|
110 |
<cmis:mapping> |
|
111 |
<cmis:key>canGetChildren.Folder</cmis:key> |
|
112 |
<cmis:permission>cmis:read</cmis:permission> |
|
113 |
</cmis:mapping> |
|
114 |
<cmis:mapping> |
|
115 |
<cmis:key>canGetDescendents.Folder</cmis:key> |
|
116 |
<cmis:permission>cmis:read</cmis:permission> |
|
117 |
</cmis:mapping> |
|
118 |
<cmis:mapping> |
|
119 |
<cmis:key>canGetFolderParent.Object</cmis:key> |
|
120 |
<cmis:permission>cmis:read</cmis:permission> |
|
121 |
</cmis:mapping> |
|
122 |
<cmis:mapping> |
|
123 |
<cmis:key>canGetParents.Folder</cmis:key> |
|
124 |
<cmis:permission>cmis:read</cmis:permission> |
|
125 |
</cmis:mapping> |
|
126 |
<cmis:mapping> |
|
127 |
<cmis:key>canGetProperties.Object</cmis:key> |
|
128 |
<cmis:permission>cmis:read</cmis:permission> |
|
129 |
</cmis:mapping> |
|
130 |
<cmis:mapping> |
|
131 |
<cmis:key>canMove.Object</cmis:key> |
|
132 |
<cmis:permission>cmis:write</cmis:permission> |
|
133 |
</cmis:mapping> |
|
134 |
<cmis:mapping> |
|
135 |
<cmis:key>canMove.Source</cmis:key> |
|
136 |
<cmis:permission>cmis:read</cmis:permission> |
|
137 |
</cmis:mapping> |
|
138 |
<cmis:mapping> |
|
139 |
<cmis:key>canMove.Target</cmis:key> |
|
140 |
<cmis:permission>cmis:write</cmis:permission> |
|
141 |
</cmis:mapping> |
|
142 |
<cmis:mapping> |
|
143 |
<cmis:key>canSetContent.Document</cmis:key> |
|
144 |
<cmis:permission>cmis:write</cmis:permission> |
|
145 |
</cmis:mapping> |
|
146 |
<cmis:mapping> |
|
147 |
<cmis:key>canUpdateProperties.Object</cmis:key> |
|
148 |
<cmis:permission>cmis:write</cmis:permission> |
|
149 |
</cmis:mapping> |
|
150 |
<cmis:mapping> |
|
151 |
<cmis:key>canViewContent.Object</cmis:key> |
|
152 |
<cmis:permission>cmis:read</cmis:permission> |
|
153 |
</cmis:mapping> |
|
154 |
</cmis:aclCapability> |
|
155 |
<cmis:cmisVersionSupported>1.1</cmis:cmisVersionSupported> |
|
156 |
<cmis:thinClientURI/> |
|
157 |
<cmis:changesIncomplete>true</cmis:changesIncomplete> |
|
158 |
</cmisra:repositoryInfo> |
|
159 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/typedescendants" href="http://example.com/cmisatom/test/typedesc" type="application/atom+xml;type=feed"/> |
|
160 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree" href="http://example.com/cmisatom/test/foldertree?id=%40root%40" type="application/cmistree+xml"/> |
|
161 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants" href="http://example.com/cmisatom/test/descendants?id=%40root%40" type="application/cmistree+xml" cmisra:id="@root@"/> |
|
162 |
<cmisra:uritemplate> |
|
163 |
<cmisra:template>http://example.com/cmisatom/test/id?id={id}&filter={filter}&includeAllowableActions={includeAllowableActions}&includeACL={includeACL}&includePolicyIds={includePolicyIds}&includeRelationships={includeRelationships}&renditionFilter={renditionFilter}</cmisra:template> |
|
164 |
<cmisra:type>objectbyid</cmisra:type> |
|
165 |
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype> |
|
166 |
</cmisra:uritemplate> |
|
167 |
<cmisra:uritemplate> |
|
168 |
<cmisra:template>http://example.com/cmisatom/test/path?path={path}&filter={filter}&includeAllowableActions={includeAllowableActions}&includeACL={includeACL}&includePolicyIds={includePolicyIds}&includeRelationships={includeRelationships}&renditionFilter={renditionFilter}</cmisra:template> |
|
169 |
<cmisra:type>objectbypath</cmisra:type> |
|
170 |
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype> |
|
171 |
</cmisra:uritemplate> |
|
172 |
<cmisra:uritemplate> |
|
173 |
<cmisra:template>http://example.com/cmisatom/test/type?id={id}</cmisra:template> |
|
174 |
<cmisra:type>typebyid</cmisra:type> |
|
175 |
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype> |
|
176 |
</cmisra:uritemplate> |
|
177 |
</app:workspace> |
|
178 |
</app:service> |
tests/data/cmis/cmis2.out.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" xmlns:app="http://www.w3.org/2007/app"> |
|
3 |
<atom:author> |
|
4 |
<atom:name>cmisuser</atom:name> |
|
5 |
</atom:author> |
|
6 |
<atom:id>http://chemistry.apache.org/TDNSbGMzUXRaVzg9</atom:id> |
|
7 |
<atom:published>2020-02-05T17:11:28Z</atom:published> |
|
8 |
<atom:title>test-eo</atom:title> |
|
9 |
<app:edited>2020-02-08T18:55:44Z</app:edited> |
|
10 |
<atom:updated>2020-02-08T18:55:44Z</atom:updated> |
|
11 |
<cmisra:object> |
|
12 |
<cmis:properties> |
|
13 |
<cmis:propertyId propertyDefinitionId="cmis:objectId"> |
|
14 |
<cmis:value>L3Rlc3QtZW8=</cmis:value> |
|
15 |
</cmis:propertyId> |
|
16 |
<cmis:propertyDateTime propertyDefinitionId="cmis:lastModificationDate"> |
|
17 |
<cmis:value>2020-02-08T18:55:44Z</cmis:value> |
|
18 |
</cmis:propertyDateTime> |
|
19 |
<cmis:propertyString propertyDefinitionId="cmis:changeToken"/> |
|
20 |
<cmis:propertyString propertyDefinitionId="cmis:description"/> |
|
21 |
<cmis:propertyId propertyDefinitionId="cmis:secondaryObjectTypeIds"/> |
|
22 |
<cmis:propertyId propertyDefinitionId="cmis:baseTypeId"> |
|
23 |
<cmis:value>cmis:folder</cmis:value> |
|
24 |
</cmis:propertyId> |
|
25 |
<cmis:propertyString propertyDefinitionId="cmis:path"> |
|
26 |
<cmis:value>/test-eo</cmis:value> |
|
27 |
</cmis:propertyString> |
|
28 |
<cmis:propertyId propertyDefinitionId="cmis:parentId"> |
|
29 |
<cmis:value>@root@</cmis:value> |
|
30 |
</cmis:propertyId> |
|
31 |
<cmis:propertyId propertyDefinitionId="cmis:allowedChildObjectTypeIds"/> |
|
32 |
<cmis:propertyString propertyDefinitionId="cmis:name"> |
|
33 |
<cmis:value>test-eo</cmis:value> |
|
34 |
</cmis:propertyString> |
|
35 |
<cmis:propertyId propertyDefinitionId="cmis:objectTypeId"> |
|
36 |
<cmis:value>cmis:folder</cmis:value> |
|
37 |
</cmis:propertyId> |
|
38 |
<cmis:propertyString propertyDefinitionId="cmis:createdBy"> |
|
39 |
<cmis:value>cmisuser</cmis:value> |
|
40 |
</cmis:propertyString> |
|
41 |
<cmis:propertyString propertyDefinitionId="cmis:lastModifiedBy"> |
|
42 |
<cmis:value>cmisuser</cmis:value> |
|
43 |
</cmis:propertyString> |
|
44 |
<cmis:propertyDateTime propertyDefinitionId="cmis:creationDate"> |
|
45 |
<cmis:value>2020-02-05T17:11:28Z</cmis:value> |
|
46 |
</cmis:propertyDateTime> |
|
47 |
</cmis:properties> |
|
48 |
</cmisra:object> |
|
49 |
<atom:link rel="service" href="http://example.com/cmisatom/test?repositoryId=test" type="application/atomsvc+xml"/> |
|
50 |
<atom:link rel="self" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=entry" cmisra:id="L3Rlc3QtZW8="/> |
|
51 |
<atom:link rel="enclosure" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=entry"/> |
|
52 |
<atom:link rel="edit" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=entry"/> |
|
53 |
<atom:link rel="describedby" href="http://example.com/cmisatom/test/type?id=cmis%3Afolder" type="application/atom+xml;type=entry"/> |
|
54 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions" href="http://example.com/cmisatom/test/allowableactions?id=L3Rlc3QtZW8%3D" type="application/cmisallowableactions+xml"/> |
|
55 |
<atom:link rel="up" href="http://example.com/cmisatom/test/parent?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=entry"/> |
|
56 |
<atom:link rel="down" href="http://example.com/cmisatom/test/children?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=feed"/> |
|
57 |
<atom:link rel="down" href="http://example.com/cmisatom/test/descendants?id=L3Rlc3QtZW8%3D" type="application/cmistree+xml"/> |
|
58 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree" href="http://example.com/cmisatom/test/foldertree?id=L3Rlc3QtZW8%3D" type="application/atom+xml;type=feed"/> |
|
59 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/acl" href="http://example.com/cmisatom/test/acl?id=L3Rlc3QtZW8%3D" type="application/cmisacl+xml"/> |
|
60 |
</atom:entry> |
tests/data/cmis/cmis3.in.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"> |
|
3 |
<cmisra:content> |
|
4 |
<cmisra:mediatype>image/jpeg</cmisra:mediatype> |
|
5 |
<cmisra:base64>c2FsdXQK</cmisra:base64> |
|
6 |
</cmisra:content> |
|
7 |
<cmisra:object xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"> |
|
8 |
<cmis:properties> |
|
9 |
<cmis:propertyId propertyDefinitionId="cmis:objectTypeId"> |
|
10 |
<cmis:value>cmis:document</cmis:value> |
|
11 |
</cmis:propertyId> |
|
12 |
<cmis:propertyString propertyDefinitionId="cmis:name"> |
|
13 |
<cmis:value>test2</cmis:value> |
|
14 |
</cmis:propertyString> |
|
15 |
</cmis:properties> |
|
16 |
</cmisra:object> |
|
17 |
<title>test2</title> |
|
18 |
</entry> |
tests/data/cmis/cmis3.out.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" xmlns:app="http://www.w3.org/2007/app"> |
|
3 |
<atom:author> |
|
4 |
<atom:name>cmisuser</atom:name> |
|
5 |
</atom:author> |
|
6 |
<atom:id>http://chemistry.apache.org/TDNSbGMzUXRaVzh2ZEdWemREST0=</atom:id> |
|
7 |
<atom:published>2020-02-08T19:17:10Z</atom:published> |
|
8 |
<atom:title>test2</atom:title> |
|
9 |
<app:edited>2020-02-08T19:17:10Z</app:edited> |
|
10 |
<atom:updated>2020-02-08T19:17:10Z</atom:updated> |
|
11 |
<atom:content src="http://example.com/cmisatom/test/content/test2?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/octet-stream"/> |
|
12 |
<cmisra:object> |
|
13 |
<cmis:properties> |
|
14 |
<cmis:propertyId propertyDefinitionId="cmis:objectId"> |
|
15 |
<cmis:value>L3Rlc3QtZW8vdGVzdDI=</cmis:value> |
|
16 |
</cmis:propertyId> |
|
17 |
<cmis:propertyDateTime propertyDefinitionId="cmis:lastModificationDate"> |
|
18 |
<cmis:value>2020-02-08T19:17:10Z</cmis:value> |
|
19 |
</cmis:propertyDateTime> |
|
20 |
<cmis:propertyString propertyDefinitionId="cmis:changeToken"/> |
|
21 |
<cmis:propertyString propertyDefinitionId="cmis:description"/> |
|
22 |
<cmis:propertyId propertyDefinitionId="cmis:secondaryObjectTypeIds"/> |
|
23 |
<cmis:propertyId propertyDefinitionId="cmis:baseTypeId"> |
|
24 |
<cmis:value>cmis:document</cmis:value> |
|
25 |
</cmis:propertyId> |
|
26 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isImmutable"> |
|
27 |
<cmis:value>false</cmis:value> |
|
28 |
</cmis:propertyBoolean> |
|
29 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isLatestVersion"> |
|
30 |
<cmis:value>true</cmis:value> |
|
31 |
</cmis:propertyBoolean> |
|
32 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isMajorVersion"> |
|
33 |
<cmis:value>true</cmis:value> |
|
34 |
</cmis:propertyBoolean> |
|
35 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isLatestMajorVersion"> |
|
36 |
<cmis:value>true</cmis:value> |
|
37 |
</cmis:propertyBoolean> |
|
38 |
<cmis:propertyString propertyDefinitionId="cmis:versionLabel"> |
|
39 |
<cmis:value>test2</cmis:value> |
|
40 |
</cmis:propertyString> |
|
41 |
<cmis:propertyId propertyDefinitionId="cmis:versionSeriesId"> |
|
42 |
<cmis:value>L3Rlc3QtZW8vdGVzdDI=</cmis:value> |
|
43 |
</cmis:propertyId> |
|
44 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isVersionSeriesCheckedOut"> |
|
45 |
<cmis:value>false</cmis:value> |
|
46 |
</cmis:propertyBoolean> |
|
47 |
<cmis:propertyString propertyDefinitionId="cmis:versionSeriesCheckedOutBy"/> |
|
48 |
<cmis:propertyString propertyDefinitionId="cmis:versionSeriesCheckedOutId"/> |
|
49 |
<cmis:propertyString propertyDefinitionId="cmis:checkinComment"> |
|
50 |
<cmis:value/> |
|
51 |
</cmis:propertyString> |
|
52 |
<cmis:propertyBoolean propertyDefinitionId="cmis:isPrivateWorkingCopy"> |
|
53 |
<cmis:value>false</cmis:value> |
|
54 |
</cmis:propertyBoolean> |
|
55 |
<cmis:propertyInteger propertyDefinitionId="cmis:contentStreamLength"> |
|
56 |
<cmis:value>6</cmis:value> |
|
57 |
</cmis:propertyInteger> |
|
58 |
<cmis:propertyString propertyDefinitionId="cmis:contentStreamMimeType"> |
|
59 |
<cmis:value>application/octet-stream</cmis:value> |
|
60 |
</cmis:propertyString> |
|
61 |
<cmis:propertyString propertyDefinitionId="cmis:contentStreamFileName"> |
|
62 |
<cmis:value>test2</cmis:value> |
|
63 |
</cmis:propertyString> |
|
64 |
<cmis:propertyId propertyDefinitionId="cmis:contentStreamId"/> |
|
65 |
<cmis:propertyString propertyDefinitionId="cmis:name"> |
|
66 |
<cmis:value>test2</cmis:value> |
|
67 |
</cmis:propertyString> |
|
68 |
<cmis:propertyId propertyDefinitionId="cmis:objectTypeId"> |
|
69 |
<cmis:value>cmis:document</cmis:value> |
|
70 |
</cmis:propertyId> |
|
71 |
<cmis:propertyString propertyDefinitionId="cmis:createdBy"> |
|
72 |
<cmis:value>cmisuser</cmis:value> |
|
73 |
</cmis:propertyString> |
|
74 |
<cmis:propertyString propertyDefinitionId="cmis:lastModifiedBy"> |
|
75 |
<cmis:value>cmisuser</cmis:value> |
|
76 |
</cmis:propertyString> |
|
77 |
<cmis:propertyDateTime propertyDefinitionId="cmis:creationDate"> |
|
78 |
<cmis:value>2020-02-08T19:17:10Z</cmis:value> |
|
79 |
</cmis:propertyDateTime> |
|
80 |
</cmis:properties> |
|
81 |
</cmisra:object> |
|
82 |
<atom:link rel="service" href="http://example.com/cmisatom/test?repositoryId=test" type="application/atomsvc+xml"/> |
|
83 |
<atom:link rel="self" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/atom+xml;type=entry" cmisra:id="L3Rlc3QtZW8vdGVzdDI="/> |
|
84 |
<atom:link rel="enclosure" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/atom+xml;type=entry"/> |
|
85 |
<atom:link rel="edit" href="http://example.com/cmisatom/test/entry?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/atom+xml;type=entry"/> |
|
86 |
<atom:link rel="describedby" href="http://example.com/cmisatom/test/type?id=cmis%3Adocument" type="application/atom+xml;type=entry"/> |
|
87 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions" href="http://example.com/cmisatom/test/allowableactions?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/cmisallowableactions+xml"/> |
|
88 |
<atom:link rel="up" href="http://example.com/cmisatom/test/parents?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/atom+xml;type=feed"/> |
|
89 |
<atom:link rel="edit-media" href="http://example.com/cmisatom/test/content?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/octet-stream"/> |
|
90 |
<atom:link rel="http://docs.oasis-open.org/ns/cmis/link/200908/acl" href="http://example.com/cmisatom/test/acl?id=L3Rlc3QtZW8vdGVzdDI%3D" type="application/cmisacl+xml"/> |
|
91 |
</atom:entry> |
tests/test_cmis.py | ||
---|---|---|
1 | 1 |
import base64 |
2 | 2 |
import httplib2 |
3 |
import xml.etree.ElementTree as ET |
|
4 |
import mock |
|
5 |
import os |
|
3 | 6 |
import re |
4 | 7 | |
5 | 8 |
from cmislib import CmisClient |
6 | 9 |
from cmislib.exceptions import CmisException |
7 | 10 |
from cmislib.exceptions import ObjectNotFoundException |
8 | 11 |
from cmislib.exceptions import PermissionDeniedException |
9 | 12 |
from cmislib.exceptions import UpdateConflictException |
10 | 13 |
from cmislib.exceptions import InvalidArgumentException |
11 | 14 |
from django.contrib.contenttypes.models import ContentType |
15 |
from django.core.urlresolvers import reverse |
|
12 | 16 |
from django.utils.encoding import force_bytes, force_text |
13 | 17 |
from django.utils.six.moves.urllib import error as urllib2 |
14 | 18 |
from mock import call, Mock |
15 | 19 |
import py |
16 | 20 |
import pytest |
17 | 21 | |
18 | 22 |
from passerelle.base.models import ApiUser, AccessRight |
19 | 23 |
from passerelle.apps.cmis.models import CmisConnector |
... | ... | |
462 | 466 |
resp = resp.click(children[0].id) |
463 | 467 |
assert "No more children." in resp.text |
464 | 468 | |
465 | 469 |
resp = resp.click("Back to base types list") |
466 | 470 |
resp = resp.click(root_type2.id) |
467 | 471 |
assert "No more children." in resp.text |
468 | 472 | |
469 | 473 |
resp = app.get('/manage/cmis/slug-cmis/type?id=wrong', status=404) |
474 | ||
475 | ||
476 |
@mock.patch('httplib2.Http.request') |
|
477 |
def test_raw_uploadfile(mocked_request, app, setup): |
|
478 |
""" Simulate the bellow bash query : |
|
479 |
$ http https://passerelle.dev.publik.love/cmis/ged/uploadfile \ |
|
480 |
file:='{"filename": "test2", "content": "c2FsdXQK"}' path=/test-eo |
|
481 |
""" |
|
482 |
file_name = "test2" |
|
483 |
file_content = 'salut\n' |
|
484 |
path = "/test-eo" |
|
485 |
url = reverse('generic-endpoint', kwargs={'connector': 'cmis', |
|
486 |
'endpoint': 'uploadfile', 'slug': setup.slug}) |
|
487 | ||
488 |
def cmis_mocked_request(uri, method="GET", body=None, **kwargs): |
|
489 |
"""simulate the 3 (ordered) HTTP queries involved""" |
|
490 |
response = {'status': '200'} |
|
491 |
if method == 'GET' and uri == 'http://example.com/cmisatom': |
|
492 |
content = open('%s/tests/data/cmis/cmis1.out.xml' % os.getcwd(), 'rb').read() |
|
493 |
elif method == 'GET' and uri == 'http://example.com/cmisatom/test/path?path=/test-eo&filter=&includeAllowableActions=false&includeACL=false&includePolicyIds=false&includeRelationships=&renditionFilter=': |
|
494 |
content = open('%s/tests/data/cmis/cmis2.out.xml' % os.getcwd(), 'rb').read() |
|
495 |
elif method == 'POST' and uri == 'http://example.com/cmisatom/test/children?id=L3Rlc3QtZW8%3D': |
|
496 |
expected_input = open('%s/tests/data/cmis/cmis3.in.xml' % os.getcwd(), 'r').read() |
|
497 |
expected_input = expected_input.replace('\n', '') |
|
498 |
expected_input = re.sub('> *<', '><', expected_input) |
|
499 |
input1 = ET.tostring(ET.XML(expected_input)) |
|
500 | ||
501 |
# reorder properties |
|
502 |
input2 = ET.XML(body) |
|
503 |
objects = input2.find('{http://docs.oasis-open.org/ns/cmis/restatom/200908/}object') |
|
504 |
properties = objects.find('{http://docs.oasis-open.org/ns/cmis/core/200908/}properties') |
|
505 |
data = [] |
|
506 |
for elem in properties: |
|
507 |
key = elem.tag |
|
508 |
data.append((key, elem)) |
|
509 |
data.sort() |
|
510 |
properties[:] = [item[-1] for item in data] |
|
511 |
input2 = ET.tostring(input2) |
|
512 | ||
513 |
if input1 != input2: |
|
514 |
raise Exception('expect [[%s]] but get [[%s]]' % (body, expected_input)) |
|
515 |
content = open('%s/tests/data/cmis/cmis3.out.xml' % os.getcwd(), 'rb').read() |
|
516 |
else: |
|
517 |
raise Exception('my fault error, url is not yet mocked: %s' % uri) |
|
518 |
return (response, content) |
|
519 | ||
520 |
mocked_request.side_effect = cmis_mocked_request |
|
521 |
params = { |
|
522 |
"path": path, |
|
523 |
"file": {"filename": file_name, |
|
524 |
"content": b64encode(file_content), |
|
525 |
"content_type": "image/jpeg"}} |
|
526 |
response = app.post_json(url, params=params) |
|
527 |
json_result = response.json |
|
528 |
assert json_result['err'] == 0 |
|
529 |
assert json_result['data']['properties']['cmis:objectTypeId'] == "cmis:document" |
|
530 |
assert json_result['data']['properties']['cmis:name'] == file_name |
|
470 |
- |