browse-everything 0.15.1 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +61 -9
- data/.rubocop_todo.yml +2 -15
- data/.travis.yml +19 -19
- data/CONTRIBUTING.md +6 -6
- data/Gemfile +12 -8
- data/README.md +30 -0
- data/Rakefile +2 -1
- data/app/assets/javascripts/browse_everything/behavior.js.coffee +5 -0
- data/app/controllers/browse_everything_controller.rb +75 -23
- data/app/helpers/browse_everything_helper.rb +2 -8
- data/app/helpers/font_awesome_version_helper.rb +9 -8
- data/app/services/browse_everything_session.rb +10 -0
- data/app/services/browse_everything_session/provider_session.rb +42 -0
- data/app/services/browser_factory.rb +25 -0
- data/app/views/browse_everything/_files.html.erb +56 -6
- data/browse-everything.gemspec +29 -25
- data/config/routes.rb +7 -2
- data/lib/browse-everything.rb +2 -0
- data/lib/browse_everything.rb +45 -12
- data/lib/browse_everything/auth/google/credentials.rb +28 -0
- data/lib/browse_everything/auth/google/request_parameters.rb +61 -0
- data/lib/browse_everything/browser.rb +11 -4
- data/lib/browse_everything/driver/authentication_factory.rb +22 -0
- data/lib/browse_everything/driver/base.rb +72 -19
- data/lib/browse_everything/driver/box.rb +46 -17
- data/lib/browse_everything/driver/dropbox.rb +36 -10
- data/lib/browse_everything/driver/file_system.rb +14 -26
- data/lib/browse_everything/driver/google_drive.rb +187 -54
- data/lib/browse_everything/driver/s3.rb +81 -75
- data/lib/browse_everything/engine.rb +3 -2
- data/lib/browse_everything/file_entry.rb +3 -1
- data/lib/browse_everything/retriever.rb +103 -31
- data/lib/browse_everything/version.rb +3 -1
- data/lib/generators/browse_everything/assets_generator.rb +3 -2
- data/lib/generators/browse_everything/config_generator.rb +11 -9
- data/lib/generators/browse_everything/install_generator.rb +3 -2
- data/lib/generators/browse_everything/templates/browse_everything_providers.yml.example +12 -11
- data/spec/controllers/browse_everything_controller_spec.rb +80 -0
- data/spec/features/select_files_spec.rb +13 -13
- data/spec/features/test_compiling_stylesheets_spec.rb +2 -0
- data/spec/fixtures/vcr_cassettes/google_drive.yml +331 -0
- data/spec/fixtures/vcr_cassettes/retriever.yml +93 -0
- data/spec/helper/browse_everything_controller_helper_spec.rb +21 -7
- data/spec/javascripts/jasmine_spec.rb +2 -0
- data/spec/javascripts/support/jasmine_helper.rb +1 -0
- data/spec/lib/browse_everything/auth/google/credentials_spec.rb +41 -0
- data/spec/{unit → lib/browse_everything}/browse_everything_helper_spec.rb +2 -0
- data/spec/lib/browse_everything/browser_spec.rb +109 -0
- data/spec/{unit → lib/browse_everything/driver}/base_spec.rb +5 -4
- data/spec/{unit → lib/browse_everything/driver}/box_spec.rb +20 -5
- data/spec/{unit → lib/browse_everything/driver}/dropbox_spec.rb +15 -18
- data/spec/{unit → lib/browse_everything/driver}/file_system_spec.rb +32 -26
- data/spec/lib/browse_everything/driver/google_drive_spec.rb +171 -0
- data/spec/{unit → lib/browse_everything/driver}/s3_spec.rb +38 -21
- data/spec/lib/browse_everything/driver_spec.rb +38 -0
- data/spec/{unit → lib/browse_everything}/file_entry_spec.rb +4 -1
- data/spec/lib/browse_everything/retriever_spec.rb +200 -0
- data/spec/lib/browse_everything_spec.rb +67 -0
- data/spec/services/browse_everything_session/provider_session_spec.rb +50 -0
- data/spec/services/browser_factory_spec.rb +40 -0
- data/spec/spec_helper.rb +39 -18
- data/spec/support/app/controllers/file_handler_controller.rb +4 -4
- data/spec/support/app/views/file_handler/main.html.erb +1 -1
- data/spec/support/capybara.rb +17 -0
- data/spec/support/rake.rb +3 -1
- data/spec/support/wait_for_ajax.rb +14 -0
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +10 -4
- data/spec/views/browse_everything/{_file.html.erb_spec.rb → _files.html.erb_spec.rb} +24 -18
- data/tasks/ci.rake +2 -0
- metadata +159 -107
- data/app/views/browse_everything/_file.html.erb +0 -52
- data/app/views/browse_everything/resolve.html.erb +0 -1
- data/spec/unit/browser_spec.rb +0 -76
- data/spec/unit/retriever_spec.rb +0 -109
@@ -0,0 +1,331 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.googleapis.com/oauth2/v4/token
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: grant_type=authorization_code&code=code&redirect_uri=uri&client_id=id.apps.googleusercontent.com&client_secret=SECRET
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.13.1
|
12
|
+
Content-Type:
|
13
|
+
- application/x-www-form-urlencoded
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Cache-Control:
|
24
|
+
- no-cache, no-store, max-age=0, must-revalidate
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
27
|
+
Expires:
|
28
|
+
- Mon, 01 Jan 1990 00:00:00 GMT
|
29
|
+
Date:
|
30
|
+
- Mon, 30 Oct 2017 13:55:49 GMT
|
31
|
+
Vary:
|
32
|
+
- Origin
|
33
|
+
- X-Origin
|
34
|
+
Content-Type:
|
35
|
+
- application/json; charset=UTF-8
|
36
|
+
X-Content-Type-Options:
|
37
|
+
- nosniff
|
38
|
+
X-Frame-Options:
|
39
|
+
- SAMEORIGIN
|
40
|
+
X-Xss-Protection:
|
41
|
+
- 1; mode=block
|
42
|
+
Server:
|
43
|
+
- GSE
|
44
|
+
Alt-Svc:
|
45
|
+
- quic=":443"; ma=2592000; v="41,39,38,37,35"
|
46
|
+
Transfer-Encoding:
|
47
|
+
- chunked
|
48
|
+
body:
|
49
|
+
encoding: ASCII-8BIT
|
50
|
+
string: |
|
51
|
+
{
|
52
|
+
"access_token": "access-token",
|
53
|
+
"token_type": "Bearer",
|
54
|
+
"expires_in": 3600,
|
55
|
+
"refresh_token": "refresh-token"
|
56
|
+
}
|
57
|
+
http_version:
|
58
|
+
recorded_at: Mon, 30 Oct 2017 13:55:49 GMT
|
59
|
+
- request:
|
60
|
+
method: get
|
61
|
+
uri: https://www.googleapis.com/drive/v3/files?fields=nextPageToken,files(name,id,mimeType,size,modifiedTime,parents,webContentLink)&orderBy=folder,modifiedTime%20desc,name&pageSize=1000
|
62
|
+
body:
|
63
|
+
encoding: UTF-8
|
64
|
+
string: ''
|
65
|
+
headers:
|
66
|
+
User-Agent:
|
67
|
+
- |-
|
68
|
+
Samvera Application/0.0.0 google-api-ruby-client/0.15.0 Mac OS X/10.12.6
|
69
|
+
(gzip)
|
70
|
+
Accept:
|
71
|
+
- "*/*"
|
72
|
+
Accept-Encoding:
|
73
|
+
- gzip,deflate
|
74
|
+
Date:
|
75
|
+
- Mon, 30 Oct 2017 13:55:49 GMT
|
76
|
+
Authorization:
|
77
|
+
- Bearer access-token
|
78
|
+
Content-Type:
|
79
|
+
- application/x-www-form-urlencoded
|
80
|
+
response:
|
81
|
+
status:
|
82
|
+
code: 200
|
83
|
+
message: OK
|
84
|
+
headers:
|
85
|
+
Expires:
|
86
|
+
- Mon, 30 Oct 2017 13:55:50 GMT
|
87
|
+
Date:
|
88
|
+
- Mon, 30 Oct 2017 13:55:50 GMT
|
89
|
+
Cache-Control:
|
90
|
+
- private, max-age=0, must-revalidate, no-transform
|
91
|
+
Vary:
|
92
|
+
- Origin
|
93
|
+
- X-Origin
|
94
|
+
Content-Type:
|
95
|
+
- application/json; charset=UTF-8
|
96
|
+
Content-Encoding:
|
97
|
+
- gzip
|
98
|
+
X-Content-Type-Options:
|
99
|
+
- nosniff
|
100
|
+
X-Frame-Options:
|
101
|
+
- SAMEORIGIN
|
102
|
+
X-Xss-Protection:
|
103
|
+
- 1; mode=block
|
104
|
+
Server:
|
105
|
+
- GSE
|
106
|
+
Alt-Svc:
|
107
|
+
- quic=":443"; ma=2592000; v="41,39,38,37,35"
|
108
|
+
Transfer-Encoding:
|
109
|
+
- chunked
|
110
|
+
body:
|
111
|
+
encoding: UTF-8
|
112
|
+
string: |
|
113
|
+
{
|
114
|
+
"nextPageToken": "next-page-token",
|
115
|
+
"files": [
|
116
|
+
{
|
117
|
+
"id": "asset-id1",
|
118
|
+
"name": "asset-name1",
|
119
|
+
"mimeType": "application/vnd.google-apps.folder",
|
120
|
+
"parents": [
|
121
|
+
"asset-id4"
|
122
|
+
],
|
123
|
+
"modifiedTime": "2017-02-08T16:39:53.000Z"
|
124
|
+
},
|
125
|
+
{
|
126
|
+
"id": "asset-id2",
|
127
|
+
"name": "asset-name2.pdf",
|
128
|
+
"mimeType": "application/pdf",
|
129
|
+
"webContentLink": "https://drive.google.com/uc?id=id&export=download",
|
130
|
+
"modifiedTime": "2017-10-20T16:48:50.001Z",
|
131
|
+
"size": "891764"
|
132
|
+
},
|
133
|
+
{
|
134
|
+
"id": "asset-id3",
|
135
|
+
"name": "asset-name3.pdf",
|
136
|
+
"mimeType": "application/pdf",
|
137
|
+
"parents": [
|
138
|
+
"asset-id6"
|
139
|
+
],
|
140
|
+
"webContentLink": "https://drive.google.com/uc?id=id&export=download",
|
141
|
+
"modifiedTime": "2017-10-20T16:48:50.001Z",
|
142
|
+
"size": "891764"
|
143
|
+
}
|
144
|
+
]
|
145
|
+
}
|
146
|
+
http_version:
|
147
|
+
recorded_at: Mon, 30 Oct 2017 13:55:50 GMT
|
148
|
+
- request:
|
149
|
+
method: get
|
150
|
+
uri: https://www.googleapis.com/drive/v3/files?fields=nextPageToken,files(name,id,mimeType,size,modifiedTime,parents,webContentLink)&orderBy=folder,modifiedTime%20desc,name&pageSize=1000&pageToken=next-page-token
|
151
|
+
body:
|
152
|
+
encoding: UTF-8
|
153
|
+
string: ''
|
154
|
+
headers:
|
155
|
+
User-Agent:
|
156
|
+
- |-
|
157
|
+
Samvera Application/0.0.0 google-api-ruby-client/0.15.0 Mac OS X/10.12.6
|
158
|
+
(gzip)
|
159
|
+
Accept:
|
160
|
+
- "*/*"
|
161
|
+
Accept-Encoding:
|
162
|
+
- gzip,deflate
|
163
|
+
Date:
|
164
|
+
- Mon, 30 Oct 2017 13:55:49 GMT
|
165
|
+
Authorization:
|
166
|
+
- Bearer access-token
|
167
|
+
Content-Type:
|
168
|
+
- application/x-www-form-urlencoded
|
169
|
+
response:
|
170
|
+
status:
|
171
|
+
code: 200
|
172
|
+
message: OK
|
173
|
+
headers:
|
174
|
+
Expires:
|
175
|
+
- Mon, 30 Oct 2017 13:55:50 GMT
|
176
|
+
Date:
|
177
|
+
- Mon, 30 Oct 2017 13:55:50 GMT
|
178
|
+
Cache-Control:
|
179
|
+
- private, max-age=0, must-revalidate, no-transform
|
180
|
+
Vary:
|
181
|
+
- Origin
|
182
|
+
- X-Origin
|
183
|
+
Content-Type:
|
184
|
+
- application/json; charset=UTF-8
|
185
|
+
Content-Encoding:
|
186
|
+
- gzip
|
187
|
+
X-Content-Type-Options:
|
188
|
+
- nosniff
|
189
|
+
X-Frame-Options:
|
190
|
+
- SAMEORIGIN
|
191
|
+
X-Xss-Protection:
|
192
|
+
- 1; mode=block
|
193
|
+
Server:
|
194
|
+
- GSE
|
195
|
+
Alt-Svc:
|
196
|
+
- quic=":443"; ma=2592000; v="41,39,38,37,35"
|
197
|
+
Transfer-Encoding:
|
198
|
+
- chunked
|
199
|
+
body:
|
200
|
+
encoding: UTF-8
|
201
|
+
string: |
|
202
|
+
{
|
203
|
+
"files": []
|
204
|
+
}
|
205
|
+
http_version:
|
206
|
+
recorded_at: Mon, 30 Oct 2017 13:55:50 GMT
|
207
|
+
- request:
|
208
|
+
method: post
|
209
|
+
uri: https://www.googleapis.com/batch/drive/v3
|
210
|
+
body:
|
211
|
+
encoding: UTF-8
|
212
|
+
string: "--a2f3ce3d4c24a197cbba0300e98666b974a6eefc\r\nContent-Type: application/http\r\nContent-Id:
|
213
|
+
<b9edfb4e-045e-491e-8706-39513675fcc4+0>\r\nContent-Length: 239\r\nContent-Transfer-Encoding:
|
214
|
+
binary\r\n\r\nGET /drive/v3/files?fields=nextPageToken%2Cfiles%28name%2Cid%2CmimeType%2Csize%2CmodifiedTime%2Cparents%2CwebContentLink%29&orderBy=modifiedByMeTime%2CmodifiedTime%2Cfolder%20desc%2Cname&pageSize=1000
|
215
|
+
HTTP/1.1\r\nHost: www.googleapis.com\r\n\r\n\r\n--a2f3ce3d4c24a197cbba0300e98666b974a6eefc--\r\n\r\n"
|
216
|
+
headers:
|
217
|
+
User-Agent:
|
218
|
+
- |-
|
219
|
+
Samvera Application/0.0.0 google-api-ruby-client/0.18.0 Mac OS X/10.12.6
|
220
|
+
(gzip)
|
221
|
+
Accept:
|
222
|
+
- "*/*"
|
223
|
+
Accept-Encoding:
|
224
|
+
- gzip,deflate
|
225
|
+
Date:
|
226
|
+
- Mon, 18 Dec 2017 01:12:40 GMT
|
227
|
+
Content-Type:
|
228
|
+
- multipart/mixed; boundary=a2f3ce3d4c24a197cbba0300e98666b974a6eefc
|
229
|
+
Authorization:
|
230
|
+
- Bearer access-token
|
231
|
+
response:
|
232
|
+
status:
|
233
|
+
code: 200
|
234
|
+
message: OK
|
235
|
+
headers:
|
236
|
+
Vary:
|
237
|
+
- Origin
|
238
|
+
- X-Origin
|
239
|
+
Cache-Control:
|
240
|
+
- no-cache, no-store, max-age=0, must-revalidate
|
241
|
+
Pragma:
|
242
|
+
- no-cache
|
243
|
+
Expires:
|
244
|
+
- Mon, 01 Jan 1990 00:00:00 GMT
|
245
|
+
Date:
|
246
|
+
- Mon, 18 Dec 2017 01:12:43 GMT
|
247
|
+
Content-Type:
|
248
|
+
- multipart/mixed; boundary=batch_kIUSyvoB-sA_AAkZDwojjgg
|
249
|
+
Content-Encoding:
|
250
|
+
- gzip
|
251
|
+
X-Content-Type-Options:
|
252
|
+
- nosniff
|
253
|
+
X-Frame-Options:
|
254
|
+
- SAMEORIGIN
|
255
|
+
X-Xss-Protection:
|
256
|
+
- 1; mode=block
|
257
|
+
Server:
|
258
|
+
- GSE
|
259
|
+
Alt-Svc:
|
260
|
+
- hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337;
|
261
|
+
quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"
|
262
|
+
Transfer-Encoding:
|
263
|
+
- chunked
|
264
|
+
body:
|
265
|
+
encoding: ASCII-8BIT
|
266
|
+
string: !binary |-
|
267
|
+
testdata
|
268
|
+
http_version:
|
269
|
+
recorded_at: Mon, 18 Dec 2017 01:12:42 GMT
|
270
|
+
- request:
|
271
|
+
method: get
|
272
|
+
uri: https://www.googleapis.com/drive/v3/files/asset-id2?fields=id,%20name,%20size
|
273
|
+
body:
|
274
|
+
encoding: UTF-8
|
275
|
+
string: ''
|
276
|
+
headers:
|
277
|
+
User-Agent:
|
278
|
+
- |-
|
279
|
+
Samvera Application/0.0.0 google-api-ruby-client/0.15.0 Mac OS X/10.12.6
|
280
|
+
(gzip)
|
281
|
+
Accept:
|
282
|
+
- "*/*"
|
283
|
+
Accept-Encoding:
|
284
|
+
- gzip,deflate
|
285
|
+
Date:
|
286
|
+
- Mon, 30 Oct 2017 13:55:49 GMT
|
287
|
+
Authorization:
|
288
|
+
- Bearer access-token
|
289
|
+
Content-Type:
|
290
|
+
- application/x-www-form-urlencoded
|
291
|
+
response:
|
292
|
+
status:
|
293
|
+
code: 200
|
294
|
+
message: OK
|
295
|
+
headers:
|
296
|
+
Expires:
|
297
|
+
- Mon, 30 Oct 2017 18:33:52 GMT
|
298
|
+
Date:
|
299
|
+
- Mon, 30 Oct 2017 18:33:52 GMT
|
300
|
+
Cache-Control:
|
301
|
+
- private, max-age=0, must-revalidate, no-transform
|
302
|
+
Vary:
|
303
|
+
- Origin
|
304
|
+
- X-Origin
|
305
|
+
Content-Type:
|
306
|
+
- application/json; charset=UTF-8
|
307
|
+
Content-Encoding:
|
308
|
+
- gzip
|
309
|
+
X-Content-Type-Options:
|
310
|
+
- nosniff
|
311
|
+
X-Frame-Options:
|
312
|
+
- SAMEORIGIN
|
313
|
+
X-Xss-Protection:
|
314
|
+
- 1; mode=block
|
315
|
+
Server:
|
316
|
+
- GSE
|
317
|
+
Alt-Svc:
|
318
|
+
- quic=":443"; ma=2592000; v="41,39,38,37,35"
|
319
|
+
Transfer-Encoding:
|
320
|
+
- chunked
|
321
|
+
body:
|
322
|
+
encoding: UTF-8
|
323
|
+
string: |
|
324
|
+
{
|
325
|
+
"id": "asset-id2",
|
326
|
+
"name": "asset-name2.pdf",
|
327
|
+
"webContentLink": "https://drive.google.com/uc?id=id&export=download"
|
328
|
+
}
|
329
|
+
http_version:
|
330
|
+
recorded_at: Mon, 30 Oct 2017 18:33:52 GMT
|
331
|
+
recorded_with: VCR 3.0.3
|
@@ -1,5 +1,98 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://retrieve.cloud.example.com/some/dir/can_retrieve.pdf
|
6
|
+
headers:
|
7
|
+
Range: bytes=0-0
|
8
|
+
response:
|
9
|
+
status:
|
10
|
+
code: '206'
|
11
|
+
message: 'Partial Content'
|
12
|
+
headers:
|
13
|
+
Content-Length:
|
14
|
+
- 1
|
15
|
+
Content-Type:
|
16
|
+
- application/pdf
|
17
|
+
Content-Range:
|
18
|
+
- 'bytes 0-0/64134'
|
19
|
+
body:
|
20
|
+
encoding: ASCII-8BIT
|
21
|
+
string: '%'
|
22
|
+
http_version: '1.1'
|
23
|
+
recorded_at: Tue, 24 Jul 2018 10:38:42 GMT
|
24
|
+
- request:
|
25
|
+
method: get
|
26
|
+
uri: https://retrieve.cloud.example.com/some/dir/cannot_retrieve.pdf
|
27
|
+
headers:
|
28
|
+
Range: bytes=0-0
|
29
|
+
response:
|
30
|
+
status:
|
31
|
+
code: '403'
|
32
|
+
message: 'Unauthorized'
|
33
|
+
http_version: '1.1'
|
34
|
+
recorded_at: Tue, 24 Jul 2018 10:38:42 GMT
|
35
|
+
- request:
|
36
|
+
method: get
|
37
|
+
uri: https://drive.google.com/uc?export=download&id=id
|
38
|
+
headers:
|
39
|
+
Authorization:
|
40
|
+
- Bearer access-token
|
41
|
+
response:
|
42
|
+
status:
|
43
|
+
code: '200'
|
44
|
+
message: OK
|
45
|
+
headers:
|
46
|
+
Content-Length: '1234'
|
47
|
+
body:
|
48
|
+
encoding: ASCII-8BIT
|
49
|
+
string: content
|
50
|
+
http_version: '1.1'
|
51
|
+
recorded_at: Mon, 23 Jul 2018 16:00:03 GMT
|
52
|
+
- request:
|
53
|
+
method: head
|
54
|
+
uri: https://drive.google.com/uc?export=download&id=id
|
55
|
+
headers:
|
56
|
+
Authorization:
|
57
|
+
- Bearer access-token
|
58
|
+
response:
|
59
|
+
status:
|
60
|
+
code: '200'
|
61
|
+
message: OK
|
62
|
+
headers:
|
63
|
+
Content-Length: '1234'
|
64
|
+
body:
|
65
|
+
encoding: ASCII-8BIT
|
66
|
+
string: content
|
67
|
+
http_version: '1.1'
|
68
|
+
recorded_at: Mon, 23 Jul 2018 16:00:03 GMT
|
69
|
+
- request:
|
70
|
+
method: get
|
71
|
+
uri: https://retrieve.cloud.example.com/some/dir/file_error.pdf
|
72
|
+
headers:
|
73
|
+
Accept: ! '*/*'
|
74
|
+
Authorization: Bearer ya29.kQCEAHj1bwFXr2AuGQJmSGRWQXpacmmYZs4kzCiXns3d6H1ZpIDWmdM8
|
75
|
+
response:
|
76
|
+
status:
|
77
|
+
code: '403'
|
78
|
+
message: Unauthorized
|
79
|
+
headers:
|
80
|
+
Server: nginx
|
81
|
+
Date: Wed, 01 Oct 2014 14:01:16 GMT
|
82
|
+
Content-Type: application/json
|
83
|
+
Transfer-Encoding: chunked
|
84
|
+
Connection: close
|
85
|
+
pragma: no-cache
|
86
|
+
cache-control: no-cache
|
87
|
+
body:
|
88
|
+
encoding: ASCII-8BIT
|
89
|
+
string: |-
|
90
|
+
{"error":{"errors":[{"domain":"usageLimits","reason":"dailyLimitExceededUnreg",
|
91
|
+
"message":"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
|
92
|
+
"extendedHelp":"https://code.google.com/apis/console"}],"code":403,
|
93
|
+
"message":"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."}}
|
94
|
+
http_version: '1.1'
|
95
|
+
recorded_at: Mon, 23 Jul 2018 15:27:31 GMT
|
3
96
|
- request:
|
4
97
|
method: get
|
5
98
|
uri: https://retrieve.cloud.example.com/some/dir/file.pdf
|
@@ -1,19 +1,25 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path('../spec_helper', __dir__)
|
2
4
|
|
3
5
|
include BrowserConfigHelper
|
4
6
|
|
5
7
|
describe BrowseEverythingController, type: :controller do
|
6
|
-
before(:all) { stub_configuration }
|
7
|
-
after(:all) { unstub_configuration }
|
8
|
-
|
9
8
|
subject { helper_context.auth_link.scan(/state/) }
|
10
9
|
|
11
10
|
let(:helper_context) { controller.view_context }
|
12
11
|
let(:browser) { BrowseEverything::Browser.new(url_options) }
|
13
12
|
|
14
|
-
before
|
13
|
+
before do
|
14
|
+
stub_configuration
|
15
|
+
allow(controller).to receive(:provider).and_return(provider)
|
16
|
+
end
|
17
|
+
|
18
|
+
after do
|
19
|
+
unstub_configuration
|
20
|
+
end
|
15
21
|
|
16
|
-
context '
|
22
|
+
context 'when using Dropbox as a provider' do
|
17
23
|
let(:provider) { browser.providers['dropbox'] }
|
18
24
|
|
19
25
|
describe 'auth_link' do
|
@@ -21,11 +27,19 @@ describe BrowseEverythingController, type: :controller do
|
|
21
27
|
end
|
22
28
|
end
|
23
29
|
|
24
|
-
context '
|
30
|
+
context 'when using Box as a provider' do
|
25
31
|
let(:provider) { browser.providers['box'] }
|
26
32
|
|
27
33
|
describe 'auth_link' do
|
28
34
|
its(:length) { is_expected.to eq(1) }
|
29
35
|
end
|
30
36
|
end
|
37
|
+
|
38
|
+
context 'when using Google Drive as a provider' do
|
39
|
+
let(:provider) { browser.providers['google_drive'] }
|
40
|
+
|
41
|
+
describe 'auth_link' do
|
42
|
+
its(:length) { is_expected.to eq(1) }
|
43
|
+
end
|
44
|
+
end
|
31
45
|
end
|