groupdocs 1.3.0 → 1.4.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/.travis.yml +4 -0
- data/CHANGELOG.md +32 -0
- data/examples/api-samples/public/css/style.css +123 -67
- data/examples/api-samples/public/images/help.png +0 -0
- data/examples/api-samples/public/images/info.png +0 -0
- data/examples/api-samples/public/templates/base-simple_source.html +192 -0
- data/examples/api-samples/public/templates/testdocument.html +101 -0
- data/examples/api-samples/public/templates/welcome.htm +137 -0
- data/examples/api-samples/samples/sample18.rb +134 -31
- data/examples/api-samples/views/sample18.haml +127 -9
- data/lib/groupdocs/api/request.rb +1 -1
- data/lib/groupdocs/document.rb +6 -3
- data/lib/groupdocs/signature.rb +6 -0
- data/lib/groupdocs/signature/contact.rb +42 -0
- data/lib/groupdocs/signature/envelope.rb +71 -0
- data/lib/groupdocs/signature/field.rb +21 -2
- data/lib/groupdocs/signature/form.rb +162 -9
- data/lib/groupdocs/signature/role.rb +5 -31
- data/lib/groupdocs/signature/shared/document_methods.rb +2 -1
- data/lib/groupdocs/signature/shared/entity_fields.rb +6 -16
- data/lib/groupdocs/signature/shared/entity_methods.rb +2 -2
- data/lib/groupdocs/signature/shared/field_methods.rb +56 -2
- data/lib/groupdocs/storage.rb +1 -0
- data/lib/groupdocs/storage/provider.rb +32 -0
- data/lib/groupdocs/user.rb +66 -0
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/signature/contact_spec.rb +21 -0
- data/spec/groupdocs/signature/envelope_spec.rb +53 -1
- data/spec/groupdocs/signature/field_spec.rb +19 -1
- data/spec/groupdocs/signature/form_spec.rb +47 -11
- data/spec/groupdocs/signature/role_spec.rb +4 -47
- data/spec/groupdocs/signature_spec.rb +4 -0
- data/spec/groupdocs/storage/provider_spec.rb +22 -0
- data/spec/groupdocs/user_spec.rb +54 -0
- data/spec/support/json/user_embed_key.json +39 -0
- data/spec/support/json/user_providers.json +31 -0
- data/spec/support/json/user_roles.json +25 -0
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +14 -26
- data/spec/support/shared_examples/signature/shared/field_methods.rb +58 -34
- metadata +18 -4
@@ -4,6 +4,8 @@ describe GroupDocs::Signature::Form do
|
|
4
4
|
|
5
5
|
it_behaves_like GroupDocs::Api::Entity
|
6
6
|
include_examples GroupDocs::Signature::EntityMethods
|
7
|
+
include_examples GroupDocs::Signature::DocumentMethods
|
8
|
+
include_examples GroupDocs::Signature::FieldMethods
|
7
9
|
include_examples GroupDocs::Signature::ResourceMethods
|
8
10
|
|
9
11
|
describe '.all!' do
|
@@ -42,6 +44,8 @@ describe GroupDocs::Signature::Form do
|
|
42
44
|
it { should have_accessor(:fieldsInFinalFileName) }
|
43
45
|
it { should have_accessor(:canParticipantDownloadForm) }
|
44
46
|
it { should have_accessor(:status) }
|
47
|
+
it { should have_accessor(:watermarkText) }
|
48
|
+
it { should have_accessor(:watermarkImage) }
|
45
49
|
|
46
50
|
it { should alias_accessor(:owner_guid, :ownerGuid) }
|
47
51
|
it { should alias_accessor(:template_guid, :templateGuid) }
|
@@ -50,8 +54,9 @@ describe GroupDocs::Signature::Form do
|
|
50
54
|
it { should alias_accessor(:documents_count, :documentsCount) }
|
51
55
|
it { should alias_accessor(:documents_pages, :documentsPages) }
|
52
56
|
it { should alias_accessor(:participants_count, :participantsCount) }
|
53
|
-
it { should alias_accessor(:fields_in_final_file_name, :fieldsInFinalFileName) }
|
54
57
|
it { should alias_accessor(:can_participant_download_form, :canParticipantDownloadForm) }
|
58
|
+
it { should alias_accessor(:watermark_text, :watermarkText) }
|
59
|
+
it { should alias_accessor(:watermark_image, :watermarkImage) }
|
55
60
|
|
56
61
|
describe '#status' do
|
57
62
|
it 'converts status to human-readable format' do
|
@@ -60,39 +65,52 @@ describe GroupDocs::Signature::Form do
|
|
60
65
|
end
|
61
66
|
end
|
62
67
|
|
63
|
-
describe '#
|
64
|
-
|
68
|
+
describe '#fields_in_final_file_name=' do
|
69
|
+
it 'converts field names in machine-readable format if array is passed' do
|
70
|
+
subject.fields_in_final_file_name = %w(on off)
|
71
|
+
subject.instance_variable_get(:@fieldsInFinalFileName).should == 'on,off'
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'saves field names as is if not an array is passed' do
|
75
|
+
subject.fields_in_final_file_name = 'on,off'
|
76
|
+
subject.instance_variable_get(:@fieldsInFinalFileName).should == 'on,off'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#fields_in_final_file_name' do
|
81
|
+
it 'returns field names in human-readable format' do
|
82
|
+
subject.fields_in_final_file_name = %w(on off)
|
83
|
+
subject.fields_in_final_file_name.should == %w(on off)
|
84
|
+
end
|
85
|
+
end
|
65
86
|
|
87
|
+
describe '#create!' do
|
66
88
|
before(:each) do
|
67
89
|
mock_api_server(load_json('form_get'))
|
68
90
|
end
|
69
91
|
|
70
92
|
it 'accepts access credentials hash' do
|
71
93
|
lambda do
|
72
|
-
subject.create!(
|
94
|
+
subject.create!({}, :client_id => 'client_id', :private_key => 'private_key')
|
73
95
|
end.should_not raise_error(ArgumentError)
|
74
96
|
end
|
75
97
|
|
76
98
|
it 'accepts options hash' do
|
77
99
|
lambda do
|
78
|
-
subject.create!(
|
100
|
+
subject.create!(:assembly_id => 'aodfh43yr9834hf943h')
|
79
101
|
end.should_not raise_error(ArgumentError)
|
80
102
|
end
|
81
103
|
|
82
104
|
it 'uses hashed version of self as request body' do
|
83
105
|
subject.should_receive(:to_hash)
|
84
|
-
subject.create!
|
106
|
+
subject.create!
|
85
107
|
end
|
86
108
|
|
87
109
|
it 'updates identifier of entity' do
|
88
110
|
lambda do
|
89
|
-
subject.create!
|
111
|
+
subject.create!
|
90
112
|
end.should change(subject, :id)
|
91
113
|
end
|
92
|
-
|
93
|
-
it 'raises error if template is not GroupDocs::Signature::Template object' do
|
94
|
-
lambda { subject.create!('Template') }.should raise_error(ArgumentError)
|
95
|
-
end
|
96
114
|
end
|
97
115
|
|
98
116
|
describe '#documents!' do
|
@@ -150,4 +168,22 @@ describe GroupDocs::Signature::Form do
|
|
150
168
|
end.should_not raise_error(ArgumentError)
|
151
169
|
end
|
152
170
|
end
|
171
|
+
|
172
|
+
describe '#update_from_template!' do
|
173
|
+
let(:template) { GroupDocs::Signature::Template.new }
|
174
|
+
|
175
|
+
before(:each) do
|
176
|
+
mock_api_server('{ "status": "Ok", "result": {}}')
|
177
|
+
end
|
178
|
+
|
179
|
+
it 'raises error if template is not GroupDocs::Signature::Template object' do
|
180
|
+
lambda { subject.update_from_template!('Template') }.should raise_error(ArgumentError)
|
181
|
+
end
|
182
|
+
|
183
|
+
it 'accepts access credentials hash' do
|
184
|
+
lambda do
|
185
|
+
subject.update_from_template!(template, :client_id => 'client_id', :private_key => 'private_key')
|
186
|
+
end.should_not raise_error(ArgumentError)
|
187
|
+
end
|
188
|
+
end
|
153
189
|
end
|
@@ -40,51 +40,8 @@ describe GroupDocs::Signature::Role do
|
|
40
40
|
it { should alias_accessor(:can_annotate, :canAnnotate) }
|
41
41
|
it { should alias_accessor(:can_delegate, :canDelegate) }
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'returns false if role cannot edit' do
|
50
|
-
subject.can_edit = 0
|
51
|
-
subject.can_edit?.should be_false
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe '#can_sign?' do
|
56
|
-
it 'returns true if role can sign' do
|
57
|
-
subject.can_sign = 1
|
58
|
-
subject.can_sign?.should be_true
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'returns false if role cannot sign' do
|
62
|
-
subject.can_sign = 0
|
63
|
-
subject.can_sign?.should be_false
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe '#can_annotate?' do
|
68
|
-
it 'returns true if role can annotate' do
|
69
|
-
subject.can_annotate = 1
|
70
|
-
subject.can_annotate?.should be_true
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'returns false if role cannot annotate' do
|
74
|
-
subject.can_annotate = 0
|
75
|
-
subject.can_annotate?.should be_false
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe '#can_delegate?' do
|
80
|
-
it 'returns true if role can delegate' do
|
81
|
-
subject.can_delegate = 1
|
82
|
-
subject.can_delegate?.should be_true
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'returns false if role cannot delegate' do
|
86
|
-
subject.can_delegate = 0
|
87
|
-
subject.can_delegate?.should be_false
|
88
|
-
end
|
89
|
-
end
|
43
|
+
it { should have_alias(:can_edit?, :can_edit) }
|
44
|
+
it { should have_alias(:can_sign?, :can_sign) }
|
45
|
+
it { should have_alias(:can_annotate?, :can_annotate) }
|
46
|
+
it { should have_alias(:can_delegate?, :can_delegate) }
|
90
47
|
end
|
@@ -38,6 +38,8 @@ describe GroupDocs::Signature do
|
|
38
38
|
it { should have_accessor(:initialsImageFileId) }
|
39
39
|
it { should have_accessor(:signatureImageUrl) }
|
40
40
|
it { should have_accessor(:initialsImageUrl) }
|
41
|
+
it { should have_accessor(:signatureData) }
|
42
|
+
it { should have_accessor(:initialsData) }
|
41
43
|
it { should have_accessor(:createdTimeStamp) }
|
42
44
|
it { should have_accessor(:image_path) }
|
43
45
|
|
@@ -52,6 +54,8 @@ describe GroupDocs::Signature do
|
|
52
54
|
it { should alias_accessor(:initials_image_file_id, :initialsImageFileId) }
|
53
55
|
it { should alias_accessor(:signature_image_url, :signatureImageUrl) }
|
54
56
|
it { should alias_accessor(:initials_image_url, :initialsImageUrl) }
|
57
|
+
it { should alias_accessor(:signature_data, :signatureData) }
|
58
|
+
it { should alias_accessor(:initials_data, :initialsData) }
|
55
59
|
it { should alias_accessor(:created_time_stamp, :createdTimeStamp) }
|
56
60
|
|
57
61
|
describe '#create!' do
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GroupDocs::Storage::Provider do
|
4
|
+
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
6
|
+
|
7
|
+
it { should have_accessor(:id) }
|
8
|
+
it { should have_accessor(:provider) }
|
9
|
+
it { should have_accessor(:type) }
|
10
|
+
it { should have_accessor(:token) }
|
11
|
+
it { should have_accessor(:publicKey) }
|
12
|
+
it { should have_accessor(:privateKey) }
|
13
|
+
it { should have_accessor(:rootFolder) }
|
14
|
+
it { should have_accessor(:isPrimary) }
|
15
|
+
it { should have_accessor(:serviceHost) }
|
16
|
+
|
17
|
+
it { should alias_accessor(:public_key, :publicKey) }
|
18
|
+
it { should alias_accessor(:private_key, :privateKey) }
|
19
|
+
it { should alias_accessor(:root_folder, :rootFolder) }
|
20
|
+
it { should alias_accessor(:is_primary, :isPrimary) }
|
21
|
+
it { should alias_accessor(:service_host, :serviceHost) }
|
22
|
+
end
|
data/spec/groupdocs/user_spec.rb
CHANGED
@@ -42,6 +42,42 @@ describe GroupDocs::User do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
describe '.embed_key!' do
|
46
|
+
before(:each) do
|
47
|
+
mock_api_server(load_json('user_embed_key'))
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'accepts access credentials hash' do
|
51
|
+
lambda do
|
52
|
+
described_class.embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
|
53
|
+
end.should_not raise_error(ArgumentError)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'returns new user embed key for defined area' do
|
57
|
+
result = described_class.embed_key!('test-area')
|
58
|
+
result.should be_a(String)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe '.providers!' do
|
63
|
+
before(:each) do
|
64
|
+
mock_api_server(load_json('user_providers'))
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'accepts access credentials hash' do
|
68
|
+
lambda do
|
69
|
+
described_class.providers!(:client_id => 'client_id', :private_key => 'private_key')
|
70
|
+
end.should_not raise_error(ArgumentError)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'returns array of GroupDocs::Storage::Provider' do
|
74
|
+
providers = described_class.providers!
|
75
|
+
providers.should be_an(Array)
|
76
|
+
providers.each do |provider|
|
77
|
+
provider.should be_a(GroupDocs::Storage::Provider)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
45
81
|
it { should have_accessor(:id) }
|
46
82
|
it { should have_accessor(:guid) }
|
47
83
|
it { should have_accessor(:nickname) }
|
@@ -130,4 +166,22 @@ describe GroupDocs::User do
|
|
130
166
|
end
|
131
167
|
end
|
132
168
|
end
|
169
|
+
|
170
|
+
describe '#roles!' do
|
171
|
+
before(:each) do
|
172
|
+
mock_api_server(load_json('user_roles'))
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'accepts access credentials hash' do
|
176
|
+
lambda do
|
177
|
+
subject.roles!(:client_id => 'client_id', :private_key => 'private_key')
|
178
|
+
end.should_not raise_error(ArgumentError)
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'returns array' do
|
182
|
+
roles = subject.roles!
|
183
|
+
roles.should be_an(Array)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
133
187
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{
|
2
|
+
"result": {
|
3
|
+
"key": {
|
4
|
+
"user": {
|
5
|
+
"nickname": "test@test.com",
|
6
|
+
"firstname": "First",
|
7
|
+
"lastname": "Last",
|
8
|
+
"pkey": "iwhfsfy8sdufh9hfsfsd9",
|
9
|
+
"pswd_salt": null,
|
10
|
+
"claimed_id": null,
|
11
|
+
"token": null,
|
12
|
+
"storage": null,
|
13
|
+
"photo": null,
|
14
|
+
"active": false,
|
15
|
+
"trial": false,
|
16
|
+
"news_eanbled": null,
|
17
|
+
"alerts_eanbled": null,
|
18
|
+
"support_eanbled": null,
|
19
|
+
"support_email": null,
|
20
|
+
"annotation_branded": null,
|
21
|
+
"viewer_branded": null,
|
22
|
+
"signedupOn": 1335963525287,
|
23
|
+
"signedinOn": 1335963525287,
|
24
|
+
"signin_count": 0,
|
25
|
+
"roles": null,
|
26
|
+
"id": 85,
|
27
|
+
"guid": "8sd7tfsdf",
|
28
|
+
"primary_email": "test@test.com"
|
29
|
+
},
|
30
|
+
"guid": "60a06ef8f23a49cf807977f1444fbdd8",
|
31
|
+
"area": "test-area",
|
32
|
+
"active": true,
|
33
|
+
"hit_count": 0
|
34
|
+
}
|
35
|
+
},
|
36
|
+
"status": "Ok",
|
37
|
+
"error_message": null,
|
38
|
+
"composedOn": 1359383495765
|
39
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"result": {
|
3
|
+
"providers": [
|
4
|
+
{
|
5
|
+
"id": 38,
|
6
|
+
"provider": "Dropbox",
|
7
|
+
"type": "Shared",
|
8
|
+
"token": "lWYWx1ZU9mc3RyaW5nc3RyaW5nPjwvQXJyYXlPZktleVZhbHVlT2Z",
|
9
|
+
"publicKey": "kfmwehvfusotcgk",
|
10
|
+
"privateKey": "swaurn5gnfrbh1s",
|
11
|
+
"rootFolder": null,
|
12
|
+
"isPrimary": false,
|
13
|
+
"serviceHost": null
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"id": 54,
|
17
|
+
"provider": "BoxNet",
|
18
|
+
"type": "Shared",
|
19
|
+
"token": "Nnc2MDB3NzFncXBnMjk1YXVidXk2aGd1bnRnemlibWI=",
|
20
|
+
"publicKey": null,
|
21
|
+
"privateKey": "fyypebzyu9tpe4753utoe1fcru",
|
22
|
+
"rootFolder": null,
|
23
|
+
"isPrimary": false,
|
24
|
+
"serviceHost": null
|
25
|
+
}]
|
26
|
+
},
|
27
|
+
"status": "Ok",
|
28
|
+
"error_message": null,
|
29
|
+
"composedOn": 1365653541727
|
30
|
+
}
|
31
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"result": {
|
3
|
+
"roles": [
|
4
|
+
{
|
5
|
+
"id": 1,
|
6
|
+
"name": "SysAdmin"
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"id": 2,
|
10
|
+
"name": "Admin"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"id": 3,
|
14
|
+
"name": "User"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"id": 4,
|
18
|
+
"name": "Guest"
|
19
|
+
}
|
20
|
+
]
|
21
|
+
},
|
22
|
+
"status": "Ok",
|
23
|
+
"error_message": null,
|
24
|
+
"composedOn": 1365660243257
|
25
|
+
}
|
@@ -13,19 +13,21 @@ shared_examples_for GroupDocs::Signature::EntityFields do
|
|
13
13
|
it { should have_accessor(:documentsCount) }
|
14
14
|
it { should have_accessor(:documentsPages) }
|
15
15
|
it { should have_accessor(:recipients) }
|
16
|
+
it { should have_accessor(:watermarkText) }
|
17
|
+
it { should have_accessor(:watermarkImage) }
|
16
18
|
|
17
|
-
it { should alias_accessor(:owner_id, :ownerId)
|
18
|
-
it { should alias_accessor(:owner_guid, :ownerGuid)
|
19
|
-
it { should alias_accessor(:reminder_time, :reminderTime)
|
20
|
-
it { should alias_accessor(:step_expire_time, :stepExpireTime)
|
21
|
-
|
22
|
-
it { should
|
23
|
-
|
24
|
-
it { should
|
25
|
-
it { should alias_accessor(:
|
26
|
-
it { should alias_accessor(:
|
27
|
-
it { should alias_accessor(:
|
28
|
-
it { should alias_accessor(:
|
19
|
+
it { should alias_accessor(:owner_id, :ownerId) }
|
20
|
+
it { should alias_accessor(:owner_guid, :ownerGuid) }
|
21
|
+
it { should alias_accessor(:reminder_time, :reminderTime) }
|
22
|
+
it { should alias_accessor(:step_expire_time, :stepExpireTime) }
|
23
|
+
it { should alias_accessor(:owner_should_sign, :ownerShouldSign) }
|
24
|
+
it { should alias_accessor(:ordered_signature, :orderedSignature) }
|
25
|
+
it { should alias_accessor(:email_subject, :emailSubject) }
|
26
|
+
it { should alias_accessor(:email_body, :emailBody) }
|
27
|
+
it { should alias_accessor(:documents_count, :documentsCount) }
|
28
|
+
it { should alias_accessor(:documents_pages, :documentsPages) }
|
29
|
+
it { should alias_accessor(:watermark_text, :watermarkText) }
|
30
|
+
it { should alias_accessor(:watermark_image, :watermarkImage) }
|
29
31
|
|
30
32
|
describe '#recipients=' do
|
31
33
|
it 'converts each recipient to GroupDocs::Signature::Recipient object if hash is passed' do
|
@@ -51,18 +53,4 @@ shared_examples_for GroupDocs::Signature::EntityFields do
|
|
51
53
|
end.should_not change(subject, :recipients)
|
52
54
|
end
|
53
55
|
end
|
54
|
-
|
55
|
-
describe '#owner_should_sign' do
|
56
|
-
it 'returns true if owner should sign' do
|
57
|
-
subject.owner_should_sign = 1
|
58
|
-
subject.owner_should_sign.should be_true
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe '#ordered_signature' do
|
63
|
-
it 'returns :ordered for ordered entity' do
|
64
|
-
subject.owner_should_sign = 1
|
65
|
-
subject.ordered_signature.should == :ordered
|
66
|
-
end
|
67
|
-
end
|
68
56
|
end
|
@@ -1,4 +1,12 @@
|
|
1
1
|
shared_examples_for GroupDocs::Signature::FieldMethods do
|
2
|
+
let(:args) do
|
3
|
+
case described_class.name
|
4
|
+
when 'GroupDocs::Signature::Form'
|
5
|
+
[document]
|
6
|
+
when 'GroupDocs::Signature::Template', 'GroupDocs::Signature::Envelope'
|
7
|
+
[document, recipient]
|
8
|
+
end
|
9
|
+
end
|
2
10
|
|
3
11
|
describe '#fields!' do
|
4
12
|
let(:document) { GroupDocs::Document.new(:file => GroupDocs::Storage::File.new) }
|
@@ -10,20 +18,12 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
10
18
|
|
11
19
|
it 'accepts access credentials hash' do
|
12
20
|
lambda do
|
13
|
-
subject.fields!(
|
21
|
+
subject.fields!(*args, :client_id => 'client_id', :private_key => 'private_key')
|
14
22
|
end.should_not raise_error(ArgumentError)
|
15
23
|
end
|
16
24
|
|
17
|
-
it 'raises error if document is not GroupDocs::Document object' do
|
18
|
-
lambda { subject.fields!('Document', recipient) }.should raise_error(ArgumentError)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'raises error if recipient is not GroupDocs::Signature::Recipient object' do
|
22
|
-
lambda { subject.fields!(document, 'Recipient') }.should raise_error(ArgumentError)
|
23
|
-
end
|
24
|
-
|
25
25
|
it 'returns array of GroupDocs::Signature::Field objects' do
|
26
|
-
fields = subject.fields!(
|
26
|
+
fields = subject.fields!(*args)
|
27
27
|
fields.should be_an(Array)
|
28
28
|
fields.each do |field|
|
29
29
|
field.should be_a(GroupDocs::Signature::Field)
|
@@ -42,25 +42,17 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
42
42
|
|
43
43
|
it 'accepts access credentials hash' do
|
44
44
|
lambda do
|
45
|
-
subject.add_field!(field,
|
45
|
+
subject.add_field!(field, *args, { :force_new_field => false }, :client_id => 'client_id', :private_key => 'private_key')
|
46
46
|
end.should_not raise_error(ArgumentError)
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'raises error if field is not GroupDocs::Signature::Field object' do
|
50
|
-
lambda { subject.add_field!('Field',
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'raises error if document is not GroupDocs::Document object' do
|
54
|
-
lambda { subject.add_field!(field, 'Document', recipient) }.should raise_error(ArgumentError)
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'raises error if recipient is not GroupDocs::Signature::Recipient object' do
|
58
|
-
lambda { subject.add_field!(field, document, 'Recipient') }.should raise_error(ArgumentError)
|
50
|
+
lambda { subject.add_field!('Field', *args) }.should raise_error(ArgumentError)
|
59
51
|
end
|
60
52
|
|
61
53
|
it 'raises error if field does not specify location' do
|
62
54
|
field = GroupDocs::Signature::Field.new
|
63
|
-
lambda { subject.add_field!(field,
|
55
|
+
lambda { subject.add_field!(field, *args) }.should raise_error(ArgumentError)
|
64
56
|
end
|
65
57
|
|
66
58
|
it 'uses field and field locationas payload' do
|
@@ -71,7 +63,7 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
71
63
|
field.location.should_receive(:to_hash).and_return(location)
|
72
64
|
payload.should_receive(:merge!).with(location).and_return(payload)
|
73
65
|
payload.should_receive(:merge!).with(:forceNewField => true).and_return({})
|
74
|
-
subject.add_field!(field,
|
66
|
+
subject.add_field!(field, *args)
|
75
67
|
end
|
76
68
|
|
77
69
|
it 'allows overriding force new field flag' do
|
@@ -82,7 +74,7 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
82
74
|
field.location.should_receive(:to_hash).and_return(location)
|
83
75
|
payload.should_receive(:merge!).with(location).and_return(payload)
|
84
76
|
payload.should_receive(:merge!).with(:forceNewField => false).and_return({})
|
85
|
-
subject.add_field!(field,
|
77
|
+
subject.add_field!(field, *args, :force_new_field => false)
|
86
78
|
end
|
87
79
|
end
|
88
80
|
|
@@ -121,6 +113,46 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
121
113
|
end
|
122
114
|
end
|
123
115
|
|
116
|
+
describe '#assign_field!' do
|
117
|
+
case described_class.name
|
118
|
+
when 'GroupDocs::Signature::Form'
|
119
|
+
it 'does not have #assign_field! method' do
|
120
|
+
subject.methods.should_not include(:assign_field!)
|
121
|
+
end
|
122
|
+
when 'GroupDocs::Signature::Template', 'GroupDocs::Signature::Envelope'
|
123
|
+
let(:field) { GroupDocs::Signature::Field.new }
|
124
|
+
let(:document) { GroupDocs::Document.new(:file => GroupDocs::Storage::File.new) }
|
125
|
+
let(:assign_from) { GroupDocs::Signature::Recipient.new }
|
126
|
+
let(:assign_to) { GroupDocs::Signature::Recipient.new }
|
127
|
+
|
128
|
+
before(:each) do
|
129
|
+
mock_api_server(load_json('signature_field_add'))
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'accepts access credentials hash' do
|
133
|
+
lambda do
|
134
|
+
subject.assign_field!(field, document, assign_from, assign_to, :client_id => 'client_id', :private_key => 'private_key')
|
135
|
+
end.should_not raise_error(ArgumentError)
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'raises error if field is not GroupDocs::Signature::Field object' do
|
139
|
+
lambda { subject.assign_field!('Field', document, assign_from, assign_to) }.should raise_error(ArgumentError)
|
140
|
+
end
|
141
|
+
|
142
|
+
it 'raises error if document is not GroupDocs::Document object' do
|
143
|
+
lambda { subject.assign_field!(field, 'Document', assign_from, assign_to) }.should raise_error(ArgumentError)
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'raises error if assign from is not GroupDocs::Signature::Recipient object' do
|
147
|
+
lambda { subject.assign_field!(field, document, 'Assign', assign_to) }.should raise_error(ArgumentError)
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'raises error if assign to is not GroupDocs::Signature::Recipient object' do
|
151
|
+
lambda { subject.assign_field!(field, document, assign_from, 'Assign') }.should raise_error(ArgumentError)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
124
156
|
describe '#delete_field!' do
|
125
157
|
let(:field) do
|
126
158
|
GroupDocs::Signature::Field.new
|
@@ -152,24 +184,16 @@ shared_examples_for GroupDocs::Signature::FieldMethods do
|
|
152
184
|
end
|
153
185
|
|
154
186
|
it 'raises error if location is not GroupDocs::Signature::Field::Location object' do
|
155
|
-
lambda { subject.modify_field_location!('Location', field,
|
187
|
+
lambda { subject.modify_field_location!('Location', field, *args) }.should raise_error(ArgumentError)
|
156
188
|
end
|
157
189
|
|
158
190
|
it 'raises error if field is not GroupDocs::Signature::Field object' do
|
159
|
-
lambda { subject.modify_field_location!(location, 'Field',
|
160
|
-
end
|
161
|
-
|
162
|
-
it 'raises error if document is not GroupDocs::Document object' do
|
163
|
-
lambda { subject.modify_field_location!(location, field, 'Document', recipient) }.should raise_error(ArgumentError)
|
164
|
-
end
|
165
|
-
|
166
|
-
it 'raises error if recipient is not GroupDocs::Signature::Recipient object' do
|
167
|
-
lambda { subject.modify_field_location!(location, field, document, 'Recipient') }.should raise_error(ArgumentError)
|
191
|
+
lambda { subject.modify_field_location!(location, 'Field', *args) }.should raise_error(ArgumentError)
|
168
192
|
end
|
169
193
|
|
170
194
|
it 'accepts access credentials hash' do
|
171
195
|
lambda do
|
172
|
-
subject.modify_field_location!(location, field,
|
196
|
+
subject.modify_field_location!(location, field, *args, :client_id => 'client_id', :private_key => 'private_key')
|
173
197
|
end.should_not raise_error(ArgumentError)
|
174
198
|
end
|
175
199
|
end
|