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.
- checksums.yaml +7 -0
- data/.travis.yml +9 -9
- data/CHANGELOG.md +482 -477
- data/Gemfile +3 -3
- data/LICENSE.txt +21 -21
- data/README.md +94 -94
- data/Rakefile +9 -9
- data/examples/README.md +12 -12
- data/examples/api-samples/Gemfile +5 -5
- data/examples/api-samples/Gemfile.lock +49 -49
- data/examples/api-samples/README.md +23 -23
- data/examples/api-samples/public/css/style.css +229 -229
- data/examples/api-samples/public/docs/annotation-sample.html +167 -167
- data/examples/api-samples/public/docs/docco.css +500 -500
- data/examples/api-samples/public/docs/envelope-sample.html +374 -374
- data/examples/api-samples/public/docs/sample01.html +181 -181
- data/examples/api-samples/public/docs/sample02.html +199 -199
- data/examples/api-samples/public/docs/sample03.html +318 -318
- data/examples/api-samples/public/docs/sample04.html +217 -217
- data/examples/api-samples/public/docs/sample05.html +296 -296
- data/examples/api-samples/public/docs/sample06.html +347 -347
- data/examples/api-samples/public/docs/sample07.html +209 -209
- data/examples/api-samples/public/docs/sample08.html +277 -277
- data/examples/api-samples/public/docs/sample09.html +314 -314
- data/examples/api-samples/public/docs/sample10.html +270 -270
- data/examples/api-samples/public/docs/sample11.html +462 -462
- data/examples/api-samples/public/docs/sample12.html +199 -199
- data/examples/api-samples/public/docs/sample13.html +201 -201
- data/examples/api-samples/public/docs/sample14.html +204 -204
- data/examples/api-samples/public/docs/sample15.html +182 -182
- data/examples/api-samples/public/docs/sample16.html +234 -234
- data/examples/api-samples/public/docs/sample17.html +309 -309
- data/examples/api-samples/public/docs/sample18.html +721 -721
- data/examples/api-samples/public/docs/sample19.html +631 -631
- data/examples/api-samples/public/docs/sample20.html +230 -230
- data/examples/api-samples/public/docs/sample21.html +790 -790
- data/examples/api-samples/public/docs/sample22.html +408 -408
- data/examples/api-samples/public/docs/sample25.html +550 -550
- data/examples/api-samples/public/templates/base-simple_source.html +191 -191
- data/examples/api-samples/public/templates/testdocument.html +100 -100
- data/examples/api-samples/public/templates/welcome.htm +137 -137
- data/examples/api-samples/samples/annotation-sample.rb +56 -56
- data/examples/api-samples/samples/envelope-sample.rb +133 -133
- data/examples/api-samples/samples/sample01.rb +44 -44
- data/examples/api-samples/samples/sample02.rb +50 -50
- data/examples/api-samples/samples/sample03.rb +79 -79
- data/examples/api-samples/samples/sample04.rb +54 -54
- data/examples/api-samples/samples/sample05.rb +83 -83
- data/examples/api-samples/samples/sample06.rb +86 -86
- data/examples/api-samples/samples/sample07.rb +59 -59
- data/examples/api-samples/samples/sample08.rb +76 -76
- data/examples/api-samples/samples/sample09.rb +85 -85
- data/examples/api-samples/samples/sample10.rb +70 -70
- data/examples/api-samples/samples/sample11.rb +132 -132
- data/examples/api-samples/samples/sample12.rb +48 -48
- data/examples/api-samples/samples/sample13.rb +49 -49
- data/examples/api-samples/samples/sample14.rb +54 -54
- data/examples/api-samples/samples/sample15.rb +43 -43
- data/examples/api-samples/samples/sample16.rb +57 -57
- data/examples/api-samples/samples/sample17.rb +70 -70
- data/examples/api-samples/samples/sample18.rb +190 -190
- data/examples/api-samples/samples/sample19.rb +188 -188
- data/examples/api-samples/samples/sample20.rb +68 -68
- data/examples/api-samples/samples/sample21.rb +212 -212
- data/examples/api-samples/samples/sample22.rb +109 -109
- data/examples/api-samples/samples/sample25.rb +127 -127
- data/examples/api-samples/views/_others_samples.haml +233 -233
- data/examples/api-samples/views/annotation_sample.haml +63 -63
- data/examples/api-samples/views/envelope_sample.haml +72 -72
- data/examples/api-samples/views/index.haml +235 -235
- data/examples/api-samples/views/layout.haml +3 -3
- data/examples/api-samples/views/sample01.haml +63 -63
- data/examples/api-samples/views/sample02.haml +52 -52
- data/examples/api-samples/views/sample03.haml +87 -87
- data/examples/api-samples/views/sample04.haml +55 -55
- data/examples/api-samples/views/sample05.haml +86 -86
- data/examples/api-samples/views/sample06.haml +58 -58
- data/examples/api-samples/views/sample07.haml +52 -52
- data/examples/api-samples/views/sample08.haml +100 -100
- data/examples/api-samples/views/sample09.haml +95 -95
- data/examples/api-samples/views/sample10.haml +93 -93
- data/examples/api-samples/views/sample11.haml +140 -140
- data/examples/api-samples/views/sample12.haml +68 -68
- data/examples/api-samples/views/sample13.haml +64 -64
- data/examples/api-samples/views/sample14.haml +60 -60
- data/examples/api-samples/views/sample15.haml +51 -51
- data/examples/api-samples/views/sample16.haml +50 -50
- data/examples/api-samples/views/sample17.haml +54 -54
- data/examples/api-samples/views/sample18.haml +143 -143
- data/examples/api-samples/views/sample19.haml +92 -92
- data/examples/api-samples/views/sample20.haml +54 -54
- data/examples/api-samples/views/sample21.haml +123 -123
- data/examples/api-samples/views/sample22.haml +106 -106
- data/examples/api-samples/views/sample25.haml +101 -101
- data/examples/api-samples/views/sample31.haml +2 -2
- data/examples/api-samples/web.rb +20 -20
- data/examples/viewer/Gemfile +5 -5
- data/examples/viewer/app.rb +52 -52
- data/groupdocs.gemspec +31 -31
- data/lib/groupdocs.rb +62 -62
- data/lib/groupdocs/api.rb +6 -6
- data/lib/groupdocs/api/entity.rb +112 -112
- data/lib/groupdocs/api/helpers.rb +11 -11
- data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
- data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
- data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
- data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
- data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
- data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
- data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
- data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
- data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
- data/lib/groupdocs/api/request.rb +91 -91
- data/lib/groupdocs/datasource.rb +249 -249
- data/lib/groupdocs/datasource/field.rb +39 -39
- data/lib/groupdocs/document.rb +1550 -1550
- data/lib/groupdocs/document/annotation.rb +421 -421
- data/lib/groupdocs/document/annotation/reply.rb +173 -173
- data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
- data/lib/groupdocs/document/change.rb +56 -56
- data/lib/groupdocs/document/field.rb +53 -53
- data/lib/groupdocs/document/metadata.rb +32 -32
- data/lib/groupdocs/document/rectangle.rb +18 -18
- data/lib/groupdocs/document/view.rb +36 -36
- data/lib/groupdocs/errors.rb +8 -8
- data/lib/groupdocs/job.rb +468 -468
- data/lib/groupdocs/questionnaire.rb +530 -530
- data/lib/groupdocs/questionnaire/collector.rb +335 -335
- data/lib/groupdocs/questionnaire/execution.rb +181 -181
- data/lib/groupdocs/questionnaire/page.rb +43 -43
- data/lib/groupdocs/questionnaire/question.rb +108 -108
- data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
- data/lib/groupdocs/signature.rb +380 -380
- data/lib/groupdocs/signature/contact.rb +181 -181
- data/lib/groupdocs/signature/envelope.rb +747 -747
- data/lib/groupdocs/signature/envelope/log.rb +20 -20
- data/lib/groupdocs/signature/field.rb +286 -286
- data/lib/groupdocs/signature/field/location.rb +71 -71
- data/lib/groupdocs/signature/form.rb +804 -804
- data/lib/groupdocs/signature/list.rb +92 -92
- data/lib/groupdocs/signature/recipient.rb +79 -79
- data/lib/groupdocs/signature/role.rb +54 -54
- data/lib/groupdocs/signature/shared.rb +6 -6
- data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
- data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
- data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
- data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
- data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
- data/lib/groupdocs/signature/template.rb +124 -124
- data/lib/groupdocs/storage.rb +44 -44
- data/lib/groupdocs/storage/file.rb +432 -432
- data/lib/groupdocs/storage/folder.rb +288 -288
- data/lib/groupdocs/storage/package.rb +48 -48
- data/lib/groupdocs/storage/provider.rb +32 -32
- data/lib/groupdocs/subscription.rb +323 -323
- data/lib/groupdocs/subscription/limit.rb +20 -20
- data/lib/groupdocs/user.rb +955 -930
- data/lib/groupdocs/version.rb +3 -3
- data/spec/groupdocs/api/entity_spec.rb +55 -55
- data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
- data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
- data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
- data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
- data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
- data/spec/groupdocs/api/request_spec.rb +112 -112
- data/spec/groupdocs/datasource/field_spec.rb +29 -29
- data/spec/groupdocs/datasource_spec.rb +145 -145
- data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
- data/spec/groupdocs/document/annotation_spec.rb +234 -234
- data/spec/groupdocs/document/change_spec.rb +39 -39
- data/spec/groupdocs/document/field_spec.rb +28 -28
- data/spec/groupdocs/document/metadata_spec.rb +21 -21
- data/spec/groupdocs/document/rectangle_spec.rb +14 -14
- data/spec/groupdocs/document/view_spec.rb +33 -33
- data/spec/groupdocs/document_spec.rb +859 -859
- data/spec/groupdocs/errors_spec.rb +7 -7
- data/spec/groupdocs/job_spec.rb +323 -323
- data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
- data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
- data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
- data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
- data/spec/groupdocs/questionnaire_spec.rb +295 -295
- data/spec/groupdocs/signature/contact_spec.rb +142 -142
- data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
- data/spec/groupdocs/signature/envelope_spec.rb +384 -384
- data/spec/groupdocs/signature/field/location_spec.rb +40 -40
- data/spec/groupdocs/signature/field_spec.rb +235 -235
- data/spec/groupdocs/signature/form_spec.rb +205 -205
- data/spec/groupdocs/signature/list_spec.rb +87 -87
- data/spec/groupdocs/signature/recipient_spec.rb +26 -26
- data/spec/groupdocs/signature/role_spec.rb +47 -47
- data/spec/groupdocs/signature/template_spec.rb +80 -80
- data/spec/groupdocs/signature_spec.rb +194 -194
- data/spec/groupdocs/storage/file_spec.rb +303 -303
- data/spec/groupdocs/storage/folder_spec.rb +270 -270
- data/spec/groupdocs/storage/package_spec.rb +38 -38
- data/spec/groupdocs/storage/provider_spec.rb +21 -21
- data/spec/groupdocs/storage_spec.rb +27 -27
- data/spec/groupdocs/subscription/limit_spec.rb +16 -16
- data/spec/groupdocs/subscription_spec.rb +74 -74
- data/spec/groupdocs/user_spec.rb +257 -257
- data/spec/groupdocs_spec.rb +63 -63
- data/spec/spec_helper.rb +73 -73
- data/spec/support/json/annotation_access_set.json +11 -11
- data/spec/support/json/annotation_collaborators_get.json +16 -16
- data/spec/support/json/annotation_collaborators_set.json +16 -16
- data/spec/support/json/annotation_create.json +12 -12
- data/spec/support/json/annotation_list.json +32 -32
- data/spec/support/json/annotation_marker_move.json +10 -10
- data/spec/support/json/annotation_move.json +8 -8
- data/spec/support/json/annotation_remove.json +9 -9
- data/spec/support/json/annotation_replies_create.json +9 -9
- data/spec/support/json/annotation_replies_get.json +25 -25
- data/spec/support/json/annotation_reviewers_get.json +18 -18
- data/spec/support/json/comparison_changes.json +46 -46
- data/spec/support/json/comparison_compare.json +8 -8
- data/spec/support/json/comparison_document.json +10 -10
- data/spec/support/json/contact_add.json +12 -12
- data/spec/support/json/contacts_get.json +19 -19
- data/spec/support/json/contacts_import.json +8 -8
- data/spec/support/json/datasource_add.json +8 -8
- data/spec/support/json/datasource_get.json +22 -22
- data/spec/support/json/datasource_remove.json +8 -8
- data/spec/support/json/datasource_update.json +8 -8
- data/spec/support/json/delete_account.json +9 -9
- data/spec/support/json/document_access_info_get.json +14 -14
- data/spec/support/json/document_convert.json +8 -8
- data/spec/support/json/document_datasource.json +10 -10
- data/spec/support/json/document_fields.json +34 -34
- data/spec/support/json/document_formats.json +8 -8
- data/spec/support/json/document_metadata.json +15 -15
- data/spec/support/json/document_page_images_get.json +20 -20
- data/spec/support/json/document_questionnaire_create.json +9 -9
- data/spec/support/json/document_questionnaires.json +23 -23
- data/spec/support/json/document_sharers_remove.json +8 -8
- data/spec/support/json/document_sharers_set.json +16 -16
- data/spec/support/json/document_thumbnails.json +24 -24
- data/spec/support/json/document_views.json +32 -32
- data/spec/support/json/envelope_get.json +46 -46
- data/spec/support/json/envelope_logs.json +16 -16
- data/spec/support/json/envelope_recipient_add.json +26 -26
- data/spec/support/json/envelopes_all.json +48 -48
- data/spec/support/json/envelopes_resources.json +31 -31
- data/spec/support/json/file_compress.json +8 -8
- data/spec/support/json/file_copy.json +14 -14
- data/spec/support/json/file_delete.json +5 -5
- data/spec/support/json/file_move.json +14 -14
- data/spec/support/json/file_upload.json +8 -8
- data/spec/support/json/folder_create.json +8 -8
- data/spec/support/json/folder_delete.json +5 -5
- data/spec/support/json/folder_list.json +22 -22
- data/spec/support/json/folder_move.json +8 -8
- data/spec/support/json/folder_sharers_get.json +16 -16
- data/spec/support/json/folder_sharers_remove.json +8 -8
- data/spec/support/json/folder_sharers_set.json +16 -16
- data/spec/support/json/form_get.json +21 -21
- data/spec/support/json/forms_all.json +23 -23
- data/spec/support/json/job_add_url.json +8 -8
- data/spec/support/json/job_create.json +8 -8
- data/spec/support/json/job_documents.json +40 -40
- data/spec/support/json/job_file_add.json +8 -8
- data/spec/support/json/job_get.json +30 -30
- data/spec/support/json/job_update.json +7 -7
- data/spec/support/json/jobs_get.json +58 -58
- data/spec/support/json/list_add.json +12 -12
- data/spec/support/json/lists_get.json +19 -19
- data/spec/support/json/package_create.json +7 -7
- data/spec/support/json/questionnaire_collector.json +17 -17
- data/spec/support/json/questionnaire_collectors.json +38 -38
- data/spec/support/json/questionnaire_collectors_add.json +10 -10
- data/spec/support/json/questionnaire_create.json +10 -10
- data/spec/support/json/questionnaire_datasources.json +26 -26
- data/spec/support/json/questionnaire_execution_add.json +9 -9
- data/spec/support/json/questionnaire_execution_status_set.json +8 -8
- data/spec/support/json/questionnaire_execution_update.json +8 -8
- data/spec/support/json/questionnaire_executions.json +28 -28
- data/spec/support/json/questionnaire_get.json +17 -17
- data/spec/support/json/questionnaire_remove.json +8 -8
- data/spec/support/json/questionnaire_update.json +8 -8
- data/spec/support/json/questionnaires_get.json +40 -40
- data/spec/support/json/sign_documents.json +16 -16
- data/spec/support/json/signature_create.json +12 -12
- data/spec/support/json/signature_field_add.json +25 -25
- data/spec/support/json/signature_fields_get.json +27 -27
- data/spec/support/json/signature_roles_get.json +17 -17
- data/spec/support/json/signatures_get.json +19 -19
- data/spec/support/json/storage_info.json +10 -10
- data/spec/support/json/subscription_plan_get.json +9 -9
- data/spec/support/json/subscription_plans_get.json +17 -17
- data/spec/support/json/template_get.json +35 -35
- data/spec/support/json/template_get_documents.json +15 -15
- data/spec/support/json/template_get_recipients.json +20 -20
- data/spec/support/json/templates_all.json +37 -37
- data/spec/support/json/templates_get.json +21 -21
- data/spec/support/json/update_account.json +10 -10
- data/spec/support/json/user_area.json +67 -67
- data/spec/support/json/user_embed_key.json +38 -38
- data/spec/support/json/user_get_embed_key.json +67 -67
- data/spec/support/json/user_login.json +67 -67
- data/spec/support/json/user_profile_get.json +24 -24
- data/spec/support/json/user_providers.json +31 -31
- data/spec/support/json/user_roles.json +25 -25
- data/spec/support/json/user_users_get.json +27 -27
- data/spec/support/shared_examples/api/entity.rb +39 -39
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
- data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
- data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
- 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
|