groupdocs 0.3.11 → 1.0.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.
- 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
|