Skip to content

Commit 74a0996

Browse files
Storage: Add TestUtil.await (#487)
1 parent 74905c8 commit 74a0996

File tree

12 files changed

+246
-466
lines changed

12 files changed

+246
-466
lines changed

firebase-storage/src/test/java/com/google/firebase/storage/AdaptiveStreamBufferTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.io.ByteArrayInputStream;
2222
import java.io.IOException;
2323
import java.util.Arrays;
24-
import junit.framework.Assert;
24+
import org.junit.Assert;
2525
import org.junit.Rule;
2626
import org.junit.Test;
2727
import org.junit.runner.RunWith;

firebase-storage/src/test/java/com/google/firebase/storage/DeleteTest.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@
2323
import com.google.firebase.storage.network.NetworkLayerMock;
2424
import com.google.firebase.testing.FirebaseAppRule;
2525
import org.junit.After;
26-
import org.junit.Assert;
2726
import org.junit.Before;
2827
import org.junit.Rule;
2928
import org.junit.Test;
3029
import org.junit.runner.RunWith;
31-
import org.robolectric.Robolectric;
3230
import org.robolectric.RobolectricTestRunner;
3331
import org.robolectric.annotation.Config;
3432

@@ -59,19 +57,12 @@ public void tearDown() {
5957
@SuppressWarnings("ConstantConditions")
6058
@Test
6159
public void deleteBlob() throws Exception {
62-
final MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("deleteBlob", false);
63-
60+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("deleteBlob", false);
6461
Task<StringBuilder> task = TestCommandHelper.deleteBlob();
65-
for (int i = 0; i < 3000; i++) {
66-
Robolectric.flushForegroundThreadScheduler();
67-
if (task.isComplete()) {
68-
// success!
69-
factory.verifyOldMock();
70-
TestUtil.verifyTaskStateChanges("deleteBlob", task.getResult().toString());
71-
return;
72-
}
73-
Thread.sleep(1);
74-
}
75-
Assert.fail();
62+
63+
TestUtil.await(task);
64+
65+
factory.verifyOldMock();
66+
TestUtil.verifyTaskStateChanges("deleteBlob", task.getResult().toString());
7667
}
7768
}

firebase-storage/src/test/java/com/google/firebase/storage/DependencyTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import java.util.ArrayList;
2121
import java.util.Collections;
2222
import java.util.List;
23-
import junit.framework.Assert;
23+
import org.junit.Assert;
2424
import org.junit.Rule;
2525
import org.junit.Test;
2626
import org.junit.runner.RunWith;

firebase-storage/src/test/java/com/google/firebase/storage/DownloadTest.java

Lines changed: 59 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
import java.util.concurrent.Semaphore;
3434
import java.util.concurrent.TimeUnit;
3535
import java.util.concurrent.atomic.AtomicLong;
36-
import junit.framework.Assert;
3736
import org.junit.After;
37+
import org.junit.Assert;
3838
import org.junit.Before;
3939
import org.junit.Rule;
4040
import org.junit.Test;
@@ -74,8 +74,7 @@ public void tearDown() {
7474
public void streamDownload() throws Exception {
7575
System.out.println("Starting test streamDownload.");
7676

77-
final MockConnectionFactory factory =
78-
NetworkLayerMock.ensureNetworkMock("streamDownload", true);
77+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("streamDownload", true);
7978
final boolean[] completeHandlerInvoked = new boolean[] {false};
8079

8180
Task<StreamDownloadResponse> task =
@@ -90,18 +89,11 @@ public void streamDownload() throws Exception {
9089
"image.jpg",
9190
-1);
9291

93-
for (int i = 0; i < 3000; i++) {
94-
Robolectric.flushForegroundThreadScheduler();
95-
if (task.isComplete()) {
96-
// success!
97-
factory.verifyOldMock();
98-
TestUtil.verifyTaskStateChanges("streamDownload", task.getResult());
99-
assertTrue(completeHandlerInvoked[0]);
100-
return;
101-
}
102-
Thread.sleep(1);
103-
}
104-
fail();
92+
TestUtil.await(task);
93+
94+
factory.verifyOldMock();
95+
TestUtil.verifyTaskStateChanges("streamDownload", task.getResult());
96+
assertTrue(completeHandlerInvoked[0]);
10597
}
10698

10799
@Test
@@ -158,7 +150,7 @@ public void streamDownloadStateVerification() throws Exception {
158150
public void streamDownloadWithResume() throws Exception {
159151
System.out.println("Starting test streamDownloadWithResume.");
160152

161-
final MockConnectionFactory factory =
153+
MockConnectionFactory factory =
162154
NetworkLayerMock.ensureNetworkMock("streamDownloadWithResume", true);
163155
final boolean[] completeHandlerInvoked = new boolean[] {false};
164156

@@ -174,97 +166,67 @@ public void streamDownloadWithResume() throws Exception {
174166
"image.jpg",
175167
-1);
176168

177-
for (int i = 0; i < 3000; i++) {
178-
Robolectric.flushForegroundThreadScheduler();
179-
if (task.isComplete()) {
180-
// success!
181-
factory.verifyOldMock();
182-
TestUtil.verifyTaskStateChanges("streamDownloadWithResume", task.getResult());
183-
assertTrue(completeHandlerInvoked[0]);
184-
return;
185-
}
186-
Thread.sleep(1);
187-
}
188-
fail();
169+
TestUtil.await(task);
170+
171+
factory.verifyOldMock();
172+
TestUtil.verifyTaskStateChanges("streamDownloadWithResume", task.getResult());
173+
assertTrue(completeHandlerInvoked[0]);
189174
}
190175

191176
@Test
192177
public void streamDownloadWithResumeAndCancel() throws Exception {
193178
System.out.println("Starting test streamDownloadWithResumeAndCancel.");
194179

195-
final MockConnectionFactory factory =
180+
MockConnectionFactory factory =
196181
NetworkLayerMock.ensureNetworkMock("streamDownloadWithResumeAndCancel", true);
197182

198183
Task<StreamDownloadResponse> task =
199184
TestDownloadHelper.streamDownload(
200185
bitmap -> fail("Should not get called since we cancelled."), null, "image.jpg", 260000);
201186

202-
for (int i = 0; i < 3000; i++) {
203-
Robolectric.flushForegroundThreadScheduler();
204-
if (task.isComplete()) {
205-
// success!
206-
factory.verifyOldMock();
207-
TestUtil.verifyTaskStateChanges("streamDownloadWithResumeAndCancel", task.getResult());
208-
return;
209-
}
210-
Thread.sleep(1);
211-
}
212-
fail();
187+
TestUtil.await(task);
188+
189+
factory.verifyOldMock();
190+
TestUtil.verifyTaskStateChanges("streamDownloadWithResumeAndCancel", task.getResult());
213191
}
214192

215193
@Test
216194
public void streamDownloadCanceled() throws Exception {
217195
System.out.println("Starting test streamDownloadCanceled.");
218196

219-
final MockConnectionFactory factory =
220-
NetworkLayerMock.ensureNetworkMock("streamDownload", true);
197+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("streamDownload", true);
221198

222199
Task<StreamDownloadResponse> task =
223200
TestDownloadHelper.streamDownload(
224201
bitmap -> fail("Should not get called since we cancelled."), null, "image.jpg", 0);
225202

226-
for (int i = 0; i < 3000; i++) {
227-
Robolectric.flushForegroundThreadScheduler();
228-
if (task.isComplete()) {
229-
// success!
230-
factory.verifyOldMock();
231-
TestUtil.verifyTaskStateChanges("streamDownloadCanceled", task.getResult());
232-
return;
233-
}
234-
Thread.sleep(1);
235-
}
236-
fail();
203+
TestUtil.await(task);
204+
205+
factory.verifyOldMock();
206+
TestUtil.verifyTaskStateChanges("streamDownloadCanceled", task.getResult());
237207
}
238208

239209
@Test
240210
public void streamDownloadWithETagChange() throws Exception {
241211
System.out.println("Starting test streamDownloadWithETagChange.");
242212

243-
final MockConnectionFactory factory =
213+
MockConnectionFactory factory =
244214
NetworkLayerMock.ensureNetworkMock("streamDownloadWithETagChange", true);
245215

246216
Task<StreamDownloadResponse> task =
247217
TestDownloadHelper.streamDownload(null, null, "image.jpg", -1);
248218

249-
for (int i = 0; i < 3000; i++) {
250-
Robolectric.flushForegroundThreadScheduler();
251-
if (task.isComplete()) {
252-
// success!
253-
factory.verifyOldMock();
254-
TestUtil.verifyTaskStateChanges("streamDownloadWithETagChange", task.getResult());
255-
return;
256-
}
257-
Thread.sleep(1);
258-
}
259-
fail();
219+
TestUtil.await(task);
220+
221+
factory.verifyOldMock();
222+
TestUtil.verifyTaskStateChanges("streamDownloadWithETagChange", task.getResult());
260223
}
261224

262225
@Test
263226
public void emptyStreamDownload() throws Exception {
264227
System.out.println("Starting test emptyStreamDownload.");
265228

266-
final MockConnectionFactory factory =
267-
NetworkLayerMock.ensureNetworkMock("emptyStreamDownload", true);
229+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("emptyStreamDownload", true);
268230
final boolean[] completeHandlerInvoked = new boolean[] {false};
269231

270232
Task<StreamDownloadResponse> task =
@@ -277,26 +239,18 @@ public void emptyStreamDownload() throws Exception {
277239
"empty.dat",
278240
-1);
279241

280-
for (int i = 0; i < 3000; i++) {
281-
Robolectric.flushForegroundThreadScheduler();
282-
if (task.isComplete()) {
283-
// success!
284-
factory.verifyOldMock();
285-
TestUtil.verifyTaskStateChanges("emptyStreamDownload", task.getResult());
286-
assertTrue(completeHandlerInvoked[0]);
287-
return;
288-
}
289-
Thread.sleep(1);
290-
}
291-
fail();
242+
TestUtil.await(task);
243+
244+
factory.verifyOldMock();
245+
TestUtil.verifyTaskStateChanges("emptyStreamDownload", task.getResult());
246+
assertTrue(completeHandlerInvoked[0]);
292247
}
293248

294249
@Test
295250
public void byteDownload() throws Exception {
296251
System.out.println("Starting test byteDownload.");
297252

298-
final MockConnectionFactory factory =
299-
NetworkLayerMock.ensureNetworkMock("streamDownload", true);
253+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("streamDownload", true);
300254

301255
Semaphore semaphore =
302256
TestDownloadHelper.byteDownload(
@@ -322,7 +276,7 @@ public void fileDownload() throws Exception {
322276
outputFile.delete();
323277
}
324278
Uri destinationUri = Uri.fromFile(outputFile);
325-
final MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("fileDownload", true);
279+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("fileDownload", true);
326280

327281
final boolean[] completeHandlerInvoked = new boolean[] {false};
328282

@@ -336,18 +290,11 @@ public void fileDownload() throws Exception {
336290
},
337291
-1);
338292

339-
for (int i = 0; i < 3000; i++) {
340-
Robolectric.flushForegroundThreadScheduler();
341-
if (task.isComplete()) {
342-
// success!
343-
factory.verifyOldMock();
344-
TestUtil.verifyTaskStateChanges("fileDownload", task.getResult().toString());
345-
assertTrue(completeHandlerInvoked[0]);
346-
return;
347-
}
348-
Thread.sleep(1);
349-
}
350-
fail();
293+
TestUtil.await(task);
294+
295+
factory.verifyOldMock();
296+
TestUtil.verifyTaskStateChanges("fileDownload", task.getResult().toString());
297+
assertTrue(completeHandlerInvoked[0]);
351298
}
352299

353300
@Test
@@ -360,8 +307,7 @@ public void fileDownloadResume() throws Exception {
360307
outputFile.delete();
361308
}
362309
Uri destinationUri = Uri.fromFile(outputFile);
363-
final MockConnectionFactory factory =
364-
NetworkLayerMock.ensureNetworkMock("fileDownloadResume", true);
310+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("fileDownloadResume", true);
365311

366312
final boolean[] completeHandlerInvoked = new boolean[] {false};
367313

@@ -375,18 +321,11 @@ public void fileDownloadResume() throws Exception {
375321
},
376322
-1);
377323

378-
for (int i = 0; i < 3000; i++) {
379-
Robolectric.flushForegroundThreadScheduler();
380-
if (task.isComplete()) {
381-
// success!
382-
factory.verifyOldMock();
383-
TestUtil.verifyTaskStateChanges("fileDownloadResume", task.getResult().toString());
384-
assertTrue(completeHandlerInvoked[0]);
385-
return;
386-
}
387-
Thread.sleep(1);
388-
}
389-
fail();
324+
TestUtil.await(task);
325+
326+
factory.verifyOldMock();
327+
TestUtil.verifyTaskStateChanges("fileDownloadResume", task.getResult().toString());
328+
assertTrue(completeHandlerInvoked[0]);
390329
}
391330

392331
@Test
@@ -399,7 +338,7 @@ public void emptyDownload() throws Exception {
399338
outputFile.delete();
400339
}
401340
Uri destinationUri = Uri.fromFile(outputFile);
402-
final MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("emptyDownload", true);
341+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("emptyDownload", true);
403342
final boolean[] completeHandlerInvoked = new boolean[] {false};
404343

405344
Task<StringBuilder> task =
@@ -412,18 +351,11 @@ public void emptyDownload() throws Exception {
412351
},
413352
-1);
414353

415-
for (int i = 0; i < 3000; i++) {
416-
Robolectric.flushForegroundThreadScheduler();
417-
if (task.isComplete()) {
418-
// success!
419-
factory.verifyOldMock();
420-
TestUtil.verifyTaskStateChanges("emptyDownload", task.getResult().toString());
421-
assertTrue(completeHandlerInvoked[0]);
422-
return;
423-
}
424-
Thread.sleep(1);
425-
}
426-
fail();
354+
TestUtil.await(task);
355+
356+
factory.verifyOldMock();
357+
TestUtil.verifyTaskStateChanges("emptyDownload", task.getResult().toString());
358+
assertTrue(completeHandlerInvoked[0]);
427359
}
428360

429361
@Test
@@ -436,21 +368,15 @@ public void fileDownloadCanceledImmediately() throws Exception {
436368
outputFile.delete();
437369
}
438370
Uri destinationUri = Uri.fromFile(outputFile);
439-
final MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("fileDownload", true);
371+
MockConnectionFactory factory = NetworkLayerMock.ensureNetworkMock("fileDownload", true);
440372

441373
Task<StringBuilder> task =
442374
TestDownloadHelper.fileDownload(
443375
destinationUri, () -> fail("Should not run since we cancelled the task."), 0);
444-
for (int i = 0; i < 3000; i++) {
445-
Robolectric.flushForegroundThreadScheduler();
446-
if (task.isComplete()) {
447-
// success!
448-
factory.verifyOldMock();
449-
TestUtil.verifyTaskStateChanges("fileDownloadCanceled", task.getResult().toString());
450-
return;
451-
}
452-
Thread.sleep(1);
453-
}
454-
fail();
376+
377+
TestUtil.await(task);
378+
379+
factory.verifyOldMock();
380+
TestUtil.verifyTaskStateChanges("fileDownloadCanceled", task.getResult().toString());
455381
}
456382
}

0 commit comments

Comments
 (0)