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,7 +1,7 @@
1
- require 'spec_helper'
2
-
3
- %w(NoClientIdError NoPrivateKeyError UnsupportedMethodError BadResponseError).each do |error|
4
- describe GroupDocs.const_get(error) do
5
- it { should be_a(StandardError) }
6
- end
7
- end
1
+ require 'spec_helper'
2
+
3
+ %w(NoClientIdError NoPrivateKeyError UnsupportedMethodError BadResponseError).each do |error|
4
+ describe GroupDocs.const_get(error) do
5
+ it { should be_a(StandardError) }
6
+ end
7
+ end
@@ -1,323 +1,323 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Job do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
- include_examples GroupDocs::Api::Helpers::Status
7
-
8
- describe '.all!' do
9
- before(:each) do
10
- mock_api_server(load_json('jobs_get'))
11
- end
12
-
13
- it 'accepts access credentials hash' do
14
- lambda do
15
- described_class.all!({}, :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.all!(:page => 1, :count => 2)
22
- end.should_not raise_error()
23
- end
24
-
25
- it 'returns an array of GroupDocs::Job objects' do
26
- jobs = described_class.all!
27
- jobs.should be_an(Array)
28
- jobs.each do |job|
29
- job.should be_a(GroupDocs::Job)
30
- end
31
- end
32
- end
33
-
34
- describe '.get!' do
35
- before(:each) do
36
- mock_api_server(load_json('job_get'))
37
- end
38
-
39
- it 'accepts access credentials hash' do
40
- lambda do
41
- described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
42
- end.should_not raise_error()
43
- end
44
-
45
- it 'returns GroupDocs::Job object' do
46
- described_class.get!(1).should be_a(GroupDocs::Job)
47
- end
48
- end
49
-
50
- describe '.create!' do
51
- before(:each) do
52
- mock_api_server(load_json('job_create'))
53
- end
54
-
55
- let(:actions) { %w(convert compress_zip) }
56
-
57
- it 'accepts access credentials hash' do
58
- lambda do
59
- described_class.create!({ :actions => %w(convert) }, :client_id => 'client_id', :private_key => 'private_key')
60
- end.should_not raise_error()
61
- end
62
-
63
- it 'raises error if actions are passed' do
64
- lambda { described_class.create!({}) }.should raise_error(ArgumentError)
65
- end
66
-
67
- it 'convert actions to byte flag' do
68
- described_class.should_receive(:convert_actions_to_byte).with(actions).and_return(5)
69
- described_class.create!(:actions => actions)
70
- end
71
-
72
- it 'returns GroupDocs::Job object' do
73
- described_class.create!(:actions => actions).should be_a(GroupDocs::Job)
74
- end
75
- end
76
-
77
- it { should have_accessor(:id) }
78
- it { should have_accessor(:guid) }
79
- it { should have_accessor(:name) }
80
- it { should have_accessor(:priority) }
81
- it { should have_accessor(:actions) }
82
- it { should have_accessor(:email_results) }
83
- it { should have_accessor(:url_only) }
84
- it { should have_accessor(:documents) }
85
- it { should have_accessor(:requested_time) }
86
-
87
- describe '#documents=' do
88
- let(:response) do
89
- {
90
- :inputs => [
91
- { :id => 1, :guid => 'fhy9yh94u238dgf', :status => 0, :outputs => [] },
92
- { :id => 2, :guid => 'ofh9rhy9rfohf9s', :status => 2, :outputs => [] }
93
- ]
94
- }
95
- end
96
-
97
- it 'saves documents as array of GroupDocs::Document objects' do
98
- subject.documents = response
99
- documents = subject.documents
100
- documents.should be_an(Array)
101
- documents.each do |document|
102
- document.should be_a(GroupDocs::Document)
103
- end
104
- end
105
-
106
- it 'does nothing if nil is passed' do
107
- lambda do
108
- subject.documents = nil
109
- end.should_not change(subject, :documents)
110
- end
111
- end
112
-
113
- describe '#requested_time' do
114
- it 'converts timestamp to Time object' do
115
- subject.requested_time = 1330450135000
116
- subject.requested_time.should == Time.at(1330450135)
117
- end
118
- end
119
-
120
- describe '#actions' do
121
- it 'converts actions to human-readable format' do
122
- subject.actions = 'Convert, Combine, CompressZip'
123
- subject.actions.should == [:convert, :combine, :compress_zip]
124
- end
125
-
126
- it 'does nothing if there are no actions' do
127
- subject.actions = nil
128
- subject.actions.should be_nil
129
- end
130
- end
131
-
132
- describe '#documents!' do
133
- before(:each) do
134
- mock_api_server(load_json('job_documents'))
135
- end
136
-
137
- it 'accepts access credentials hash' do
138
- lambda do
139
- subject.documents!(:client_id => 'client_id', :private_key => 'private_key')
140
- end.should_not raise_error()
141
- end
142
-
143
- it 'updates job status' do
144
- subject.documents!
145
- subject.status.should == :archived
146
- end
147
-
148
- it 'returns hash' do
149
- subject.documents!.should be_a(Hash)
150
- end
151
-
152
- it 'returns array of input documents' do
153
- documents = subject.documents![:inputs]
154
- documents.should be_an(Array)
155
- documents.each do |document|
156
- document.should be_a(GroupDocs::Document)
157
- end
158
- end
159
-
160
- it 'returns array of output documents' do
161
- documents = subject.documents![:outputs]
162
- documents.should be_an(Array)
163
- documents.each do |document|
164
- document.should be_a(GroupDocs::Document)
165
- end
166
- end
167
-
168
- it 'returns empty arrays if there are no documents' do
169
- mock_api_server('{ "status": "Ok", "result": {}}')
170
- subject.documents!.should == { :inputs => [], :outputs => [] }
171
- end
172
- end
173
-
174
- describe '#add_document!' do
175
- before(:each) do
176
- mock_api_server(load_json('job_file_add'))
177
- end
178
-
179
- let(:document) do
180
- GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
181
- end
182
-
183
- it 'accepts access credentials hash' do
184
- lambda do
185
- subject.add_document!(document, {}, :client_id => 'client_id', :private_key => 'private_key')
186
- end.should_not raise_error()
187
- end
188
-
189
- it 'accepts options hash' do
190
- lambda do
191
- subject.add_document!(document, :output_formats => %w(pdf txt))
192
- end.should_not raise_error()
193
- end
194
-
195
- it 'raises error if document is not an instance of GroupDocs::Document' do
196
- lambda { subject.add_document!('Document') }.should raise_error(ArgumentError)
197
- end
198
-
199
- it 'returns document ID' do
200
- subject.add_document!(document).should be_an(Integer)
201
- end
202
- end
203
-
204
- describe '#delete_document!' do
205
- before(:each) do
206
- mock_api_server('{ "result": {}, "status": "Ok" }')
207
- end
208
-
209
- it 'accepts access credentials hash' do
210
- lambda do
211
- subject.delete_document!('a9ufg8s7dfgsdf', :client_id => 'client_id', :private_key => 'private_key')
212
- end.should_not raise_error()
213
- end
214
-
215
- it 'returns empty hash' do
216
- subject.delete_document!('a9ufg8s7dfgsdf').should be_empty
217
- end
218
- end
219
-
220
- describe '#add_datasource!' do
221
- before(:each) do
222
- mock_api_server('{ "status": "Ok", "result": {}}')
223
- end
224
- let(:document) do
225
- GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
226
- end
227
-
228
- let(:datasource) do
229
- GroupDocs::DataSource.new
230
- end
231
-
232
- it 'accepts access credentials hash' do
233
- lambda do
234
- subject.add_datasource!(document, datasource, :client_id => 'client_id', :private_key => 'private_key')
235
- end.should_not raise_error()
236
- end
237
-
238
- it 'raises error if document is not an instance of GroupDocs::Document' do
239
- lambda { subject.add_datasource!('Document') }.should raise_error(ArgumentError)
240
- end
241
-
242
- it 'raises error if datasource is not an instance of GroupDocs::DataSource' do
243
- lambda { subject.add_datasource!(document, 'DataSource') }.should raise_error(ArgumentError)
244
- end
245
- end
246
-
247
- describe '#add_url!' do
248
- before(:each) do
249
- mock_api_server(load_json('job_add_url'))
250
- end
251
-
252
- let(:url) { 'http://www.google.com' }
253
-
254
- it 'accepts access credentials hash' do
255
- lambda do
256
- subject.add_url!(url, {}, :client_id => 'client_id', :private_key => 'private_key')
257
- end.should_not raise_error()
258
- end
259
-
260
- it 'accepts options hash' do
261
- lambda do
262
- subject.add_url!(url, :out_formats => %W(pdf txt))
263
- end.should_not raise_error()
264
- end
265
-
266
- it 'returns document ID' do
267
- subject.add_url!(url).should be_an(Integer)
268
- end
269
- end
270
-
271
- describe '#update!' do
272
- before(:each) do
273
- mock_api_server(load_json('job_update'))
274
- end
275
-
276
- it 'accepts access credentials hash' do
277
- lambda do
278
- subject.update!({}, :client_id => 'client_id', :private_key => 'private_key')
279
- end.should_not raise_error()
280
- end
281
-
282
- it 'parses status' do
283
- subject.should_receive(:parse_status).with(:draft).and_return(-1)
284
- subject.update!(:status => :draft)
285
- end
286
- end
287
-
288
- describe '#delete!' do
289
- before(:each) do
290
- mock_api_server('{ "status": "Ok", "result": {} }')
291
- end
292
-
293
- it 'accepts access credentials hash' do
294
- lambda do
295
- subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
296
- end.should_not raise_error()
297
- end
298
- end
299
-
300
- describe '#convert_actions_to_byte' do
301
- let(:actions) { %w(convert compare) }
302
-
303
- it 'raises error if actions is not an array' do
304
- lambda { described_class.convert_actions_to_byte(:export) }.should raise_error(ArgumentError)
305
- end
306
-
307
- it 'raises error if action is unknown' do
308
- lambda { described_class.convert_actions_to_byte(%w(unknown)) }.should raise_error(ArgumentError)
309
- end
310
-
311
- it 'converts each action to Symbol' do
312
- actions.each do |action|
313
- symbol = action.to_sym
314
- action.should_receive(:to_sym).and_return(symbol)
315
- end
316
- described_class.convert_actions_to_byte(actions)
317
- end
318
-
319
- it 'returns correct byte flag' do
320
- described_class.convert_actions_to_byte(actions).should == 257
321
- end
322
- end
323
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Job do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+ include_examples GroupDocs::Api::Helpers::Status
7
+
8
+ describe '.all!' do
9
+ before(:each) do
10
+ mock_api_server(load_json('jobs_get'))
11
+ end
12
+
13
+ it 'accepts access credentials hash' do
14
+ lambda do
15
+ described_class.all!({}, :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.all!(:page => 1, :count => 2)
22
+ end.should_not raise_error()
23
+ end
24
+
25
+ it 'returns an array of GroupDocs::Job objects' do
26
+ jobs = described_class.all!
27
+ jobs.should be_an(Array)
28
+ jobs.each do |job|
29
+ job.should be_a(GroupDocs::Job)
30
+ end
31
+ end
32
+ end
33
+
34
+ describe '.get!' do
35
+ before(:each) do
36
+ mock_api_server(load_json('job_get'))
37
+ end
38
+
39
+ it 'accepts access credentials hash' do
40
+ lambda do
41
+ described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
42
+ end.should_not raise_error()
43
+ end
44
+
45
+ it 'returns GroupDocs::Job object' do
46
+ described_class.get!(1).should be_a(GroupDocs::Job)
47
+ end
48
+ end
49
+
50
+ describe '.create!' do
51
+ before(:each) do
52
+ mock_api_server(load_json('job_create'))
53
+ end
54
+
55
+ let(:actions) { %w(convert compress_zip) }
56
+
57
+ it 'accepts access credentials hash' do
58
+ lambda do
59
+ described_class.create!({ :actions => %w(convert) }, :client_id => 'client_id', :private_key => 'private_key')
60
+ end.should_not raise_error()
61
+ end
62
+
63
+ it 'raises error if actions are passed' do
64
+ lambda { described_class.create!({}) }.should raise_error(ArgumentError)
65
+ end
66
+
67
+ it 'convert actions to byte flag' do
68
+ described_class.should_receive(:convert_actions_to_byte).with(actions).and_return(5)
69
+ described_class.create!(:actions => actions)
70
+ end
71
+
72
+ it 'returns GroupDocs::Job object' do
73
+ described_class.create!(:actions => actions).should be_a(GroupDocs::Job)
74
+ end
75
+ end
76
+
77
+ it { should have_accessor(:id) }
78
+ it { should have_accessor(:guid) }
79
+ it { should have_accessor(:name) }
80
+ it { should have_accessor(:priority) }
81
+ it { should have_accessor(:actions) }
82
+ it { should have_accessor(:email_results) }
83
+ it { should have_accessor(:url_only) }
84
+ it { should have_accessor(:documents) }
85
+ it { should have_accessor(:requested_time) }
86
+
87
+ describe '#documents=' do
88
+ let(:response) do
89
+ {
90
+ :inputs => [
91
+ { :id => 1, :guid => 'fhy9yh94u238dgf', :status => 0, :outputs => [] },
92
+ { :id => 2, :guid => 'ofh9rhy9rfohf9s', :status => 2, :outputs => [] }
93
+ ]
94
+ }
95
+ end
96
+
97
+ it 'saves documents as array of GroupDocs::Document objects' do
98
+ subject.documents = response
99
+ documents = subject.documents
100
+ documents.should be_an(Array)
101
+ documents.each do |document|
102
+ document.should be_a(GroupDocs::Document)
103
+ end
104
+ end
105
+
106
+ it 'does nothing if nil is passed' do
107
+ lambda do
108
+ subject.documents = nil
109
+ end.should_not change(subject, :documents)
110
+ end
111
+ end
112
+
113
+ describe '#requested_time' do
114
+ it 'converts timestamp to Time object' do
115
+ subject.requested_time = 1330450135000
116
+ subject.requested_time.should == Time.at(1330450135)
117
+ end
118
+ end
119
+
120
+ describe '#actions' do
121
+ it 'converts actions to human-readable format' do
122
+ subject.actions = 'Convert, Combine, CompressZip'
123
+ subject.actions.should == [:convert, :combine, :compress_zip]
124
+ end
125
+
126
+ it 'does nothing if there are no actions' do
127
+ subject.actions = nil
128
+ subject.actions.should be_nil
129
+ end
130
+ end
131
+
132
+ describe '#documents!' do
133
+ before(:each) do
134
+ mock_api_server(load_json('job_documents'))
135
+ end
136
+
137
+ it 'accepts access credentials hash' do
138
+ lambda do
139
+ subject.documents!(:client_id => 'client_id', :private_key => 'private_key')
140
+ end.should_not raise_error()
141
+ end
142
+
143
+ it 'updates job status' do
144
+ subject.documents!
145
+ subject.status.should == :archived
146
+ end
147
+
148
+ it 'returns hash' do
149
+ subject.documents!.should be_a(Hash)
150
+ end
151
+
152
+ it 'returns array of input documents' do
153
+ documents = subject.documents![:inputs]
154
+ documents.should be_an(Array)
155
+ documents.each do |document|
156
+ document.should be_a(GroupDocs::Document)
157
+ end
158
+ end
159
+
160
+ it 'returns array of output documents' do
161
+ documents = subject.documents![:outputs]
162
+ documents.should be_an(Array)
163
+ documents.each do |document|
164
+ document.should be_a(GroupDocs::Document)
165
+ end
166
+ end
167
+
168
+ it 'returns empty arrays if there are no documents' do
169
+ mock_api_server('{ "status": "Ok", "result": {}}')
170
+ subject.documents!.should == { :inputs => [], :outputs => [] }
171
+ end
172
+ end
173
+
174
+ describe '#add_document!' do
175
+ before(:each) do
176
+ mock_api_server(load_json('job_file_add'))
177
+ end
178
+
179
+ let(:document) do
180
+ GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
181
+ end
182
+
183
+ it 'accepts access credentials hash' do
184
+ lambda do
185
+ subject.add_document!(document, {}, :client_id => 'client_id', :private_key => 'private_key')
186
+ end.should_not raise_error()
187
+ end
188
+
189
+ it 'accepts options hash' do
190
+ lambda do
191
+ subject.add_document!(document, :output_formats => %w(pdf txt))
192
+ end.should_not raise_error()
193
+ end
194
+
195
+ it 'raises error if document is not an instance of GroupDocs::Document' do
196
+ lambda { subject.add_document!('Document') }.should raise_error(ArgumentError)
197
+ end
198
+
199
+ it 'returns document ID' do
200
+ subject.add_document!(document).should be_an(Integer)
201
+ end
202
+ end
203
+
204
+ describe '#delete_document!' do
205
+ before(:each) do
206
+ mock_api_server('{ "result": {}, "status": "Ok" }')
207
+ end
208
+
209
+ it 'accepts access credentials hash' do
210
+ lambda do
211
+ subject.delete_document!('a9ufg8s7dfgsdf', :client_id => 'client_id', :private_key => 'private_key')
212
+ end.should_not raise_error()
213
+ end
214
+
215
+ it 'returns empty hash' do
216
+ subject.delete_document!('a9ufg8s7dfgsdf').should be_empty
217
+ end
218
+ end
219
+
220
+ describe '#add_datasource!' do
221
+ before(:each) do
222
+ mock_api_server('{ "status": "Ok", "result": {}}')
223
+ end
224
+ let(:document) do
225
+ GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
226
+ end
227
+
228
+ let(:datasource) do
229
+ GroupDocs::DataSource.new
230
+ end
231
+
232
+ it 'accepts access credentials hash' do
233
+ lambda do
234
+ subject.add_datasource!(document, datasource, :client_id => 'client_id', :private_key => 'private_key')
235
+ end.should_not raise_error()
236
+ end
237
+
238
+ it 'raises error if document is not an instance of GroupDocs::Document' do
239
+ lambda { subject.add_datasource!('Document') }.should raise_error(ArgumentError)
240
+ end
241
+
242
+ it 'raises error if datasource is not an instance of GroupDocs::DataSource' do
243
+ lambda { subject.add_datasource!(document, 'DataSource') }.should raise_error(ArgumentError)
244
+ end
245
+ end
246
+
247
+ describe '#add_url!' do
248
+ before(:each) do
249
+ mock_api_server(load_json('job_add_url'))
250
+ end
251
+
252
+ let(:url) { 'http://www.google.com' }
253
+
254
+ it 'accepts access credentials hash' do
255
+ lambda do
256
+ subject.add_url!(url, {}, :client_id => 'client_id', :private_key => 'private_key')
257
+ end.should_not raise_error()
258
+ end
259
+
260
+ it 'accepts options hash' do
261
+ lambda do
262
+ subject.add_url!(url, :out_formats => %W(pdf txt))
263
+ end.should_not raise_error()
264
+ end
265
+
266
+ it 'returns document ID' do
267
+ subject.add_url!(url).should be_an(Integer)
268
+ end
269
+ end
270
+
271
+ describe '#update!' do
272
+ before(:each) do
273
+ mock_api_server(load_json('job_update'))
274
+ end
275
+
276
+ it 'accepts access credentials hash' do
277
+ lambda do
278
+ subject.update!({}, :client_id => 'client_id', :private_key => 'private_key')
279
+ end.should_not raise_error()
280
+ end
281
+
282
+ it 'parses status' do
283
+ subject.should_receive(:parse_status).with(:draft).and_return(-1)
284
+ subject.update!(:status => :draft)
285
+ end
286
+ end
287
+
288
+ describe '#delete!' do
289
+ before(:each) do
290
+ mock_api_server('{ "status": "Ok", "result": {} }')
291
+ end
292
+
293
+ it 'accepts access credentials hash' do
294
+ lambda do
295
+ subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
296
+ end.should_not raise_error()
297
+ end
298
+ end
299
+
300
+ describe '#convert_actions_to_byte' do
301
+ let(:actions) { %w(convert compare) }
302
+
303
+ it 'raises error if actions is not an array' do
304
+ lambda { described_class.convert_actions_to_byte(:export) }.should raise_error(ArgumentError)
305
+ end
306
+
307
+ it 'raises error if action is unknown' do
308
+ lambda { described_class.convert_actions_to_byte(%w(unknown)) }.should raise_error(ArgumentError)
309
+ end
310
+
311
+ it 'converts each action to Symbol' do
312
+ actions.each do |action|
313
+ symbol = action.to_sym
314
+ action.should_receive(:to_sym).and_return(symbol)
315
+ end
316
+ described_class.convert_actions_to_byte(actions)
317
+ end
318
+
319
+ it 'returns correct byte flag' do
320
+ described_class.convert_actions_to_byte(actions).should == 257
321
+ end
322
+ end
323
+ end