groupdocs 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +9 -9
  3. data/CHANGELOG.md +482 -477
  4. data/Gemfile +3 -3
  5. data/LICENSE.txt +21 -21
  6. data/README.md +94 -94
  7. data/Rakefile +9 -9
  8. data/examples/README.md +12 -12
  9. data/examples/api-samples/Gemfile +5 -5
  10. data/examples/api-samples/Gemfile.lock +49 -49
  11. data/examples/api-samples/README.md +23 -23
  12. data/examples/api-samples/public/css/style.css +229 -229
  13. data/examples/api-samples/public/docs/annotation-sample.html +167 -167
  14. data/examples/api-samples/public/docs/docco.css +500 -500
  15. data/examples/api-samples/public/docs/envelope-sample.html +374 -374
  16. data/examples/api-samples/public/docs/sample01.html +181 -181
  17. data/examples/api-samples/public/docs/sample02.html +199 -199
  18. data/examples/api-samples/public/docs/sample03.html +318 -318
  19. data/examples/api-samples/public/docs/sample04.html +217 -217
  20. data/examples/api-samples/public/docs/sample05.html +296 -296
  21. data/examples/api-samples/public/docs/sample06.html +347 -347
  22. data/examples/api-samples/public/docs/sample07.html +209 -209
  23. data/examples/api-samples/public/docs/sample08.html +277 -277
  24. data/examples/api-samples/public/docs/sample09.html +314 -314
  25. data/examples/api-samples/public/docs/sample10.html +270 -270
  26. data/examples/api-samples/public/docs/sample11.html +462 -462
  27. data/examples/api-samples/public/docs/sample12.html +199 -199
  28. data/examples/api-samples/public/docs/sample13.html +201 -201
  29. data/examples/api-samples/public/docs/sample14.html +204 -204
  30. data/examples/api-samples/public/docs/sample15.html +182 -182
  31. data/examples/api-samples/public/docs/sample16.html +234 -234
  32. data/examples/api-samples/public/docs/sample17.html +309 -309
  33. data/examples/api-samples/public/docs/sample18.html +721 -721
  34. data/examples/api-samples/public/docs/sample19.html +631 -631
  35. data/examples/api-samples/public/docs/sample20.html +230 -230
  36. data/examples/api-samples/public/docs/sample21.html +790 -790
  37. data/examples/api-samples/public/docs/sample22.html +408 -408
  38. data/examples/api-samples/public/docs/sample25.html +550 -550
  39. data/examples/api-samples/public/templates/base-simple_source.html +191 -191
  40. data/examples/api-samples/public/templates/testdocument.html +100 -100
  41. data/examples/api-samples/public/templates/welcome.htm +137 -137
  42. data/examples/api-samples/samples/annotation-sample.rb +56 -56
  43. data/examples/api-samples/samples/envelope-sample.rb +133 -133
  44. data/examples/api-samples/samples/sample01.rb +44 -44
  45. data/examples/api-samples/samples/sample02.rb +50 -50
  46. data/examples/api-samples/samples/sample03.rb +79 -79
  47. data/examples/api-samples/samples/sample04.rb +54 -54
  48. data/examples/api-samples/samples/sample05.rb +83 -83
  49. data/examples/api-samples/samples/sample06.rb +86 -86
  50. data/examples/api-samples/samples/sample07.rb +59 -59
  51. data/examples/api-samples/samples/sample08.rb +76 -76
  52. data/examples/api-samples/samples/sample09.rb +85 -85
  53. data/examples/api-samples/samples/sample10.rb +70 -70
  54. data/examples/api-samples/samples/sample11.rb +132 -132
  55. data/examples/api-samples/samples/sample12.rb +48 -48
  56. data/examples/api-samples/samples/sample13.rb +49 -49
  57. data/examples/api-samples/samples/sample14.rb +54 -54
  58. data/examples/api-samples/samples/sample15.rb +43 -43
  59. data/examples/api-samples/samples/sample16.rb +57 -57
  60. data/examples/api-samples/samples/sample17.rb +70 -70
  61. data/examples/api-samples/samples/sample18.rb +190 -190
  62. data/examples/api-samples/samples/sample19.rb +188 -188
  63. data/examples/api-samples/samples/sample20.rb +68 -68
  64. data/examples/api-samples/samples/sample21.rb +212 -212
  65. data/examples/api-samples/samples/sample22.rb +109 -109
  66. data/examples/api-samples/samples/sample25.rb +127 -127
  67. data/examples/api-samples/views/_others_samples.haml +233 -233
  68. data/examples/api-samples/views/annotation_sample.haml +63 -63
  69. data/examples/api-samples/views/envelope_sample.haml +72 -72
  70. data/examples/api-samples/views/index.haml +235 -235
  71. data/examples/api-samples/views/layout.haml +3 -3
  72. data/examples/api-samples/views/sample01.haml +63 -63
  73. data/examples/api-samples/views/sample02.haml +52 -52
  74. data/examples/api-samples/views/sample03.haml +87 -87
  75. data/examples/api-samples/views/sample04.haml +55 -55
  76. data/examples/api-samples/views/sample05.haml +86 -86
  77. data/examples/api-samples/views/sample06.haml +58 -58
  78. data/examples/api-samples/views/sample07.haml +52 -52
  79. data/examples/api-samples/views/sample08.haml +100 -100
  80. data/examples/api-samples/views/sample09.haml +95 -95
  81. data/examples/api-samples/views/sample10.haml +93 -93
  82. data/examples/api-samples/views/sample11.haml +140 -140
  83. data/examples/api-samples/views/sample12.haml +68 -68
  84. data/examples/api-samples/views/sample13.haml +64 -64
  85. data/examples/api-samples/views/sample14.haml +60 -60
  86. data/examples/api-samples/views/sample15.haml +51 -51
  87. data/examples/api-samples/views/sample16.haml +50 -50
  88. data/examples/api-samples/views/sample17.haml +54 -54
  89. data/examples/api-samples/views/sample18.haml +143 -143
  90. data/examples/api-samples/views/sample19.haml +92 -92
  91. data/examples/api-samples/views/sample20.haml +54 -54
  92. data/examples/api-samples/views/sample21.haml +123 -123
  93. data/examples/api-samples/views/sample22.haml +106 -106
  94. data/examples/api-samples/views/sample25.haml +101 -101
  95. data/examples/api-samples/views/sample31.haml +2 -2
  96. data/examples/api-samples/web.rb +20 -20
  97. data/examples/viewer/Gemfile +5 -5
  98. data/examples/viewer/app.rb +52 -52
  99. data/groupdocs.gemspec +31 -31
  100. data/lib/groupdocs.rb +62 -62
  101. data/lib/groupdocs/api.rb +6 -6
  102. data/lib/groupdocs/api/entity.rb +112 -112
  103. data/lib/groupdocs/api/helpers.rb +11 -11
  104. data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
  105. data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
  106. data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
  107. data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
  108. data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
  109. data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
  110. data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
  111. data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
  112. data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
  113. data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
  114. data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
  115. data/lib/groupdocs/api/request.rb +91 -91
  116. data/lib/groupdocs/datasource.rb +249 -249
  117. data/lib/groupdocs/datasource/field.rb +39 -39
  118. data/lib/groupdocs/document.rb +1550 -1550
  119. data/lib/groupdocs/document/annotation.rb +421 -421
  120. data/lib/groupdocs/document/annotation/reply.rb +173 -173
  121. data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
  122. data/lib/groupdocs/document/change.rb +56 -56
  123. data/lib/groupdocs/document/field.rb +53 -53
  124. data/lib/groupdocs/document/metadata.rb +32 -32
  125. data/lib/groupdocs/document/rectangle.rb +18 -18
  126. data/lib/groupdocs/document/view.rb +36 -36
  127. data/lib/groupdocs/errors.rb +8 -8
  128. data/lib/groupdocs/job.rb +468 -468
  129. data/lib/groupdocs/questionnaire.rb +530 -530
  130. data/lib/groupdocs/questionnaire/collector.rb +335 -335
  131. data/lib/groupdocs/questionnaire/execution.rb +181 -181
  132. data/lib/groupdocs/questionnaire/page.rb +43 -43
  133. data/lib/groupdocs/questionnaire/question.rb +108 -108
  134. data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
  135. data/lib/groupdocs/signature.rb +380 -380
  136. data/lib/groupdocs/signature/contact.rb +181 -181
  137. data/lib/groupdocs/signature/envelope.rb +747 -747
  138. data/lib/groupdocs/signature/envelope/log.rb +20 -20
  139. data/lib/groupdocs/signature/field.rb +286 -286
  140. data/lib/groupdocs/signature/field/location.rb +71 -71
  141. data/lib/groupdocs/signature/form.rb +804 -804
  142. data/lib/groupdocs/signature/list.rb +92 -92
  143. data/lib/groupdocs/signature/recipient.rb +79 -79
  144. data/lib/groupdocs/signature/role.rb +54 -54
  145. data/lib/groupdocs/signature/shared.rb +6 -6
  146. data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
  147. data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
  148. data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
  149. data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
  150. data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
  151. data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
  152. data/lib/groupdocs/signature/template.rb +124 -124
  153. data/lib/groupdocs/storage.rb +44 -44
  154. data/lib/groupdocs/storage/file.rb +432 -432
  155. data/lib/groupdocs/storage/folder.rb +288 -288
  156. data/lib/groupdocs/storage/package.rb +48 -48
  157. data/lib/groupdocs/storage/provider.rb +32 -32
  158. data/lib/groupdocs/subscription.rb +323 -323
  159. data/lib/groupdocs/subscription/limit.rb +20 -20
  160. data/lib/groupdocs/user.rb +955 -930
  161. data/lib/groupdocs/version.rb +3 -3
  162. data/spec/groupdocs/api/entity_spec.rb +55 -55
  163. data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
  164. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
  165. data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
  166. data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
  167. data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
  168. data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
  169. data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
  170. data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
  171. data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
  172. data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
  173. data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
  174. data/spec/groupdocs/api/request_spec.rb +112 -112
  175. data/spec/groupdocs/datasource/field_spec.rb +29 -29
  176. data/spec/groupdocs/datasource_spec.rb +145 -145
  177. data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
  178. data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
  179. data/spec/groupdocs/document/annotation_spec.rb +234 -234
  180. data/spec/groupdocs/document/change_spec.rb +39 -39
  181. data/spec/groupdocs/document/field_spec.rb +28 -28
  182. data/spec/groupdocs/document/metadata_spec.rb +21 -21
  183. data/spec/groupdocs/document/rectangle_spec.rb +14 -14
  184. data/spec/groupdocs/document/view_spec.rb +33 -33
  185. data/spec/groupdocs/document_spec.rb +859 -859
  186. data/spec/groupdocs/errors_spec.rb +7 -7
  187. data/spec/groupdocs/job_spec.rb +323 -323
  188. data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
  189. data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
  190. data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
  191. data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
  192. data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
  193. data/spec/groupdocs/questionnaire_spec.rb +295 -295
  194. data/spec/groupdocs/signature/contact_spec.rb +142 -142
  195. data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
  196. data/spec/groupdocs/signature/envelope_spec.rb +384 -384
  197. data/spec/groupdocs/signature/field/location_spec.rb +40 -40
  198. data/spec/groupdocs/signature/field_spec.rb +235 -235
  199. data/spec/groupdocs/signature/form_spec.rb +205 -205
  200. data/spec/groupdocs/signature/list_spec.rb +87 -87
  201. data/spec/groupdocs/signature/recipient_spec.rb +26 -26
  202. data/spec/groupdocs/signature/role_spec.rb +47 -47
  203. data/spec/groupdocs/signature/template_spec.rb +80 -80
  204. data/spec/groupdocs/signature_spec.rb +194 -194
  205. data/spec/groupdocs/storage/file_spec.rb +303 -303
  206. data/spec/groupdocs/storage/folder_spec.rb +270 -270
  207. data/spec/groupdocs/storage/package_spec.rb +38 -38
  208. data/spec/groupdocs/storage/provider_spec.rb +21 -21
  209. data/spec/groupdocs/storage_spec.rb +27 -27
  210. data/spec/groupdocs/subscription/limit_spec.rb +16 -16
  211. data/spec/groupdocs/subscription_spec.rb +74 -74
  212. data/spec/groupdocs/user_spec.rb +257 -257
  213. data/spec/groupdocs_spec.rb +63 -63
  214. data/spec/spec_helper.rb +73 -73
  215. data/spec/support/json/annotation_access_set.json +11 -11
  216. data/spec/support/json/annotation_collaborators_get.json +16 -16
  217. data/spec/support/json/annotation_collaborators_set.json +16 -16
  218. data/spec/support/json/annotation_create.json +12 -12
  219. data/spec/support/json/annotation_list.json +32 -32
  220. data/spec/support/json/annotation_marker_move.json +10 -10
  221. data/spec/support/json/annotation_move.json +8 -8
  222. data/spec/support/json/annotation_remove.json +9 -9
  223. data/spec/support/json/annotation_replies_create.json +9 -9
  224. data/spec/support/json/annotation_replies_get.json +25 -25
  225. data/spec/support/json/annotation_reviewers_get.json +18 -18
  226. data/spec/support/json/comparison_changes.json +46 -46
  227. data/spec/support/json/comparison_compare.json +8 -8
  228. data/spec/support/json/comparison_document.json +10 -10
  229. data/spec/support/json/contact_add.json +12 -12
  230. data/spec/support/json/contacts_get.json +19 -19
  231. data/spec/support/json/contacts_import.json +8 -8
  232. data/spec/support/json/datasource_add.json +8 -8
  233. data/spec/support/json/datasource_get.json +22 -22
  234. data/spec/support/json/datasource_remove.json +8 -8
  235. data/spec/support/json/datasource_update.json +8 -8
  236. data/spec/support/json/delete_account.json +9 -9
  237. data/spec/support/json/document_access_info_get.json +14 -14
  238. data/spec/support/json/document_convert.json +8 -8
  239. data/spec/support/json/document_datasource.json +10 -10
  240. data/spec/support/json/document_fields.json +34 -34
  241. data/spec/support/json/document_formats.json +8 -8
  242. data/spec/support/json/document_metadata.json +15 -15
  243. data/spec/support/json/document_page_images_get.json +20 -20
  244. data/spec/support/json/document_questionnaire_create.json +9 -9
  245. data/spec/support/json/document_questionnaires.json +23 -23
  246. data/spec/support/json/document_sharers_remove.json +8 -8
  247. data/spec/support/json/document_sharers_set.json +16 -16
  248. data/spec/support/json/document_thumbnails.json +24 -24
  249. data/spec/support/json/document_views.json +32 -32
  250. data/spec/support/json/envelope_get.json +46 -46
  251. data/spec/support/json/envelope_logs.json +16 -16
  252. data/spec/support/json/envelope_recipient_add.json +26 -26
  253. data/spec/support/json/envelopes_all.json +48 -48
  254. data/spec/support/json/envelopes_resources.json +31 -31
  255. data/spec/support/json/file_compress.json +8 -8
  256. data/spec/support/json/file_copy.json +14 -14
  257. data/spec/support/json/file_delete.json +5 -5
  258. data/spec/support/json/file_move.json +14 -14
  259. data/spec/support/json/file_upload.json +8 -8
  260. data/spec/support/json/folder_create.json +8 -8
  261. data/spec/support/json/folder_delete.json +5 -5
  262. data/spec/support/json/folder_list.json +22 -22
  263. data/spec/support/json/folder_move.json +8 -8
  264. data/spec/support/json/folder_sharers_get.json +16 -16
  265. data/spec/support/json/folder_sharers_remove.json +8 -8
  266. data/spec/support/json/folder_sharers_set.json +16 -16
  267. data/spec/support/json/form_get.json +21 -21
  268. data/spec/support/json/forms_all.json +23 -23
  269. data/spec/support/json/job_add_url.json +8 -8
  270. data/spec/support/json/job_create.json +8 -8
  271. data/spec/support/json/job_documents.json +40 -40
  272. data/spec/support/json/job_file_add.json +8 -8
  273. data/spec/support/json/job_get.json +30 -30
  274. data/spec/support/json/job_update.json +7 -7
  275. data/spec/support/json/jobs_get.json +58 -58
  276. data/spec/support/json/list_add.json +12 -12
  277. data/spec/support/json/lists_get.json +19 -19
  278. data/spec/support/json/package_create.json +7 -7
  279. data/spec/support/json/questionnaire_collector.json +17 -17
  280. data/spec/support/json/questionnaire_collectors.json +38 -38
  281. data/spec/support/json/questionnaire_collectors_add.json +10 -10
  282. data/spec/support/json/questionnaire_create.json +10 -10
  283. data/spec/support/json/questionnaire_datasources.json +26 -26
  284. data/spec/support/json/questionnaire_execution_add.json +9 -9
  285. data/spec/support/json/questionnaire_execution_status_set.json +8 -8
  286. data/spec/support/json/questionnaire_execution_update.json +8 -8
  287. data/spec/support/json/questionnaire_executions.json +28 -28
  288. data/spec/support/json/questionnaire_get.json +17 -17
  289. data/spec/support/json/questionnaire_remove.json +8 -8
  290. data/spec/support/json/questionnaire_update.json +8 -8
  291. data/spec/support/json/questionnaires_get.json +40 -40
  292. data/spec/support/json/sign_documents.json +16 -16
  293. data/spec/support/json/signature_create.json +12 -12
  294. data/spec/support/json/signature_field_add.json +25 -25
  295. data/spec/support/json/signature_fields_get.json +27 -27
  296. data/spec/support/json/signature_roles_get.json +17 -17
  297. data/spec/support/json/signatures_get.json +19 -19
  298. data/spec/support/json/storage_info.json +10 -10
  299. data/spec/support/json/subscription_plan_get.json +9 -9
  300. data/spec/support/json/subscription_plans_get.json +17 -17
  301. data/spec/support/json/template_get.json +35 -35
  302. data/spec/support/json/template_get_documents.json +15 -15
  303. data/spec/support/json/template_get_recipients.json +20 -20
  304. data/spec/support/json/templates_all.json +37 -37
  305. data/spec/support/json/templates_get.json +21 -21
  306. data/spec/support/json/update_account.json +10 -10
  307. data/spec/support/json/user_area.json +67 -67
  308. data/spec/support/json/user_embed_key.json +38 -38
  309. data/spec/support/json/user_get_embed_key.json +67 -67
  310. data/spec/support/json/user_login.json +67 -67
  311. data/spec/support/json/user_profile_get.json +24 -24
  312. data/spec/support/json/user_providers.json +31 -31
  313. data/spec/support/json/user_roles.json +25 -25
  314. data/spec/support/json/user_users_get.json +27 -27
  315. data/spec/support/shared_examples/api/entity.rb +39 -39
  316. data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
  317. data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
  318. data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
  319. data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
  320. data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
  321. data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
  322. data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
  323. data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
  324. metadata +35 -55
@@ -1,270 +1,270 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Storage::Folder do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
- include_examples GroupDocs::Api::Helpers::AccessMode
7
-
8
- describe '.create!' do
9
- before(:each) do
10
- mock_api_server(load_json('folder_create'))
11
- end
12
-
13
- it 'accepts access credentials hash' do
14
- lambda do
15
- described_class.create!('Test', :client_id => 'client_id', :private_key => 'private_key')
16
- end.should_not raise_error()
17
- end
18
-
19
- it 'returns GroupDocs::Storage::Folder object' do
20
- folder = described_class.create!('Test')
21
- folder.should be_a(GroupDocs::Storage::Folder)
22
- end
23
- end
24
-
25
- describe '.list!' do
26
- before(:each) do
27
- mock_api_server(load_json('folder_list'))
28
- end
29
-
30
- it 'accepts access credentials hash' do
31
- lambda do
32
- described_class.list!('', {}, :client_id => 'client_id', :private_key => 'private_key')
33
- end.should_not raise_error()
34
- end
35
-
36
- it 'allows passing path' do
37
- lambda { described_class.list!('test') }.should_not raise_error()
38
- end
39
-
40
- it 'allows passing options' do
41
- lambda { described_class.list!('', :page => 1, :count => 1) }.should_not raise_error()
42
- end
43
-
44
- it 'creates new instance of GroupDocs::Storage::Folder and calls #list!' do
45
- folder = double('folder')
46
- GroupDocs::Storage::Folder.should_receive(:new).with(:path => '').and_return(folder)
47
- folder.should_receive(:list!).with({}, {})
48
- described_class.list!
49
- end
50
- end
51
-
52
- it { should have_accessor(:id) }
53
- it { should have_accessor(:size) }
54
- it { should have_accessor(:folder_count) }
55
- it { should have_accessor(:file_count) }
56
- it { should have_accessor(:created_on) }
57
- it { should have_accessor(:modified_on) }
58
- it { should have_accessor(:url) }
59
- it { should have_accessor(:name) }
60
- it { should have_accessor(:version) }
61
- it { should have_accessor(:type) }
62
-
63
- describe '#created_on' do
64
- it 'returns converted to Time object Unix timestamp' do
65
- subject.created_on = 1330450135000
66
- subject.created_on.should == Time.at(1330450135)
67
- end
68
- end
69
-
70
- describe '#modified_on' do
71
- it 'returns converted to Time object Unix timestamp' do
72
- subject.modified_on = 1330450135000
73
- subject.modified_on.should == Time.at(1330450135)
74
- end
75
- end
76
-
77
- describe '#list!' do
78
- before(:each) do
79
- mock_api_server(load_json('folder_list'))
80
- subject.stub(:path => '/Test1')
81
- end
82
-
83
- it 'accepts access credentials hash' do
84
- lambda do
85
- subject.list!({}, :client_id => 'client_id', :private_key => 'private_key')
86
- end.should_not raise_error()
87
- end
88
-
89
- it 'allows passing options' do
90
- lambda { subject.list!(:page => 1, :count => 1) }.should_not raise_error()
91
- end
92
-
93
- it 'capitalizes :order_by option' do
94
- options = { :order_by => 'field' }
95
- lambda { subject.list!(options) }.should change { options[:order_by] }.to('Field')
96
- end
97
-
98
- it 'camelizes :order_by option' do
99
- options = { :order_by => 'modified_on' }
100
- lambda { subject.list!(options) }.should change { options[:order_by] }.to('ModifiedOn')
101
- end
102
-
103
- it 'returns array' do
104
- subject.list!.should be_an(Array)
105
- end
106
-
107
- it 'returns empty array if nothing is listed in directory' do
108
- mock_api_server('{"result": {"folders": [], "files": []}, "status": "Ok"}')
109
- subject.list!.should be_empty
110
- end
111
-
112
- it 'determines folders in response' do
113
- subject.list!.detect do |entity|
114
- entity.id == 1
115
- end.should be_a(GroupDocs::Storage::Folder)
116
- end
117
-
118
- it 'determines files in response' do
119
- subject.list!.detect do |entity|
120
- entity.id == 2
121
- end.should be_a(GroupDocs::Storage::File)
122
- end
123
- end
124
-
125
- describe '#move!' do
126
- before(:each) do
127
- subject.path = ''
128
- mock_api_server(load_json('folder_move'))
129
- end
130
-
131
- it 'accepts access credentials hash' do
132
- lambda do
133
- subject.move!('Test', :client_id => 'client_id', :private_key => 'private_key')
134
- end.should_not raise_error()
135
- end
136
-
137
- it 'returns moved to folder path' do
138
- moved = subject.move!('Test2/Test1')
139
- moved.should be_a(String)
140
- moved.should == 'Test2/Test1/'
141
- end
142
- end
143
-
144
- describe '#copy!' do
145
- before(:each) do
146
- subject.path = ''
147
- mock_api_server(load_json('folder_move'))
148
- end
149
-
150
- it 'accepts access credentials hash' do
151
- lambda do
152
- subject.copy!('/Test2', :client_id => 'client_id', :private_key => 'private_key')
153
- end.should_not raise_error()
154
- end
155
-
156
- it 'returns moved to folder path' do
157
- moved = subject.copy!('Test2/Test1')
158
- moved.should be_a(String)
159
- moved.should == 'Test2/Test1/'
160
- end
161
- end
162
-
163
- describe '#create!' do
164
- before(:each) do
165
- mock_api_server(load_json('folder_create'))
166
- end
167
-
168
- it 'accepts access credentials hash' do
169
- lambda do
170
- subject.create!(:client_id => 'client_id', :private_key => 'private_key')
171
- end.should_not raise_error()
172
- end
173
-
174
- it 'calls create! class method and pass parameters to it' do
175
- subject = described_class.new(:name => 'Test1')
176
- described_class.should_receive(:create!).with('Test1', {})
177
- subject.create!
178
- end
179
-
180
- it 'returns new GroupDocs::Storage::Folder object' do
181
- subject = described_class.new(:name => 'Test1')
182
- new_folder = subject.create!
183
- new_folder.should be_a(GroupDocs::Storage::Folder)
184
- new_folder.should_not == subject
185
- end
186
- end
187
-
188
- describe '#delete!' do
189
- before(:each) do
190
- mock_api_server(load_json('folder_delete'))
191
- end
192
-
193
- it 'accepts access credentials hash' do
194
- lambda do
195
- subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
196
- end.should_not raise_error()
197
- end
198
-
199
- it 'determines path by name' do
200
- subject.should_receive(:name).and_return('Test1')
201
- subject.delete!
202
- end
203
- end
204
-
205
- describe '#sharers!' do
206
- before(:each) do
207
- mock_api_server(load_json('folder_sharers_get'))
208
- end
209
-
210
- it 'accepts access credentials hash' do
211
- lambda do
212
- subject.sharers!(:client_id => 'client_id', :private_key => 'private_key')
213
- end.should_not raise_error()
214
- end
215
-
216
- it 'returns an array of GroupDocs::User objects' do
217
- users = subject.sharers!
218
- users.should be_an(Array)
219
- users.each do |user|
220
- user.should be_a(GroupDocs::User)
221
- end
222
- end
223
- end
224
-
225
- describe '#sharers_set!' do
226
- before(:each) do
227
- mock_api_server(load_json('folder_sharers_set'))
228
- end
229
-
230
- it 'accepts access credentials hash' do
231
- lambda do
232
- subject.sharers_set!(%w(test1@email.com), :client_id => 'client_id', :private_key => 'private_key')
233
- end.should_not raise_error()
234
- end
235
-
236
- it 'returns an array of GroupDocs::User objects' do
237
- users = subject.sharers_set!(%w(test1@email.com))
238
- users.should be_an(Array)
239
- users.each do |user|
240
- user.should be_a(GroupDocs::User)
241
- end
242
- end
243
-
244
- it 'clears sharers if empty array is passed' do
245
- subject.should_receive(:sharers_clear!)
246
- subject.sharers_set!([])
247
- end
248
-
249
- it 'clears sharers if nil is passed' do
250
- subject.should_receive(:sharers_clear!)
251
- subject.sharers_set!(nil)
252
- end
253
- end
254
-
255
- describe '#sharers_clear!' do
256
- before(:each) do
257
- mock_api_server(load_json('folder_sharers_remove'))
258
- end
259
-
260
- it 'accepts access credentials hash' do
261
- lambda do
262
- subject.sharers_clear!(:client_id => 'client_id', :private_key => 'private_key')
263
- end.should_not raise_error()
264
- end
265
-
266
- it 'clears sharers list and returns nil' do
267
- subject.sharers_clear!.should be_nil
268
- end
269
- end
270
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Storage::Folder do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+ include_examples GroupDocs::Api::Helpers::AccessMode
7
+
8
+ describe '.create!' do
9
+ before(:each) do
10
+ mock_api_server(load_json('folder_create'))
11
+ end
12
+
13
+ it 'accepts access credentials hash' do
14
+ lambda do
15
+ described_class.create!('Test', :client_id => 'client_id', :private_key => 'private_key')
16
+ end.should_not raise_error()
17
+ end
18
+
19
+ it 'returns GroupDocs::Storage::Folder object' do
20
+ folder = described_class.create!('Test')
21
+ folder.should be_a(GroupDocs::Storage::Folder)
22
+ end
23
+ end
24
+
25
+ describe '.list!' do
26
+ before(:each) do
27
+ mock_api_server(load_json('folder_list'))
28
+ end
29
+
30
+ it 'accepts access credentials hash' do
31
+ lambda do
32
+ described_class.list!('', {}, :client_id => 'client_id', :private_key => 'private_key')
33
+ end.should_not raise_error()
34
+ end
35
+
36
+ it 'allows passing path' do
37
+ lambda { described_class.list!('test') }.should_not raise_error()
38
+ end
39
+
40
+ it 'allows passing options' do
41
+ lambda { described_class.list!('', :page => 1, :count => 1) }.should_not raise_error()
42
+ end
43
+
44
+ it 'creates new instance of GroupDocs::Storage::Folder and calls #list!' do
45
+ folder = double('folder')
46
+ GroupDocs::Storage::Folder.should_receive(:new).with(:path => '').and_return(folder)
47
+ folder.should_receive(:list!).with({}, {})
48
+ described_class.list!
49
+ end
50
+ end
51
+
52
+ it { should have_accessor(:id) }
53
+ it { should have_accessor(:size) }
54
+ it { should have_accessor(:folder_count) }
55
+ it { should have_accessor(:file_count) }
56
+ it { should have_accessor(:created_on) }
57
+ it { should have_accessor(:modified_on) }
58
+ it { should have_accessor(:url) }
59
+ it { should have_accessor(:name) }
60
+ it { should have_accessor(:version) }
61
+ it { should have_accessor(:type) }
62
+
63
+ describe '#created_on' do
64
+ it 'returns converted to Time object Unix timestamp' do
65
+ subject.created_on = 1330450135000
66
+ subject.created_on.should == Time.at(1330450135)
67
+ end
68
+ end
69
+
70
+ describe '#modified_on' do
71
+ it 'returns converted to Time object Unix timestamp' do
72
+ subject.modified_on = 1330450135000
73
+ subject.modified_on.should == Time.at(1330450135)
74
+ end
75
+ end
76
+
77
+ describe '#list!' do
78
+ before(:each) do
79
+ mock_api_server(load_json('folder_list'))
80
+ subject.stub(:path => '/Test1')
81
+ end
82
+
83
+ it 'accepts access credentials hash' do
84
+ lambda do
85
+ subject.list!({}, :client_id => 'client_id', :private_key => 'private_key')
86
+ end.should_not raise_error()
87
+ end
88
+
89
+ it 'allows passing options' do
90
+ lambda { subject.list!(:page => 1, :count => 1) }.should_not raise_error()
91
+ end
92
+
93
+ it 'capitalizes :order_by option' do
94
+ options = { :order_by => 'field' }
95
+ lambda { subject.list!(options) }.should change { options[:order_by] }.to('Field')
96
+ end
97
+
98
+ it 'camelizes :order_by option' do
99
+ options = { :order_by => 'modified_on' }
100
+ lambda { subject.list!(options) }.should change { options[:order_by] }.to('ModifiedOn')
101
+ end
102
+
103
+ it 'returns array' do
104
+ subject.list!.should be_an(Array)
105
+ end
106
+
107
+ it 'returns empty array if nothing is listed in directory' do
108
+ mock_api_server('{"result": {"folders": [], "files": []}, "status": "Ok"}')
109
+ subject.list!.should be_empty
110
+ end
111
+
112
+ it 'determines folders in response' do
113
+ subject.list!.detect do |entity|
114
+ entity.id == 1
115
+ end.should be_a(GroupDocs::Storage::Folder)
116
+ end
117
+
118
+ it 'determines files in response' do
119
+ subject.list!.detect do |entity|
120
+ entity.id == 2
121
+ end.should be_a(GroupDocs::Storage::File)
122
+ end
123
+ end
124
+
125
+ describe '#move!' do
126
+ before(:each) do
127
+ subject.path = ''
128
+ mock_api_server(load_json('folder_move'))
129
+ end
130
+
131
+ it 'accepts access credentials hash' do
132
+ lambda do
133
+ subject.move!('Test', :client_id => 'client_id', :private_key => 'private_key')
134
+ end.should_not raise_error()
135
+ end
136
+
137
+ it 'returns moved to folder path' do
138
+ moved = subject.move!('Test2/Test1')
139
+ moved.should be_a(String)
140
+ moved.should == 'Test2/Test1/'
141
+ end
142
+ end
143
+
144
+ describe '#copy!' do
145
+ before(:each) do
146
+ subject.path = ''
147
+ mock_api_server(load_json('folder_move'))
148
+ end
149
+
150
+ it 'accepts access credentials hash' do
151
+ lambda do
152
+ subject.copy!('/Test2', :client_id => 'client_id', :private_key => 'private_key')
153
+ end.should_not raise_error()
154
+ end
155
+
156
+ it 'returns moved to folder path' do
157
+ moved = subject.copy!('Test2/Test1')
158
+ moved.should be_a(String)
159
+ moved.should == 'Test2/Test1/'
160
+ end
161
+ end
162
+
163
+ describe '#create!' do
164
+ before(:each) do
165
+ mock_api_server(load_json('folder_create'))
166
+ end
167
+
168
+ it 'accepts access credentials hash' do
169
+ lambda do
170
+ subject.create!(:client_id => 'client_id', :private_key => 'private_key')
171
+ end.should_not raise_error()
172
+ end
173
+
174
+ it 'calls create! class method and pass parameters to it' do
175
+ subject = described_class.new(:name => 'Test1')
176
+ described_class.should_receive(:create!).with('Test1', {})
177
+ subject.create!
178
+ end
179
+
180
+ it 'returns new GroupDocs::Storage::Folder object' do
181
+ subject = described_class.new(:name => 'Test1')
182
+ new_folder = subject.create!
183
+ new_folder.should be_a(GroupDocs::Storage::Folder)
184
+ new_folder.should_not == subject
185
+ end
186
+ end
187
+
188
+ describe '#delete!' do
189
+ before(:each) do
190
+ mock_api_server(load_json('folder_delete'))
191
+ end
192
+
193
+ it 'accepts access credentials hash' do
194
+ lambda do
195
+ subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
196
+ end.should_not raise_error()
197
+ end
198
+
199
+ it 'determines path by name' do
200
+ subject.should_receive(:name).and_return('Test1')
201
+ subject.delete!
202
+ end
203
+ end
204
+
205
+ describe '#sharers!' do
206
+ before(:each) do
207
+ mock_api_server(load_json('folder_sharers_get'))
208
+ end
209
+
210
+ it 'accepts access credentials hash' do
211
+ lambda do
212
+ subject.sharers!(:client_id => 'client_id', :private_key => 'private_key')
213
+ end.should_not raise_error()
214
+ end
215
+
216
+ it 'returns an array of GroupDocs::User objects' do
217
+ users = subject.sharers!
218
+ users.should be_an(Array)
219
+ users.each do |user|
220
+ user.should be_a(GroupDocs::User)
221
+ end
222
+ end
223
+ end
224
+
225
+ describe '#sharers_set!' do
226
+ before(:each) do
227
+ mock_api_server(load_json('folder_sharers_set'))
228
+ end
229
+
230
+ it 'accepts access credentials hash' do
231
+ lambda do
232
+ subject.sharers_set!(%w(test1@email.com), :client_id => 'client_id', :private_key => 'private_key')
233
+ end.should_not raise_error()
234
+ end
235
+
236
+ it 'returns an array of GroupDocs::User objects' do
237
+ users = subject.sharers_set!(%w(test1@email.com))
238
+ users.should be_an(Array)
239
+ users.each do |user|
240
+ user.should be_a(GroupDocs::User)
241
+ end
242
+ end
243
+
244
+ it 'clears sharers if empty array is passed' do
245
+ subject.should_receive(:sharers_clear!)
246
+ subject.sharers_set!([])
247
+ end
248
+
249
+ it 'clears sharers if nil is passed' do
250
+ subject.should_receive(:sharers_clear!)
251
+ subject.sharers_set!(nil)
252
+ end
253
+ end
254
+
255
+ describe '#sharers_clear!' do
256
+ before(:each) do
257
+ mock_api_server(load_json('folder_sharers_remove'))
258
+ end
259
+
260
+ it 'accepts access credentials hash' do
261
+ lambda do
262
+ subject.sharers_clear!(:client_id => 'client_id', :private_key => 'private_key')
263
+ end.should_not raise_error()
264
+ end
265
+
266
+ it 'clears sharers list and returns nil' do
267
+ subject.sharers_clear!.should be_nil
268
+ end
269
+ end
270
+ end