cloudapp 0.0.14 → 0.0.15
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/Gemfile.lock +2 -2
- data/bin/cloudapp +16 -23
- data/cloudapp.gemspec +4 -3
- data/lib/cloudapp/drop_service.rb +30 -11
- data/lib/cloudapp.rb +1 -1
- data/spec/cassettes/DropService/create_bookmark.yml +29 -87
- data/spec/cassettes/DropService/create_bookmark_with_bad_credentials.yml +8 -16
- data/spec/cassettes/DropService/create_bookmark_with_name.yml +25 -30
- data/spec/cassettes/DropService/create_private_bookmark.yml +24 -38
- data/spec/cassettes/DropService/create_public_bookmark.yml +25 -41
- data/spec/cassettes/DropService/list_drops.yml +18 -24
- data/spec/cassettes/DropService/list_drops_with_bad_credentials.yml +8 -16
- data/spec/cassettes/DropService/list_drops_with_limit.yml +17 -23
- data/spec/cassettes/DropService/list_trash.yml +20 -26
- data/spec/cassettes/DropService/list_trash_with_bad_credentials.yml +10 -19
- data/spec/cassettes/DropService/retrieve_token.yml +42 -0
- data/spec/cassettes/DropService/retrieve_token_with_bad_credentials.yml +43 -0
- data/spec/cassettes/DropService/upload_file.yml +67 -72
- data/spec/cassettes/DropService/upload_public_file.yml +47 -66
- data/spec/cloudapp/drop_service_spec.rb +78 -72
- metadata +26 -25
- data/lib/cloudapp/digestable_typhoeus.rb +0 -17
@@ -2,50 +2,37 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://
|
5
|
+
uri: http://my.cl.ly/
|
6
6
|
body: ''
|
7
7
|
headers:
|
8
|
+
Authorization:
|
9
|
+
- Token token="8762f6679f8d001016b2"
|
8
10
|
Accept:
|
9
11
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
10
12
|
text/plain
|
11
13
|
response:
|
12
14
|
status:
|
13
15
|
code: 200
|
14
|
-
message:
|
16
|
+
message: OK
|
15
17
|
headers:
|
16
18
|
Cache-Control:
|
17
19
|
- max-age=0, private, must-revalidate
|
18
|
-
- no-cache
|
19
20
|
Content-Type:
|
20
21
|
- application/json; charset=utf-8
|
21
|
-
|
22
|
+
Etag:
|
23
|
+
- ! '"6df38c11329d1bc827b7e2c1282b89e6"'
|
24
|
+
Last-Modified:
|
25
|
+
- Tue, 14 Feb 2012 14:41:31 GMT
|
22
26
|
Server:
|
23
|
-
- thin 1.
|
24
|
-
- thin 1.2.11 codename Bat-Shit Crazy
|
25
|
-
Www-Authenticate:
|
26
|
-
- Digest realm="Application", qop="auth", algorithm=MD5, nonce="MTMyODg5NTMwODo4MzgwNWFiMjQ1ZmQ4ZDcyZmFjMTc2MzJhZWQ4MWY1ZQ==",
|
27
|
-
opaque="9eb56ccb2e8b017ae42bdb4739690863"
|
27
|
+
- thin 1.3.1 codename Triple Espresso
|
28
28
|
X-Runtime:
|
29
|
-
- '0.
|
30
|
-
- '0.104270'
|
29
|
+
- '0.190430'
|
31
30
|
X-Ua-Compatible:
|
32
31
|
- IE=Edge,chrome=1
|
33
|
-
- IE=Edge,chrome=1
|
34
32
|
Transfer-Encoding:
|
35
33
|
- chunked
|
36
|
-
- chunked
|
37
34
|
Connection:
|
38
35
|
- keep-alive
|
39
|
-
- keep-alive
|
40
|
-
Etag:
|
41
|
-
- ! '"6170dab5c529d7a45d28b2195bf2c08c"'
|
42
|
-
Last-Modified:
|
43
|
-
- Fri, 10 Feb 2012 15:40:13 GMT
|
44
|
-
Set-Cookie:
|
45
|
-
- _engine_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlOWQzYTQ1YWI4MzFhMzMzZDZlYTI1Njg5M2MxOWRlMzlJIhV1c2VyX2NyZWRlbnRpYWxzBjsARkkiAYAxYTM5Mjg4MzhlZDcwY2UyOGVkYWRkOGE1MDU2NWU1MzFlNzlhOTg4ODQxZmY5NTkxMjAzNWNhYTU1ZmIxZTZhODliMmMzN2VlYzkzMzFmOWE2ZDRjN2Y1ZDM4ZDIwNGE5NjM1ZTI0YTAxNzM1NDNiYThkNDlhNDkxY2M5NDM3MAY7AFRJIhh1c2VyX2NyZWRlbnRpYWxzX2lkBjsARmkDp4EB--c2478de2d193b3f3e41415765a51f8a0fd574e60;
|
46
|
-
path=/; HttpOnly
|
47
|
-
- user_credentials=1a3928838ed70ce28edadd8a50565e531e79a988841ff95912035caa55fb1e6a89b2c37eec9331f9a6d4c7f5d38d204a9635e24a0173543ba8d49a491cc94370%3A%3A98727;
|
48
|
-
path=/; expires=Thu, 10-May-2012 17:35:08 GMT
|
49
36
|
body: ! '[{"created_at":"2012-01-12T20:49:23Z","deleted_at":null,"id":13950097,"item_type":"image","name":"favicon.ico","private":true,"redirect_url":null,"remote_url":"http://f.cl.ly/items/0p2t030e0a1N091o2t3o/favicon.ico","source":"Mozilla/5.0
|
50
37
|
(Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75
|
51
38
|
Safari/535.7","updated_at":"2012-02-07T15:34:17Z","view_counter":3,"href":"http://my.cl.ly/items/13950097","url":"http://cl.ly/0P281s1u1J1p47241B3o","content_url":"http://cl.ly/0P281s1u1J1p47241B3o/favicon.ico","icon":"http://assets.my.cld.me/images/item-types/image.png","thumbnail_url":"http://thumbs.cl.ly/0P281s1u1J1p47241B3o","subscribed":false,"download_url":"http://api.cld.me/0P281s1u1J1p47241B3o/download/favicon.ico"},{"created_at":"2012-01-12T20:49:13Z","deleted_at":null,"id":13950087,"item_type":"image","name":"\u00f8\u00e6\u00d8\u00fc\u00f6\u00e4\u00df!?&+-.jpeg","private":true,"redirect_url":null,"remote_url":"http://f.cl.ly/items/0p2t030e0a1N091o2t3o/%C3%B8%C3%A6%C3%98%C3%BC%C3%B6%C3%A4%C3%9F!%3F&%2B-.jpeg","source":"Mozilla/5.0
|
@@ -78,12 +65,14 @@ http_interactions:
|
|
78
65
|
29","private":true,"redirect_url":"http://getcloudapp.com","remote_url":null,"source":null,"updated_at":"2012-01-12T20:39:03Z","view_counter":0,"href":"http://my.cl.ly/items/13949565","url":"http://cl.ly/3B1V3H0c0c3s3O2u1Q0c","content_url":"http://cl.ly/3B1V3H0c0c3s3O2u1Q0c","icon":"http://assets.my.cld.me/images/item-types/bookmark.png","subscribed":false},{"created_at":"2012-01-12T20:39:03Z","deleted_at":null,"id":13949564,"item_type":"bookmark","name":"Link
|
79
66
|
28","private":true,"redirect_url":"http://getcloudapp.com","remote_url":null,"source":null,"updated_at":"2012-01-12T20:39:03Z","view_counter":0,"href":"http://my.cl.ly/items/13949564","url":"http://cl.ly/1w2e1K3j0T14193P2y1j","content_url":"http://cl.ly/1w2e1K3j0T14193P2y1j","icon":"http://assets.my.cld.me/images/item-types/bookmark.png","subscribed":false}]'
|
80
67
|
http_version:
|
81
|
-
recorded_at:
|
68
|
+
recorded_at: Tue, 14 Feb 2012 14:41:41 GMT
|
82
69
|
- request:
|
83
70
|
method: get
|
84
|
-
uri: http://
|
71
|
+
uri: http://my.cl.ly/items?api_version=1.2
|
85
72
|
body: ''
|
86
73
|
headers:
|
74
|
+
Authorization:
|
75
|
+
- Token token="8762f6679f8d001016b2"
|
87
76
|
Accept:
|
88
77
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
89
78
|
text/plain
|
@@ -97,18 +86,13 @@ http_interactions:
|
|
97
86
|
Content-Type:
|
98
87
|
- application/json; charset=utf-8
|
99
88
|
Etag:
|
100
|
-
- ! '"
|
89
|
+
- ! '"6df38c11329d1bc827b7e2c1282b89e6"'
|
101
90
|
Last-Modified:
|
102
|
-
-
|
91
|
+
- Tue, 14 Feb 2012 14:41:31 GMT
|
103
92
|
Server:
|
104
|
-
- thin 1.
|
105
|
-
Set-Cookie:
|
106
|
-
- _engine_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlOTQwYzk0NWU1MzdkODZhMDI1MzYzZmI0ZmNlMzBhYTVJIhV1c2VyX2NyZWRlbnRpYWxzBjsARkkiAYAxYTM5Mjg4MzhlZDcwY2UyOGVkYWRkOGE1MDU2NWU1MzFlNzlhOTg4ODQxZmY5NTkxMjAzNWNhYTU1ZmIxZTZhODliMmMzN2VlYzkzMzFmOWE2ZDRjN2Y1ZDM4ZDIwNGE5NjM1ZTI0YTAxNzM1NDNiYThkNDlhNDkxY2M5NDM3MAY7AFRJIhh1c2VyX2NyZWRlbnRpYWxzX2lkBjsARmkDp4EB--e76495da3635dc32e11fd0d18dfd1f761b695957;
|
107
|
-
path=/; HttpOnly
|
108
|
-
- user_credentials=1a3928838ed70ce28edadd8a50565e531e79a988841ff95912035caa55fb1e6a89b2c37eec9331f9a6d4c7f5d38d204a9635e24a0173543ba8d49a491cc94370%3A%3A98727;
|
109
|
-
path=/; expires=Thu, 10-May-2012 17:35:08 GMT
|
93
|
+
- thin 1.3.1 codename Triple Espresso
|
110
94
|
X-Runtime:
|
111
|
-
- '0.
|
95
|
+
- '0.107927'
|
112
96
|
X-Ua-Compatible:
|
113
97
|
- IE=Edge,chrome=1
|
114
98
|
Transfer-Encoding:
|
@@ -147,12 +131,14 @@ http_interactions:
|
|
147
131
|
29","private":true,"redirect_url":"http://getcloudapp.com","remote_url":null,"source":null,"updated_at":"2012-01-12T20:39:03Z","view_counter":0,"href":"http://my.cl.ly/items/13949565","url":"http://cl.ly/3B1V3H0c0c3s3O2u1Q0c","content_url":"http://cl.ly/3B1V3H0c0c3s3O2u1Q0c","icon":"http://assets.my.cld.me/images/item-types/bookmark.png","subscribed":false},{"created_at":"2012-01-12T20:39:03Z","deleted_at":null,"id":13949564,"item_type":"bookmark","name":"Link
|
148
132
|
28","private":true,"redirect_url":"http://getcloudapp.com","remote_url":null,"source":null,"updated_at":"2012-01-12T20:39:03Z","view_counter":0,"href":"http://my.cl.ly/items/13949564","url":"http://cl.ly/1w2e1K3j0T14193P2y1j","content_url":"http://cl.ly/1w2e1K3j0T14193P2y1j","icon":"http://assets.my.cld.me/images/item-types/bookmark.png","subscribed":false}],"links":{"self":"http://my.cl.ly/items?api_version=1.2&page=1&per_page=20","next":"http://my.cl.ly/items?api_version=1.2&page=2&per_page=20"}}'
|
149
133
|
http_version:
|
150
|
-
recorded_at:
|
134
|
+
recorded_at: Tue, 14 Feb 2012 14:41:41 GMT
|
151
135
|
- request:
|
152
136
|
method: get
|
153
|
-
uri: http://
|
137
|
+
uri: http://my.cl.ly/items/new?item%5Bprivate%5D=false
|
154
138
|
body: ''
|
155
139
|
headers:
|
140
|
+
Authorization:
|
141
|
+
- Token token="8762f6679f8d001016b2"
|
156
142
|
Accept:
|
157
143
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
158
144
|
text/plain
|
@@ -166,27 +152,22 @@ http_interactions:
|
|
166
152
|
Content-Type:
|
167
153
|
- application/json; charset=utf-8
|
168
154
|
Etag:
|
169
|
-
- ! '"
|
155
|
+
- ! '"b9e6bd0dd31c2b0a7d54cf973ea7e376"'
|
170
156
|
Link:
|
171
157
|
- <http://store.getcloudapp.com/cart?email=arthur%40dent.com>; rel="payment"
|
172
158
|
Server:
|
173
|
-
- thin 1.
|
174
|
-
Set-Cookie:
|
175
|
-
- _engine_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRiIlZWQ4OWI0MTYxMDA1M2Q3ZGY1MmUzYjBlMGYzMmRiN2RJIhV1c2VyX2NyZWRlbnRpYWxzBjsARkkiAYAxYTM5Mjg4MzhlZDcwY2UyOGVkYWRkOGE1MDU2NWU1MzFlNzlhOTg4ODQxZmY5NTkxMjAzNWNhYTU1ZmIxZTZhODliMmMzN2VlYzkzMzFmOWE2ZDRjN2Y1ZDM4ZDIwNGE5NjM1ZTI0YTAxNzM1NDNiYThkNDlhNDkxY2M5NDM3MAY7AFRJIhh1c2VyX2NyZWRlbnRpYWxzX2lkBjsARmkDp4EB--3fef9dd45777f5a50ff181f32083f048c9bec87d;
|
176
|
-
path=/; HttpOnly
|
177
|
-
- user_credentials=1a3928838ed70ce28edadd8a50565e531e79a988841ff95912035caa55fb1e6a89b2c37eec9331f9a6d4c7f5d38d204a9635e24a0173543ba8d49a491cc94370%3A%3A98727;
|
178
|
-
path=/; expires=Thu, 10-May-2012 17:35:09 GMT
|
159
|
+
- thin 1.3.1 codename Triple Espresso
|
179
160
|
X-Runtime:
|
180
|
-
- '0.
|
161
|
+
- '0.143324'
|
181
162
|
X-Ua-Compatible:
|
182
163
|
- IE=Edge,chrome=1
|
183
164
|
Transfer-Encoding:
|
184
165
|
- chunked
|
185
166
|
Connection:
|
186
167
|
- keep-alive
|
187
|
-
body: ! '{"url":"http://f.cl.ly","max_upload_size":26214400,"uploads_remaining":10,"params":{"AWSAccessKeyId":"AKIAIDPUZISHSBEOFS6Q","acl":"public-read","key":"items/
|
168
|
+
body: ! '{"url":"http://f.cl.ly","max_upload_size":26214400,"uploads_remaining":10,"params":{"AWSAccessKeyId":"AKIAIDPUZISHSBEOFS6Q","acl":"public-read","key":"items/212h0C233L2p3329162a/${filename}","success_action_redirect":"http://my.cl.ly/items/s3?item%5Bprivate%5D=false","policy":"eyJleHBpcmF0aW9uIjoiMjAxMi0wMi0xNFQxNDo1Njo0MVoiLCJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJmLmNsLmx5In0seyJhY2wiOiJwdWJsaWMtcmVhZCJ9LHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiJodHRwOi8vbXkuY2wubHkvaXRlbXMvczM/aXRlbSU1QnByaXZhdGUlNUQ9ZmFsc2UifSxbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwwLDI2MjE0NDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsIml0ZW1zLzIxMmgwQzIzM0wycDMzMjkxNjJhLyJdXX0=","signature":"62GDpNzTsRvWXN1M1Nnr+LKzOJs="}}'
|
188
169
|
http_version:
|
189
|
-
recorded_at:
|
170
|
+
recorded_at: Tue, 14 Feb 2012 14:41:41 GMT
|
190
171
|
- request:
|
191
172
|
method: post
|
192
173
|
uri: http://f.cl.ly/
|
@@ -197,23 +178,23 @@ http_interactions:
|
|
197
178
|
cnRQb3N0DQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9
|
198
179
|
ImFjbCINCg0KcHVibGljLXJlYWQNCi0tLS0tLS0tLS0tLS1SdWJ5TXVsdGlw
|
199
180
|
YXJ0UG9zdA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1l
|
200
|
-
|
181
|
+
PSJrZXkiDQoNCml0ZW1zLzIxMmgwQzIzM0wycDMzMjkxNjJhLyR7ZmlsZW5h
|
201
182
|
bWV9DQotLS0tLS0tLS0tLS0tUnVieU11bHRpcGFydFBvc3QNCkNvbnRlbnQt
|
202
183
|
RGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0ic3VjY2Vzc19hY3Rpb25f
|
203
184
|
cmVkaXJlY3QiDQoNCmh0dHA6Ly9teS5jbC5seS9pdGVtcy9zMz9pdGVtJTVC
|
204
185
|
cHJpdmF0ZSU1RD1mYWxzZQ0KLS0tLS0tLS0tLS0tLVJ1YnlNdWx0aXBhcnRQ
|
205
186
|
b3N0DQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9InBv
|
206
|
-
|
207
|
-
|
187
|
+
bGljeSINCg0KZXlKbGVIQnBjbUYwYVc5dUlqb2lNakF4TWkwd01pMHhORlF4
|
188
|
+
TkRvMU5qbzBNVm9pTENKamIyNWthWFJwYjI1eklqcGJleUppZFdOclpYUWlP
|
208
189
|
aUptTG1Oc0xteDVJbjBzZXlKaFkyd2lPaUp3ZFdKc2FXTXRjbVZoWkNKOUxI
|
209
190
|
c2ljM1ZqWTJWemMxOWhZM1JwYjI1ZmNtVmthWEpsWTNRaU9pSm9kSFJ3T2k4
|
210
191
|
dmJYa3VZMnd1YkhrdmFYUmxiWE12Y3pNL2FYUmxiU1UxUW5CeWFYWmhkR1Vs
|
211
192
|
TlVROVptRnNjMlVpZlN4YkltTnZiblJsYm5RdGJHVnVaM1JvTFhKaGJtZGxJ
|
212
193
|
aXd3TERJMk1qRTBOREF3WFN4YkluTjBZWEowY3kxM2FYUm9JaXdpSkd0bGVT
|
213
|
-
|
194
|
+
SXNJbWwwWlcxekx6SXhNbWd3UXpJek0wd3ljRE16TWpreE5qSmhMeUpkWFgw
|
214
195
|
PQ0KLS0tLS0tLS0tLS0tLVJ1YnlNdWx0aXBhcnRQb3N0DQpDb250ZW50LURp
|
215
|
-
|
216
|
-
|
196
|
+
c3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9InNpZ25hdHVyZSINCg0KNjJH
|
197
|
+
RHBOelRzUnZXWE4xTTFObnIrTEt6T0pzPQ0KLS0tLS0tLS0tLS0tLVJ1YnlN
|
217
198
|
dWx0aXBhcnRQb3N0DQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7
|
218
199
|
IG5hbWU9ImZpbGUiOyBmaWxlbmFtZT0iZmF2aWNvbi5pY28iDQpDb250ZW50
|
219
200
|
LUxlbmd0aDogMTE1MA0KQ29udGVudC1UeXBlOiBpbWFnZS9wbmcNCkNvbnRl
|
@@ -256,27 +237,29 @@ http_interactions:
|
|
256
237
|
message: Continue
|
257
238
|
headers:
|
258
239
|
X-Amz-Id-2:
|
259
|
-
-
|
240
|
+
- K6Bx0xvhE6QAaeNe2XHfcro4/la2fIApXbvgVxSPyDxXeRF+WHvZCA/EzuQ7PBSt
|
260
241
|
X-Amz-Request-Id:
|
261
|
-
-
|
242
|
+
- 3429A5A3B719DB29
|
262
243
|
Date:
|
263
|
-
-
|
244
|
+
- Tue, 14 Feb 2012 14:41:42 GMT
|
264
245
|
Etag:
|
265
246
|
- ! '"567d2d49d2d30e2db956d680a4d03f25"'
|
266
247
|
Location:
|
267
|
-
- http://my.cl.ly/items/s3?item%5Bprivate%5D=false&bucket=f.cl.ly&key=items%
|
248
|
+
- http://my.cl.ly/items/s3?item%5Bprivate%5D=false&bucket=f.cl.ly&key=items%2F212h0C233L2p3329162a%2Ffavicon.ico&etag=%22567d2d49d2d30e2db956d680a4d03f25%22
|
268
249
|
Content-Length:
|
269
250
|
- '0'
|
270
251
|
Server:
|
271
252
|
- AmazonS3
|
272
253
|
body: ''
|
273
254
|
http_version:
|
274
|
-
recorded_at:
|
255
|
+
recorded_at: Tue, 14 Feb 2012 14:41:41 GMT
|
275
256
|
- request:
|
276
257
|
method: get
|
277
|
-
uri: http://
|
258
|
+
uri: http://my.cl.ly/items/s3?bucket=f.cl.ly&etag=%22567d2d49d2d30e2db956d680a4d03f25%22&key=items/212h0C233L2p3329162a/favicon.ico&item%5Bprivate%5D=false
|
278
259
|
body: ''
|
279
260
|
headers:
|
261
|
+
Authorization:
|
262
|
+
- Token token="8762f6679f8d001016b2"
|
280
263
|
Accept:
|
281
264
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
282
265
|
text/plain
|
@@ -290,23 +273,21 @@ http_interactions:
|
|
290
273
|
Content-Type:
|
291
274
|
- application/json; charset=utf-8
|
292
275
|
Etag:
|
293
|
-
- ! '"
|
276
|
+
- ! '"8be83558ab34150c7ea1e01fc6947559"'
|
294
277
|
Server:
|
295
|
-
- thin 1.
|
278
|
+
- thin 1.3.1 codename Triple Espresso
|
296
279
|
Set-Cookie:
|
297
|
-
- _engine_session=
|
280
|
+
- _engine_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlMmEyYjViOGFmOGY2MzJiNDMwMTNjZGMzYzI5NTcxNjNJIgpmbGFzaAY7AEZJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoMc3VjY2Vzc0kiDlVwbG9hZGVkIQY7AEYGOgpAdXNlZG86CFNldAY6CkBoYXNoewA%3D--3e7b8812bb6f6f1587f4c2e154503c71f9f101ce;
|
298
281
|
path=/; HttpOnly
|
299
|
-
- user_credentials=1a3928838ed70ce28edadd8a50565e531e79a988841ff95912035caa55fb1e6a89b2c37eec9331f9a6d4c7f5d38d204a9635e24a0173543ba8d49a491cc94370%3A%3A98727;
|
300
|
-
path=/; expires=Thu, 10-May-2012 17:35:09 GMT
|
301
282
|
X-Runtime:
|
302
|
-
- '0.
|
283
|
+
- '0.129506'
|
303
284
|
X-Ua-Compatible:
|
304
285
|
- IE=Edge,chrome=1
|
305
286
|
Transfer-Encoding:
|
306
287
|
- chunked
|
307
288
|
Connection:
|
308
289
|
- keep-alive
|
309
|
-
body: ! '{"created_at":"2012-02-
|
290
|
+
body: ! '{"created_at":"2012-02-14T14:41:41Z","deleted_at":null,"id":15182967,"item_type":"image","name":"favicon.ico","private":false,"redirect_url":null,"remote_url":"http://f.cl.ly/items/212h0C233L2p3329162a/favicon.ico","source":null,"updated_at":"2012-02-14T14:41:41Z","view_counter":0,"href":"http://my.cl.ly/items/15182967","url":"http://cl.ly/EBCU","content_url":"http://cl.ly/EBCU/favicon.ico","icon":"http://assets.my.cld.me/images/item-types/image.png","thumbnail_url":"http://thumbs.cl.ly/EBCU","subscribed":false,"download_url":"http://api.cld.me/EBCU/download/favicon.ico"}'
|
310
291
|
http_version:
|
311
|
-
recorded_at:
|
292
|
+
recorded_at: Tue, 14 Feb 2012 14:41:41 GMT
|
312
293
|
recorded_with: VCR 2.0.0.rc1
|
@@ -1,42 +1,39 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'support/vcr_rspec'
|
3
3
|
|
4
|
-
# Using master branch of Leadlight
|
5
|
-
require 'bundler'
|
6
|
-
Bundler.setup
|
7
|
-
|
8
4
|
require 'cloudapp/drop_service'
|
9
5
|
|
10
6
|
describe CloudApp::DropService do
|
11
7
|
|
12
|
-
let(:
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
let(:token) { '8762f6679f8d001016b2' }
|
9
|
+
|
10
|
+
describe '.using_token' do
|
11
|
+
subject { CloudApp::DropService.using_token(token) }
|
12
|
+
|
13
|
+
it 'returns a service authenticated with given token' do
|
14
|
+
VCR.use_cassette('DropService/list_drops') {
|
15
|
+
subject.drops
|
16
|
+
}
|
17
|
+
end
|
16
18
|
end
|
17
|
-
let(:service_options) {{ logger: logger }}
|
18
|
-
let(:identity) { stub email: 'arthur@dent.com', password: 'towel' }
|
19
19
|
|
20
|
-
describe '.
|
21
|
-
|
22
|
-
|
20
|
+
describe '.retrieve_token' do
|
21
|
+
subject {
|
22
|
+
VCR.use_cassette('DropService/retrieve_token') {
|
23
|
+
CloudApp::DropService.retrieve_token 'arthur@dent.com', 'towel'
|
24
|
+
}
|
25
|
+
}
|
23
26
|
|
24
|
-
|
25
|
-
|
26
|
-
auth[:username].should eq(identity.email)
|
27
|
-
auth[:password].should eq(identity.password)
|
27
|
+
it 'returns the token from the given account' do
|
28
|
+
subject.should eql(token)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
32
|
describe '#drops' do
|
32
|
-
let(:service) { CloudApp::DropService.
|
33
|
+
let(:service) { CloudApp::DropService.using_token token }
|
33
34
|
|
34
35
|
describe 'listing drops' do
|
35
|
-
subject
|
36
|
-
VCR.use_cassette 'DropService/list_drops' do
|
37
|
-
service.drops
|
38
|
-
end
|
39
|
-
end
|
36
|
+
subject { VCR.use_cassette('DropService/list_drops') { service.drops }}
|
40
37
|
|
41
38
|
it 'has 20 drops' do
|
42
39
|
subject.should have(20).items
|
@@ -48,11 +45,7 @@ describe CloudApp::DropService do
|
|
48
45
|
end
|
49
46
|
|
50
47
|
describe 'listing trash' do
|
51
|
-
subject
|
52
|
-
VCR.use_cassette 'DropService/list_trash' do
|
53
|
-
service.trash
|
54
|
-
end
|
55
|
-
end
|
48
|
+
subject { VCR.use_cassette('DropService/list_trash') { service.trash }}
|
56
49
|
|
57
50
|
it 'has 2 drops' do
|
58
51
|
subject.should have(2).items
|
@@ -66,11 +59,11 @@ describe CloudApp::DropService do
|
|
66
59
|
describe 'limiting drops list' do
|
67
60
|
let(:limit) { 5 }
|
68
61
|
|
69
|
-
subject
|
70
|
-
VCR.use_cassette
|
62
|
+
subject {
|
63
|
+
VCR.use_cassette('DropService/list_drops_with_limit') {
|
71
64
|
service.drops limit
|
72
|
-
|
73
|
-
|
65
|
+
}
|
66
|
+
}
|
74
67
|
|
75
68
|
it 'has the given number of drops' do
|
76
69
|
subject.should have(limit).items
|
@@ -79,16 +72,16 @@ describe CloudApp::DropService do
|
|
79
72
|
end
|
80
73
|
|
81
74
|
describe '#create' do
|
82
|
-
let(:service) { CloudApp::DropService.
|
75
|
+
let(:service) { CloudApp::DropService.using_token token }
|
83
76
|
let(:url) { 'http://getcloudapp.com' }
|
84
77
|
let(:name) { 'CloudApp' }
|
85
78
|
|
86
79
|
describe 'creating a bookmark' do
|
87
|
-
subject
|
88
|
-
VCR.use_cassette
|
80
|
+
subject {
|
81
|
+
VCR.use_cassette('DropService/create_bookmark') {
|
89
82
|
service.create url: url
|
90
|
-
|
91
|
-
|
83
|
+
}
|
84
|
+
}
|
92
85
|
|
93
86
|
it 'is a Drop' do
|
94
87
|
subject.should be_a(CloudApp::Drop)
|
@@ -104,11 +97,11 @@ describe CloudApp::DropService do
|
|
104
97
|
end
|
105
98
|
|
106
99
|
describe 'creating a bookmark with a name' do
|
107
|
-
subject
|
108
|
-
VCR.use_cassette
|
100
|
+
subject {
|
101
|
+
VCR.use_cassette('DropService/create_bookmark_with_name') {
|
109
102
|
service.create url: url, name: name
|
110
|
-
|
111
|
-
|
103
|
+
}
|
104
|
+
}
|
112
105
|
|
113
106
|
it 'has the given url' do
|
114
107
|
subject.redirect_url.should eq(url)
|
@@ -120,11 +113,11 @@ describe CloudApp::DropService do
|
|
120
113
|
end
|
121
114
|
|
122
115
|
describe 'creating a public bookmark' do
|
123
|
-
subject
|
124
|
-
VCR.use_cassette
|
116
|
+
subject {
|
117
|
+
VCR.use_cassette('DropService/create_public_bookmark') {
|
125
118
|
service.create url: url, name: name, private: false
|
126
|
-
|
127
|
-
|
119
|
+
}
|
120
|
+
}
|
128
121
|
|
129
122
|
it 'is public' do
|
130
123
|
subject.should be_public
|
@@ -132,11 +125,11 @@ describe CloudApp::DropService do
|
|
132
125
|
end
|
133
126
|
|
134
127
|
describe 'creating a private bookmark' do
|
135
|
-
subject
|
136
|
-
VCR.use_cassette
|
128
|
+
subject {
|
129
|
+
VCR.use_cassette('DropService/create_private_bookmark') {
|
137
130
|
service.create url: url, name: name, private: true
|
138
|
-
|
139
|
-
|
131
|
+
}
|
132
|
+
}
|
140
133
|
|
141
134
|
it 'is private' do
|
142
135
|
subject.should be_private
|
@@ -148,11 +141,11 @@ describe CloudApp::DropService do
|
|
148
141
|
Pathname('../../support/files/favicon.ico').expand_path(__FILE__)
|
149
142
|
end
|
150
143
|
|
151
|
-
subject
|
152
|
-
VCR.use_cassette
|
144
|
+
subject {
|
145
|
+
VCR.use_cassette('DropService/upload_file') {
|
153
146
|
service.create path: path
|
154
|
-
|
155
|
-
|
147
|
+
}
|
148
|
+
}
|
156
149
|
|
157
150
|
it 'is a Drop' do
|
158
151
|
subject.should be_a(CloudApp::Drop)
|
@@ -160,7 +153,7 @@ describe CloudApp::DropService do
|
|
160
153
|
|
161
154
|
it 'has a remote url' do
|
162
155
|
subject.remote_url.
|
163
|
-
should eq('http://f.cl.ly/items/
|
156
|
+
should eq('http://f.cl.ly/items/1n331R181E100P3h2x3f/favicon.ico')
|
164
157
|
end
|
165
158
|
|
166
159
|
it 'has the name of the file' do
|
@@ -173,11 +166,11 @@ describe CloudApp::DropService do
|
|
173
166
|
Pathname('../../support/files/favicon.ico').expand_path(__FILE__)
|
174
167
|
end
|
175
168
|
|
176
|
-
subject
|
177
|
-
VCR.use_cassette
|
169
|
+
subject {
|
170
|
+
VCR.use_cassette('DropService/upload_public_file') {
|
178
171
|
service.create path: path, private: false
|
179
|
-
|
180
|
-
|
172
|
+
}
|
173
|
+
}
|
181
174
|
|
182
175
|
it 'is public' do
|
183
176
|
subject.should be_public
|
@@ -195,15 +188,28 @@ describe CloudApp::DropService do
|
|
195
188
|
end
|
196
189
|
|
197
190
|
describe 'with bad authentication' do
|
198
|
-
let(:
|
199
|
-
let(:service)
|
191
|
+
let(:token) { 'bad-token' }
|
192
|
+
let(:service) { CloudApp::DropService.using_token token }
|
193
|
+
|
194
|
+
describe '.retrieve_token' do
|
195
|
+
subject {
|
196
|
+
VCR.use_cassette('DropService/retrieve_token_with_bad_credentials') {
|
197
|
+
CloudApp::DropService.retrieve_token 'ford@prefect.com', 'earthling'
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|
201
|
+
it 'raises an unauthorized error' do
|
202
|
+
lambda { subject }.
|
203
|
+
should raise_error(CloudApp::DropService::UNAUTHORIZED)
|
204
|
+
end
|
205
|
+
end
|
200
206
|
|
201
207
|
describe '#drops' do
|
202
|
-
subject
|
203
|
-
VCR.use_cassette
|
208
|
+
subject {
|
209
|
+
VCR.use_cassette('DropService/list_drops_with_bad_credentials') {
|
204
210
|
service.drops
|
205
|
-
|
206
|
-
|
211
|
+
}
|
212
|
+
}
|
207
213
|
|
208
214
|
it 'raises an unauthorized error' do
|
209
215
|
lambda { subject }.
|
@@ -212,11 +218,11 @@ describe CloudApp::DropService do
|
|
212
218
|
end
|
213
219
|
|
214
220
|
describe '#trash' do
|
215
|
-
subject
|
216
|
-
VCR.use_cassette
|
221
|
+
subject {
|
222
|
+
VCR.use_cassette('DropService/list_trash_with_bad_credentials') {
|
217
223
|
service.trash
|
218
|
-
|
219
|
-
|
224
|
+
}
|
225
|
+
}
|
220
226
|
|
221
227
|
it 'raises an unauthorized error' do
|
222
228
|
lambda { subject }.
|
@@ -225,11 +231,11 @@ describe CloudApp::DropService do
|
|
225
231
|
end
|
226
232
|
|
227
233
|
describe '#create' do
|
228
|
-
subject
|
229
|
-
VCR.use_cassette
|
234
|
+
subject {
|
235
|
+
VCR.use_cassette('DropService/create_bookmark_with_bad_credentials') {
|
230
236
|
service.create url: 'http://getcloudapp.com'
|
231
|
-
|
232
|
-
|
237
|
+
}
|
238
|
+
}
|
233
239
|
|
234
240
|
it 'raises an unauthorized error' do
|
235
241
|
lambda { subject }.
|