groupdocs 0.3.11 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +150 -0
- data/README.md +6 -58
- data/Rakefile +1 -1
- data/examples/README.md +13 -0
- data/examples/annotations/Gemfile +5 -0
- data/examples/annotations/app.rb +67 -0
- data/groupdocs.gemspec +3 -3
- data/lib/groupdocs.rb +11 -2
- data/lib/groupdocs/api/entity.rb +17 -1
- data/lib/groupdocs/api/helpers/path_helper.rb +10 -10
- data/lib/groupdocs/api/helpers/rest_helper.rb +7 -2
- data/lib/groupdocs/api/helpers/url_helper.rb +2 -4
- data/lib/groupdocs/api/request.rb +2 -4
- data/lib/groupdocs/datasource.rb +2 -2
- data/lib/groupdocs/datasource/field.rb +1 -1
- data/lib/groupdocs/document.rb +6 -18
- data/lib/groupdocs/document/annotation.rb +25 -2
- data/lib/groupdocs/document/annotation/reply.rb +6 -10
- data/lib/groupdocs/document/change.rb +1 -1
- data/lib/groupdocs/document/field.rb +1 -1
- data/lib/groupdocs/document/metadata.rb +1 -1
- data/lib/groupdocs/document/rectangle.rb +1 -1
- data/lib/groupdocs/document/view.rb +1 -1
- data/lib/groupdocs/job.rb +51 -8
- data/lib/groupdocs/questionnaire.rb +2 -2
- data/lib/groupdocs/questionnaire/execution.rb +1 -1
- data/lib/groupdocs/questionnaire/page.rb +1 -1
- data/lib/groupdocs/questionnaire/question.rb +1 -1
- data/lib/groupdocs/questionnaire/question/answer.rb +1 -1
- data/lib/groupdocs/signature.rb +134 -0
- data/lib/groupdocs/signature/contact.rb +141 -0
- data/lib/groupdocs/signature/envelope.rb +376 -0
- data/lib/groupdocs/signature/envelope/log.rb +22 -0
- data/lib/groupdocs/signature/field.rb +253 -0
- data/lib/groupdocs/signature/field/location.rb +72 -0
- data/lib/groupdocs/signature/form.rb +202 -0
- data/lib/groupdocs/signature/list.rb +93 -0
- data/lib/groupdocs/signature/recipient.rb +47 -0
- data/lib/groupdocs/signature/role.rb +84 -0
- data/lib/groupdocs/signature/shared.rb +6 -0
- data/lib/groupdocs/signature/shared/document_methods.rb +98 -0
- data/lib/groupdocs/signature/shared/entity_fields.rb +94 -0
- data/lib/groupdocs/signature/shared/entity_methods.rb +145 -0
- data/lib/groupdocs/signature/shared/field_methods.rb +282 -0
- data/lib/groupdocs/signature/shared/recipient_methods.rb +63 -0
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -0
- data/lib/groupdocs/signature/template.rb +104 -0
- data/lib/groupdocs/storage/file.rb +69 -62
- data/lib/groupdocs/storage/folder.rb +54 -88
- data/lib/groupdocs/storage/package.rb +1 -1
- data/lib/groupdocs/subscription.rb +113 -0
- data/lib/groupdocs/subscription/limit.rb +24 -0
- data/lib/groupdocs/user.rb +22 -2
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/api/entity_spec.rb +14 -0
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +6 -19
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +9 -0
- data/spec/groupdocs/api/request_spec.rb +2 -7
- data/spec/groupdocs/datasource_spec.rb +3 -7
- data/spec/groupdocs/document/annotation/reply_spec.rb +11 -20
- data/spec/groupdocs/document/annotation_spec.rb +35 -31
- data/spec/groupdocs/document/field_spec.rb +1 -4
- data/spec/groupdocs/document/rectangle_spec.rb +10 -22
- data/spec/groupdocs/document_spec.rb +7 -27
- data/spec/groupdocs/job_spec.rb +43 -0
- data/spec/groupdocs/questionnaire/question_spec.rb +2 -6
- data/spec/groupdocs/questionnaire_spec.rb +3 -7
- data/spec/groupdocs/signature/contact_spec.rb +129 -0
- data/spec/groupdocs/signature/envelope/log_spec.rb +23 -0
- data/spec/groupdocs/signature/envelope_spec.rb +296 -0
- data/spec/groupdocs/signature/field/location_spec.rb +73 -0
- data/spec/groupdocs/signature/field_spec.rb +264 -0
- data/spec/groupdocs/signature/form_spec.rb +174 -0
- data/spec/groupdocs/signature/list_spec.rb +92 -0
- data/spec/groupdocs/signature/recipient_spec.rb +37 -0
- data/spec/groupdocs/signature/role_spec.rb +100 -0
- data/spec/groupdocs/signature/template_spec.rb +82 -0
- data/spec/groupdocs/signature_spec.rb +117 -0
- data/spec/groupdocs/storage/file_spec.rb +76 -61
- data/spec/groupdocs/storage/folder_spec.rb +43 -90
- data/spec/groupdocs/storage/package_spec.rb +1 -2
- data/spec/groupdocs/subscription/limit_spec.rb +24 -0
- data/spec/groupdocs/subscription_spec.rb +85 -0
- data/spec/groupdocs/user_spec.rb +27 -18
- data/spec/groupdocs_spec.rb +11 -0
- data/spec/spec_helper.rb +10 -1
- data/spec/support/files/envelope.zip +0 -0
- data/spec/support/json/annotation_access_set.json +11 -0
- data/spec/support/json/contact_add.json +12 -0
- data/spec/support/json/contacts_get.json +19 -0
- data/spec/support/json/contacts_import.json +8 -0
- data/spec/support/json/envelope_get.json +46 -0
- data/spec/support/json/envelope_logs.json +16 -0
- data/spec/support/json/envelopes_all.json +48 -0
- data/spec/support/json/envelopes_resources.json +31 -0
- data/spec/support/json/form_get.json +21 -0
- data/spec/support/json/forms_all.json +23 -0
- data/spec/support/json/job_get.json +30 -0
- data/spec/support/json/list_add.json +12 -0
- data/spec/support/json/lists_get.json +19 -0
- data/spec/support/json/signature_create.json +12 -0
- data/spec/support/json/signature_field_add.json +25 -0
- data/spec/support/json/signature_fields_get.json +27 -0
- data/spec/support/json/signature_roles_get.json +17 -0
- data/spec/support/json/signatures_get.json +19 -0
- data/spec/support/json/subscription_plan_get.json +9 -0
- data/spec/support/json/subscription_plans_get.json +17 -0
- data/spec/support/json/template_get.json +35 -0
- data/spec/support/json/template_get_documents.json +15 -0
- data/spec/support/json/template_get_recipients.json +20 -0
- data/spec/support/json/templates_all.json +37 -0
- data/spec/support/json/user_users_get.json +27 -0
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -0
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +89 -0
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -0
- data/spec/support/shared_examples/signature/shared/field_methods.rb +188 -0
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +42 -0
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -0
- metadata +139 -29
- data/lib/groupdocs/extensions.rb +0 -1
- data/lib/groupdocs/extensions/lookup.rb +0 -52
- data/spec/support/shared_examples/extensions/lookup.rb +0 -57
@@ -0,0 +1,113 @@
|
|
1
|
+
module GroupDocs
|
2
|
+
class Subscription < Api::Entity
|
3
|
+
|
4
|
+
require 'groupdocs/subscription/limit'
|
5
|
+
|
6
|
+
LIMITS = {
|
7
|
+
annotations_limit: 'AnnotationsLimit',
|
8
|
+
apicalls: 'APICalls',
|
9
|
+
apiemails: 'APIEmails',
|
10
|
+
assembly_limit: 'AssemblyLimit',
|
11
|
+
branded: 'Branded',
|
12
|
+
comparison_limit: 'ComparisonLimit',
|
13
|
+
conversion_limit: 'ConversionLimit',
|
14
|
+
documents_limit: 'DocumentsLimit',
|
15
|
+
document_history_limit: 'DocumentHistoryLimit',
|
16
|
+
document_size_limit: 'DocumentSizeLimit',
|
17
|
+
document_tokens_limit: 'DocumentTokensLimit',
|
18
|
+
sharing_limit: 'SharingLimit',
|
19
|
+
signature_limit: 'SignatureLimit',
|
20
|
+
storage_space_limit: 'StorageSpaceLimit',
|
21
|
+
users_limit: 'UsersLimit',
|
22
|
+
}
|
23
|
+
|
24
|
+
#
|
25
|
+
# Returns current subscription plan.
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# GroupDocs::Subscription.current!.name
|
29
|
+
# #=> 'Free'
|
30
|
+
#
|
31
|
+
# @param [Hash] access Access credentials
|
32
|
+
# @option access [String] :client_id
|
33
|
+
# @option access [String] :private_key
|
34
|
+
# @return [GroupDocs::Subscription]
|
35
|
+
#
|
36
|
+
def self.current!(access = {})
|
37
|
+
json = Api::Request.new do |request|
|
38
|
+
request[:access] = access
|
39
|
+
request[:method] = :GET
|
40
|
+
request[:path] = '/system/{{client_id}}/plan'
|
41
|
+
end.execute!
|
42
|
+
|
43
|
+
new(json)
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Returns all subscription plans for family.
|
48
|
+
#
|
49
|
+
# @param [Hash] access Access credentials
|
50
|
+
# @option access [String] :client_id
|
51
|
+
# @option access [String] :private_key
|
52
|
+
# @return [Array<GroupDocs::Subscription>]
|
53
|
+
#
|
54
|
+
def self.list!(access = {})
|
55
|
+
json = Api::Request.new do |request|
|
56
|
+
request[:access] = access
|
57
|
+
request[:method] = :GET
|
58
|
+
request[:path] = '/system/{{client_id}}/plans/groupdocs'
|
59
|
+
end.execute!
|
60
|
+
|
61
|
+
json[:metrics].map do |plan|
|
62
|
+
new(plan)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# @attr [Integer] Id
|
67
|
+
attr_accessor :Id
|
68
|
+
# @attr [String] Name
|
69
|
+
attr_accessor :Name
|
70
|
+
# @attr [Integer] PricingPlanId
|
71
|
+
attr_accessor :PricingPlanId
|
72
|
+
# @attr [Integer] Price
|
73
|
+
attr_accessor :Price
|
74
|
+
# @attr [String] CurrencyCode
|
75
|
+
attr_accessor :CurrencyCode
|
76
|
+
|
77
|
+
# Human-readable accessors
|
78
|
+
alias_method :id, :Id
|
79
|
+
alias_method :id=, :Id=
|
80
|
+
alias_method :name, :Name
|
81
|
+
alias_method :name=, :Name=
|
82
|
+
alias_method :pricing_plan_id, :PricingPlanId
|
83
|
+
alias_method :pricing_plan_id=, :PricingPlanId=
|
84
|
+
alias_method :price, :Price
|
85
|
+
alias_method :price=, :Price=
|
86
|
+
alias_method :currency_code, :CurrencyCode
|
87
|
+
alias_method :currency_code=, :CurrencyCode=
|
88
|
+
|
89
|
+
# Compatibility with response JSON
|
90
|
+
alias_method :ref_id=, :id=
|
91
|
+
|
92
|
+
#
|
93
|
+
# Dynamically generate accessors for existing subscription plan limits.
|
94
|
+
#
|
95
|
+
LIMITS.each do |snake, camel|
|
96
|
+
# @attr [GroupDocs::Subscription::Limit] limit
|
97
|
+
attr_accessor camel
|
98
|
+
|
99
|
+
# Human-readable accessors
|
100
|
+
alias_method :"#{snake}", :"#{camel}"
|
101
|
+
alias_method :"#{snake}=", :"#{camel}="
|
102
|
+
|
103
|
+
#
|
104
|
+
# Converts hash to subscription plan limit.
|
105
|
+
# @return [GroupDocs::Subscription::Limit]
|
106
|
+
#
|
107
|
+
define_method(snake) do
|
108
|
+
Limit.new(instance_variable_get(:"@#{camel}"))
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
end # Subscription
|
113
|
+
end # GroupDocs
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module GroupDocs
|
2
|
+
class Subscription::Limit < Api::Entity
|
3
|
+
|
4
|
+
# @attr [Integer] Id
|
5
|
+
attr_accessor :Id
|
6
|
+
# @attr [Integer] Min
|
7
|
+
attr_accessor :Min
|
8
|
+
# @attr [Integer] Max
|
9
|
+
attr_accessor :Max
|
10
|
+
# @attr [String] Description
|
11
|
+
attr_accessor :Description
|
12
|
+
|
13
|
+
# Human-readable accessors
|
14
|
+
alias_method :id, :Id
|
15
|
+
alias_method :id=, :Id=
|
16
|
+
alias_method :min, :Min
|
17
|
+
alias_method :min=, :Min=
|
18
|
+
alias_method :max, :Max
|
19
|
+
alias_method :max=, :Max=
|
20
|
+
alias_method :description, :Description
|
21
|
+
alias_method :description=, :Description=
|
22
|
+
|
23
|
+
end # Subscription::Limit
|
24
|
+
end # GroupDocs
|
data/lib/groupdocs/user.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module GroupDocs
|
2
|
-
class User <
|
2
|
+
class User < Api::Entity
|
3
3
|
|
4
4
|
#
|
5
5
|
# Returns current user profile.
|
6
6
|
#
|
7
|
-
# @example
|
7
|
+
# @example
|
8
8
|
# user = GroupDocs::User.get!
|
9
9
|
# user.first_name
|
10
10
|
# #=> "John"
|
@@ -97,5 +97,25 @@ module GroupDocs
|
|
97
97
|
end.execute!
|
98
98
|
end
|
99
99
|
|
100
|
+
#
|
101
|
+
# Returns an array of users associated to current user account.
|
102
|
+
#
|
103
|
+
# @param [Hash] access Access credentials
|
104
|
+
# @option access [String] :client_id
|
105
|
+
# @option access [String] :private_key
|
106
|
+
# @return [Array<GroupDocs::User>]
|
107
|
+
#
|
108
|
+
def users!(access = {})
|
109
|
+
json = Api::Request.new do |request|
|
110
|
+
request[:access] = access
|
111
|
+
request[:method] = :GET
|
112
|
+
request[:path] = '/mgmt/{{client_id}}/account/users'
|
113
|
+
end.execute!
|
114
|
+
|
115
|
+
json[:users].map do |user|
|
116
|
+
GroupDocs::User.new(user)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
100
120
|
end # User
|
101
121
|
end # GroupDocs
|
data/lib/groupdocs/version.rb
CHANGED
@@ -65,4 +65,18 @@ describe GroupDocs::Api::Entity do
|
|
65
65
|
subject.send(:accessor_to_variable, :test_one_and_two).should == :@TestOneAndTwo
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
describe '#class_name' do
|
70
|
+
it 'returns downcased class name' do
|
71
|
+
object = GroupDocs::Storage::File.new
|
72
|
+
object.send(:class_name).should == 'file'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe '#pluralized_class_name' do
|
77
|
+
it 'returns class name ending with s' do
|
78
|
+
object = GroupDocs::Storage::File.new
|
79
|
+
object.send(:pluralized_class_name).should == 'files'
|
80
|
+
end
|
81
|
+
end
|
68
82
|
end
|
@@ -1,28 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe GroupDocs::Api::Helpers::Path do
|
4
|
+
subject { GroupDocs::Storage::File.new }
|
4
5
|
|
5
|
-
describe '
|
6
|
-
it '
|
7
|
-
|
6
|
+
describe '#prepare_path' do
|
7
|
+
it 'removes first / from string' do
|
8
|
+
subject.send(:prepare_path, '/test').should == 'test'
|
8
9
|
end
|
9
10
|
|
10
|
-
it '
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe '.append_file_name' do
|
16
|
-
it 'does not change path if filename is present' do
|
17
|
-
path = '/upload_path/test.pdf'
|
18
|
-
described_class.append_file_name(path, __FILE__)
|
19
|
-
path.should == '/upload_path/test.pdf'
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'appends filename to path if it is not passed' do
|
23
|
-
path = '/upload_path'
|
24
|
-
described_class.append_file_name(path, __FILE__)
|
25
|
-
path.should == "/upload_path/#{File.basename(__FILE__)}"
|
11
|
+
it 'removes two or more / from string' do
|
12
|
+
subject.send(:prepare_path, 'test1//test2///test3').should == 'test1/test2/test3'
|
26
13
|
end
|
27
14
|
end
|
28
15
|
end
|
@@ -79,6 +79,15 @@ describe GroupDocs::Api::Helpers::REST do
|
|
79
79
|
subject.send(:prepare_request)
|
80
80
|
end.should change { subject.options[:headers][:content_type] }.to('application/json')
|
81
81
|
end
|
82
|
+
|
83
|
+
it 'allows sending payload as plain text' do
|
84
|
+
subject.options[:method] = :POST
|
85
|
+
subject.options[:request_body] = 'test'
|
86
|
+
subject.options[:plain] = true
|
87
|
+
subject.send(:prepare_request)
|
88
|
+
subject.options[:request_body].should == 'test'
|
89
|
+
subject.options[:headers][:content_type].should_not == 'application/json'
|
90
|
+
end
|
82
91
|
end
|
83
92
|
|
84
93
|
describe '#send_request' do
|
@@ -40,17 +40,12 @@ describe GroupDocs::Api::Request do
|
|
40
40
|
describe '#execute!' do
|
41
41
|
before(:each) do
|
42
42
|
GroupDocs.stub(private_key: 'private_key')
|
43
|
-
subject.options[:method]
|
44
|
-
subject.options[:path]
|
43
|
+
subject.options[:method] = :get
|
44
|
+
subject.options[:path] = '/folders'
|
45
45
|
subject.options[:headers] = {}
|
46
46
|
mock_api_server('{"status":"Ok"}')
|
47
47
|
end
|
48
48
|
|
49
|
-
it 'normalizes path' do
|
50
|
-
subject.should_receive(:normalize_path)
|
51
|
-
subject.execute!
|
52
|
-
end
|
53
|
-
|
54
49
|
it 'parses path' do
|
55
50
|
subject.should_receive(:parse_path)
|
56
51
|
subject.execute!
|
@@ -44,12 +44,8 @@ describe GroupDocs::DataSource do
|
|
44
44
|
it { should respond_to(:fields) }
|
45
45
|
it { should respond_to(:fields=) }
|
46
46
|
|
47
|
-
it
|
48
|
-
|
49
|
-
subject.should respond_to(:description=)
|
50
|
-
subject.method(:description).should == subject.method(:descr)
|
51
|
-
subject.method(:description=).should == subject.method(:descr=)
|
52
|
-
end
|
47
|
+
it { should have_alias(:description, :descr) }
|
48
|
+
it { should have_alias(:description=, :descr=) }
|
53
49
|
|
54
50
|
describe '#created_on' do
|
55
51
|
it 'returns converted to Time object Unix timestamp' do
|
@@ -118,7 +114,7 @@ describe GroupDocs::DataSource do
|
|
118
114
|
subject.add!
|
119
115
|
end
|
120
116
|
|
121
|
-
it '
|
117
|
+
it 'updates identifier of datasource' do
|
122
118
|
lambda do
|
123
119
|
subject.add!
|
124
120
|
end.should change(subject, :id)
|
@@ -73,24 +73,15 @@ describe GroupDocs::Document::Annotation::Reply do
|
|
73
73
|
it { should respond_to(:repliedOn) }
|
74
74
|
it { should respond_to(:repliedOn=) }
|
75
75
|
|
76
|
-
it
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
subject.method(:annotation_guid).should == subject.method(:annotationGuid)
|
86
|
-
subject.method(:annotation_guid=).should == subject.method(:annotationGuid=)
|
87
|
-
subject.method(:user_guid).should == subject.method(:userGuid)
|
88
|
-
subject.method(:user_guid=).should == subject.method(:userGuid=)
|
89
|
-
subject.method(:user_name).should == subject.method(:userName)
|
90
|
-
subject.method(:user_name=).should == subject.method(:userName=)
|
91
|
-
# Reply#replied_on is overwritten
|
92
|
-
subject.method(:replied_on=).should == subject.method(:repliedOn=)
|
93
|
-
end
|
76
|
+
it { should have_alias(:annotation_guid, :annotationGuid) }
|
77
|
+
it { should have_alias(:annotation_guid=, :annotationGuid=) }
|
78
|
+
it { should have_alias(:user_guid, :userGuid) }
|
79
|
+
it { should have_alias(:user_guid=, :userGuid=) }
|
80
|
+
it { should have_alias(:user_name, :userName) }
|
81
|
+
it { should have_alias(:user_name=, :userName=) }
|
82
|
+
# Reply#replied_on is overwritten
|
83
|
+
it { should have_alias(:replied_on=, :repliedOn=) }
|
84
|
+
|
94
85
|
|
95
86
|
describe '#initialize' do
|
96
87
|
it 'raises error if annotation is not specified' do
|
@@ -137,7 +128,7 @@ describe GroupDocs::Document::Annotation::Reply do
|
|
137
128
|
|
138
129
|
describe '#edit!' do
|
139
130
|
before(:each) do
|
140
|
-
mock_api_server('{"result": {}, "status": "Ok"
|
131
|
+
mock_api_server('{ "result": {}, "status": "Ok" }')
|
141
132
|
end
|
142
133
|
|
143
134
|
it 'accepts access credentials hash' do
|
@@ -149,7 +140,7 @@ describe GroupDocs::Document::Annotation::Reply do
|
|
149
140
|
|
150
141
|
describe '#remove!' do
|
151
142
|
before(:each) do
|
152
|
-
mock_api_server('{"result": {}, "status": "Ok"
|
143
|
+
mock_api_server('{ "result": {}, "status": "Ok" }')
|
153
144
|
end
|
154
145
|
|
155
146
|
it 'accepts access credentials hash' do
|
@@ -21,6 +21,8 @@ describe GroupDocs::Document::Annotation do
|
|
21
21
|
it { should respond_to(:sessionGuid=) }
|
22
22
|
it { should respond_to(:documentGuid) }
|
23
23
|
it { should respond_to(:documentGuid=) }
|
24
|
+
it { should respond_to(:creatorGuid) }
|
25
|
+
it { should respond_to(:creatorGuid=) }
|
24
26
|
it { should respond_to(:replyGuid) }
|
25
27
|
it { should respond_to(:replyGuid=) }
|
26
28
|
it { should respond_to(:createdOn) }
|
@@ -36,35 +38,21 @@ describe GroupDocs::Document::Annotation do
|
|
36
38
|
it { should respond_to(:annotationPosition) }
|
37
39
|
it { should respond_to(:annotationPosition=) }
|
38
40
|
|
39
|
-
it
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
subject.method(:document_guid=).should == subject.method(:documentGuid=)
|
55
|
-
subject.method(:reply_guid).should == subject.method(:replyGuid)
|
56
|
-
subject.method(:reply_guid=).should == subject.method(:replyGuid=)
|
57
|
-
# Annotation#created_on is overwritten
|
58
|
-
subject.method(:created_on=).should == subject.method(:createdOn=)
|
59
|
-
subject.method(:annotation_position).should == subject.method(:annotationPosition)
|
60
|
-
subject.method(:annotation_position=).should == subject.method(:annotationPosition=)
|
61
|
-
subject.method(:position).should == subject.method(:annotation_position)
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'is compatible with response JSON' do
|
65
|
-
subject.should respond_to(:annotationGuid=)
|
66
|
-
subject.method(:annotationGuid=).should == subject.method(:guid=)
|
67
|
-
end
|
41
|
+
it { should have_alias(:session_guid, :sessionGuid) }
|
42
|
+
it { should have_alias(:session_guid=, :sessionGuid=) }
|
43
|
+
it { should have_alias(:document_guid, :documentGuid) }
|
44
|
+
it { should have_alias(:document_guid=, :documentGuid=) }
|
45
|
+
it { should have_alias(:creator_guid, :creatorGuid) }
|
46
|
+
it { should have_alias(:creator_guid=, :creatorGuid=) }
|
47
|
+
it { should have_alias(:reply_guid, :replyGuid) }
|
48
|
+
it { should have_alias(:reply_guid=, :replyGuid=) }
|
49
|
+
# Annotation#created_on is overwritten
|
50
|
+
it { should have_alias(:created_on=, :createdOn=) }
|
51
|
+
it { should have_alias(:annotation_position, :annotationPosition) }
|
52
|
+
it { should have_alias(:annotation_position=, :annotationPosition=) }
|
53
|
+
it { should have_alias(:position, :annotation_position) }
|
54
|
+
|
55
|
+
it { should have_alias(:annotationGuid=, :guid=) }
|
68
56
|
|
69
57
|
describe '#initialize' do
|
70
58
|
it 'raises error if document is not specified' do
|
@@ -236,8 +224,7 @@ describe GroupDocs::Document::Annotation do
|
|
236
224
|
end
|
237
225
|
|
238
226
|
it 'is aliased to #collaborators=' do
|
239
|
-
subject.should
|
240
|
-
subject.method(:collaborators=).should == subject.method(:collaborators_set!)
|
227
|
+
subject.should have_alias(:collaborators=, :collaborators_set!)
|
241
228
|
end
|
242
229
|
end
|
243
230
|
|
@@ -277,4 +264,21 @@ describe GroupDocs::Document::Annotation do
|
|
277
264
|
end.should change(subject, :annotation_position).to(x: 10, y: 10)
|
278
265
|
end
|
279
266
|
end
|
267
|
+
|
268
|
+
describe '#set_access!' do
|
269
|
+
before(:each) do
|
270
|
+
mock_api_server(load_json('annotation_access_set'))
|
271
|
+
end
|
272
|
+
|
273
|
+
it 'accepts access credentials hash' do
|
274
|
+
lambda do
|
275
|
+
subject.set_access!(:private, client_id: 'client_id', private_key: 'private_key')
|
276
|
+
end.should_not raise_error(ArgumentError)
|
277
|
+
end
|
278
|
+
|
279
|
+
it 'updates annotation access mode' do
|
280
|
+
subject.set_access!(:private)
|
281
|
+
subject.access.should == :private
|
282
|
+
end
|
283
|
+
end
|
280
284
|
end
|
@@ -13,10 +13,7 @@ describe GroupDocs::Document::Field do
|
|
13
13
|
it { should respond_to(:rectangle) }
|
14
14
|
it { should respond_to(:rectangle=) }
|
15
15
|
|
16
|
-
it
|
17
|
-
subject.should respond_to(:rect=)
|
18
|
-
subject.method(:rect=).should == subject.method(:rectangle=)
|
19
|
-
end
|
16
|
+
it { should have_alias(:rect=, :rectangle=) }
|
20
17
|
|
21
18
|
describe '#rectangle=' do
|
22
19
|
it 'converts passed hash to GroupDocs::Document::Rectangle object' do
|