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,303 +1,303 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Storage::File do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
- include_examples GroupDocs::Api::Helpers::AccessMode
7
-
8
- describe '.upload!' do
9
- before(:each) do
10
- mock_api_server(load_json('file_upload'))
11
- end
12
-
13
- it 'accepts access credentials hash' do
14
- lambda do
15
- described_class.upload!(__FILE__, {}, :client_id => 'client_id', :private_key => 'private_key')
16
- end.should_not raise_error()
17
- end
18
-
19
- it 'accepts options hash' do
20
- lambda do
21
- described_class.upload!(__FILE__, :path => 'folder1')
22
- end.should_not raise_error()
23
- end
24
-
25
- it 'uses root folder by default' do
26
- opts = {}
27
- described_class.upload!(__FILE__, opts)
28
- opts[:path].should == ''
29
- end
30
-
31
- it 'uses file name by default' do
32
- opts = {}
33
- described_class.upload!(__FILE__, opts)
34
- opts[:name].should == Object::File.basename(__FILE__)
35
- end
36
-
37
- it 'uses name if passed' do
38
- opts = { :name => 'file.pdf' }
39
- described_class.upload!(__FILE__, opts)
40
- opts[:name].should == opts[:name]
41
- end
42
-
43
- it 'returns GroupDocs::Storage::File object' do
44
- described_class.upload!(__FILE__).should be_a(GroupDocs::Storage::File)
45
- end
46
- end
47
-
48
- describe '.upload_web!' do
49
- before(:each) do
50
- mock_api_server(load_json('file_upload'))
51
- end
52
-
53
- it 'accepts access credentials hash' do
54
- lambda do
55
- described_class.upload_web!('http://www.google.com', :client_id => 'client_id', :private_key => 'private_key')
56
- end.should_not raise_error()
57
- end
58
-
59
- it 'returns GroupDocs::Storage::File object' do
60
- described_class.upload_web!('http://www.google.com').should be_a(GroupDocs::Storage::File)
61
- end
62
- end
63
-
64
- it { should have_accessor(:id) }
65
- it { should have_accessor(:guid) }
66
- it { should have_accessor(:known) }
67
- it { should have_accessor(:size) }
68
- it { should have_accessor(:thumbnail) }
69
- it { should have_accessor(:created_on) }
70
- it { should have_accessor(:modified_on) }
71
- it { should have_accessor(:url) }
72
- it { should have_accessor(:name) }
73
- it { should have_accessor(:version) }
74
- it { should have_accessor(:type) }
75
- it { should have_accessor(:file_type) }
76
- it { should have_accessor(:path) }
77
- it { should have_accessor(:local_path) }
78
-
79
- it { should have_alias(:adj_name=, :name=) }
80
-
81
- describe '#type=' do
82
- it 'saves type in machine readable format if symbol is passed' do
83
- subject.type = :words
84
- subject.instance_variable_get(:@type).should == 'Words'
85
- end
86
-
87
- it 'does nothing if parameter is not symbol' do
88
- subject.type = 'Words'
89
- subject.instance_variable_get(:@type).should == 'Words'
90
- end
91
-
92
- it 'raises error if type is unknown' do
93
- lambda { subject.type = :unknown }.should raise_error(ArgumentError)
94
- end
95
- end
96
-
97
- describe '#type' do
98
- it 'returns type in human-readable format' do
99
- subject.type = 'Words'
100
- subject.type.should == :words
101
- end
102
- end
103
-
104
- describe '#file_type' do
105
- it 'returns file type in human-readable format' do
106
- subject.file_type = 'Doc'
107
- subject.file_type.should == :doc
108
- end
109
- end
110
-
111
- describe '#created_on' do
112
- it 'converts timestamp to Time object' do
113
- subject.created_on = 1330450135000
114
- subject.created_on.should == Time.at(1330450135)
115
- end
116
- end
117
-
118
- describe '#modified_on' do
119
- it 'returns converted to Time object Unix timestamp' do
120
- subject.modified_on = 1330450135000
121
- subject.modified_on.should == Time.at(1330450135)
122
- end
123
- end
124
-
125
- describe '#download!' do
126
- before(:each) do
127
- mock_api_server(File.read('spec/support/files/resume.pdf'))
128
- subject.stub(:name => 'resume.pdf')
129
- end
130
-
131
- let(:path) { Dir.tmpdir }
132
-
133
- it 'accepts access credentials hash' do
134
- lambda do
135
- subject.download!(path, :client_id => 'client_id', :private_key => 'private_key')
136
- end.should_not raise_error()
137
- end
138
-
139
- it 'downloads file to given path' do
140
- file = double('file')
141
- Object::File.should_receive(:open).with("#{path}/resume.pdf", 'wb').and_yield(file)
142
- file.should_receive(:write).with(File.read('spec/support/files/resume.pdf'))
143
- subject.download!(path)
144
- end
145
-
146
- it 'returns saved file path' do
147
- subject.download!(path).should == "#{path}/resume.pdf"
148
- end
149
- end
150
-
151
- describe '#move!' do
152
- before(:each) do
153
- mock_api_server(load_json('file_move'))
154
- end
155
-
156
- it 'accepts access credentials hash' do
157
- lambda do
158
- subject.move!('folder1', {}, :client_id => 'client_id', :private_key => 'private_key')
159
- end.should_not raise_error()
160
- end
161
-
162
- it 'accepts options credentials hash' do
163
- lambda do
164
- subject.move!('folder1', :name => 'file.pdf')
165
- end.should_not raise_error()
166
- end
167
-
168
- it 'uses current file name by default' do
169
- subject.name = 'resume.pdf'
170
- opts = {}
171
- subject.move!('folder1', opts)
172
- opts[:name].should == subject.name
173
- end
174
-
175
- it 'uses name if passed' do
176
- opts = { :name => 'file.pdf' }
177
- subject.move!('folder1', opts)
178
- opts[:name].should == opts[:name]
179
- end
180
-
181
- it 'returns moved to file' do
182
- subject.move!('folder1').should be_a(GroupDocs::Storage::File)
183
- end
184
- end
185
-
186
- describe '#rename!' do
187
- before(:each) do
188
- subject.path = '/'
189
- end
190
-
191
-
192
- it 'accepts access credentials hash' do
193
- lambda do
194
- subject.rename!('resume.pdf', :client_id => 'client_id', :private_key => 'private_key')
195
- end.should_not raise_error()
196
- end
197
- before(:each) do
198
- mock_api_server(load_json('file_move'))
199
- end
200
-
201
- it 'uses #move! to rename file' do
202
- subject.should_receive(:move!).with(subject.path, { :name => 'resume2.pdf' }, {})
203
- subject.rename!('resume2.pdf')
204
- end
205
- end
206
-
207
- describe '#copy!' do
208
- before(:each) do
209
- mock_api_server(load_json('file_copy'))
210
- end
211
-
212
- it 'accepts access credentials hash' do
213
- lambda do
214
- subject.copy!('resume.pdf', {}, :client_id => 'client_id', :private_key => 'private_key')
215
- end.should_not raise_error()
216
- end
217
-
218
- it 'accepts options credentials hash' do
219
- lambda do
220
- subject.copy!('folder1', :name => 'file.pdf')
221
- end.should_not raise_error()
222
- end
223
-
224
- it 'uses current file name by default' do
225
- subject.name = 'resume.pdf'
226
- opts = {}
227
- subject.copy!('folder1', opts)
228
- opts[:name].should == subject.name
229
- end
230
-
231
- it 'uses name if passed' do
232
- opts = { :name => 'file.pdf' }
233
- subject.copy!('folder1', opts)
234
- opts[:name].should == opts[:name]
235
- end
236
-
237
- it 'returns copied to file' do
238
- subject.copy!('/resume2.pdf').should be_a(GroupDocs::Storage::File)
239
- end
240
- end
241
-
242
- describe '#compress!' do
243
- before(:each) do
244
- mock_api_server(load_json('file_compress'))
245
- end
246
-
247
- it 'accepts access credentials hash' do
248
- lambda do
249
- subject.compress!(:client_id => 'client_id', :private_key => 'private_key')
250
- end.should_not raise_error()
251
- end
252
-
253
- it 'returns archived file' do
254
- subject.stub(:name => 'resume.pdf')
255
- subject.compress!.should be_a(GroupDocs::Storage::File)
256
- end
257
-
258
- it 'creates archive filename as filename + archive type' do
259
- subject.stub(:name => 'resume.pdf')
260
- subject.compress!.name.should == 'resume.pdf.zip'
261
- end
262
- end
263
-
264
- describe '#delete!' do
265
- before(:each) do
266
- mock_api_server(load_json('file_move'))
267
- end
268
-
269
- it 'accepts access credentials hash' do
270
- lambda do
271
- subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
272
- end.should_not raise_error()
273
- end
274
-
275
- it 'uses file guid' do
276
- mock_api_server(load_json('file_delete'))
277
- subject.should_receive(:guid).and_return('guid')
278
- subject.delete!
279
- end
280
- end
281
-
282
- describe '#move_to_trash!' do
283
- before(:each) do
284
- mock_api_server(load_json('file_move'))
285
- end
286
-
287
- it 'accepts access credentials hash' do
288
- lambda do
289
- subject.move_to_trash!(:client_id => 'client_id', :private_key => 'private_key')
290
- end.should_not raise_error()
291
- end
292
- end
293
-
294
- describe '#to_document' do
295
- it 'creates new GroupDocs::Document' do
296
- subject.to_document.should be_a(GroupDocs::Document)
297
- end
298
-
299
- it 'passes self as file for GroupDocs::Document' do
300
- subject.to_document.file.should == subject
301
- end
302
- end
303
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Storage::File do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+ include_examples GroupDocs::Api::Helpers::AccessMode
7
+
8
+ describe '.upload!' do
9
+ before(:each) do
10
+ mock_api_server(load_json('file_upload'))
11
+ end
12
+
13
+ it 'accepts access credentials hash' do
14
+ lambda do
15
+ described_class.upload!(__FILE__, {}, :client_id => 'client_id', :private_key => 'private_key')
16
+ end.should_not raise_error()
17
+ end
18
+
19
+ it 'accepts options hash' do
20
+ lambda do
21
+ described_class.upload!(__FILE__, :path => 'folder1')
22
+ end.should_not raise_error()
23
+ end
24
+
25
+ it 'uses root folder by default' do
26
+ opts = {}
27
+ described_class.upload!(__FILE__, opts)
28
+ opts[:path].should == ''
29
+ end
30
+
31
+ it 'uses file name by default' do
32
+ opts = {}
33
+ described_class.upload!(__FILE__, opts)
34
+ opts[:name].should == Object::File.basename(__FILE__)
35
+ end
36
+
37
+ it 'uses name if passed' do
38
+ opts = { :name => 'file.pdf' }
39
+ described_class.upload!(__FILE__, opts)
40
+ opts[:name].should == opts[:name]
41
+ end
42
+
43
+ it 'returns GroupDocs::Storage::File object' do
44
+ described_class.upload!(__FILE__).should be_a(GroupDocs::Storage::File)
45
+ end
46
+ end
47
+
48
+ describe '.upload_web!' do
49
+ before(:each) do
50
+ mock_api_server(load_json('file_upload'))
51
+ end
52
+
53
+ it 'accepts access credentials hash' do
54
+ lambda do
55
+ described_class.upload_web!('http://www.google.com', :client_id => 'client_id', :private_key => 'private_key')
56
+ end.should_not raise_error()
57
+ end
58
+
59
+ it 'returns GroupDocs::Storage::File object' do
60
+ described_class.upload_web!('http://www.google.com').should be_a(GroupDocs::Storage::File)
61
+ end
62
+ end
63
+
64
+ it { should have_accessor(:id) }
65
+ it { should have_accessor(:guid) }
66
+ it { should have_accessor(:known) }
67
+ it { should have_accessor(:size) }
68
+ it { should have_accessor(:thumbnail) }
69
+ it { should have_accessor(:created_on) }
70
+ it { should have_accessor(:modified_on) }
71
+ it { should have_accessor(:url) }
72
+ it { should have_accessor(:name) }
73
+ it { should have_accessor(:version) }
74
+ it { should have_accessor(:type) }
75
+ it { should have_accessor(:file_type) }
76
+ it { should have_accessor(:path) }
77
+ it { should have_accessor(:local_path) }
78
+
79
+ it { should have_alias(:adj_name=, :name=) }
80
+
81
+ describe '#type=' do
82
+ it 'saves type in machine readable format if symbol is passed' do
83
+ subject.type = :words
84
+ subject.instance_variable_get(:@type).should == 'Words'
85
+ end
86
+
87
+ it 'does nothing if parameter is not symbol' do
88
+ subject.type = 'Words'
89
+ subject.instance_variable_get(:@type).should == 'Words'
90
+ end
91
+
92
+ it 'raises error if type is unknown' do
93
+ lambda { subject.type = :unknown }.should raise_error(ArgumentError)
94
+ end
95
+ end
96
+
97
+ describe '#type' do
98
+ it 'returns type in human-readable format' do
99
+ subject.type = 'Words'
100
+ subject.type.should == :words
101
+ end
102
+ end
103
+
104
+ describe '#file_type' do
105
+ it 'returns file type in human-readable format' do
106
+ subject.file_type = 'Doc'
107
+ subject.file_type.should == :doc
108
+ end
109
+ end
110
+
111
+ describe '#created_on' do
112
+ it 'converts timestamp to Time object' do
113
+ subject.created_on = 1330450135000
114
+ subject.created_on.should == Time.at(1330450135)
115
+ end
116
+ end
117
+
118
+ describe '#modified_on' do
119
+ it 'returns converted to Time object Unix timestamp' do
120
+ subject.modified_on = 1330450135000
121
+ subject.modified_on.should == Time.at(1330450135)
122
+ end
123
+ end
124
+
125
+ describe '#download!' do
126
+ before(:each) do
127
+ mock_api_server(File.read('spec/support/files/resume.pdf'))
128
+ subject.stub(:name => 'resume.pdf')
129
+ end
130
+
131
+ let(:path) { Dir.tmpdir }
132
+
133
+ it 'accepts access credentials hash' do
134
+ lambda do
135
+ subject.download!(path, :client_id => 'client_id', :private_key => 'private_key')
136
+ end.should_not raise_error()
137
+ end
138
+
139
+ it 'downloads file to given path' do
140
+ file = double('file')
141
+ Object::File.should_receive(:open).with("#{path}/resume.pdf", 'wb').and_yield(file)
142
+ file.should_receive(:write).with(File.read('spec/support/files/resume.pdf'))
143
+ subject.download!(path)
144
+ end
145
+
146
+ it 'returns saved file path' do
147
+ subject.download!(path).should == "#{path}/resume.pdf"
148
+ end
149
+ end
150
+
151
+ describe '#move!' do
152
+ before(:each) do
153
+ mock_api_server(load_json('file_move'))
154
+ end
155
+
156
+ it 'accepts access credentials hash' do
157
+ lambda do
158
+ subject.move!('folder1', {}, :client_id => 'client_id', :private_key => 'private_key')
159
+ end.should_not raise_error()
160
+ end
161
+
162
+ it 'accepts options credentials hash' do
163
+ lambda do
164
+ subject.move!('folder1', :name => 'file.pdf')
165
+ end.should_not raise_error()
166
+ end
167
+
168
+ it 'uses current file name by default' do
169
+ subject.name = 'resume.pdf'
170
+ opts = {}
171
+ subject.move!('folder1', opts)
172
+ opts[:name].should == subject.name
173
+ end
174
+
175
+ it 'uses name if passed' do
176
+ opts = { :name => 'file.pdf' }
177
+ subject.move!('folder1', opts)
178
+ opts[:name].should == opts[:name]
179
+ end
180
+
181
+ it 'returns moved to file' do
182
+ subject.move!('folder1').should be_a(GroupDocs::Storage::File)
183
+ end
184
+ end
185
+
186
+ describe '#rename!' do
187
+ before(:each) do
188
+ subject.path = '/'
189
+ end
190
+
191
+
192
+ it 'accepts access credentials hash' do
193
+ lambda do
194
+ subject.rename!('resume.pdf', :client_id => 'client_id', :private_key => 'private_key')
195
+ end.should_not raise_error()
196
+ end
197
+ before(:each) do
198
+ mock_api_server(load_json('file_move'))
199
+ end
200
+
201
+ it 'uses #move! to rename file' do
202
+ subject.should_receive(:move!).with(subject.path, { :name => 'resume2.pdf' }, {})
203
+ subject.rename!('resume2.pdf')
204
+ end
205
+ end
206
+
207
+ describe '#copy!' do
208
+ before(:each) do
209
+ mock_api_server(load_json('file_copy'))
210
+ end
211
+
212
+ it 'accepts access credentials hash' do
213
+ lambda do
214
+ subject.copy!('resume.pdf', {}, :client_id => 'client_id', :private_key => 'private_key')
215
+ end.should_not raise_error()
216
+ end
217
+
218
+ it 'accepts options credentials hash' do
219
+ lambda do
220
+ subject.copy!('folder1', :name => 'file.pdf')
221
+ end.should_not raise_error()
222
+ end
223
+
224
+ it 'uses current file name by default' do
225
+ subject.name = 'resume.pdf'
226
+ opts = {}
227
+ subject.copy!('folder1', opts)
228
+ opts[:name].should == subject.name
229
+ end
230
+
231
+ it 'uses name if passed' do
232
+ opts = { :name => 'file.pdf' }
233
+ subject.copy!('folder1', opts)
234
+ opts[:name].should == opts[:name]
235
+ end
236
+
237
+ it 'returns copied to file' do
238
+ subject.copy!('/resume2.pdf').should be_a(GroupDocs::Storage::File)
239
+ end
240
+ end
241
+
242
+ describe '#compress!' do
243
+ before(:each) do
244
+ mock_api_server(load_json('file_compress'))
245
+ end
246
+
247
+ it 'accepts access credentials hash' do
248
+ lambda do
249
+ subject.compress!(:client_id => 'client_id', :private_key => 'private_key')
250
+ end.should_not raise_error()
251
+ end
252
+
253
+ it 'returns archived file' do
254
+ subject.stub(:name => 'resume.pdf')
255
+ subject.compress!.should be_a(GroupDocs::Storage::File)
256
+ end
257
+
258
+ it 'creates archive filename as filename + archive type' do
259
+ subject.stub(:name => 'resume.pdf')
260
+ subject.compress!.name.should == 'resume.pdf.zip'
261
+ end
262
+ end
263
+
264
+ describe '#delete!' do
265
+ before(:each) do
266
+ mock_api_server(load_json('file_move'))
267
+ end
268
+
269
+ it 'accepts access credentials hash' do
270
+ lambda do
271
+ subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
272
+ end.should_not raise_error()
273
+ end
274
+
275
+ it 'uses file guid' do
276
+ mock_api_server(load_json('file_delete'))
277
+ subject.should_receive(:guid).and_return('guid')
278
+ subject.delete!
279
+ end
280
+ end
281
+
282
+ describe '#move_to_trash!' do
283
+ before(:each) do
284
+ mock_api_server(load_json('file_move'))
285
+ end
286
+
287
+ it 'accepts access credentials hash' do
288
+ lambda do
289
+ subject.move_to_trash!(:client_id => 'client_id', :private_key => 'private_key')
290
+ end.should_not raise_error()
291
+ end
292
+ end
293
+
294
+ describe '#to_document' do
295
+ it 'creates new GroupDocs::Document' do
296
+ subject.to_document.should be_a(GroupDocs::Document)
297
+ end
298
+
299
+ it 'passes self as file for GroupDocs::Document' do
300
+ subject.to_document.file.should == subject
301
+ end
302
+ end
303
+ end