groupdocs 0.1.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 +5 -0
- data/Gemfile +3 -0
- data/README.md +141 -0
- data/Rakefile +9 -0
- data/groupdocs.gemspec +28 -0
- data/lib/groupdocs.rb +53 -0
- data/lib/groupdocs/api.rb +3 -0
- data/lib/groupdocs/api/entity.rb +113 -0
- data/lib/groupdocs/api/helpers.rb +5 -0
- data/lib/groupdocs/api/helpers/access_helper.rb +56 -0
- data/lib/groupdocs/api/helpers/actions_helper.rb +48 -0
- data/lib/groupdocs/api/helpers/rest_helper.rb +89 -0
- data/lib/groupdocs/api/helpers/status_helper.rb +48 -0
- data/lib/groupdocs/api/helpers/url_helper.rb +89 -0
- data/lib/groupdocs/api/request.rb +73 -0
- data/lib/groupdocs/api/sugar/lookup.rb +48 -0
- data/lib/groupdocs/datasource.rb +162 -0
- data/lib/groupdocs/datasource/field.rb +44 -0
- data/lib/groupdocs/document.rb +513 -0
- data/lib/groupdocs/document/annotation.rb +215 -0
- data/lib/groupdocs/document/annotation/reply.rb +167 -0
- data/lib/groupdocs/document/change.rb +35 -0
- data/lib/groupdocs/document/field.rb +27 -0
- data/lib/groupdocs/document/metadata.rb +26 -0
- data/lib/groupdocs/document/rectangle.rb +24 -0
- data/lib/groupdocs/document/view.rb +36 -0
- data/lib/groupdocs/errors.rb +10 -0
- data/lib/groupdocs/job.rb +201 -0
- data/lib/groupdocs/questionnaire.rb +221 -0
- data/lib/groupdocs/questionnaire/execution.rb +120 -0
- data/lib/groupdocs/questionnaire/page.rb +43 -0
- data/lib/groupdocs/questionnaire/question.rb +75 -0
- data/lib/groupdocs/questionnaire/question/answer.rb +10 -0
- data/lib/groupdocs/storage.rb +37 -0
- data/lib/groupdocs/storage/file.rb +248 -0
- data/lib/groupdocs/storage/folder.rb +314 -0
- data/lib/groupdocs/storage/package.rb +42 -0
- data/lib/groupdocs/user.rb +50 -0
- data/lib/groupdocs/version.rb +3 -0
- data/spec/groupdocs/api/entity_spec.rb +54 -0
- data/spec/groupdocs/api/helpers/access_helper_spec.rb +89 -0
- data/spec/groupdocs/api/helpers/actions_helper_spec.rb +51 -0
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +187 -0
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +85 -0
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +93 -0
- data/spec/groupdocs/api/request_spec.rb +85 -0
- data/spec/groupdocs/datasource/field_spec.rb +50 -0
- data/spec/groupdocs/datasource_spec.rb +156 -0
- data/spec/groupdocs/document/annotation/reply_spec.rb +179 -0
- data/spec/groupdocs/document/annotation_spec.rb +226 -0
- data/spec/groupdocs/document/change_spec.rb +35 -0
- data/spec/groupdocs/document/field_spec.rb +31 -0
- data/spec/groupdocs/document/metadata_spec.rb +26 -0
- data/spec/groupdocs/document/rectangle_spec.rb +34 -0
- data/spec/groupdocs/document/view_spec.rb +36 -0
- data/spec/groupdocs/document_spec.rb +509 -0
- data/spec/groupdocs/errors_spec.rb +7 -0
- data/spec/groupdocs/job_spec.rb +196 -0
- data/spec/groupdocs/questionnaire/execution_spec.rb +136 -0
- data/spec/groupdocs/questionnaire/page_spec.rb +50 -0
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +11 -0
- data/spec/groupdocs/questionnaire/question_spec.rb +84 -0
- data/spec/groupdocs/questionnaire_spec.rb +217 -0
- data/spec/groupdocs/storage/file_spec.rb +242 -0
- data/spec/groupdocs/storage/folder_spec.rb +310 -0
- data/spec/groupdocs/storage/package_spec.rb +41 -0
- data/spec/groupdocs/storage_spec.rb +27 -0
- data/spec/groupdocs/user_spec.rb +53 -0
- data/spec/groupdocs_spec.rb +56 -0
- data/spec/spec_helper.rb +46 -0
- data/spec/support/files/resume.pdf +0 -0
- data/spec/support/json/annotation_collaborators_set.json +16 -0
- data/spec/support/json/annotation_create.json +12 -0
- data/spec/support/json/annotation_list.json +32 -0
- data/spec/support/json/annotation_remove.json +9 -0
- data/spec/support/json/annotation_replies_create.json +9 -0
- data/spec/support/json/annotation_replies_get.json +25 -0
- data/spec/support/json/comparison_changes.json +46 -0
- data/spec/support/json/comparison_compare.json +8 -0
- data/spec/support/json/comparison_document.json +10 -0
- data/spec/support/json/datasource_add.json +8 -0
- data/spec/support/json/datasource_get.json +22 -0
- data/spec/support/json/datasource_remove.json +8 -0
- data/spec/support/json/datasource_update.json +8 -0
- data/spec/support/json/document_access_info_get.json +14 -0
- data/spec/support/json/document_convert.json +8 -0
- data/spec/support/json/document_datasource.json +10 -0
- data/spec/support/json/document_fields.json +34 -0
- data/spec/support/json/document_formats.json +8 -0
- data/spec/support/json/document_metadata.json +15 -0
- data/spec/support/json/document_questionnaire_create.json +9 -0
- data/spec/support/json/document_questionnaires.json +23 -0
- data/spec/support/json/document_sharers_remove.json +8 -0
- data/spec/support/json/document_sharers_set.json +16 -0
- data/spec/support/json/document_views.json +32 -0
- data/spec/support/json/file_compress.json +8 -0
- data/spec/support/json/file_copy.json +14 -0
- data/spec/support/json/file_delete.json +5 -0
- data/spec/support/json/file_move.json +14 -0
- data/spec/support/json/file_upload.json +8 -0
- data/spec/support/json/folder_create.json +8 -0
- data/spec/support/json/folder_delete.json +5 -0
- data/spec/support/json/folder_list.json +21 -0
- data/spec/support/json/folder_move.json +8 -0
- data/spec/support/json/folder_sharers_get.json +16 -0
- data/spec/support/json/folder_sharers_remove.json +8 -0
- data/spec/support/json/folder_sharers_set.json +16 -0
- data/spec/support/json/job_add_url.json +8 -0
- data/spec/support/json/job_create.json +8 -0
- data/spec/support/json/job_documents.json +39 -0
- data/spec/support/json/job_file_add.json +8 -0
- data/spec/support/json/job_update.json +7 -0
- data/spec/support/json/jobs_get.json +52 -0
- data/spec/support/json/package_create.json +7 -0
- data/spec/support/json/questionnaire_create.json +8 -0
- data/spec/support/json/questionnaire_datasources.json +26 -0
- data/spec/support/json/questionnaire_execution_create.json +9 -0
- data/spec/support/json/questionnaire_execution_status_set.json +8 -0
- data/spec/support/json/questionnaire_execution_update.json +8 -0
- data/spec/support/json/questionnaire_executions.json +24 -0
- data/spec/support/json/questionnaire_get.json +14 -0
- data/spec/support/json/questionnaire_remove.json +8 -0
- data/spec/support/json/questionnaire_update.json +8 -0
- data/spec/support/json/questionnaires_get.json +22 -0
- data/spec/support/json/storage_info.json +10 -0
- data/spec/support/shared_examples/api/entity.rb +37 -0
- data/spec/support/shared_examples/api/helpers/status_helper.rb +12 -0
- data/spec/support/shared_examples/api/sugar/lookup.rb +57 -0
- metadata +356 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Storage::Folder do
|
|
4
|
+
|
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
|
6
|
+
include_examples GroupDocs::Api::Sugar::Lookup
|
|
7
|
+
|
|
8
|
+
describe '.create!' do
|
|
9
|
+
before(:each) do
|
|
10
|
+
mock_api_server(load_json('folder_create'))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'accepts access credentials hash' do
|
|
14
|
+
lambda do
|
|
15
|
+
described_class.create!('/Test', client_id: 'client_id', private_key: 'private_key')
|
|
16
|
+
end.should_not raise_error(ArgumentError)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'raises error if path does not start with /' do
|
|
20
|
+
-> { described_class.create!('Test') }.should raise_error(ArgumentError)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'returns GroupDocs::Storage::Folder object' do
|
|
24
|
+
described_class.stub(find!: described_class.new(id: 1))
|
|
25
|
+
folder = described_class.create!('/Test')
|
|
26
|
+
folder.should be_a(GroupDocs::Storage::Folder)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe '.list!' do
|
|
31
|
+
before(:each) do
|
|
32
|
+
mock_api_server(load_json('folder_list'))
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'accepts access credentials hash' do
|
|
36
|
+
lambda do
|
|
37
|
+
described_class.list!('/', {}, client_id: 'client_id', private_key: 'private_key')
|
|
38
|
+
end.should_not raise_error(ArgumentError)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'allows passing path' do
|
|
42
|
+
-> { described_class.list!('/test') }.should_not raise_error(ArgumentError)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'allows passing options' do
|
|
46
|
+
-> { described_class.list!('/', page: 1, count: 1) }.should_not raise_error(ArgumentError)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'creates new instance of GroupDocs::Storage::Folder and calls #list!' do
|
|
50
|
+
folder = stub('folder')
|
|
51
|
+
GroupDocs::Storage::Folder.should_receive(:new).with(path: '/').and_return(folder)
|
|
52
|
+
folder.should_receive(:list!).with({}, {})
|
|
53
|
+
described_class.list!
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it { should respond_to(:id) }
|
|
58
|
+
it { should respond_to(:id=) }
|
|
59
|
+
it { should respond_to(:size) }
|
|
60
|
+
it { should respond_to(:size=) }
|
|
61
|
+
it { should respond_to(:folder_count) }
|
|
62
|
+
it { should respond_to(:folder_count=) }
|
|
63
|
+
it { should respond_to(:file_count) }
|
|
64
|
+
it { should respond_to(:file_count=) }
|
|
65
|
+
it { should respond_to(:created_on) }
|
|
66
|
+
it { should respond_to(:created_on=) }
|
|
67
|
+
it { should respond_to(:modified_on) }
|
|
68
|
+
it { should respond_to(:modified_on=) }
|
|
69
|
+
it { should respond_to(:url) }
|
|
70
|
+
it { should respond_to(:url=) }
|
|
71
|
+
it { should respond_to(:name) }
|
|
72
|
+
it { should respond_to(:name=) }
|
|
73
|
+
it { should respond_to(:version) }
|
|
74
|
+
it { should respond_to(:version=) }
|
|
75
|
+
it { should respond_to(:type) }
|
|
76
|
+
it { should respond_to(:type=) }
|
|
77
|
+
it { should respond_to(:access) }
|
|
78
|
+
it { should respond_to(:access=) }
|
|
79
|
+
|
|
80
|
+
describe '#created_on' do
|
|
81
|
+
it 'returns converted to Time object Unix timestamp' do
|
|
82
|
+
subject.created_on = 1330450135
|
|
83
|
+
subject.created_on.should be_a(Time)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
describe '#modified_on' do
|
|
88
|
+
it 'returns converted to Time object Unix timestamp' do
|
|
89
|
+
subject.modified_on = 1330450135
|
|
90
|
+
subject.modified_on.should be_a(Time)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
describe '#access' do
|
|
95
|
+
it 'returns converted to human-readable format access mode' do
|
|
96
|
+
subject.should_receive(:parse_access_mode).with(0).and_return(:private)
|
|
97
|
+
subject.access = 0
|
|
98
|
+
subject.access.should == :private
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
describe '#move!' do
|
|
103
|
+
it 'accepts access credentials hash' do
|
|
104
|
+
lambda do
|
|
105
|
+
subject.move!('/Test', client_id: 'client_id', private_key: 'private_key')
|
|
106
|
+
end.should_not raise_error(ArgumentError)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it 'raises error if path does not start with /' do
|
|
110
|
+
-> { subject.move!('Test2') }.should raise_error(ArgumentError)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it 'sends "Groupdocs-Move" header' do
|
|
114
|
+
mock_api_server(load_json('folder_move'), :'Groupdocs-Move' => 'Test1')
|
|
115
|
+
subject.stub(name: 'Test1')
|
|
116
|
+
subject.move!('/Test2')
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
it 'returns moved to folder path' do
|
|
120
|
+
mock_api_server(load_json('folder_move'))
|
|
121
|
+
moved = subject.move!('/Test2')
|
|
122
|
+
moved.should be_a(String)
|
|
123
|
+
moved.should == '/Test2'
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
describe '#rename!' do
|
|
128
|
+
it 'accepts access credentials hash' do
|
|
129
|
+
lambda do
|
|
130
|
+
subject.rename!('Test2', client_id: 'client_id', private_key: 'private_key')
|
|
131
|
+
end.should_not raise_error(ArgumentError)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it 'uses #move! to rename directory' do
|
|
135
|
+
subject.should_receive(:move!).with('/Test2', {}).and_return('/Test2')
|
|
136
|
+
subject.rename!('Test2')
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it 'strips leading / symbol from new name' do
|
|
140
|
+
subject.stub(move!: '/Test2')
|
|
141
|
+
renamed = subject.rename!('Test2')
|
|
142
|
+
renamed.should be_a(String)
|
|
143
|
+
renamed.should == 'Test2'
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
describe '#copy!' do
|
|
148
|
+
it 'accepts access credentials hash' do
|
|
149
|
+
lambda do
|
|
150
|
+
subject.copy!('/Test2', client_id: 'client_id', private_key: 'private_key')
|
|
151
|
+
end.should_not raise_error(ArgumentError)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
it 'raises error if path does not start with /' do
|
|
155
|
+
-> { subject.copy!('Test2') }.should raise_error(ArgumentError)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
it 'sends "Groupdocs-Copy" header' do
|
|
159
|
+
mock_api_server(load_json('folder_move'), :'Groupdocs-Copy' => 'Test1')
|
|
160
|
+
subject.stub(name: 'Test1')
|
|
161
|
+
subject.copy!('/Test2')
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
it 'returns moved to folder path' do
|
|
165
|
+
mock_api_server(load_json('folder_move'))
|
|
166
|
+
moved = subject.copy!('/Test2')
|
|
167
|
+
moved.should be_a(String)
|
|
168
|
+
moved.should == '/Test2'
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
describe '#list!' do
|
|
173
|
+
before(:each) do
|
|
174
|
+
mock_api_server(load_json('folder_list'))
|
|
175
|
+
subject.stub(path: '/Test1')
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
it 'accepts access credentials hash' do
|
|
179
|
+
lambda do
|
|
180
|
+
subject.list!({}, client_id: 'client_id', private_key: 'private_key')
|
|
181
|
+
end.should_not raise_error(ArgumentError)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
it 'allows passing options' do
|
|
185
|
+
-> { subject.list!(page: 1, count: 1) }.should_not raise_error(ArgumentError)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
it 'returns array' do
|
|
189
|
+
subject.list!.should be_an(Array)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
it 'returns empty array if nothing is listed in directory' do
|
|
193
|
+
mock_api_server('{"result": {"entities": []}, "status": "Ok"}')
|
|
194
|
+
subject.list!.should be_empty
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it 'determines folders in response' do
|
|
198
|
+
subject.list!.detect do |entity|
|
|
199
|
+
entity.id == 1
|
|
200
|
+
end.should be_a(GroupDocs::Storage::Folder)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
it 'determines files in response' do
|
|
204
|
+
subject.list!.detect do |entity|
|
|
205
|
+
entity.id == 2
|
|
206
|
+
end.should be_a(GroupDocs::Storage::File)
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
describe '#create!' do
|
|
211
|
+
before(:each) do
|
|
212
|
+
mock_api_server(load_json('folder_create'))
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
it 'accepts access credentials hash' do
|
|
216
|
+
lambda do
|
|
217
|
+
subject.create!(client_id: 'client_id', private_key: 'private_key')
|
|
218
|
+
end.should_not raise_error(ArgumentError)
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
it 'calls create! class method and pass parameters to it' do
|
|
222
|
+
subject = described_class.new(name: 'Test1')
|
|
223
|
+
described_class.should_receive(:create!).with('/Test1', {})
|
|
224
|
+
subject.create!
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
describe '#delete!' do
|
|
229
|
+
before(:each) do
|
|
230
|
+
mock_api_server(load_json('folder_delete'))
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
it 'accepts access credentials hash' do
|
|
234
|
+
lambda do
|
|
235
|
+
subject.delete!(client_id: 'client_id', private_key: 'private_key')
|
|
236
|
+
end.should_not raise_error(ArgumentError)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
it 'determines path by name' do
|
|
240
|
+
subject.should_receive(:name).and_return('Test1')
|
|
241
|
+
subject.delete!
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
describe '#sharers!' do
|
|
246
|
+
before(:each) do
|
|
247
|
+
mock_api_server(load_json('folder_sharers_get'))
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
it 'accepts access credentials hash' do
|
|
251
|
+
lambda do
|
|
252
|
+
subject.sharers!(client_id: 'client_id', private_key: 'private_key')
|
|
253
|
+
end.should_not raise_error(ArgumentError)
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
it 'returns an array of GroupDocs::User objects' do
|
|
257
|
+
users = subject.sharers!
|
|
258
|
+
users.should be_an(Array)
|
|
259
|
+
users.each do |user|
|
|
260
|
+
user.should be_a(GroupDocs::User)
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
describe '#sharers_set!' do
|
|
266
|
+
before(:each) do
|
|
267
|
+
mock_api_server(load_json('folder_sharers_set'))
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
it 'accepts access credentials hash' do
|
|
271
|
+
lambda do
|
|
272
|
+
subject.sharers_set!(%w(test1@email.com), client_id: 'client_id', private_key: 'private_key')
|
|
273
|
+
end.should_not raise_error(ArgumentError)
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
it 'returns an array of GroupDocs::User objects' do
|
|
277
|
+
users = subject.sharers_set!(%w(test1@email.com))
|
|
278
|
+
users.should be_an(Array)
|
|
279
|
+
users.each do |user|
|
|
280
|
+
user.should be_a(GroupDocs::User)
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
it 'clears sharers if empty array is passed' do
|
|
285
|
+
subject.should_receive(:sharers_clear!)
|
|
286
|
+
subject.sharers_set!([])
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
it 'clears sharers if nil is passed' do
|
|
290
|
+
subject.should_receive(:sharers_clear!)
|
|
291
|
+
subject.sharers_set!(nil)
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
describe '#sharers_clear!' do
|
|
296
|
+
before(:each) do
|
|
297
|
+
mock_api_server(load_json('folder_sharers_remove'))
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
it 'accepts access credentials hash' do
|
|
301
|
+
lambda do
|
|
302
|
+
subject.sharers_clear!(client_id: 'client_id', private_key: 'private_key')
|
|
303
|
+
end.should_not raise_error(ArgumentError)
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
it 'clears sharers list and returns nil' do
|
|
307
|
+
subject.sharers_clear!.should be_nil
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Storage::Package do
|
|
4
|
+
|
|
5
|
+
it_behaves_like GroupDocs::Api::Entity
|
|
6
|
+
|
|
7
|
+
it { should respond_to(:name) }
|
|
8
|
+
it { should respond_to(:name=) }
|
|
9
|
+
it { should respond_to(:objects) }
|
|
10
|
+
it { should respond_to(:objects=) }
|
|
11
|
+
|
|
12
|
+
describe '#add' do
|
|
13
|
+
it 'adds objects to be packed later' do
|
|
14
|
+
subject.objects = ['object 1']
|
|
15
|
+
subject.objects.should_receive(:<<).with('object 2')
|
|
16
|
+
subject.add('object 2')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'is aliased to #<<' do
|
|
20
|
+
subject.should respond_to(:<<)
|
|
21
|
+
subject.method(:<<).should == subject.method(:add)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe '#create!' do
|
|
26
|
+
before(:each) do
|
|
27
|
+
mock_api_server(load_json('package_create'))
|
|
28
|
+
subject.objects = [stub(name: 'object 1')]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'accepts access credentials hash' do
|
|
32
|
+
lambda do
|
|
33
|
+
subject.create!(client_id: 'client_id', private_key: 'private_key')
|
|
34
|
+
end.should_not raise_error(ArgumentError)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'returns URL for package downloading' do
|
|
38
|
+
subject.create!.should be_a(String)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::Storage do
|
|
4
|
+
describe '.info!' do
|
|
5
|
+
before(:each) do
|
|
6
|
+
mock_api_server(load_json('storage_info'))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'accepts access credentials hash' do
|
|
10
|
+
lambda do
|
|
11
|
+
described_class.info!(client_id: 'client_id', private_key: 'private_key')
|
|
12
|
+
end.should_not raise_error(ArgumentError)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'returns a hash of information' do
|
|
16
|
+
described_class.info!.should be_a(Hash)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'converts total space to MB' do
|
|
20
|
+
described_class.info![:total_space].should == '1024 MB'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'converts available space to MB' do
|
|
24
|
+
described_class.info![:available_space].should == '1020 MB'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs::User 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(:guid) }
|
|
10
|
+
it { should respond_to(:guid=) }
|
|
11
|
+
it { should respond_to(:nickname) }
|
|
12
|
+
it { should respond_to(:nickname=) }
|
|
13
|
+
it { should respond_to(:first_name) }
|
|
14
|
+
it { should respond_to(:first_name=) }
|
|
15
|
+
it { should respond_to(:last_name) }
|
|
16
|
+
it { should respond_to(:last_name=) }
|
|
17
|
+
it { should respond_to(:primary_email) }
|
|
18
|
+
it { should respond_to(:primary_email=) }
|
|
19
|
+
it { should respond_to(:private_key) }
|
|
20
|
+
it { should respond_to(:private_key=) }
|
|
21
|
+
it { should respond_to(:password_salt) }
|
|
22
|
+
it { should respond_to(:password_salt=) }
|
|
23
|
+
it { should respond_to(:claimed_id) }
|
|
24
|
+
it { should respond_to(:claimed_id=) }
|
|
25
|
+
it { should respond_to(:token) }
|
|
26
|
+
it { should respond_to(:token=) }
|
|
27
|
+
it { should respond_to(:storage) }
|
|
28
|
+
it { should respond_to(:storage=) }
|
|
29
|
+
it { should respond_to(:photo) }
|
|
30
|
+
it { should respond_to(:photo=) }
|
|
31
|
+
it { should respond_to(:active) }
|
|
32
|
+
it { should respond_to(:active=) }
|
|
33
|
+
it { should respond_to(:news_enabled) }
|
|
34
|
+
it { should respond_to(:news_enabled=) }
|
|
35
|
+
it { should respond_to(:signed_up_on) }
|
|
36
|
+
it { should respond_to(:signed_up_on=) }
|
|
37
|
+
|
|
38
|
+
it 'is compatible with response JSON' do
|
|
39
|
+
subject.should respond_to(:pkey=)
|
|
40
|
+
subject.should respond_to(:pswd_salt=)
|
|
41
|
+
subject.should respond_to(:signedupOn=)
|
|
42
|
+
subject.method(:pkey=).should == subject.method(:private_key=)
|
|
43
|
+
subject.method(:pswd_salt=).should == subject.method(:password_salt=)
|
|
44
|
+
subject.method(:signedupOn=).should == subject.method(:signed_up_on=)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe '#signed_up_on' do
|
|
48
|
+
it 'returns converted to Time object Unix timestamp' do
|
|
49
|
+
subject.signed_up_on = 1330450135
|
|
50
|
+
subject.signed_up_on.should be_a(Time)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe GroupDocs do
|
|
4
|
+
|
|
5
|
+
subject { described_class }
|
|
6
|
+
let(:client_id) { '07aaaf95f8eb33a4' }
|
|
7
|
+
let(:private_key) { '5cb711b3a52ffc5d90ee8a0f79206f5a' }
|
|
8
|
+
|
|
9
|
+
describe '.configure' do
|
|
10
|
+
it { should respond_to(:configure) }
|
|
11
|
+
|
|
12
|
+
it 'calls block for self' do
|
|
13
|
+
subject.should_receive(:configure).and_yield(subject)
|
|
14
|
+
subject.configure do |api|
|
|
15
|
+
api.client_id = client_id
|
|
16
|
+
api.private_key = private_key
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'saves client ID for further access' do
|
|
21
|
+
subject.should_receive(:client_id=).with(client_id).and_return(client_id)
|
|
22
|
+
subject.configure do |api|
|
|
23
|
+
api.client_id = client_id
|
|
24
|
+
end
|
|
25
|
+
subject.client_id.should == client_id
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'saves private key for further access' do
|
|
29
|
+
subject.should_receive(:private_key=).with(private_key).and_return(private_key)
|
|
30
|
+
subject.configure do |api|
|
|
31
|
+
api.private_key = private_key
|
|
32
|
+
end
|
|
33
|
+
subject.private_key.should == private_key
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it { should respond_to(:client_id) }
|
|
38
|
+
it { should respond_to(:client_id=) }
|
|
39
|
+
it { should respond_to(:private_key) }
|
|
40
|
+
it { should respond_to(:private_key=) }
|
|
41
|
+
it { should respond_to(:api_server) }
|
|
42
|
+
it { should respond_to(:api_server=) }
|
|
43
|
+
it { should respond_to(:api_version) }
|
|
44
|
+
it { should respond_to(:api_version=) }
|
|
45
|
+
|
|
46
|
+
describe '#api_server' do
|
|
47
|
+
it 'returns default URL if it has not been overwritten' do
|
|
48
|
+
subject.api_server.should == 'https://api.groupdocs.com'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'returns custom overwritten URL' do
|
|
52
|
+
subject.api_server = 'https://dev-api.groupdocs.com'
|
|
53
|
+
subject.api_server.should == 'https://dev-api.groupdocs.com'
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|