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,73 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Signature::Field::Location do
|
|
4
|
+
|
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
|
6
|
+
|
|
7
|
+
it { should respond_to(:id) }
|
|
8
|
+
it { should respond_to(:id=) }
|
|
9
|
+
it { should respond_to(:documentId) }
|
|
10
|
+
it { should respond_to(:documentId=) }
|
|
11
|
+
it { should respond_to(:fieldId) }
|
|
12
|
+
it { should respond_to(:fieldId=) }
|
|
13
|
+
it { should respond_to(:page) }
|
|
14
|
+
it { should respond_to(:page=) }
|
|
15
|
+
it { should respond_to(:locationX) }
|
|
16
|
+
it { should respond_to(:locationX=) }
|
|
17
|
+
it { should respond_to(:locationY) }
|
|
18
|
+
it { should respond_to(:locationY=) }
|
|
19
|
+
it { should respond_to(:locationWidth) }
|
|
20
|
+
it { should respond_to(:locationWidth=) }
|
|
21
|
+
it { should respond_to(:locationHeight) }
|
|
22
|
+
it { should respond_to(:locationHeight=) }
|
|
23
|
+
it { should respond_to(:fontName) }
|
|
24
|
+
it { should respond_to(:fontName=) }
|
|
25
|
+
it { should respond_to(:fontColor) }
|
|
26
|
+
it { should respond_to(:fontColor=) }
|
|
27
|
+
it { should respond_to(:fontSize) }
|
|
28
|
+
it { should respond_to(:fontSize=) }
|
|
29
|
+
it { should respond_to(:fontBold) }
|
|
30
|
+
it { should respond_to(:fontBold=) }
|
|
31
|
+
it { should respond_to(:fontItalic) }
|
|
32
|
+
it { should respond_to(:fontItalic=) }
|
|
33
|
+
it { should respond_to(:fontUnderline) }
|
|
34
|
+
it { should respond_to(:fontUnderline=) }
|
|
35
|
+
|
|
36
|
+
it { should have_alias(:document_id, :documentId) }
|
|
37
|
+
it { should have_alias(:document_id=, :documentId=) }
|
|
38
|
+
it { should have_alias(:field_id, :fieldId) }
|
|
39
|
+
it { should have_alias(:field_id=, :fieldId=) }
|
|
40
|
+
it { should have_alias(:location_x, :locationX) }
|
|
41
|
+
it { should have_alias(:location_x=, :locationX=) }
|
|
42
|
+
it { should have_alias(:x, :locationX) }
|
|
43
|
+
it { should have_alias(:x=, :locationX=) }
|
|
44
|
+
it { should have_alias(:location_y, :locationY) }
|
|
45
|
+
it { should have_alias(:location_y=, :locationY=) }
|
|
46
|
+
it { should have_alias(:y, :locationY) }
|
|
47
|
+
it { should have_alias(:y=, :locationY=) }
|
|
48
|
+
it { should have_alias(:location_w, :locationWidth) }
|
|
49
|
+
it { should have_alias(:location_w=, :locationWidth=) }
|
|
50
|
+
it { should have_alias(:location_width, :locationWidth) }
|
|
51
|
+
it { should have_alias(:location_width=, :locationWidth=) }
|
|
52
|
+
it { should have_alias(:w, :locationWidth) }
|
|
53
|
+
it { should have_alias(:w=, :locationWidth=) }
|
|
54
|
+
it { should have_alias(:location_h, :locationHeight) }
|
|
55
|
+
it { should have_alias(:location_h=, :locationHeight=) }
|
|
56
|
+
it { should have_alias(:location_height, :locationHeight) }
|
|
57
|
+
it { should have_alias(:location_height=, :locationHeight=) }
|
|
58
|
+
it { should have_alias(:h, :locationHeight) }
|
|
59
|
+
it { should have_alias(:h=, :locationHeight=) }
|
|
60
|
+
it { should have_alias(:font_name, :fontName) }
|
|
61
|
+
it { should have_alias(:font_name=, :fontName=) }
|
|
62
|
+
it { should have_alias(:font_color, :fontColor) }
|
|
63
|
+
it { should have_alias(:font_color=, :fontColor=) }
|
|
64
|
+
it { should have_alias(:font_size, :fontSize) }
|
|
65
|
+
it { should have_alias(:font_size=, :fontSize=) }
|
|
66
|
+
it { should have_alias(:font_bold, :fontBold) }
|
|
67
|
+
it { should have_alias(:font_bold=, :fontBold=) }
|
|
68
|
+
it { should have_alias(:font_italic, :fontItalic) }
|
|
69
|
+
it { should have_alias(:font_italic=, :fontItalic=) }
|
|
70
|
+
it { should have_alias(:font_underline, :fontUnderline) }
|
|
71
|
+
it { should have_alias(:font_underline=, :fontUnderline=) }
|
|
72
|
+
|
|
73
|
+
end
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Signature::Field do
|
|
4
|
+
|
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
|
6
|
+
|
|
7
|
+
describe '.get!' do
|
|
8
|
+
before(:each) do
|
|
9
|
+
mock_api_server(load_json('signature_fields_get'))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'accepts access credentials hash' do
|
|
13
|
+
lambda do
|
|
14
|
+
described_class.get!({}, client_id: 'client_id', private_key: 'private_key')
|
|
15
|
+
end.should_not raise_error(ArgumentError)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'allows passing options' do
|
|
19
|
+
-> { described_class.get!(id: "dsaoij3928ukr03") }.should_not raise_error(ArgumentError)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'returns array of GroupDocs::Signature::Field objects' do
|
|
23
|
+
fields = described_class.get!
|
|
24
|
+
fields.should be_an(Array)
|
|
25
|
+
fields.each do |field|
|
|
26
|
+
field.should be_a(GroupDocs::Signature::Field)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it { should respond_to(:id) }
|
|
32
|
+
it { should respond_to(:id=) }
|
|
33
|
+
it { should respond_to(:templateId) }
|
|
34
|
+
it { should respond_to(:templateId=) }
|
|
35
|
+
it { should respond_to(:recipientId) }
|
|
36
|
+
it { should respond_to(:recipientId=) }
|
|
37
|
+
it { should respond_to(:signatureFieldId) }
|
|
38
|
+
it { should respond_to(:signatureFieldId=) }
|
|
39
|
+
it { should respond_to(:graphSizeW) }
|
|
40
|
+
it { should respond_to(:graphSizeW=) }
|
|
41
|
+
it { should respond_to(:graphSizeW) }
|
|
42
|
+
it { should respond_to(:graphSizeW=) }
|
|
43
|
+
it { should respond_to(:graphSizeH) }
|
|
44
|
+
it { should respond_to(:graphSizeH=) }
|
|
45
|
+
it { should respond_to(:graphSizeH) }
|
|
46
|
+
it { should respond_to(:graphSizeH=) }
|
|
47
|
+
it { should respond_to(:getDataFrom) }
|
|
48
|
+
it { should respond_to(:getDataFrom=) }
|
|
49
|
+
it { should respond_to(:regularExpression) }
|
|
50
|
+
it { should respond_to(:regularExpression=) }
|
|
51
|
+
it { should respond_to(:fontName) }
|
|
52
|
+
it { should respond_to(:fontName=) }
|
|
53
|
+
it { should respond_to(:fontColor) }
|
|
54
|
+
it { should respond_to(:fontColor=) }
|
|
55
|
+
it { should respond_to(:fontSize) }
|
|
56
|
+
it { should respond_to(:fontSize=) }
|
|
57
|
+
it { should respond_to(:fontBold) }
|
|
58
|
+
it { should respond_to(:fontBold=) }
|
|
59
|
+
it { should respond_to(:fontItalic) }
|
|
60
|
+
it { should respond_to(:fontItalic=) }
|
|
61
|
+
it { should respond_to(:fontUnderline) }
|
|
62
|
+
it { should respond_to(:fontUnderline=) }
|
|
63
|
+
it { should respond_to(:isSystem) }
|
|
64
|
+
it { should respond_to(:isSystem=) }
|
|
65
|
+
it { should respond_to(:fieldType) }
|
|
66
|
+
it { should respond_to(:fieldType=) }
|
|
67
|
+
it { should respond_to(:acceptableValues) }
|
|
68
|
+
it { should respond_to(:acceptableValues=) }
|
|
69
|
+
it { should respond_to(:defaultValue) }
|
|
70
|
+
it { should respond_to(:defaultValue=) }
|
|
71
|
+
it { should respond_to(:tooltip) }
|
|
72
|
+
it { should respond_to(:tooltip=) }
|
|
73
|
+
it { should respond_to(:input) }
|
|
74
|
+
it { should respond_to(:input=) }
|
|
75
|
+
it { should respond_to(:order) }
|
|
76
|
+
it { should respond_to(:order=) }
|
|
77
|
+
it { should respond_to(:textRows) }
|
|
78
|
+
it { should respond_to(:textRows=) }
|
|
79
|
+
it { should respond_to(:textColumns) }
|
|
80
|
+
it { should respond_to(:textColumns=) }
|
|
81
|
+
it { should respond_to(:location) }
|
|
82
|
+
it { should respond_to(:location=) }
|
|
83
|
+
it { should respond_to(:locations) }
|
|
84
|
+
it { should respond_to(:locations=) }
|
|
85
|
+
|
|
86
|
+
it { should have_alias(:template_id, :templateId) }
|
|
87
|
+
it { should have_alias(:template_id=, :templateId=) }
|
|
88
|
+
it { should have_alias(:recipient_id, :recipientId) }
|
|
89
|
+
it { should have_alias(:recipient_id=, :recipientId=) }
|
|
90
|
+
it { should have_alias(:signature_field_id, :signatureFieldId) }
|
|
91
|
+
it { should have_alias(:signature_field_id=, :signatureFieldId=) }
|
|
92
|
+
it { should have_alias(:graph_size_w, :graphSizeW) }
|
|
93
|
+
it { should have_alias(:graph_size_w=, :graphSizeW=) }
|
|
94
|
+
it { should have_alias(:graph_size_width, :graphSizeW) }
|
|
95
|
+
it { should have_alias(:graph_size_width=, :graphSizeW=) }
|
|
96
|
+
it { should have_alias(:graph_size_h, :graphSizeH) }
|
|
97
|
+
it { should have_alias(:graph_size_h=, :graphSizeH=) }
|
|
98
|
+
it { should have_alias(:graph_size_height, :graphSizeH) }
|
|
99
|
+
it { should have_alias(:graph_size_height=, :graphSizeH=) }
|
|
100
|
+
it { should have_alias(:get_data_from, :getDataFrom) }
|
|
101
|
+
it { should have_alias(:get_data_from=, :getDataFrom=) }
|
|
102
|
+
it { should have_alias(:regular_expression, :regularExpression) }
|
|
103
|
+
it { should have_alias(:regular_expression=, :regularExpression=) }
|
|
104
|
+
it { should have_alias(:font_name, :fontName) }
|
|
105
|
+
it { should have_alias(:font_name=, :fontName=) }
|
|
106
|
+
it { should have_alias(:font_color, :fontColor) }
|
|
107
|
+
it { should have_alias(:font_color=, :fontColor=) }
|
|
108
|
+
it { should have_alias(:font_size, :fontSize) }
|
|
109
|
+
it { should have_alias(:font_size=, :fontSize=) }
|
|
110
|
+
it { should have_alias(:font_bold, :fontBold) }
|
|
111
|
+
it { should have_alias(:font_bold=, :fontBold=) }
|
|
112
|
+
it { should have_alias(:font_italic, :fontItalic) }
|
|
113
|
+
it { should have_alias(:font_italic=, :fontItalic=) }
|
|
114
|
+
it { should have_alias(:font_underline, :fontUnderline) }
|
|
115
|
+
it { should have_alias(:font_underline=, :fontUnderline=) }
|
|
116
|
+
it { should have_alias(:is_system, :isSystem) }
|
|
117
|
+
it { should have_alias(:is_system=, :isSystem=) }
|
|
118
|
+
it { should have_alias(:acceptable_values, :acceptableValues) }
|
|
119
|
+
it { should have_alias(:acceptable_values=, :acceptableValues=) }
|
|
120
|
+
it { should have_alias(:default_value, :defaultValue) }
|
|
121
|
+
it { should have_alias(:default_value=, :defaultValue=) }
|
|
122
|
+
it { should have_alias(:text_rows, :textRows) }
|
|
123
|
+
it { should have_alias(:text_rows=, :textRows=) }
|
|
124
|
+
it { should have_alias(:text_columns, :textColumns) }
|
|
125
|
+
it { should have_alias(:text_columns=, :textColumns=) }
|
|
126
|
+
|
|
127
|
+
describe '#location=' do
|
|
128
|
+
it 'converts location to GroupDocs::Signature::Field::Location object if hash is passed' do
|
|
129
|
+
subject.location = { id: 'location1' }
|
|
130
|
+
subject.location.should be_a(GroupDocs::Signature::Field::Location)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it 'saves each location if it is GroupDocs::Signature::Field::Location object' do
|
|
134
|
+
location = GroupDocs::Signature::Field::Location.new(id: 'location')
|
|
135
|
+
subject.location = location
|
|
136
|
+
subject.location.should == location
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it 'appends location to locations if it is not empty' do
|
|
140
|
+
location1 = GroupDocs::Signature::Field::Location.new(id: 'location1')
|
|
141
|
+
location2 = GroupDocs::Signature::Field::Location.new(id: 'location2')
|
|
142
|
+
subject.locations = [location1]
|
|
143
|
+
subject.location = location2
|
|
144
|
+
subject.locations.should == [location1, location2]
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
it 'creates locations if it is empty' do
|
|
148
|
+
subject.locations = nil
|
|
149
|
+
location = GroupDocs::Signature::Field::Location.new(id: 'location')
|
|
150
|
+
subject.location = location
|
|
151
|
+
subject.locations.should == [location]
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
it 'does nothing if nil is passed' do
|
|
155
|
+
lambda do
|
|
156
|
+
subject.location = nil
|
|
157
|
+
end.should_not change(subject, :location)
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
describe '#locations=' do
|
|
162
|
+
it 'converts each location to GroupDocs::Signature::Field::Location object if hash is passed' do
|
|
163
|
+
subject.locations = [{ id: 'location1' }]
|
|
164
|
+
locations = subject.locations
|
|
165
|
+
locations.should be_an(Array)
|
|
166
|
+
locations.each do |location|
|
|
167
|
+
location.should be_a(GroupDocs::Signature::Field::Location)
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
it 'saves each location if it is GroupDocs::Signature::Field::Location object' do
|
|
172
|
+
location1 = GroupDocs::Signature::Field::Location.new(id: 'location1')
|
|
173
|
+
location2 = GroupDocs::Signature::Field::Location.new(id: 'location2')
|
|
174
|
+
subject.locations = [location1, location2]
|
|
175
|
+
subject.locations.should include(location1)
|
|
176
|
+
subject.locations.should include(location2)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
it 'does nothing if nil is passed' do
|
|
180
|
+
lambda do
|
|
181
|
+
subject.locations = nil
|
|
182
|
+
end.should_not change(subject, :locations)
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
describe '#field_type=' do
|
|
187
|
+
it 'converts field type in machine-readable format if symbol is passed' do
|
|
188
|
+
subject.field_type = :multiline
|
|
189
|
+
subject.instance_variable_get(:@fieldType).should == 3
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
it 'saves field type as is if not a symbol is passed' do
|
|
193
|
+
subject.field_type = 3
|
|
194
|
+
subject.instance_variable_get(:@fieldType).should == 3
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it 'is aliased to #type=' do
|
|
198
|
+
subject.should have_alias(:type=, :field_type=)
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
describe '#field_type' do
|
|
203
|
+
it 'returns field type in human-readable format' do
|
|
204
|
+
subject.field_type = :multiline
|
|
205
|
+
subject.field_type.should == :multiline
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
it 'is aliased to #type' do
|
|
209
|
+
subject.should have_alias(:type, :field_type)
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
describe '#create!' do
|
|
214
|
+
before(:each) do
|
|
215
|
+
mock_api_server(load_json('signature_field_add'))
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
it 'accepts access credentials hash' do
|
|
219
|
+
lambda do
|
|
220
|
+
subject.create!(client_id: 'client_id', private_key: 'private_key')
|
|
221
|
+
end.should_not raise_error(ArgumentError)
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
it 'uses hashed version of self as request body' do
|
|
225
|
+
subject.should_receive(:to_hash)
|
|
226
|
+
subject.create!
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
it 'updates identifier of field' do
|
|
230
|
+
lambda do
|
|
231
|
+
subject.create!
|
|
232
|
+
end.should change(subject, :id)
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
describe '#modify!' do
|
|
237
|
+
before(:each) do
|
|
238
|
+
mock_api_server(load_json('signature_field_add'))
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
it 'accepts access credentials hash' do
|
|
242
|
+
lambda do
|
|
243
|
+
subject.modify!(client_id: 'client_id', private_key: 'private_key')
|
|
244
|
+
end.should_not raise_error(ArgumentError)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
it 'uses hashed version of self as request body' do
|
|
248
|
+
subject.should_receive(:to_hash)
|
|
249
|
+
subject.modify!
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
describe '#delete!' do
|
|
254
|
+
before(:each) do
|
|
255
|
+
mock_api_server('{ "status": "Ok", "result": { "field": null }}')
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
it 'accepts access credentials hash' do
|
|
259
|
+
lambda do
|
|
260
|
+
subject.delete!(client_id: 'client_id', private_key: 'private_key')
|
|
261
|
+
end.should_not raise_error(ArgumentError)
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
end
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Signature::Form do
|
|
4
|
+
|
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
|
6
|
+
include_examples GroupDocs::Signature::EntityMethods
|
|
7
|
+
include_examples GroupDocs::Signature::ResourceMethods
|
|
8
|
+
|
|
9
|
+
describe '.all!' do
|
|
10
|
+
before(:each) do
|
|
11
|
+
mock_api_server(load_json('forms_all'))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'accepts access credentials hash' do
|
|
15
|
+
lambda do
|
|
16
|
+
described_class.all!({}, client_id: 'client_id', private_key: 'private_key')
|
|
17
|
+
end.should_not raise_error(ArgumentError)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'allows passing options' do
|
|
21
|
+
-> { described_class.all!(page: 1, count: 3) }.should_not raise_error(ArgumentError)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'returns array of GroupDocs::Signature::Form objects' do
|
|
25
|
+
forms = described_class.all!
|
|
26
|
+
forms.should be_an(Array)
|
|
27
|
+
forms.each do |form|
|
|
28
|
+
form.should be_a(GroupDocs::Signature::Form)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it { should respond_to(:id) }
|
|
34
|
+
it { should respond_to(:id=) }
|
|
35
|
+
it { should respond_to(:name) }
|
|
36
|
+
it { should respond_to(:name=) }
|
|
37
|
+
it { should respond_to(:ownerGuid) }
|
|
38
|
+
it { should respond_to(:ownerGuid=) }
|
|
39
|
+
it { should respond_to(:templateGuid) }
|
|
40
|
+
it { should respond_to(:templateGuid=) }
|
|
41
|
+
it { should respond_to(:createdTimeStamp) }
|
|
42
|
+
it { should respond_to(:createdTimeStamp=) }
|
|
43
|
+
it { should respond_to(:statusDateTime) }
|
|
44
|
+
it { should respond_to(:statusDateTime=) }
|
|
45
|
+
it { should respond_to(:documentsCount) }
|
|
46
|
+
it { should respond_to(:documentsCount=) }
|
|
47
|
+
it { should respond_to(:documentsPages) }
|
|
48
|
+
it { should respond_to(:documentsPages=) }
|
|
49
|
+
it { should respond_to(:participantsCount) }
|
|
50
|
+
it { should respond_to(:participantsCount=) }
|
|
51
|
+
it { should respond_to(:fieldsInFinalFileName) }
|
|
52
|
+
it { should respond_to(:fieldsInFinalFileName=) }
|
|
53
|
+
it { should respond_to(:canParticipantDownloadForm) }
|
|
54
|
+
it { should respond_to(:canParticipantDownloadForm=) }
|
|
55
|
+
it { should respond_to(:status) }
|
|
56
|
+
it { should respond_to(:status=) }
|
|
57
|
+
|
|
58
|
+
it { should have_alias(:owner_guid, :ownerGuid) }
|
|
59
|
+
it { should have_alias(:owner_guid=, :ownerGuid=) }
|
|
60
|
+
it { should have_alias(:template_guid, :templateGuid) }
|
|
61
|
+
it { should have_alias(:template_guid=, :templateGuid=) }
|
|
62
|
+
it { should have_alias(:created_time_stamp, :createdTimeStamp) }
|
|
63
|
+
it { should have_alias(:created_time_stamp=, :createdTimeStamp=) }
|
|
64
|
+
it { should have_alias(:status_date_time, :statusDateTime) }
|
|
65
|
+
it { should have_alias(:status_date_time=, :statusDateTime=) }
|
|
66
|
+
it { should have_alias(:documents_count, :documentsCount) }
|
|
67
|
+
it { should have_alias(:documents_count=, :documentsCount=) }
|
|
68
|
+
it { should have_alias(:documents_pages, :documentsPages) }
|
|
69
|
+
it { should have_alias(:documents_pages=, :documentsPages=) }
|
|
70
|
+
it { should have_alias(:participants_count, :participantsCount) }
|
|
71
|
+
it { should have_alias(:participants_count=, :participantsCount=) }
|
|
72
|
+
it { should have_alias(:fields_in_final_file_name, :fieldsInFinalFileName) }
|
|
73
|
+
it { should have_alias(:fields_in_final_file_name=, :fieldsInFinalFileName=) }
|
|
74
|
+
it { should have_alias(:can_participant_download_form, :canParticipantDownloadForm) }
|
|
75
|
+
it { should have_alias(:can_participant_download_form=, :canParticipantDownloadForm=) }
|
|
76
|
+
|
|
77
|
+
describe '#status' do
|
|
78
|
+
it 'converts status to human-readable format' do
|
|
79
|
+
subject.status = 1
|
|
80
|
+
subject.status.should == :in_progress
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
describe '#create!' do
|
|
85
|
+
let(:template) { GroupDocs::Signature::Template.new }
|
|
86
|
+
|
|
87
|
+
before(:each) do
|
|
88
|
+
mock_api_server(load_json('form_get'))
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it 'accepts access credentials hash' do
|
|
92
|
+
lambda do
|
|
93
|
+
subject.create!(template, {}, client_id: 'client_id', private_key: 'private_key')
|
|
94
|
+
end.should_not raise_error(ArgumentError)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it 'accepts options hash' do
|
|
98
|
+
lambda do
|
|
99
|
+
subject.create!(template, assembly_id: 'aodfh43yr9834hf943h')
|
|
100
|
+
end.should_not raise_error(ArgumentError)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it 'uses hashed version of self as request body' do
|
|
104
|
+
subject.should_receive(:to_hash)
|
|
105
|
+
subject.create!(template)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it 'updates identifier of entity' do
|
|
109
|
+
lambda do
|
|
110
|
+
subject.create!(template)
|
|
111
|
+
end.should change(subject, :id)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
it 'raises error if template is not GroupDocs::Signature::Template object' do
|
|
115
|
+
-> { subject.create!('Template') }.should raise_error(ArgumentError)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
describe '#documents!' do
|
|
120
|
+
before(:each) do
|
|
121
|
+
mock_api_server(load_json('template_get_documents'))
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it 'accepts access credentials hash' do
|
|
125
|
+
lambda do
|
|
126
|
+
subject.documents!(client_id: 'client_id', private_key: 'private_key')
|
|
127
|
+
end.should_not raise_error(ArgumentError)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
it 'returns array of GroupDocs::Document objects' do
|
|
131
|
+
documents = subject.documents!
|
|
132
|
+
documents.should be_an(Array)
|
|
133
|
+
documents.each do |document|
|
|
134
|
+
document.should be_a(GroupDocs::Document)
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
describe '#publish!' do
|
|
140
|
+
before(:each) do
|
|
141
|
+
mock_api_server('{ "status": "Ok", "result": {}}')
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it 'accepts access credentials hash' do
|
|
145
|
+
lambda do
|
|
146
|
+
subject.publish!(client_id: 'client_id', private_key: 'private_key')
|
|
147
|
+
end.should_not raise_error(ArgumentError)
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
describe '#complete!' do
|
|
152
|
+
before(:each) do
|
|
153
|
+
mock_api_server('{ "status": "Ok", "result": {}}')
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
it 'accepts access credentials hash' do
|
|
157
|
+
lambda do
|
|
158
|
+
subject.complete!(client_id: 'client_id', private_key: 'private_key')
|
|
159
|
+
end.should_not raise_error(ArgumentError)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
describe '#archive!' do
|
|
164
|
+
before(:each) do
|
|
165
|
+
mock_api_server('{ "status": "Ok", "result": {}}')
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
it 'accepts access credentials hash' do
|
|
169
|
+
lambda do
|
|
170
|
+
subject.archive!(client_id: 'client_id', private_key: 'private_key')
|
|
171
|
+
end.should_not raise_error(ArgumentError)
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|