@@ -2,14 +2,12 @@ package upload_droplet_test
2
2
3
3
import (
4
4
"bytes"
5
- "context"
6
5
"errors"
7
6
"fmt"
8
7
"net/http"
9
8
"net/http/httptest"
10
9
"net/url"
11
10
"sync"
12
- //"sync/atomic"
13
11
"time"
14
12
15
13
"code.cloudfoundry.org/cc-uploader/ccclient/fake_ccclient"
@@ -179,39 +177,12 @@ var _ = Describe("UploadDroplet", func() {
179
177
})
180
178
})
181
179
182
- //Context("when the system is draining", func() {
183
- // var dropletUploadHandler http.Handler
184
- // var draining int32
185
- //
186
- // BeforeEach(func() {
187
- // // Simulate the system being in a draining state
188
- // atomic.StoreInt32(&draining, 1)
189
- // responseWriter = httptest.NewRecorder()
190
- // var err error
191
- // incomingRequest, err = http.NewRequest("POST", "http://example.com?cc_droplet_upload_uri=http://some-uri", nil)
192
- // Expect(err).NotTo(HaveOccurred())
193
- //
194
- // dropletUploadHandler = upload_droplet.New(&uploader, &poller, lager.NewLogger("fake-logger"), &sync.WaitGroup{})
195
- // })
196
- //
197
- // //It("returns 503", func() {
198
- // // dropletUploadHandler.ServeHTTP(outgoingResponse, incomingRequest)
199
- // // Expect(outgoingResponse.Code).To(Equal(http.StatusServiceUnavailable))
200
- // // Expect(outgoingResponse.Body.String()).To(ContainSubstring("Service is draining"))
201
- // //})
202
- //})
203
-
204
180
Context ("when the requester (client) goes away" , func () {
205
- var (
206
- cancel context.CancelFunc
207
- ctx context.Context
208
- fakeResponseWriter * test_helpers.FakeResponseWriter
209
- )
181
+ var fakeResponseWriter * test_helpers.FakeResponseWriter
210
182
211
183
BeforeEach (func () {
212
- ctx , cancel = context .WithCancel (context .Background ())
213
184
var err error
214
- incomingRequest , err = http .NewRequestWithContext ( ctx ,
185
+ incomingRequest , err = http .NewRequest (
215
186
"POST" ,
216
187
fmt .Sprintf ("http://example.com?%s=upload-uri.com" , cc_messages .CcDropletUploadUriKey ),
217
188
bytes .NewBufferString ("" ),
@@ -226,59 +197,34 @@ var _ = Describe("UploadDroplet", func() {
226
197
responseWriter = fakeResponseWriter
227
198
228
199
uploader .UploadStub = func (uploadURL * url.URL , filename string , r * http.Request , cancelChan <- chan struct {}) (* http.Response , error ) {
229
- // Simulate disconnect
230
- go func () {
231
- time .Sleep (100 * time .Millisecond )
232
- cancel ()
233
- }()
234
-
235
- Eventually (cancelChan , 2 * time .Second ).Should (BeClosed ())
200
+ closedChan <- true
201
+ Eventually (cancelChan ).Should (BeClosed ())
236
202
return nil , errors .New ("cancelled" )
237
203
}
238
204
})
239
205
240
206
It ("responds with an error code" , func () {
241
- done := make (chan struct {})
242
- go func () {
243
- dropletUploadHandler := upload_droplet .New (& uploader , & poller , lager .NewLogger ("fake-logger" ), & sync.WaitGroup {})
244
- dropletUploadHandler .ServeHTTP (responseWriter , incomingRequest )
245
- close (done )
246
- }()
247
- Eventually (done , 3 * time .Second ).Should (BeClosed ())
248
207
Expect (fakeResponseWriter .Code ).To (Equal (http .StatusInternalServerError ))
249
208
})
250
209
})
251
210
252
211
Context ("and we are polling" , func () {
253
- var uploadResponse * http.Response
254
-
255
212
BeforeEach (func () {
256
- uploadResponse = & http.Response {StatusCode : http .StatusOK }
213
+ uploadResponse : = & http.Response {StatusCode : http .StatusOK }
257
214
uploader .UploadReturns (uploadResponse , nil )
258
215
259
216
closedChan := make (chan bool )
260
217
fakeResponseWriter = test_helpers .NewFakeResponseWriter (closedChan )
261
218
responseWriter = fakeResponseWriter
262
219
263
220
poller .PollStub = func (fallbackURL * url.URL , res * http.Response , cancelChan <- chan struct {}) error {
264
- go func () {
265
- time .Sleep (100 * time .Millisecond )
266
- cancel ()
267
- }()
268
-
269
- Eventually (cancelChan , 2 * time .Second ).Should (BeClosed ())
221
+ closedChan <- true
222
+ Eventually (cancelChan ).Should (BeClosed ())
270
223
return errors .New ("cancelled" )
271
224
}
272
225
})
273
226
274
227
It ("responds with an error code" , func () {
275
- done := make (chan struct {})
276
- go func () {
277
- dropletUploadHandler := upload_droplet .New (& uploader , & poller , lager .NewLogger ("fake-logger" ), & sync.WaitGroup {})
278
- dropletUploadHandler .ServeHTTP (responseWriter , incomingRequest )
279
- close (done )
280
- }()
281
- Eventually (done , 3 * time .Second ).Should (BeClosed ())
282
228
Expect (fakeResponseWriter .Code ).To (Equal (http .StatusInternalServerError ))
283
229
})
284
230
})
0 commit comments