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,154 +1,154 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe GroupDocs::Document::Annotation::Reply do
|
4
|
-
|
5
|
-
it_behaves_like GroupDocs::Api::Entity
|
6
|
-
|
7
|
-
subject do
|
8
|
-
file = GroupDocs::Storage::File.new
|
9
|
-
document = GroupDocs::Document.new(:file => file)
|
10
|
-
annotation = GroupDocs::Document::Annotation.new(:document => document)
|
11
|
-
described_class.new(:annotation => annotation)
|
12
|
-
end
|
13
|
-
|
14
|
-
describe '.get!' do
|
15
|
-
before(:each) do
|
16
|
-
mock_api_server(load_json('annotation_replies_get'))
|
17
|
-
end
|
18
|
-
|
19
|
-
let(:annotation) do
|
20
|
-
document = GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
|
21
|
-
GroupDocs::Document::Annotation.new(:document => document)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'accepts access credentials hash' do
|
25
|
-
lambda do
|
26
|
-
described_class.get!(annotation, {}, :client_id => 'client_id', :private_key => 'private_key')
|
27
|
-
end.should_not raise_error()
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'accepts options hash' do
|
31
|
-
lambda do
|
32
|
-
described_class.get!(annotation, :after => Time.now)
|
33
|
-
end.should_not raise_error()
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'raises error if annotation is not an instance of GroupDocs::Document::Annotation' do
|
37
|
-
lambda { described_class.get!('Annotation') }.should raise_error(ArgumentError)
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'raises error if option :after is not an instance of Time' do
|
41
|
-
lambda { described_class.get!(annotation, :after => 'Yesterday') }.should raise_error(ArgumentError)
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'converts option :after to Unix timestamp' do
|
45
|
-
time = Time.now
|
46
|
-
time.should_receive(:to_i).and_return(1334125808)
|
47
|
-
described_class.get!(annotation, :after => time)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'returns an array of GroupDocs::Document::Annotation::Reply objects' do
|
51
|
-
replies = described_class.get!(annotation)
|
52
|
-
replies.should be_an(Array)
|
53
|
-
replies.each do |reply|
|
54
|
-
reply.should be_a(GroupDocs::Document::Annotation::Reply)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
it { should have_accessor(:annotation) }
|
60
|
-
it { should have_accessor(:text) }
|
61
|
-
it { should have_accessor(:guid) }
|
62
|
-
it { should have_accessor(:annotationGuid) }
|
63
|
-
it { should have_accessor(:userGuid) }
|
64
|
-
it { should have_accessor(:userName) }
|
65
|
-
it { should have_accessor(:text) }
|
66
|
-
it { should have_accessor(:repliedOn) }
|
67
|
-
|
68
|
-
it { should alias_accessor(:annotation_guid, :annotationGuid) }
|
69
|
-
it { should alias_accessor(:user_guid, :userGuid) }
|
70
|
-
it { should alias_accessor(:user_name, :userName) }
|
71
|
-
# Reply#replied_on is overwritten
|
72
|
-
it { should have_alias(:replied_on=, :repliedOn=) }
|
73
|
-
|
74
|
-
|
75
|
-
describe '#initialize' do
|
76
|
-
it 'raises error if annotation is not specified' do
|
77
|
-
lambda { described_class.new }.should raise_error(ArgumentError)
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'raises error if annotation is not an instance of GroupDocs::Document::Annotation' do
|
81
|
-
lambda { described_class.new(:annotation => '') }.should raise_error(ArgumentError)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
describe '#replied_on' do
|
86
|
-
it 'returns converted to Time object Unix timestamp' do
|
87
|
-
subject.replied_on = 1332950825000
|
88
|
-
subject.replied_on.should == Time.at(1332950825)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe '#create!' do
|
93
|
-
before(:each) do
|
94
|
-
mock_api_server(load_json('annotation_replies_create'))
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'accepts access credentials hash' do
|
98
|
-
lambda do
|
99
|
-
subject.create!(:client_id => 'client_id', :private_key => 'private_key')
|
100
|
-
end.should_not raise_error()
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'gets annotation guid' do
|
104
|
-
subject.should_receive(:get_annotation_guid)
|
105
|
-
subject.create!
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'updates guid and annotation_guid with response' do
|
109
|
-
lambda do
|
110
|
-
subject.create!
|
111
|
-
end.should change {
|
112
|
-
subject.guid
|
113
|
-
subject.annotation_guid
|
114
|
-
}
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
describe '#edit!' do
|
119
|
-
before(:each) do
|
120
|
-
mock_api_server('{ "result": {}, "status": "Ok" }')
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'accepts access credentials hash' do
|
124
|
-
lambda do
|
125
|
-
subject.edit!(:client_id => 'client_id', :private_key => 'private_key')
|
126
|
-
end.should_not raise_error()
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe '#remove!' do
|
131
|
-
before(:each) do
|
132
|
-
mock_api_server('{ "result": {}, "status": "Ok" }')
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'accepts access credentials hash' do
|
136
|
-
lambda do
|
137
|
-
subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
|
138
|
-
end.should_not raise_error()
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
describe '#get_annotation_guid' do
|
143
|
-
it 'prefers annotation_guid over annotation.guid' do
|
144
|
-
subject.annotation_guid = 'abc'
|
145
|
-
subject.annotation.guid = 'def'
|
146
|
-
subject.send(:get_annotation_guid).should == 'abc'
|
147
|
-
end
|
148
|
-
|
149
|
-
it 'returns annotation.guid if annotation_guid is not set' do
|
150
|
-
subject.annotation.guid = 'def'
|
151
|
-
subject.send(:get_annotation_guid).should == 'def'
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GroupDocs::Document::Annotation::Reply do
|
4
|
+
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
6
|
+
|
7
|
+
subject do
|
8
|
+
file = GroupDocs::Storage::File.new
|
9
|
+
document = GroupDocs::Document.new(:file => file)
|
10
|
+
annotation = GroupDocs::Document::Annotation.new(:document => document)
|
11
|
+
described_class.new(:annotation => annotation)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '.get!' do
|
15
|
+
before(:each) do
|
16
|
+
mock_api_server(load_json('annotation_replies_get'))
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:annotation) do
|
20
|
+
document = GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
|
21
|
+
GroupDocs::Document::Annotation.new(:document => document)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'accepts access credentials hash' do
|
25
|
+
lambda do
|
26
|
+
described_class.get!(annotation, {}, :client_id => 'client_id', :private_key => 'private_key')
|
27
|
+
end.should_not raise_error()
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'accepts options hash' do
|
31
|
+
lambda do
|
32
|
+
described_class.get!(annotation, :after => Time.now)
|
33
|
+
end.should_not raise_error()
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'raises error if annotation is not an instance of GroupDocs::Document::Annotation' do
|
37
|
+
lambda { described_class.get!('Annotation') }.should raise_error(ArgumentError)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'raises error if option :after is not an instance of Time' do
|
41
|
+
lambda { described_class.get!(annotation, :after => 'Yesterday') }.should raise_error(ArgumentError)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'converts option :after to Unix timestamp' do
|
45
|
+
time = Time.now
|
46
|
+
time.should_receive(:to_i).and_return(1334125808)
|
47
|
+
described_class.get!(annotation, :after => time)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'returns an array of GroupDocs::Document::Annotation::Reply objects' do
|
51
|
+
replies = described_class.get!(annotation)
|
52
|
+
replies.should be_an(Array)
|
53
|
+
replies.each do |reply|
|
54
|
+
reply.should be_a(GroupDocs::Document::Annotation::Reply)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
it { should have_accessor(:annotation) }
|
60
|
+
it { should have_accessor(:text) }
|
61
|
+
it { should have_accessor(:guid) }
|
62
|
+
it { should have_accessor(:annotationGuid) }
|
63
|
+
it { should have_accessor(:userGuid) }
|
64
|
+
it { should have_accessor(:userName) }
|
65
|
+
it { should have_accessor(:text) }
|
66
|
+
it { should have_accessor(:repliedOn) }
|
67
|
+
|
68
|
+
it { should alias_accessor(:annotation_guid, :annotationGuid) }
|
69
|
+
it { should alias_accessor(:user_guid, :userGuid) }
|
70
|
+
it { should alias_accessor(:user_name, :userName) }
|
71
|
+
# Reply#replied_on is overwritten
|
72
|
+
it { should have_alias(:replied_on=, :repliedOn=) }
|
73
|
+
|
74
|
+
|
75
|
+
describe '#initialize' do
|
76
|
+
it 'raises error if annotation is not specified' do
|
77
|
+
lambda { described_class.new }.should raise_error(ArgumentError)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'raises error if annotation is not an instance of GroupDocs::Document::Annotation' do
|
81
|
+
lambda { described_class.new(:annotation => '') }.should raise_error(ArgumentError)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe '#replied_on' do
|
86
|
+
it 'returns converted to Time object Unix timestamp' do
|
87
|
+
subject.replied_on = 1332950825000
|
88
|
+
subject.replied_on.should == Time.at(1332950825)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe '#create!' do
|
93
|
+
before(:each) do
|
94
|
+
mock_api_server(load_json('annotation_replies_create'))
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'accepts access credentials hash' do
|
98
|
+
lambda do
|
99
|
+
subject.create!(:client_id => 'client_id', :private_key => 'private_key')
|
100
|
+
end.should_not raise_error()
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'gets annotation guid' do
|
104
|
+
subject.should_receive(:get_annotation_guid)
|
105
|
+
subject.create!
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'updates guid and annotation_guid with response' do
|
109
|
+
lambda do
|
110
|
+
subject.create!
|
111
|
+
end.should change {
|
112
|
+
subject.guid
|
113
|
+
subject.annotation_guid
|
114
|
+
}
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe '#edit!' do
|
119
|
+
before(:each) do
|
120
|
+
mock_api_server('{ "result": {}, "status": "Ok" }')
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'accepts access credentials hash' do
|
124
|
+
lambda do
|
125
|
+
subject.edit!(:client_id => 'client_id', :private_key => 'private_key')
|
126
|
+
end.should_not raise_error()
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe '#remove!' do
|
131
|
+
before(:each) do
|
132
|
+
mock_api_server('{ "result": {}, "status": "Ok" }')
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'accepts access credentials hash' do
|
136
|
+
lambda do
|
137
|
+
subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
|
138
|
+
end.should_not raise_error()
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
describe '#get_annotation_guid' do
|
143
|
+
it 'prefers annotation_guid over annotation.guid' do
|
144
|
+
subject.annotation_guid = 'abc'
|
145
|
+
subject.annotation.guid = 'def'
|
146
|
+
subject.send(:get_annotation_guid).should == 'abc'
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'returns annotation.guid if annotation_guid is not set' do
|
150
|
+
subject.annotation.guid = 'def'
|
151
|
+
subject.send(:get_annotation_guid).should == 'def'
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
@@ -1,51 +1,51 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe GroupDocs::Document::Annotation::Reviewer do
|
4
|
-
|
5
|
-
it_behaves_like GroupDocs::Api::Entity
|
6
|
-
|
7
|
-
describe '.all!' do
|
8
|
-
before(:each) do
|
9
|
-
mock_api_server(load_json('annotation_reviewers_get'))
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'accepts access credentials hash' do
|
13
|
-
lambda do
|
14
|
-
described_class.all!(:client_id => 'client_id', :private_key => 'private_key')
|
15
|
-
end.should_not raise_error()
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'returns an array of GroupDocs::Document::Annotation::Reviewer objects' do
|
19
|
-
reviewers = described_class.all!
|
20
|
-
reviewers.should be_an(Array)
|
21
|
-
reviewers.each do |reviewer|
|
22
|
-
reviewer.should be_a(GroupDocs::Document::Annotation::Reviewer)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe '.set!' do
|
28
|
-
before(:each) do
|
29
|
-
mock_api_server(load_json('annotation_reviewers_get'))
|
30
|
-
end
|
31
|
-
|
32
|
-
let!(:reviewers) { [described_class.new(:email_address => 'test@test.com')] }
|
33
|
-
|
34
|
-
it 'accepts access credentials hash' do
|
35
|
-
lambda do
|
36
|
-
described_class.set!(reviewers, :client_id => 'client_id', :private_key => 'private_key')
|
37
|
-
end.should_not raise_error()
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'uses hashed version of reviewers' do
|
41
|
-
reviewers.each do |reviewer|
|
42
|
-
reviewer.should_receive(:to_hash)
|
43
|
-
end
|
44
|
-
described_class.set! reviewers
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
it { should have_accessor(:emailAddress) }
|
49
|
-
|
50
|
-
it { should alias_accessor(:email_address, :emailAddress) }
|
51
|
-
end
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GroupDocs::Document::Annotation::Reviewer do
|
4
|
+
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
6
|
+
|
7
|
+
describe '.all!' do
|
8
|
+
before(:each) do
|
9
|
+
mock_api_server(load_json('annotation_reviewers_get'))
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'accepts access credentials hash' do
|
13
|
+
lambda do
|
14
|
+
described_class.all!(:client_id => 'client_id', :private_key => 'private_key')
|
15
|
+
end.should_not raise_error()
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns an array of GroupDocs::Document::Annotation::Reviewer objects' do
|
19
|
+
reviewers = described_class.all!
|
20
|
+
reviewers.should be_an(Array)
|
21
|
+
reviewers.each do |reviewer|
|
22
|
+
reviewer.should be_a(GroupDocs::Document::Annotation::Reviewer)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '.set!' do
|
28
|
+
before(:each) do
|
29
|
+
mock_api_server(load_json('annotation_reviewers_get'))
|
30
|
+
end
|
31
|
+
|
32
|
+
let!(:reviewers) { [described_class.new(:email_address => 'test@test.com')] }
|
33
|
+
|
34
|
+
it 'accepts access credentials hash' do
|
35
|
+
lambda do
|
36
|
+
described_class.set!(reviewers, :client_id => 'client_id', :private_key => 'private_key')
|
37
|
+
end.should_not raise_error()
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'uses hashed version of reviewers' do
|
41
|
+
reviewers.each do |reviewer|
|
42
|
+
reviewer.should_receive(:to_hash)
|
43
|
+
end
|
44
|
+
described_class.set! reviewers
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it { should have_accessor(:emailAddress) }
|
49
|
+
|
50
|
+
it { should alias_accessor(:email_address, :emailAddress) }
|
51
|
+
end
|
@@ -1,234 +1,234 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe GroupDocs::Document::Annotation do
|
4
|
-
|
5
|
-
it_behaves_like GroupDocs::Api::Entity
|
6
|
-
include_examples GroupDocs::Api::Helpers::AccessMode
|
7
|
-
|
8
|
-
subject do
|
9
|
-
file = GroupDocs::Storage::File.new
|
10
|
-
document = GroupDocs::Document.new(:file => file)
|
11
|
-
described_class.new(:document => document)
|
12
|
-
end
|
13
|
-
|
14
|
-
it { should have_accessor(:document) }
|
15
|
-
it { should have_accessor(:id) }
|
16
|
-
it { should have_accessor(:guid) }
|
17
|
-
it { should have_accessor(:sessionGuid) }
|
18
|
-
it { should have_accessor(:documentGuid) }
|
19
|
-
it { should have_accessor(:creatorGuid) }
|
20
|
-
it { should have_accessor(:replyGuid) }
|
21
|
-
it { should have_accessor(:createdOn) }
|
22
|
-
it { should have_accessor(:type) }
|
23
|
-
it { should have_accessor(:access) }
|
24
|
-
it { should have_accessor(:box) }
|
25
|
-
it { should have_accessor(:replies) }
|
26
|
-
it { should have_accessor(:annotationPosition) }
|
27
|
-
|
28
|
-
it { should alias_accessor(:session_guid, :sessionGuid) }
|
29
|
-
it { should alias_accessor(:document_guid, :documentGuid) }
|
30
|
-
it { should alias_accessor(:creator_guid, :creatorGuid) }
|
31
|
-
it { should alias_accessor(:reply_guid, :replyGuid) }
|
32
|
-
# Annotation#created_on is overwritten
|
33
|
-
it { should have_alias(:created_on=, :createdOn=) }
|
34
|
-
it { should alias_accessor(:annotation_position, :annotationPosition) }
|
35
|
-
|
36
|
-
it { should have_alias(:annotationGuid=, :guid=) }
|
37
|
-
|
38
|
-
describe '#initialize' do
|
39
|
-
it 'raises error if document is not specified' do
|
40
|
-
lambda { described_class.new }.should raise_error(ArgumentError)
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'raises error if document is not an instance of GroupDocs::Document' do
|
44
|
-
lambda { described_class.new(:document => '') }.should raise_error(ArgumentError)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '#type=' do
|
49
|
-
it 'saves type in machine readable format if symbol is passed' do
|
50
|
-
subject.type = :text_strikeout
|
51
|
-
subject.instance_variable_get(:@type).should == 'TextStrikeout'
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'does nothing if parameter is not symbol' do
|
55
|
-
subject.type = 'Area'
|
56
|
-
subject.instance_variable_get(:@type).should == 'Area'
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'raises error if type is unknown' do
|
60
|
-
lambda { subject.type = :unknown }.should raise_error(ArgumentError)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
describe '#type' do
|
65
|
-
it 'returns type in human-readable format' do
|
66
|
-
subject.type = 'TextStrikeout'
|
67
|
-
subject.type.should == :text_strikeout
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
describe '#access=' do
|
72
|
-
it 'converts symbol to string if passed' do
|
73
|
-
subject.access = :public
|
74
|
-
subject.instance_variable_get(:@access).should == 'Public'
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'does nothing if not a symbol is passed' do
|
78
|
-
subject.access = 'Blah'
|
79
|
-
subject.instance_variable_get(:@access).should == 'Blah'
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
describe '#created_on' do
|
84
|
-
it 'returns converted to Time object Unix timestamp' do
|
85
|
-
subject.created_on = 1332950825000
|
86
|
-
subject.created_on.should == Time.at(1332950825)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
describe '#box=' do
|
91
|
-
it 'converts passed hash to GroupDocs::Document::Rectangle object' do
|
92
|
-
subject.box = { :x => 0.90, :y => 0.05, :width => 0.06745, :height => 0.005967 }
|
93
|
-
subject.box.should be_a(GroupDocs::Document::Rectangle)
|
94
|
-
subject.box.x.should == 0.90
|
95
|
-
subject.box.y.should == 0.05
|
96
|
-
subject.box.w.should == 0.06745
|
97
|
-
subject.box.h.should == 0.005967
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
describe '#replies=' do
|
102
|
-
it 'converts each reply to GroupDocs::Document::Annotation::Reply object if hash is passed' do
|
103
|
-
subject.replies = [{ }]
|
104
|
-
replies = subject.replies
|
105
|
-
replies.should be_an(Array)
|
106
|
-
replies.each do |reply|
|
107
|
-
reply.should be_a(GroupDocs::Document::Annotation::Reply)
|
108
|
-
reply.annotation.should == subject
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'saves each reply if it is GroupDocs::Document::Annotation::Reply object' do
|
113
|
-
reply1 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
114
|
-
reply2 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
115
|
-
subject.replies = [reply1, reply2]
|
116
|
-
subject.replies.should include(reply1)
|
117
|
-
subject.replies.should include(reply2)
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'does nothing if nil is passed' do
|
121
|
-
lambda do
|
122
|
-
subject.replies = nil
|
123
|
-
end.should_not change(subject, :replies)
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
describe '#add_reply' do
|
128
|
-
it 'raises error if reply is not GroupDocs::Document::Annotation::Reply object' do
|
129
|
-
lambda { subject.add_reply('Reply') }.should raise_error(ArgumentError)
|
130
|
-
end
|
131
|
-
|
132
|
-
it 'saves reply' do
|
133
|
-
reply = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
134
|
-
subject.add_reply(reply)
|
135
|
-
subject.replies.should == [reply]
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
describe '#create!' do
|
140
|
-
before(:each) do
|
141
|
-
mock_api_server(load_json('annotation_create'))
|
142
|
-
end
|
143
|
-
|
144
|
-
it 'accepts access credentials hash' do
|
145
|
-
lambda do
|
146
|
-
subject.create!(%w(info), :client_id => 'client_id', :private_key => 'private_key')
|
147
|
-
end.should_not raise_error()
|
148
|
-
end
|
149
|
-
|
150
|
-
it 'updated self with response values' do
|
151
|
-
lambda do
|
152
|
-
subject.create! :box => '10', :annotationPosition => '100'
|
153
|
-
end.should change {
|
154
|
-
subject.id
|
155
|
-
subject.guid
|
156
|
-
subject.document_guid
|
157
|
-
subject.reply_guid
|
158
|
-
subject.session_guid
|
159
|
-
}
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
describe '#remove!' do
|
164
|
-
before(:each) do
|
165
|
-
mock_api_server(load_json('annotation_remove'))
|
166
|
-
end
|
167
|
-
|
168
|
-
it 'accepts access credentials hash' do
|
169
|
-
lambda do
|
170
|
-
subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
|
171
|
-
end.should_not raise_error()
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
describe '#replies!' do
|
176
|
-
it 'calls GroupDocs::Document::Annotation::Reply.get!' do
|
177
|
-
GroupDocs::Document::Annotation::Reply.should_receive(:get!).with(subject, {}, {})
|
178
|
-
subject.replies!
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
describe '#move!' do
|
183
|
-
before(:each) do
|
184
|
-
mock_api_server(load_json('annotation_move'))
|
185
|
-
end
|
186
|
-
|
187
|
-
it 'accepts access credentials hash' do
|
188
|
-
lambda do
|
189
|
-
subject.move!(10, 10, :client_id => 'client_id', :private_key => 'private_key')
|
190
|
-
end.should_not raise_error()
|
191
|
-
end
|
192
|
-
|
193
|
-
it 'updates annotation position' do
|
194
|
-
lambda do
|
195
|
-
subject.move!(10, 10)
|
196
|
-
end.should change(subject, :annotation_position).to(:x => 10, :y => 10)
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
describe '#move_marker!' do
|
201
|
-
before(:each) do
|
202
|
-
mock_api_server('{ "status": "Ok", "result": {}}')
|
203
|
-
end
|
204
|
-
|
205
|
-
let(:marker) { GroupDocs::Document::Annotation::MarkerPosition.new(:position => {:x => 1, :y => 1}, :page=>1)}
|
206
|
-
1
|
207
|
-
it 'accepts access credentials hash' do
|
208
|
-
lambda do
|
209
|
-
subject.move_marker!(marker, :client_id => 'client_id', :private_key => 'private_key')
|
210
|
-
end.should_not raise_error()
|
211
|
-
end
|
212
|
-
it 'raises error if marker is not GroupDocs::Document::Annotation::MarkerPosition object' do
|
213
|
-
lambda { subject.move_marker!(['MarkerPosition']) }.should raise_error(ArgumentError)
|
214
|
-
end
|
215
|
-
|
216
|
-
end
|
217
|
-
|
218
|
-
describe '#set_access!' do
|
219
|
-
before(:each) do
|
220
|
-
mock_api_server(load_json('annotation_access_set'))
|
221
|
-
end
|
222
|
-
|
223
|
-
it 'accepts access credentials hash' do
|
224
|
-
lambda do
|
225
|
-
subject.set_access!(:private, :client_id => 'client_id', :private_key => 'private_key')
|
226
|
-
end.should_not raise_error()
|
227
|
-
end
|
228
|
-
|
229
|
-
it 'updates annotation access mode' do
|
230
|
-
subject.set_access!(:private)
|
231
|
-
subject.access.should == :private
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GroupDocs::Document::Annotation do
|
4
|
+
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
6
|
+
include_examples GroupDocs::Api::Helpers::AccessMode
|
7
|
+
|
8
|
+
subject do
|
9
|
+
file = GroupDocs::Storage::File.new
|
10
|
+
document = GroupDocs::Document.new(:file => file)
|
11
|
+
described_class.new(:document => document)
|
12
|
+
end
|
13
|
+
|
14
|
+
it { should have_accessor(:document) }
|
15
|
+
it { should have_accessor(:id) }
|
16
|
+
it { should have_accessor(:guid) }
|
17
|
+
it { should have_accessor(:sessionGuid) }
|
18
|
+
it { should have_accessor(:documentGuid) }
|
19
|
+
it { should have_accessor(:creatorGuid) }
|
20
|
+
it { should have_accessor(:replyGuid) }
|
21
|
+
it { should have_accessor(:createdOn) }
|
22
|
+
it { should have_accessor(:type) }
|
23
|
+
it { should have_accessor(:access) }
|
24
|
+
it { should have_accessor(:box) }
|
25
|
+
it { should have_accessor(:replies) }
|
26
|
+
it { should have_accessor(:annotationPosition) }
|
27
|
+
|
28
|
+
it { should alias_accessor(:session_guid, :sessionGuid) }
|
29
|
+
it { should alias_accessor(:document_guid, :documentGuid) }
|
30
|
+
it { should alias_accessor(:creator_guid, :creatorGuid) }
|
31
|
+
it { should alias_accessor(:reply_guid, :replyGuid) }
|
32
|
+
# Annotation#created_on is overwritten
|
33
|
+
it { should have_alias(:created_on=, :createdOn=) }
|
34
|
+
it { should alias_accessor(:annotation_position, :annotationPosition) }
|
35
|
+
|
36
|
+
it { should have_alias(:annotationGuid=, :guid=) }
|
37
|
+
|
38
|
+
describe '#initialize' do
|
39
|
+
it 'raises error if document is not specified' do
|
40
|
+
lambda { described_class.new }.should raise_error(ArgumentError)
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'raises error if document is not an instance of GroupDocs::Document' do
|
44
|
+
lambda { described_class.new(:document => '') }.should raise_error(ArgumentError)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#type=' do
|
49
|
+
it 'saves type in machine readable format if symbol is passed' do
|
50
|
+
subject.type = :text_strikeout
|
51
|
+
subject.instance_variable_get(:@type).should == 'TextStrikeout'
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'does nothing if parameter is not symbol' do
|
55
|
+
subject.type = 'Area'
|
56
|
+
subject.instance_variable_get(:@type).should == 'Area'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'raises error if type is unknown' do
|
60
|
+
lambda { subject.type = :unknown }.should raise_error(ArgumentError)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '#type' do
|
65
|
+
it 'returns type in human-readable format' do
|
66
|
+
subject.type = 'TextStrikeout'
|
67
|
+
subject.type.should == :text_strikeout
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '#access=' do
|
72
|
+
it 'converts symbol to string if passed' do
|
73
|
+
subject.access = :public
|
74
|
+
subject.instance_variable_get(:@access).should == 'Public'
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'does nothing if not a symbol is passed' do
|
78
|
+
subject.access = 'Blah'
|
79
|
+
subject.instance_variable_get(:@access).should == 'Blah'
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '#created_on' do
|
84
|
+
it 'returns converted to Time object Unix timestamp' do
|
85
|
+
subject.created_on = 1332950825000
|
86
|
+
subject.created_on.should == Time.at(1332950825)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe '#box=' do
|
91
|
+
it 'converts passed hash to GroupDocs::Document::Rectangle object' do
|
92
|
+
subject.box = { :x => 0.90, :y => 0.05, :width => 0.06745, :height => 0.005967 }
|
93
|
+
subject.box.should be_a(GroupDocs::Document::Rectangle)
|
94
|
+
subject.box.x.should == 0.90
|
95
|
+
subject.box.y.should == 0.05
|
96
|
+
subject.box.w.should == 0.06745
|
97
|
+
subject.box.h.should == 0.005967
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe '#replies=' do
|
102
|
+
it 'converts each reply to GroupDocs::Document::Annotation::Reply object if hash is passed' do
|
103
|
+
subject.replies = [{ }]
|
104
|
+
replies = subject.replies
|
105
|
+
replies.should be_an(Array)
|
106
|
+
replies.each do |reply|
|
107
|
+
reply.should be_a(GroupDocs::Document::Annotation::Reply)
|
108
|
+
reply.annotation.should == subject
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'saves each reply if it is GroupDocs::Document::Annotation::Reply object' do
|
113
|
+
reply1 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
114
|
+
reply2 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
115
|
+
subject.replies = [reply1, reply2]
|
116
|
+
subject.replies.should include(reply1)
|
117
|
+
subject.replies.should include(reply2)
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'does nothing if nil is passed' do
|
121
|
+
lambda do
|
122
|
+
subject.replies = nil
|
123
|
+
end.should_not change(subject, :replies)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe '#add_reply' do
|
128
|
+
it 'raises error if reply is not GroupDocs::Document::Annotation::Reply object' do
|
129
|
+
lambda { subject.add_reply('Reply') }.should raise_error(ArgumentError)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'saves reply' do
|
133
|
+
reply = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
|
134
|
+
subject.add_reply(reply)
|
135
|
+
subject.replies.should == [reply]
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe '#create!' do
|
140
|
+
before(:each) do
|
141
|
+
mock_api_server(load_json('annotation_create'))
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'accepts access credentials hash' do
|
145
|
+
lambda do
|
146
|
+
subject.create!(%w(info), :client_id => 'client_id', :private_key => 'private_key')
|
147
|
+
end.should_not raise_error()
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'updated self with response values' do
|
151
|
+
lambda do
|
152
|
+
subject.create! :box => '10', :annotationPosition => '100'
|
153
|
+
end.should change {
|
154
|
+
subject.id
|
155
|
+
subject.guid
|
156
|
+
subject.document_guid
|
157
|
+
subject.reply_guid
|
158
|
+
subject.session_guid
|
159
|
+
}
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe '#remove!' do
|
164
|
+
before(:each) do
|
165
|
+
mock_api_server(load_json('annotation_remove'))
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'accepts access credentials hash' do
|
169
|
+
lambda do
|
170
|
+
subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
|
171
|
+
end.should_not raise_error()
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
describe '#replies!' do
|
176
|
+
it 'calls GroupDocs::Document::Annotation::Reply.get!' do
|
177
|
+
GroupDocs::Document::Annotation::Reply.should_receive(:get!).with(subject, {}, {})
|
178
|
+
subject.replies!
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
describe '#move!' do
|
183
|
+
before(:each) do
|
184
|
+
mock_api_server(load_json('annotation_move'))
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'accepts access credentials hash' do
|
188
|
+
lambda do
|
189
|
+
subject.move!(10, 10, :client_id => 'client_id', :private_key => 'private_key')
|
190
|
+
end.should_not raise_error()
|
191
|
+
end
|
192
|
+
|
193
|
+
it 'updates annotation position' do
|
194
|
+
lambda do
|
195
|
+
subject.move!(10, 10)
|
196
|
+
end.should change(subject, :annotation_position).to(:x => 10, :y => 10)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
describe '#move_marker!' do
|
201
|
+
before(:each) do
|
202
|
+
mock_api_server('{ "status": "Ok", "result": {}}')
|
203
|
+
end
|
204
|
+
|
205
|
+
let(:marker) { GroupDocs::Document::Annotation::MarkerPosition.new(:position => {:x => 1, :y => 1}, :page=>1)}
|
206
|
+
1
|
207
|
+
it 'accepts access credentials hash' do
|
208
|
+
lambda do
|
209
|
+
subject.move_marker!(marker, :client_id => 'client_id', :private_key => 'private_key')
|
210
|
+
end.should_not raise_error()
|
211
|
+
end
|
212
|
+
it 'raises error if marker is not GroupDocs::Document::Annotation::MarkerPosition object' do
|
213
|
+
lambda { subject.move_marker!(['MarkerPosition']) }.should raise_error(ArgumentError)
|
214
|
+
end
|
215
|
+
|
216
|
+
end
|
217
|
+
|
218
|
+
describe '#set_access!' do
|
219
|
+
before(:each) do
|
220
|
+
mock_api_server(load_json('annotation_access_set'))
|
221
|
+
end
|
222
|
+
|
223
|
+
it 'accepts access credentials hash' do
|
224
|
+
lambda do
|
225
|
+
subject.set_access!(:private, :client_id => 'client_id', :private_key => 'private_key')
|
226
|
+
end.should_not raise_error()
|
227
|
+
end
|
228
|
+
|
229
|
+
it 'updates annotation access mode' do
|
230
|
+
subject.set_access!(:private)
|
231
|
+
subject.access.should == :private
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|