| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.net; | 5 package org.chromium.net; |
| 6 | 6 |
| 7 import android.os.ConditionVariable; | 7 import android.os.ConditionVariable; |
| 8 import android.os.ParcelFileDescriptor; | 8 import android.os.ParcelFileDescriptor; |
| 9 import android.os.StrictMode; | 9 import android.os.StrictMode; |
| 10 import android.test.suitebuilder.annotation.SmallTest; | 10 import android.test.suitebuilder.annotation.SmallTest; |
| 11 | 11 |
| 12 import org.chromium.base.annotations.SuppressFBWarnings; | 12 import org.chromium.base.annotations.SuppressFBWarnings; |
| 13 import org.chromium.base.test.util.Feature; | 13 import org.chromium.base.test.util.Feature; |
| 14 | 14 |
| 15 import java.io.File; | 15 import java.io.File; |
| 16 import java.io.FileOutputStream; | 16 import java.io.FileOutputStream; |
| 17 import java.io.IOException; | 17 import java.io.IOException; |
| 18 import java.nio.ByteBuffer; | 18 import java.nio.ByteBuffer; |
| 19 | 19 |
| 20 /** Test the default provided implementations of {@link UploadDataProvider} */ | 20 /** Test the default provided implementations of {@link UploadDataProvider} */ |
| 21 public class UploadDataProvidersTest extends CronetTestBase { | 21 public class UploadDataProvidersTest extends CronetTestBase { |
| 22 private static final String LOREM = "Lorem ipsum dolor sit amet, consectetur
adipiscing elit. " | 22 private static final String LOREM = "Lorem ipsum dolor sit amet, consectetur
adipiscing elit. " |
| 23 + "Proin elementum, libero laoreet fringilla faucibus, metus tortor
vehicula ante, " | 23 + "Proin elementum, libero laoreet fringilla faucibus, metus tortor
vehicula ante, " |
| 24 + "lacinia lorem eros vel sapien."; | 24 + "lacinia lorem eros vel sapien."; |
| 25 private CronetTestFramework mTestFramework; | 25 private CronetTestFramework mTestFramework; |
| 26 private File mFile; | 26 private File mFile; |
| 27 private StrictMode.VmPolicy mOldVmPolicy; | 27 private StrictMode.VmPolicy mOldVmPolicy; |
| 28 private MockUrlRequestJobFactory mMockUrlRequestJobFactory; |
| 28 | 29 |
| 29 @Override | 30 @Override |
| 30 protected void setUp() throws Exception { | 31 protected void setUp() throws Exception { |
| 31 super.setUp(); | 32 super.setUp(); |
| 32 mOldVmPolicy = StrictMode.getVmPolicy(); | 33 mOldVmPolicy = StrictMode.getVmPolicy(); |
| 33 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() | 34 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() |
| 34 .detectLeakedClosableObjects() | 35 .detectLeakedClosableObjects() |
| 35 .penaltyLog() | 36 .penaltyLog() |
| 36 .penaltyDeath() | 37 .penaltyDeath() |
| 37 .build()); | 38 .build()); |
| 38 mTestFramework = startCronetTestFramework(); | 39 mTestFramework = startCronetTestFramework(); |
| 39 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 40 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
| 40 // Add url interceptors after native application context is initialized. | 41 // Add url interceptors after native application context is initialized. |
| 41 MockUrlRequestJobFactory.setUp(); | 42 mMockUrlRequestJobFactory = new MockUrlRequestJobFactory(mTestFramework.
mCronetEngine); |
| 42 mFile = new File(getContext().getCacheDir().getPath() + "/tmpfile"); | 43 mFile = new File(getContext().getCacheDir().getPath() + "/tmpfile"); |
| 43 FileOutputStream fileOutputStream = new FileOutputStream(mFile); | 44 FileOutputStream fileOutputStream = new FileOutputStream(mFile); |
| 44 try { | 45 try { |
| 45 fileOutputStream.write(LOREM.getBytes("UTF-8")); | 46 fileOutputStream.write(LOREM.getBytes("UTF-8")); |
| 46 } finally { | 47 } finally { |
| 47 fileOutputStream.close(); | 48 fileOutputStream.close(); |
| 48 } | 49 } |
| 49 } | 50 } |
| 50 | 51 |
| 51 @SuppressFBWarnings("DM_GC") // Used to trigger strictmode detecting leaked
closeables | 52 @SuppressFBWarnings("DM_GC") // Used to trigger strictmode detecting leaked
closeables |
| 52 @Override | 53 @Override |
| 53 protected void tearDown() throws Exception { | 54 protected void tearDown() throws Exception { |
| 54 try { | 55 try { |
| 56 mMockUrlRequestJobFactory.shutdown(); |
| 55 NativeTestServer.shutdownNativeTestServer(); | 57 NativeTestServer.shutdownNativeTestServer(); |
| 56 mTestFramework.mCronetEngine.shutdown(); | 58 mTestFramework.mCronetEngine.shutdown(); |
| 57 assertTrue(mFile.delete()); | 59 assertTrue(mFile.delete()); |
| 58 // Run GC and finalizers a few times to pick up leaked closeables | 60 // Run GC and finalizers a few times to pick up leaked closeables |
| 59 for (int i = 0; i < 10; i++) { | 61 for (int i = 0; i < 10; i++) { |
| 60 System.gc(); | 62 System.gc(); |
| 61 System.runFinalization(); | 63 System.runFinalization(); |
| 62 } | 64 } |
| 63 System.gc(); | 65 System.gc(); |
| 64 System.runFinalization(); | 66 System.runFinalization(); |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 UploadDataProviders.create(uploadDataWithPadding, offset, upload
Data.length); | 228 UploadDataProviders.create(uploadDataWithPadding, offset, upload
Data.length); |
| 227 assertEquals(uploadData.length, dataProvider.getLength()); | 229 assertEquals(uploadData.length, dataProvider.getLength()); |
| 228 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); | 230 builder.setUploadDataProvider(dataProvider, callback.getExecutor()); |
| 229 UrlRequest urlRequest = builder.build(); | 231 UrlRequest urlRequest = builder.build(); |
| 230 urlRequest.start(); | 232 urlRequest.start(); |
| 231 callback.blockForDone(); | 233 callback.blockForDone(); |
| 232 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 234 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 233 assertEquals(LOREM, callback.mResponseAsString); | 235 assertEquals(LOREM, callback.mResponseAsString); |
| 234 } | 236 } |
| 235 } | 237 } |
| OLD | NEW |