cloud_door 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/README.md +73 -64
- data/bin/gdrive +133 -0
- data/cloud_door.gemspec +2 -3
- data/cloud_door_config.yml +5 -0
- data/lib/cloud_door/cloud_storage.rb +3 -3
- data/lib/cloud_door/dropbox.rb +13 -16
- data/lib/cloud_door/google_drive.rb +169 -0
- data/lib/cloud_door/google_drive_bridge.rb +137 -0
- data/lib/cloud_door/onedrive.rb +13 -16
- data/lib/cloud_door/token.rb +3 -2
- data/lib/cloud_door/version.rb +1 -1
- data/lib/cloud_door.rb +2 -0
- data/spec/cloud_door/console_spec.rb +64 -0
- data/spec/cloud_door/dropbox_spec.rb +13 -15
- data/spec/cloud_door/google_drive_spec.rb +648 -0
- data/spec/cloud_door/onedrive_spec.rb +16 -18
- metadata +30 -44
@@ -0,0 +1,137 @@
|
|
1
|
+
require 'google/api_client'
|
2
|
+
require 'yaml'
|
3
|
+
require 'mimetype_fu'
|
4
|
+
require 'cloud_door/cloud_storage'
|
5
|
+
|
6
|
+
module CloudDoor
|
7
|
+
class GoogleDriveBridge
|
8
|
+
def initialize(credentials)
|
9
|
+
client = Google::APIClient.new(application_name: 'cloud_door')
|
10
|
+
client.authorization = credentials
|
11
|
+
drive = client.discovered_api('drive', 'v2')
|
12
|
+
@gclient = client
|
13
|
+
@gdrive = drive
|
14
|
+
end
|
15
|
+
|
16
|
+
def request_user
|
17
|
+
result = send_request('@gdrive.about.get')
|
18
|
+
result.data.user
|
19
|
+
end
|
20
|
+
|
21
|
+
def request_root_id
|
22
|
+
result = send_request('@gdrive.about.get')
|
23
|
+
result.data.root_folder_id
|
24
|
+
end
|
25
|
+
|
26
|
+
def request_dir(file_id)
|
27
|
+
dir_files = Array.new
|
28
|
+
page_token = nil
|
29
|
+
begin
|
30
|
+
parameters = {}
|
31
|
+
parameters['q'] = "'#{file_id}' in parents"
|
32
|
+
if page_token.to_s != ''
|
33
|
+
parameters['pageToken'] = page_token
|
34
|
+
end
|
35
|
+
api_result = send_request('@gdrive.files.list', parameters: parameters)
|
36
|
+
files = api_result.data
|
37
|
+
dir_files.concat(files.items)
|
38
|
+
page_token = files.next_page_token
|
39
|
+
end while page_token.to_s != ''
|
40
|
+
dir_files
|
41
|
+
end
|
42
|
+
|
43
|
+
def request_file(file_id)
|
44
|
+
result = send_request('@gdrive.files.get', {parameters: {'fileId' => file_id}})
|
45
|
+
result.data.to_hash
|
46
|
+
end
|
47
|
+
|
48
|
+
def request_download(file_id)
|
49
|
+
result = @gclient.execute(
|
50
|
+
api_method: @gdrive.files.get,
|
51
|
+
parameters: {'fileId' => file_id}
|
52
|
+
)
|
53
|
+
file = result.data
|
54
|
+
if file.download_url
|
55
|
+
result = @gclient.execute(:uri => file.download_url)
|
56
|
+
if result.status == 200
|
57
|
+
result.body
|
58
|
+
elsif result.status == 401
|
59
|
+
raise UnauthorizedException
|
60
|
+
else
|
61
|
+
raise HttpConnectionException
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def request_upload(file_path, parent_id)
|
67
|
+
mime = File.mime_type?(File.open(file_path))
|
68
|
+
mime_type = mime[0, mime.index(';')]
|
69
|
+
file = @gdrive.files.insert.request_schema.new({
|
70
|
+
'title' => file_path
|
71
|
+
})
|
72
|
+
if parent_id
|
73
|
+
file.parents = [{'id' => parent_id}]
|
74
|
+
end
|
75
|
+
media = Google::APIClient::UploadIO.new(file_path, mime_type)
|
76
|
+
result = @gclient.execute(
|
77
|
+
:api_method => @gdrive.files.insert,
|
78
|
+
:body_object => file,
|
79
|
+
:media => media,
|
80
|
+
:parameters => {
|
81
|
+
'uploadType' => 'multipart',
|
82
|
+
'alt' => 'json'
|
83
|
+
}
|
84
|
+
)
|
85
|
+
if result.status == 200
|
86
|
+
result
|
87
|
+
elsif result.status == 401
|
88
|
+
raise UnauthorizedException
|
89
|
+
else
|
90
|
+
raise HttpConnectionException
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def request_delete(file_id)
|
95
|
+
send_request('@gdrive.files.delete', {parameters: {'fileId' => file_id}})
|
96
|
+
true
|
97
|
+
rescue => e
|
98
|
+
false
|
99
|
+
end
|
100
|
+
|
101
|
+
def request_mkdir(name, parent_id)
|
102
|
+
file = @gdrive.files.insert.request_schema.new({
|
103
|
+
'title' => name,
|
104
|
+
'mimeType' => 'application/vnd.google-apps.folder',
|
105
|
+
'parents' => [{'id' => parent_id}]
|
106
|
+
})
|
107
|
+
result = @gclient.execute(
|
108
|
+
:api_method => @gdrive.files.insert,
|
109
|
+
:body_object => file
|
110
|
+
)
|
111
|
+
if result.status == 200
|
112
|
+
true
|
113
|
+
elsif result.status == 401
|
114
|
+
raise UnauthorizedException
|
115
|
+
else
|
116
|
+
raise HttpConnectionException
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
|
122
|
+
def send_request(api_method, parameters = {})
|
123
|
+
requests = {api_method: eval(api_method)}
|
124
|
+
requests.merge!(parameters)
|
125
|
+
result = @gclient.execute(requests)
|
126
|
+
if result.status == 200
|
127
|
+
result
|
128
|
+
elsif result.status == 401
|
129
|
+
raise UnauthorizedException
|
130
|
+
else
|
131
|
+
raise HttpConnectionException
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
data/lib/cloud_door/onedrive.rb
CHANGED
@@ -28,11 +28,14 @@ module CloudDoor
|
|
28
28
|
@root_id = ROOT_ID
|
29
29
|
@storage_name = STORAGE_NAME
|
30
30
|
@session_id = session_id
|
31
|
+
@client = nil
|
31
32
|
end
|
32
33
|
|
33
34
|
def load_token
|
34
35
|
token_file = File.basename(@token.token_file)
|
35
|
-
@token
|
36
|
+
@token = Token.load_token(token_file, @config.data_path, @session_id)
|
37
|
+
@client = OneDriveApi.new(@token.access_token)
|
38
|
+
@token
|
36
39
|
end
|
37
40
|
|
38
41
|
def refresh_token
|
@@ -45,13 +48,14 @@ module CloudDoor
|
|
45
48
|
handle_exception(e)
|
46
49
|
end
|
47
50
|
|
48
|
-
|
51
|
+
def login(login_account, login_password)
|
49
52
|
@account.login_account = login_account
|
50
53
|
@account.login_password = login_password
|
51
54
|
url = login_browser
|
52
55
|
info = request_get_token(url)
|
53
56
|
raise NoDataException if info.nil?
|
54
57
|
@session_id = reset_token(info)
|
58
|
+
@client = OneDriveApi.new(@token.access_token)
|
55
59
|
items = pull_files
|
56
60
|
@file_list.delete_file
|
57
61
|
@file_list.write_file_list(items)
|
@@ -92,41 +96,34 @@ module CloudDoor
|
|
92
96
|
end
|
93
97
|
|
94
98
|
def request_user
|
95
|
-
|
96
|
-
api.request_user
|
99
|
+
@client.request_user
|
97
100
|
end
|
98
101
|
|
99
102
|
def request_dir
|
100
103
|
file_id = @parent_id || @file_id || ROOT_ID
|
101
|
-
|
102
|
-
api.request_dir(file_id)
|
104
|
+
@client.request_dir(file_id)
|
103
105
|
end
|
104
106
|
|
105
107
|
def request_file
|
106
|
-
|
107
|
-
api.request_file(@file_id)
|
108
|
+
@client.request_file(@file_id)
|
108
109
|
end
|
109
110
|
|
110
111
|
def request_download
|
111
|
-
|
112
|
-
contens = api.request_download(@file_id)
|
112
|
+
contens = @client.request_download(@file_id)
|
113
113
|
open("#{@file_name}", 'wb') { |file| file << contens }
|
114
114
|
end
|
115
115
|
|
116
116
|
def request_upload(file_path)
|
117
|
-
|
118
|
-
api.request_upload(file_path, @parent_id)
|
117
|
+
@client.request_upload(file_path, @parent_id)
|
119
118
|
end
|
120
119
|
|
121
120
|
def request_delete
|
122
|
-
|
123
|
-
api.request_delete(@file_id)
|
121
|
+
@client.request_delete(@file_id)
|
124
122
|
end
|
125
123
|
|
126
124
|
def request_mkdir
|
127
125
|
parent_id = @parent_id || ROOT_ID
|
128
|
-
|
129
|
-
api.request_mkdir(@mkdir_name, parent_id)
|
126
|
+
@client.request_mkdir(@mkdir_name, parent_id)
|
130
127
|
end
|
131
128
|
|
132
129
|
def pull_files
|
data/lib/cloud_door/token.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module CloudDoor
|
2
2
|
class Token
|
3
3
|
attr_accessor :token_file, :token_type, :expires_in, :scope, :access_token,
|
4
|
-
:refresh_token, :user_id, :token_name
|
4
|
+
:refresh_token, :user_id, :token_name, :credentials
|
5
5
|
attr_reader :data_path
|
6
6
|
|
7
7
|
TOKEN_ITEMS = [
|
@@ -10,7 +10,8 @@ module CloudDoor
|
|
10
10
|
'scope',
|
11
11
|
'access_token',
|
12
12
|
'refresh_token',
|
13
|
-
'user_id'
|
13
|
+
'user_id',
|
14
|
+
'credentials'
|
14
15
|
]
|
15
16
|
|
16
17
|
def initialize(token_name, data_path, id = nil)
|
data/lib/cloud_door/version.rb
CHANGED
data/lib/cloud_door.rb
CHANGED
@@ -6,6 +6,8 @@ require 'cloud_door/console'
|
|
6
6
|
require 'cloud_door/dropbox'
|
7
7
|
require 'cloud_door/exceptions'
|
8
8
|
require 'cloud_door/file_list'
|
9
|
+
require 'cloud_door/google_drive'
|
10
|
+
require 'cloud_door/google_drive_bridge'
|
9
11
|
require 'cloud_door/onedrive'
|
10
12
|
require 'cloud_door/onedrive_api'
|
11
13
|
require 'cloud_door/token'
|
@@ -191,6 +191,11 @@ EOF
|
|
191
191
|
describe 'ls' do
|
192
192
|
subject { console.ls(file_name) }
|
193
193
|
let(:console) { create_console }
|
194
|
+
let(:token) { console.drive.storage.token }
|
195
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
196
|
+
before(:each) do
|
197
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
198
|
+
end
|
194
199
|
context 'have files' do
|
195
200
|
let(:file_name) { nil }
|
196
201
|
let(:posit) do
|
@@ -259,11 +264,19 @@ EOF
|
|
259
264
|
expect($terminal.output.string).to include(expects)
|
260
265
|
end
|
261
266
|
end
|
267
|
+
after(:each) do
|
268
|
+
File.delete(token_file) if File.exist?(token_file)
|
269
|
+
end
|
262
270
|
end
|
263
271
|
|
264
272
|
describe 'cd' do
|
265
273
|
subject { console.cd(file_name) }
|
266
274
|
let(:console) { create_console }
|
275
|
+
let(:token) { console.drive.storage.token }
|
276
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
277
|
+
before(:each) do
|
278
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
279
|
+
end
|
267
280
|
context 'file_name not input' do
|
268
281
|
let(:file_name) { nil }
|
269
282
|
it do
|
@@ -330,11 +343,19 @@ EOF
|
|
330
343
|
expect($terminal.output.string).to include(expects)
|
331
344
|
end
|
332
345
|
end
|
346
|
+
after(:each) do
|
347
|
+
File.delete(token_file) if File.exist?(token_file)
|
348
|
+
end
|
333
349
|
end
|
334
350
|
|
335
351
|
describe 'info' do
|
336
352
|
subject { console.info(file_name) }
|
337
353
|
let(:console) { create_console }
|
354
|
+
let(:token) { console.drive.storage.token }
|
355
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
356
|
+
before(:each) do
|
357
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
358
|
+
end
|
338
359
|
context 'file_name not input' do
|
339
360
|
let(:file_name) { nil }
|
340
361
|
it do
|
@@ -377,12 +398,20 @@ EOF
|
|
377
398
|
expect($terminal.output.string).to include(expects)
|
378
399
|
end
|
379
400
|
end
|
401
|
+
after(:each) do
|
402
|
+
File.delete(token_file) if File.exist?(token_file)
|
403
|
+
end
|
380
404
|
end
|
381
405
|
|
382
406
|
describe 'pwd' do
|
383
407
|
subject { console.pwd }
|
384
408
|
let(:console) { create_console }
|
385
409
|
let(:posit) { '/top' }
|
410
|
+
let(:token) { console.drive.storage.token }
|
411
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
412
|
+
before(:each) do
|
413
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
414
|
+
end
|
386
415
|
it do
|
387
416
|
expect_any_instance_of(CloudDoor::OneDrive).to receive(:show_current_directory)
|
388
417
|
.and_return(posit)
|
@@ -390,11 +419,19 @@ EOF
|
|
390
419
|
expects = '/top'
|
391
420
|
expect($terminal.output.string).to include(expects)
|
392
421
|
end
|
422
|
+
after(:each) do
|
423
|
+
File.delete(token_file) if File.exist?(token_file)
|
424
|
+
end
|
393
425
|
end
|
394
426
|
|
395
427
|
describe 'download' do
|
396
428
|
subject { console.download(file_name) }
|
397
429
|
let(:console) { create_console }
|
430
|
+
let(:token) { console.drive.storage.token }
|
431
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
432
|
+
before(:each) do
|
433
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
434
|
+
end
|
398
435
|
context 'file_name not input' do
|
399
436
|
let(:file_name) { nil }
|
400
437
|
it do
|
@@ -447,11 +484,19 @@ EOF
|
|
447
484
|
expect($terminal.output.string).to include(expects)
|
448
485
|
end
|
449
486
|
end
|
487
|
+
after(:each) do
|
488
|
+
File.delete(token_file) if File.exist?(token_file)
|
489
|
+
end
|
450
490
|
end
|
451
491
|
|
452
492
|
describe 'upload' do
|
453
493
|
subject { console.upload(file_name) }
|
454
494
|
let(:console) { create_console }
|
495
|
+
let(:token) { console.drive.storage.token }
|
496
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
497
|
+
before(:each) do
|
498
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
499
|
+
end
|
455
500
|
context 'file_name not input' do
|
456
501
|
let(:file_name) { nil }
|
457
502
|
it do
|
@@ -534,11 +579,19 @@ EOF
|
|
534
579
|
expect($terminal.output.string).to include(expects)
|
535
580
|
end
|
536
581
|
end
|
582
|
+
after(:each) do
|
583
|
+
File.delete(token_file) if File.exist?(token_file)
|
584
|
+
end
|
537
585
|
end
|
538
586
|
|
539
587
|
describe 'rm' do
|
540
588
|
subject { console.rm(file_name) }
|
541
589
|
let(:console) { create_console }
|
590
|
+
let(:token) { console.drive.storage.token }
|
591
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
592
|
+
before(:each) do
|
593
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
594
|
+
end
|
542
595
|
context 'file_name not input' do
|
543
596
|
let(:file_name) { nil }
|
544
597
|
it do
|
@@ -591,11 +644,19 @@ EOF
|
|
591
644
|
expect($terminal.output.string).to include(expects)
|
592
645
|
end
|
593
646
|
end
|
647
|
+
after(:each) do
|
648
|
+
File.delete(token_file) if File.exist?(token_file)
|
649
|
+
end
|
594
650
|
end
|
595
651
|
|
596
652
|
describe 'mkdir' do
|
597
653
|
subject { console.mkdir(mkdir_name) }
|
598
654
|
let(:console) { create_console }
|
655
|
+
let(:token) { console.drive.storage.token }
|
656
|
+
let(:token_file) { console.drive.storage.token.token_file }
|
657
|
+
before(:each) do
|
658
|
+
open(token_file, 'wb') { |file| file << Marshal.dump(token) }
|
659
|
+
end
|
599
660
|
context 'mkdir_name not input' do
|
600
661
|
let(:mkdir_name) { nil }
|
601
662
|
it do
|
@@ -629,5 +690,8 @@ EOF
|
|
629
690
|
expect($terminal.output.string).to include(expects)
|
630
691
|
end
|
631
692
|
end
|
693
|
+
after(:each) do
|
694
|
+
File.delete(token_file) if File.exist?(token_file)
|
695
|
+
end
|
632
696
|
end
|
633
697
|
end
|
@@ -1,6 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Dropbox' do
|
4
|
+
let(:storage) do
|
5
|
+
storage = create_storage(CloudDoor::Dropbox)
|
6
|
+
storage.load_token
|
7
|
+
storage
|
8
|
+
end
|
9
|
+
|
4
10
|
describe 'reset_token' do
|
5
11
|
subject { storage.reset_token(token_value) }
|
6
12
|
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
@@ -23,7 +29,6 @@ describe 'Dropbox' do
|
|
23
29
|
|
24
30
|
describe 'show_user' do
|
25
31
|
subject { storage.show_user }
|
26
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
27
32
|
context 'success' do
|
28
33
|
let(:posit) { {'name' => 'dropbox'} }
|
29
34
|
it do
|
@@ -36,7 +41,6 @@ describe 'Dropbox' do
|
|
36
41
|
|
37
42
|
describe 'show_files' do
|
38
43
|
subject { storage.show_files(file_name) }
|
39
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
40
44
|
let(:list_file) { storage.file_list.list_file }
|
41
45
|
context 'success' do
|
42
46
|
let(:file_name) { nil }
|
@@ -90,7 +94,6 @@ describe 'Dropbox' do
|
|
90
94
|
|
91
95
|
describe 'change_directory' do
|
92
96
|
subject { storage.change_directory(file_name) }
|
93
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
94
97
|
let(:list_file) { storage.file_list.list_file }
|
95
98
|
context 'success' do
|
96
99
|
let(:file_name) { 'folder1' }
|
@@ -153,13 +156,11 @@ describe 'Dropbox' do
|
|
153
156
|
|
154
157
|
describe 'show_current_directory' do
|
155
158
|
subject { storage.show_current_directory }
|
156
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
157
159
|
it { is_expected.to eq('/top') }
|
158
160
|
end
|
159
161
|
|
160
162
|
describe 'show_property' do
|
161
163
|
subject { storage.show_property(file_name) }
|
162
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
163
164
|
let(:list_file) { storage.file_list.list_file }
|
164
165
|
before(:each) do
|
165
166
|
list = [{'items' => {'file1' => {'id' => '/file1', 'type' => 'file'}}}]
|
@@ -290,7 +291,6 @@ describe 'Dropbox' do
|
|
290
291
|
|
291
292
|
describe 'download_file' do
|
292
293
|
subject { storage.download_file(file_name) }
|
293
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
294
294
|
let(:list_file) { storage.file_list.list_file }
|
295
295
|
context 'success' do
|
296
296
|
let(:file_name) { 'file1' }
|
@@ -334,7 +334,6 @@ describe 'Dropbox' do
|
|
334
334
|
|
335
335
|
describe 'upload_file' do
|
336
336
|
subject { storage.upload_file(file_name) }
|
337
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
338
337
|
let(:list_file) { storage.file_list.list_file }
|
339
338
|
let(:up_file) { 'upload' }
|
340
339
|
context 'success' do
|
@@ -373,7 +372,6 @@ describe 'Dropbox' do
|
|
373
372
|
|
374
373
|
describe 'delete_file' do
|
375
374
|
subject { storage.delete_file(file_name) }
|
376
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
377
375
|
let(:list_file) { storage.file_list.list_file }
|
378
376
|
context 'success' do
|
379
377
|
let(:file_name) { 'file1' }
|
@@ -412,7 +410,6 @@ describe 'Dropbox' do
|
|
412
410
|
|
413
411
|
describe 'make_directory' do
|
414
412
|
subject { storage.make_directory(mkdir_name) }
|
415
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
416
413
|
let(:list_file) { storage.file_list.list_file }
|
417
414
|
context 'success' do
|
418
415
|
let(:mkdir_name) { 'folder1' }
|
@@ -443,7 +440,6 @@ describe 'Dropbox' do
|
|
443
440
|
|
444
441
|
describe 'assign_upload_file_name' do
|
445
442
|
subject { storage.assign_upload_file_name(file_name) }
|
446
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
447
443
|
context 'file' do
|
448
444
|
let(:file_name) { 'testfile' }
|
449
445
|
it { is_expected.to eq file_name }
|
@@ -462,7 +458,6 @@ describe 'Dropbox' do
|
|
462
458
|
|
463
459
|
describe 'file_exist?' do
|
464
460
|
subject { storage.file_exist?(file_name) }
|
465
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
466
461
|
let(:list_file) { storage.file_list.list_file }
|
467
462
|
before(:each) do
|
468
463
|
list = [{'items' => {'file1' => {'id' => '/file1', 'type' => 'file'}}}]
|
@@ -502,7 +497,6 @@ describe 'Dropbox' do
|
|
502
497
|
|
503
498
|
describe 'has_file?' do
|
504
499
|
subject { storage.has_file?(file_name) }
|
505
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
506
500
|
let(:list_file) { storage.file_list.list_file }
|
507
501
|
before(:each) do
|
508
502
|
file1 = {'id' => '/file1', 'type' => 'file'}
|
@@ -515,7 +509,12 @@ describe 'Dropbox' do
|
|
515
509
|
context 'return true' do
|
516
510
|
context 'count > 0' do
|
517
511
|
let(:file_name) { 'folder1' }
|
518
|
-
let(:posit)
|
512
|
+
let(:posit) do
|
513
|
+
{'contents' => [
|
514
|
+
{'path' => '/file1', 'name' => 'file1', 'is_dir' => false},
|
515
|
+
{'path' => '/folder1', 'name' => 'folder1', 'is_dir' => true},
|
516
|
+
]}
|
517
|
+
end
|
519
518
|
before(:each) do
|
520
519
|
storage.stub(:file_exist?)
|
521
520
|
.with(file_name)
|
@@ -536,7 +535,7 @@ describe 'Dropbox' do
|
|
536
535
|
end
|
537
536
|
context 'count == 0' do
|
538
537
|
let(:file_name) { 'folder1' }
|
539
|
-
let(:posit) { {'
|
538
|
+
let(:posit) { {'contents' => []} }
|
540
539
|
before(:each) do
|
541
540
|
storage.stub(:file_exist?)
|
542
541
|
.with(file_name)
|
@@ -574,7 +573,6 @@ describe 'Dropbox' do
|
|
574
573
|
|
575
574
|
describe 'file?' do
|
576
575
|
subject { storage.file?(file_name) }
|
577
|
-
let(:storage) { create_storage(CloudDoor::Dropbox) }
|
578
576
|
let(:list_file) { storage.file_list.list_file }
|
579
577
|
let(:access_token) { storage.token.access_token }
|
580
578
|
before(:each) do
|