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,38 +1,38 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Storage::Package do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:name) }
8
- it { should have_accessor(:objects) }
9
-
10
- describe '#add' do
11
- it 'adds objects to be packed later' do
12
- subject.objects = ['object 1']
13
- subject.objects.should_receive(:<<).with('object 2')
14
- subject.add('object 2')
15
- end
16
-
17
- it 'is aliased to #<<' do
18
- subject.should have_alias(:<<, :add)
19
- end
20
- end
21
-
22
- describe '#create!' do
23
- before(:each) do
24
- mock_api_server(load_json('package_create'))
25
- subject.objects = [double(:name => 'object 1', :path => 'path 1')]
26
- end
27
-
28
- it 'accepts access credentials hash' do
29
- lambda do
30
- subject.create!(:client_id => 'client_id', :private_key => 'private_key')
31
- end.should_not raise_error()
32
- end
33
-
34
- it 'returns URL for package downloading' do
35
- subject.create!.should be_a(String)
36
- end
37
- end
38
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Storage::Package do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:name) }
8
+ it { should have_accessor(:objects) }
9
+
10
+ describe '#add' do
11
+ it 'adds objects to be packed later' do
12
+ subject.objects = ['object 1']
13
+ subject.objects.should_receive(:<<).with('object 2')
14
+ subject.add('object 2')
15
+ end
16
+
17
+ it 'is aliased to #<<' do
18
+ subject.should have_alias(:<<, :add)
19
+ end
20
+ end
21
+
22
+ describe '#create!' do
23
+ before(:each) do
24
+ mock_api_server(load_json('package_create'))
25
+ subject.objects = [double(:name => 'object 1', :path => 'path 1')]
26
+ end
27
+
28
+ it 'accepts access credentials hash' do
29
+ lambda do
30
+ subject.create!(:client_id => 'client_id', :private_key => 'private_key')
31
+ end.should_not raise_error()
32
+ end
33
+
34
+ it 'returns URL for package downloading' do
35
+ subject.create!.should be_a(String)
36
+ end
37
+ end
38
+ end
@@ -1,22 +1,22 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Storage::Provider do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:id) }
8
- it { should have_accessor(:provider) }
9
- it { should have_accessor(:type) }
10
- it { should have_accessor(:token) }
11
- it { should have_accessor(:publicKey) }
12
- it { should have_accessor(:privateKey) }
13
- it { should have_accessor(:rootFolder) }
14
- it { should have_accessor(:isPrimary) }
15
- it { should have_accessor(:serviceHost) }
16
-
17
- it { should alias_accessor(:public_key, :publicKey) }
18
- it { should alias_accessor(:private_key, :privateKey) }
19
- it { should alias_accessor(:root_folder, :rootFolder) }
20
- it { should alias_accessor(:is_primary, :isPrimary) }
21
- it { should alias_accessor(:service_host, :serviceHost) }
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Storage::Provider do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:id) }
8
+ it { should have_accessor(:provider) }
9
+ it { should have_accessor(:type) }
10
+ it { should have_accessor(:token) }
11
+ it { should have_accessor(:publicKey) }
12
+ it { should have_accessor(:privateKey) }
13
+ it { should have_accessor(:rootFolder) }
14
+ it { should have_accessor(:isPrimary) }
15
+ it { should have_accessor(:serviceHost) }
16
+
17
+ it { should alias_accessor(:public_key, :publicKey) }
18
+ it { should alias_accessor(:private_key, :privateKey) }
19
+ it { should alias_accessor(:root_folder, :rootFolder) }
20
+ it { should alias_accessor(:is_primary, :isPrimary) }
21
+ it { should alias_accessor(:service_host, :serviceHost) }
22
22
  end
@@ -1,27 +1,27 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Storage do
4
- describe '.info!' do
5
- before(:each) do
6
- mock_api_server(load_json('storage_info'))
7
- end
8
-
9
- it 'accepts access credentials hash' do
10
- lambda do
11
- described_class.info!(:client_id => 'client_id', :private_key => 'private_key')
12
- end.should_not raise_error()
13
- end
14
-
15
- it 'returns a hash of information' do
16
- described_class.info!.should be_a(Hash)
17
- end
18
-
19
- it 'converts total space to MB' do
20
- described_class.info![:total_space].should == '1024 MB'
21
- end
22
-
23
- it 'converts available space to MB' do
24
- described_class.info![:available_space].should == '1020 MB'
25
- end
26
- end
27
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Storage do
4
+ describe '.info!' do
5
+ before(:each) do
6
+ mock_api_server(load_json('storage_info'))
7
+ end
8
+
9
+ it 'accepts access credentials hash' do
10
+ lambda do
11
+ described_class.info!(:client_id => 'client_id', :private_key => 'private_key')
12
+ end.should_not raise_error()
13
+ end
14
+
15
+ it 'returns a hash of information' do
16
+ described_class.info!.should be_a(Hash)
17
+ end
18
+
19
+ it 'converts total space to MB' do
20
+ described_class.info![:total_space].should == '1024 MB'
21
+ end
22
+
23
+ it 'converts available space to MB' do
24
+ described_class.info![:available_space].should == '1020 MB'
25
+ end
26
+ end
27
+ end
@@ -1,16 +1,16 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Subscription::Limit do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:Id) }
8
- it { should have_accessor(:Min) }
9
- it { should have_accessor(:Max) }
10
- it { should have_accessor(:Description) }
11
-
12
- it { should alias_accessor(:id, :Id) }
13
- it { should alias_accessor(:min, :Min) }
14
- it { should alias_accessor(:max, :Max) }
15
- it { should alias_accessor(:description, :Description) }
16
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Subscription::Limit do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:Id) }
8
+ it { should have_accessor(:Min) }
9
+ it { should have_accessor(:Max) }
10
+ it { should have_accessor(:Description) }
11
+
12
+ it { should alias_accessor(:id, :Id) }
13
+ it { should alias_accessor(:min, :Min) }
14
+ it { should alias_accessor(:max, :Max) }
15
+ it { should alias_accessor(:description, :Description) }
16
+ end
@@ -1,74 +1,74 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Subscription do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- describe '.current!' do
8
- before(:each) do
9
- mock_api_server(load_json('subscription_plan_get'))
10
- end
11
-
12
- it 'accepts access credentials hash' do
13
- lambda do
14
- described_class.current!(:client_id => 'client_id', :private_key => 'private_key')
15
- end.should_not raise_error()
16
- end
17
-
18
- it 'returns GroupDocs::Subscription object' do
19
- described_class.current!.should be_a(GroupDocs::Subscription)
20
- end
21
- end
22
-
23
- describe '.list!' do
24
- before(:each) do
25
- mock_api_server(load_json('subscription_plans_get'))
26
- end
27
-
28
- it 'accepts access credentials hash' do
29
- lambda do
30
- described_class.list!('invalidate', :client_id => 'client_id', :private_key => 'private_key')
31
- end.should_not raise_error()
32
- end
33
-
34
- it 'returns array of GroupDocs::Subscription objects' do
35
- plans = described_class.list!'invalidate'
36
- plans.should be_an(Array)
37
- plans.each do |plan|
38
- plan.should be_a(GroupDocs::Subscription)
39
- end
40
- end
41
- end
42
-
43
- it { should have_accessor(:Id) }
44
- it { should have_accessor(:Name) }
45
- it { should have_accessor(:PricingPlanId) }
46
- it { should have_accessor(:Price) }
47
- it { should have_accessor(:CurrencyCode) }
48
-
49
- it { should alias_accessor(:id, :Id) }
50
- it { should alias_accessor(:name, :Name) }
51
- it { should alias_accessor(:pricing_plan_id, :PricingPlanId) }
52
- it { should alias_accessor(:price, :Price) }
53
- it { should alias_accessor(:currency_code, :CurrencyCode) }
54
-
55
- it { should have_alias(:ref_id=, :id=) }
56
-
57
- GroupDocs::Subscription::LIMITS.each do |snake, camel|
58
- it { should have_accessor(camel) }
59
-
60
- # reader is overwritten
61
- it { should have_alias(:"#{snake}=", :"#{camel}=") }
62
-
63
- describe "##{snake}" do
64
- it 'converts hash to GroupDocs::Subscription::Limit object' do
65
- subject.send(:"#{snake}=", { :min => 2, :max => 3, :description => 'Description' })
66
- limit = subject.send(snake)
67
- limit.should be_a(GroupDocs::Subscription::Limit)
68
- limit.min.should == 2
69
- limit.max.should == 3
70
- limit.description.should == 'Description'
71
- end
72
- end
73
- end
74
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Subscription do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ describe '.current!' do
8
+ before(:each) do
9
+ mock_api_server(load_json('subscription_plan_get'))
10
+ end
11
+
12
+ it 'accepts access credentials hash' do
13
+ lambda do
14
+ described_class.current!(:client_id => 'client_id', :private_key => 'private_key')
15
+ end.should_not raise_error()
16
+ end
17
+
18
+ it 'returns GroupDocs::Subscription object' do
19
+ described_class.current!.should be_a(GroupDocs::Subscription)
20
+ end
21
+ end
22
+
23
+ describe '.list!' do
24
+ before(:each) do
25
+ mock_api_server(load_json('subscription_plans_get'))
26
+ end
27
+
28
+ it 'accepts access credentials hash' do
29
+ lambda do
30
+ described_class.list!('invalidate', :client_id => 'client_id', :private_key => 'private_key')
31
+ end.should_not raise_error()
32
+ end
33
+
34
+ it 'returns array of GroupDocs::Subscription objects' do
35
+ plans = described_class.list!'invalidate'
36
+ plans.should be_an(Array)
37
+ plans.each do |plan|
38
+ plan.should be_a(GroupDocs::Subscription)
39
+ end
40
+ end
41
+ end
42
+
43
+ it { should have_accessor(:Id) }
44
+ it { should have_accessor(:Name) }
45
+ it { should have_accessor(:PricingPlanId) }
46
+ it { should have_accessor(:Price) }
47
+ it { should have_accessor(:CurrencyCode) }
48
+
49
+ it { should alias_accessor(:id, :Id) }
50
+ it { should alias_accessor(:name, :Name) }
51
+ it { should alias_accessor(:pricing_plan_id, :PricingPlanId) }
52
+ it { should alias_accessor(:price, :Price) }
53
+ it { should alias_accessor(:currency_code, :CurrencyCode) }
54
+
55
+ it { should have_alias(:ref_id=, :id=) }
56
+
57
+ GroupDocs::Subscription::LIMITS.each do |snake, camel|
58
+ it { should have_accessor(camel) }
59
+
60
+ # reader is overwritten
61
+ it { should have_alias(:"#{snake}=", :"#{camel}=") }
62
+
63
+ describe "##{snake}" do
64
+ it 'converts hash to GroupDocs::Subscription::Limit object' do
65
+ subject.send(:"#{snake}=", { :min => 2, :max => 3, :description => 'Description' })
66
+ limit = subject.send(snake)
67
+ limit.should be_a(GroupDocs::Subscription::Limit)
68
+ limit.min.should == 2
69
+ limit.max.should == 3
70
+ limit.description.should == 'Description'
71
+ end
72
+ end
73
+ end
74
+ end
@@ -1,257 +1,257 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::User do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- describe '.get!' do
8
- before(:each) do
9
- mock_api_server(load_json('user_profile_get'))
10
- end
11
-
12
- it 'accepts access credentials hash' do
13
- lambda do
14
- described_class.get!(:client_id => 'client_id', :private_key => 'private_key')
15
- end.should_not raise_error()
16
- end
17
-
18
- it 'returns GroupDocs::User object' do
19
- described_class.get!.should be_a(GroupDocs::User)
20
- end
21
- end
22
-
23
- describe '.update_account!' do
24
- before(:each) do
25
- mock_api_server(load_json('update_account'))
26
- end
27
-
28
- let!(:user) { GroupDocs::User.new }
29
-
30
- it 'accepts access credentials hash' do
31
- lambda do
32
- described_class.update_account!(user, :client_id => 'client_id', :private_key => 'private_key')
33
- end.should_not raise_error()
34
- end
35
-
36
- it 'raises error if user is not an instance of GroupDocs::User' do
37
- lambda { described_class.update_account!('user') }.should raise_error(ArgumentError)
38
- end
39
-
40
- it 'returns GroupDocs::User object' do
41
- described_class.update_account!(user).should be_a(GroupDocs::User)
42
- end
43
- end
44
-
45
- describe '.delete!' do
46
- before(:each) do
47
- mock_api_server(load_json('delete_account'))
48
- end
49
-
50
- let!(:user) { GroupDocs::User.new }
51
-
52
- it 'accepts access credentials hash' do
53
- lambda do
54
- described_class.delete!(user, :client_id => 'client_id', :private_key => 'private_key')
55
- end.should_not raise_error()
56
- end
57
-
58
- it 'raises error if user is not an instance of GroupDocs::User' do
59
- lambda { described_class.delete!('user') }.should raise_error(ArgumentError)
60
- end
61
-
62
- it 'returns user guid' do
63
- described_class.delete!(user).should be_a(String)
64
- end
65
- end
66
-
67
- describe '.generate_embed_key!' do
68
- before(:each) do
69
- mock_api_server(load_json('user_embed_key'))
70
- end
71
-
72
- it 'accepts access credentials hash' do
73
- lambda do
74
- described_class.generate_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
75
- end.should_not raise_error()
76
- end
77
-
78
- it 'returns new user embed key for defined area' do
79
- described_class.generate_embed_key!('test-area').should be_a(String)
80
- end
81
- end
82
-
83
- describe '.get_embed_key!' do
84
- before(:each) do
85
- mock_api_server(load_json('user_get_embed_key'))
86
- end
87
-
88
- it 'accepts access credentials hash' do
89
- lambda do
90
- described_class.get_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
91
- end.should_not raise_error()
92
- end
93
-
94
- it 'returns user embed key for defined area' do
95
- described_class.get_embed_key!('test-area').should be_a(String)
96
- end
97
- end
98
-
99
- describe '.area!' do
100
- before(:each) do
101
- mock_api_server(load_json('user_area'))
102
- end
103
-
104
- it 'accepts access credentials hash' do
105
- lambda do
106
- described_class.area!('60a06eg8f23a49cf807977f1444fbdd8', :client_id => 'client_id', :private_key => 'private_key')
107
- end.should_not raise_error()
108
- end
109
-
110
- it 'returns area name by defined embed key' do
111
- described_class.area!('60a06eg8f23a49cf807977f1444fbdd8').should be_a(String)
112
- end
113
- end
114
-
115
- describe '.providers!' do
116
- before(:each) do
117
- mock_api_server(load_json('user_providers'))
118
- end
119
-
120
- it 'accepts access credentials hash' do
121
- lambda do
122
- described_class.providers!(:client_id => 'client_id', :private_key => 'private_key')
123
- end.should_not raise_error()
124
- end
125
-
126
- it 'returns array of GroupDocs::Storage::Provider' do
127
- providers = described_class.providers!
128
- providers.should be_an(Array)
129
- providers.each do |provider|
130
- provider.should be_a(GroupDocs::Storage::Provider)
131
- end
132
- end
133
- end
134
-
135
- describe '.login!' do
136
- before(:each) do
137
- mock_api_server(load_json('user_login'))
138
- end
139
-
140
- it 'works without access credentials hash' do
141
- lambda do
142
- described_class.login!('doe@john.com', 'password')
143
- end.should_not raise_error()
144
- end
145
-
146
- it 'returns GroupDocs::User object' do
147
- described_class.login!('doe@john.com', 'password').should be_a(GroupDocs::User)
148
- end
149
- end
150
-
151
- it { should have_accessor(:id) }
152
- it { should have_accessor(:guid) }
153
- it { should have_accessor(:nickname) }
154
- it { should have_accessor(:firstname) }
155
- it { should have_accessor(:lastname) }
156
- it { should have_accessor(:primary_email) }
157
- it { should have_accessor(:private_key) }
158
- it { should have_accessor(:password_salt) }
159
- it { should have_accessor(:claimed_id) }
160
- it { should have_accessor(:token) }
161
- it { should have_accessor(:storage) }
162
- it { should have_accessor(:photo) }
163
- it { should have_accessor(:active) }
164
- it { should have_accessor(:news_enabled) }
165
- it { should have_accessor(:signed_up_on) }
166
- it { should have_accessor(:color) }
167
- it { should have_accessor(:customEmailMessage) }
168
-
169
- it { should alias_accessor(:first_name, :firstname) }
170
- it { should alias_accessor(:last_name, :lastname) }
171
- it { should alias_accessor(:custom_email_message, :customEmailMessage) }
172
-
173
- it { should have_alias(:pkey=, :private_key=) }
174
- it { should have_alias(:pswd_salt=, :password_salt=) }
175
- it { should have_alias(:signedupOn=, :signed_up_on=) }
176
-
177
- describe '#access_rights' do
178
- it 'returns rights in human-readable format' do
179
- subject.instance_variable_set(:@access_rights, 46)
180
- subject.access_rights.should =~ [:view, :annotate, :download, :export, :all]
181
- end
182
- end
183
-
184
- describe '#access_rights=' do
185
- it 'converts rights in machine-readable format if array is passed' do
186
- subject.access_rights = %w(view annotate download export all)
187
- subject.instance_variable_get(:@access_rights).should == 46
188
- end
189
-
190
- it 'does nothing if not array is passed' do
191
- subject.access_rights = 46
192
- subject.instance_variable_get(:@access_rights).should == 46
193
- end
194
- end
195
-
196
- describe '#signed_up_on' do
197
- it 'returns converted to Time object Unix timestamp' do
198
- subject.signed_up_on = 1330450135000
199
- subject.signed_up_on.should == Time.at(1330450135)
200
- end
201
- end
202
-
203
- describe '#update!' do
204
- before(:each) do
205
- mock_api_server('{ "result": { "user_guid": "s8dfts8" }, "status": "Ok" }')
206
- end
207
-
208
- it 'accepts access credentials hash' do
209
- lambda do
210
- subject.update!(:client_id => 'client_id', :private_key => 'private_key')
211
- end.should_not raise_error()
212
- end
213
-
214
- it 'uses hashed version of self as request body' do
215
- subject.should_receive(:to_hash)
216
- subject.update!
217
- end
218
- end
219
-
220
- describe '#users!' do
221
- before(:each) do
222
- mock_api_server(load_json('user_users_get'))
223
- end
224
-
225
- it 'accepts access credentials hash' do
226
- lambda do
227
- subject.users!(:client_id => 'client_id', :private_key => 'private_key')
228
- end.should_not raise_error()
229
- end
230
-
231
- it 'returns array of GroupDocs::User objects' do
232
- users = subject.users!
233
- users.should be_an(Array)
234
- users.each do |user|
235
- user.should be_a(GroupDocs::User)
236
- end
237
- end
238
- end
239
-
240
- describe '#roles!' do
241
- before(:each) do
242
- mock_api_server(load_json('user_roles'))
243
- end
244
-
245
- it 'accepts access credentials hash' do
246
- lambda do
247
- subject.roles!(:client_id => 'client_id', :private_key => 'private_key')
248
- end.should_not raise_error()
249
- end
250
-
251
- it 'returns array' do
252
- roles = subject.roles!
253
- roles.should be_an(Array)
254
- end
255
- end
256
-
257
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::User do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ describe '.get!' do
8
+ before(:each) do
9
+ mock_api_server(load_json('user_profile_get'))
10
+ end
11
+
12
+ it 'accepts access credentials hash' do
13
+ lambda do
14
+ described_class.get!(:client_id => 'client_id', :private_key => 'private_key')
15
+ end.should_not raise_error()
16
+ end
17
+
18
+ it 'returns GroupDocs::User object' do
19
+ described_class.get!.should be_a(GroupDocs::User)
20
+ end
21
+ end
22
+
23
+ describe '.update_account!' do
24
+ before(:each) do
25
+ mock_api_server(load_json('update_account'))
26
+ end
27
+
28
+ let!(:user) { GroupDocs::User.new }
29
+
30
+ it 'accepts access credentials hash' do
31
+ lambda do
32
+ described_class.update_account!(user, :client_id => 'client_id', :private_key => 'private_key')
33
+ end.should_not raise_error()
34
+ end
35
+
36
+ it 'raises error if user is not an instance of GroupDocs::User' do
37
+ lambda { described_class.update_account!('user') }.should raise_error(ArgumentError)
38
+ end
39
+
40
+ it 'returns GroupDocs::User object' do
41
+ described_class.update_account!(user).should be_a(GroupDocs::User)
42
+ end
43
+ end
44
+
45
+ describe '.delete!' do
46
+ before(:each) do
47
+ mock_api_server(load_json('delete_account'))
48
+ end
49
+
50
+ let!(:user) { GroupDocs::User.new }
51
+
52
+ it 'accepts access credentials hash' do
53
+ lambda do
54
+ described_class.delete!(user, :client_id => 'client_id', :private_key => 'private_key')
55
+ end.should_not raise_error()
56
+ end
57
+
58
+ it 'raises error if user is not an instance of GroupDocs::User' do
59
+ lambda { described_class.delete!('user') }.should raise_error(ArgumentError)
60
+ end
61
+
62
+ it 'returns user guid' do
63
+ described_class.delete!(user).should be_a(String)
64
+ end
65
+ end
66
+
67
+ describe '.generate_embed_key!' do
68
+ before(:each) do
69
+ mock_api_server(load_json('user_embed_key'))
70
+ end
71
+
72
+ it 'accepts access credentials hash' do
73
+ lambda do
74
+ described_class.generate_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
75
+ end.should_not raise_error()
76
+ end
77
+
78
+ it 'returns new user embed key for defined area' do
79
+ described_class.generate_embed_key!('test-area').should be_a(String)
80
+ end
81
+ end
82
+
83
+ describe '.get_embed_key!' do
84
+ before(:each) do
85
+ mock_api_server(load_json('user_get_embed_key'))
86
+ end
87
+
88
+ it 'accepts access credentials hash' do
89
+ lambda do
90
+ described_class.get_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
91
+ end.should_not raise_error()
92
+ end
93
+
94
+ it 'returns user embed key for defined area' do
95
+ described_class.get_embed_key!('test-area').should be_a(String)
96
+ end
97
+ end
98
+
99
+ describe '.area!' do
100
+ before(:each) do
101
+ mock_api_server(load_json('user_area'))
102
+ end
103
+
104
+ it 'accepts access credentials hash' do
105
+ lambda do
106
+ described_class.area!('60a06eg8f23a49cf807977f1444fbdd8', :client_id => 'client_id', :private_key => 'private_key')
107
+ end.should_not raise_error()
108
+ end
109
+
110
+ it 'returns area name by defined embed key' do
111
+ described_class.area!('60a06eg8f23a49cf807977f1444fbdd8').should be_a(String)
112
+ end
113
+ end
114
+
115
+ describe '.providers!' do
116
+ before(:each) do
117
+ mock_api_server(load_json('user_providers'))
118
+ end
119
+
120
+ it 'accepts access credentials hash' do
121
+ lambda do
122
+ described_class.providers!(:client_id => 'client_id', :private_key => 'private_key')
123
+ end.should_not raise_error()
124
+ end
125
+
126
+ it 'returns array of GroupDocs::Storage::Provider' do
127
+ providers = described_class.providers!
128
+ providers.should be_an(Array)
129
+ providers.each do |provider|
130
+ provider.should be_a(GroupDocs::Storage::Provider)
131
+ end
132
+ end
133
+ end
134
+
135
+ describe '.login!' do
136
+ before(:each) do
137
+ mock_api_server(load_json('user_login'))
138
+ end
139
+
140
+ it 'works without access credentials hash' do
141
+ lambda do
142
+ described_class.login!('doe@john.com', 'password')
143
+ end.should_not raise_error()
144
+ end
145
+
146
+ it 'returns GroupDocs::User object' do
147
+ described_class.login!('doe@john.com', 'password').should be_a(GroupDocs::User)
148
+ end
149
+ end
150
+
151
+ it { should have_accessor(:id) }
152
+ it { should have_accessor(:guid) }
153
+ it { should have_accessor(:nickname) }
154
+ it { should have_accessor(:firstname) }
155
+ it { should have_accessor(:lastname) }
156
+ it { should have_accessor(:primary_email) }
157
+ it { should have_accessor(:private_key) }
158
+ it { should have_accessor(:password_salt) }
159
+ it { should have_accessor(:claimed_id) }
160
+ it { should have_accessor(:token) }
161
+ it { should have_accessor(:storage) }
162
+ it { should have_accessor(:photo) }
163
+ it { should have_accessor(:active) }
164
+ it { should have_accessor(:news_enabled) }
165
+ it { should have_accessor(:signed_up_on) }
166
+ it { should have_accessor(:color) }
167
+ it { should have_accessor(:customEmailMessage) }
168
+
169
+ it { should alias_accessor(:first_name, :firstname) }
170
+ it { should alias_accessor(:last_name, :lastname) }
171
+ it { should alias_accessor(:custom_email_message, :customEmailMessage) }
172
+
173
+ it { should have_alias(:pkey=, :private_key=) }
174
+ it { should have_alias(:pswd_salt=, :password_salt=) }
175
+ it { should have_alias(:signedupOn=, :signed_up_on=) }
176
+
177
+ describe '#access_rights' do
178
+ it 'returns rights in human-readable format' do
179
+ subject.instance_variable_set(:@access_rights, 46)
180
+ subject.access_rights.should =~ [:view, :annotate, :download, :export, :all]
181
+ end
182
+ end
183
+
184
+ describe '#access_rights=' do
185
+ it 'converts rights in machine-readable format if array is passed' do
186
+ subject.access_rights = %w(view annotate download export all)
187
+ subject.instance_variable_get(:@access_rights).should == 46
188
+ end
189
+
190
+ it 'does nothing if not array is passed' do
191
+ subject.access_rights = 46
192
+ subject.instance_variable_get(:@access_rights).should == 46
193
+ end
194
+ end
195
+
196
+ describe '#signed_up_on' do
197
+ it 'returns converted to Time object Unix timestamp' do
198
+ subject.signed_up_on = 1330450135000
199
+ subject.signed_up_on.should == Time.at(1330450135)
200
+ end
201
+ end
202
+
203
+ describe '#update!' do
204
+ before(:each) do
205
+ mock_api_server('{ "result": { "user_guid": "s8dfts8" }, "status": "Ok" }')
206
+ end
207
+
208
+ it 'accepts access credentials hash' do
209
+ lambda do
210
+ subject.update!(:client_id => 'client_id', :private_key => 'private_key')
211
+ end.should_not raise_error()
212
+ end
213
+
214
+ it 'uses hashed version of self as request body' do
215
+ subject.should_receive(:to_hash)
216
+ subject.update!
217
+ end
218
+ end
219
+
220
+ describe '#users!' do
221
+ before(:each) do
222
+ mock_api_server(load_json('user_users_get'))
223
+ end
224
+
225
+ it 'accepts access credentials hash' do
226
+ lambda do
227
+ subject.users!(:client_id => 'client_id', :private_key => 'private_key')
228
+ end.should_not raise_error()
229
+ end
230
+
231
+ it 'returns array of GroupDocs::User objects' do
232
+ users = subject.users!
233
+ users.should be_an(Array)
234
+ users.each do |user|
235
+ user.should be_a(GroupDocs::User)
236
+ end
237
+ end
238
+ end
239
+
240
+ describe '#roles!' do
241
+ before(:each) do
242
+ mock_api_server(load_json('user_roles'))
243
+ end
244
+
245
+ it 'accepts access credentials hash' do
246
+ lambda do
247
+ subject.roles!(:client_id => 'client_id', :private_key => 'private_key')
248
+ end.should_not raise_error()
249
+ end
250
+
251
+ it 'returns array' do
252
+ roles = subject.roles!
253
+ roles.should be_an(Array)
254
+ end
255
+ end
256
+
257
+ end