| 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.test.suitebuilder.annotation.SmallTest; | 7 import android.test.suitebuilder.annotation.SmallTest; |
| 8 | 8 |
| 9 import org.chromium.base.FileUtils; | 9 import org.chromium.base.FileUtils; |
| 10 import org.chromium.base.PathUtils; | 10 import org.chromium.base.PathUtils; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 @SmallTest | 43 @SmallTest |
| 44 @Feature({"Cronet"}) | 44 @Feature({"Cronet"}) |
| 45 @OnlyRunNativeCronet | 45 @OnlyRunNativeCronet |
| 46 // Crashing on Android Cronet Builder, see crbug.com/601409. | 46 // Crashing on Android Cronet Builder, see crbug.com/601409. |
| 47 public void testReadOnlyStorageDirectory() throws Exception { | 47 public void testReadOnlyStorageDirectory() throws Exception { |
| 48 mReadOnlyStoragePath = PathUtils.getDataDirectory() + "/read_only"; | 48 mReadOnlyStoragePath = PathUtils.getDataDirectory() + "/read_only"; |
| 49 File readOnlyStorage = new File(mReadOnlyStoragePath); | 49 File readOnlyStorage = new File(mReadOnlyStoragePath); |
| 50 assertTrue(readOnlyStorage.mkdir()); | 50 assertTrue(readOnlyStorage.mkdir()); |
| 51 // Setting the storage directory as readonly has no effect. | 51 // Setting the storage directory as readonly has no effect. |
| 52 assertTrue(readOnlyStorage.setReadOnly()); | 52 assertTrue(readOnlyStorage.setReadOnly()); |
| 53 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 53 ExperimentalCronetEngine.Builder builder = |
| 54 new ExperimentalCronetEngine.Builder(getContext()); |
| 54 builder.setStoragePath(mReadOnlyStoragePath); | 55 builder.setStoragePath(mReadOnlyStoragePath); |
| 55 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); | 56 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); |
| 56 | 57 |
| 57 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); | 58 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); |
| 58 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 59 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 59 String url = NativeTestServer.getFileURL("/cacheable.txt"); | 60 String url = NativeTestServer.getFileURL("/cacheable.txt"); |
| 60 UrlRequest.Builder requestBuilder = new UrlRequest.Builder( | 61 UrlRequest.Builder requestBuilder = mTestFramework.mCronetEngine.newUrlR
equestBuilder( |
| 61 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
ine); | 62 url, callback, callback.getExecutor()); |
| 62 UrlRequest urlRequest = requestBuilder.build(); | 63 UrlRequest urlRequest = requestBuilder.build(); |
| 63 urlRequest.start(); | 64 urlRequest.start(); |
| 64 callback.blockForDone(); | 65 callback.blockForDone(); |
| 65 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 66 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 66 mTestFramework.mCronetEngine.shutdown(); | 67 mTestFramework.mCronetEngine.shutdown(); |
| 67 FileInputStream newVersionFile = null; | 68 FileInputStream newVersionFile = null; |
| 68 // Make sure that version file is in readOnlyStoragePath. | 69 // Make sure that version file is in readOnlyStoragePath. |
| 69 File versionFile = new File(mReadOnlyStoragePath + "/version"); | 70 File versionFile = new File(mReadOnlyStoragePath + "/version"); |
| 70 try { | 71 try { |
| 71 newVersionFile = new FileInputStream(versionFile); | 72 newVersionFile = new FileInputStream(versionFile); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 try { | 106 try { |
| 106 oldPrefsOut = new FileOutputStream(oldPrefsFile); | 107 oldPrefsOut = new FileOutputStream(oldPrefsFile); |
| 107 String dummy = "dummy content"; | 108 String dummy = "dummy content"; |
| 108 oldPrefsOut.write(dummy.getBytes(), 0, dummy.length()); | 109 oldPrefsOut.write(dummy.getBytes(), 0, dummy.length()); |
| 109 } finally { | 110 } finally { |
| 110 if (oldPrefsOut != null) { | 111 if (oldPrefsOut != null) { |
| 111 oldPrefsOut.close(); | 112 oldPrefsOut.close(); |
| 112 } | 113 } |
| 113 } | 114 } |
| 114 | 115 |
| 115 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 116 ExperimentalCronetEngine.Builder builder = |
| 117 new ExperimentalCronetEngine.Builder(getContext()); |
| 116 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
; | 118 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
; |
| 117 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); | 119 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); |
| 118 | 120 |
| 119 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); | 121 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); |
| 120 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 122 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 121 String url = NativeTestServer.getFileURL("/cacheable.txt"); | 123 String url = NativeTestServer.getFileURL("/cacheable.txt"); |
| 122 UrlRequest.Builder requestBuilder = new UrlRequest.Builder( | 124 UrlRequest.Builder requestBuilder = mTestFramework.mCronetEngine.newUrlR
equestBuilder( |
| 123 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
ine); | 125 url, callback, callback.getExecutor()); |
| 124 UrlRequest urlRequest = requestBuilder.build(); | 126 UrlRequest urlRequest = requestBuilder.build(); |
| 125 urlRequest.start(); | 127 urlRequest.start(); |
| 126 callback.blockForDone(); | 128 callback.blockForDone(); |
| 127 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 129 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 128 mTestFramework.mCronetEngine.shutdown(); | 130 mTestFramework.mCronetEngine.shutdown(); |
| 129 FileInputStream newVersionFile = null; | 131 FileInputStream newVersionFile = null; |
| 130 try { | 132 try { |
| 131 newVersionFile = new FileInputStream(versionFile); | 133 newVersionFile = new FileInputStream(versionFile); |
| 132 byte[] buffer = new byte[] {0, 0, 0, 0}; | 134 byte[] buffer = new byte[] {0, 0, 0, 0}; |
| 133 int bytesRead = newVersionFile.read(buffer, 0, 4); | 135 int bytesRead = newVersionFile.read(buffer, 0, 4); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 145 File prefsDir = new File(testStorage + "/prefs"); | 147 File prefsDir = new File(testStorage + "/prefs"); |
| 146 assertTrue(prefsDir.exists()); | 148 assertTrue(prefsDir.exists()); |
| 147 } | 149 } |
| 148 | 150 |
| 149 @SmallTest | 151 @SmallTest |
| 150 @Feature({"Cronet"}) | 152 @Feature({"Cronet"}) |
| 151 @OnlyRunNativeCronet | 153 @OnlyRunNativeCronet |
| 152 // Tests that if cache version is current, Cronet does not purge the directo
ry. | 154 // Tests that if cache version is current, Cronet does not purge the directo
ry. |
| 153 public void testCacheVersionCurrent() throws Exception { | 155 public void testCacheVersionCurrent() throws Exception { |
| 154 // Initialize a CronetEngine and shut it down. | 156 // Initialize a CronetEngine and shut it down. |
| 155 CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 157 ExperimentalCronetEngine.Builder builder = |
| 158 new ExperimentalCronetEngine.Builder(getContext()); |
| 156 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
; | 159 builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
; |
| 157 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); | 160 builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
4); |
| 158 | 161 |
| 159 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); | 162 mTestFramework = new CronetTestFramework(null, null, getContext(), build
er); |
| 160 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 163 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 161 String url = NativeTestServer.getFileURL("/cacheable.txt"); | 164 String url = NativeTestServer.getFileURL("/cacheable.txt"); |
| 162 UrlRequest.Builder requestBuilder = new UrlRequest.Builder( | 165 UrlRequest.Builder requestBuilder = mTestFramework.mCronetEngine.newUrlR
equestBuilder( |
| 163 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
ine); | 166 url, callback, callback.getExecutor()); |
| 164 UrlRequest urlRequest = requestBuilder.build(); | 167 UrlRequest urlRequest = requestBuilder.build(); |
| 165 urlRequest.start(); | 168 urlRequest.start(); |
| 166 callback.blockForDone(); | 169 callback.blockForDone(); |
| 167 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 170 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 168 mTestFramework.mCronetEngine.shutdown(); | 171 mTestFramework.mCronetEngine.shutdown(); |
| 169 | 172 |
| 170 // Create a dummy file in storage directory. | 173 // Create a dummy file in storage directory. |
| 171 String testStorage = CronetTestFramework.getTestStorage(getContext()); | 174 String testStorage = CronetTestFramework.getTestStorage(getContext()); |
| 172 File dummyFile = new File(testStorage + "/dummy.json"); | 175 File dummyFile = new File(testStorage + "/dummy.json"); |
| 173 FileOutputStream dummyFileOut = null; | 176 FileOutputStream dummyFileOut = null; |
| 174 String dummyContent = "dummy content"; | 177 String dummyContent = "dummy content"; |
| 175 try { | 178 try { |
| 176 dummyFileOut = new FileOutputStream(dummyFile); | 179 dummyFileOut = new FileOutputStream(dummyFile); |
| 177 dummyFileOut.write(dummyContent.getBytes(), 0, dummyContent.length()
); | 180 dummyFileOut.write(dummyContent.getBytes(), 0, dummyContent.length()
); |
| 178 } finally { | 181 } finally { |
| 179 if (dummyFileOut != null) { | 182 if (dummyFileOut != null) { |
| 180 dummyFileOut.close(); | 183 dummyFileOut.close(); |
| 181 } | 184 } |
| 182 } | 185 } |
| 183 | 186 |
| 184 // Creates a new CronetEngine and make a request. | 187 // Creates a new CronetEngine and make a request. |
| 185 CronetEngine engine = builder.build(); | 188 CronetEngine engine = builder.build(); |
| 186 TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); | 189 TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); |
| 187 String url2 = NativeTestServer.getFileURL("/cacheable.txt"); | 190 String url2 = NativeTestServer.getFileURL("/cacheable.txt"); |
| 188 UrlRequest.Builder requestBuilder2 = | 191 UrlRequest.Builder requestBuilder2 = |
| 189 new UrlRequest.Builder(url2, callback2, callback2.getExecutor(),
engine); | 192 engine.newUrlRequestBuilder(url2, callback2, callback2.getExecut
or()); |
| 190 UrlRequest urlRequest2 = requestBuilder2.build(); | 193 UrlRequest urlRequest2 = requestBuilder2.build(); |
| 191 urlRequest2.start(); | 194 urlRequest2.start(); |
| 192 callback2.blockForDone(); | 195 callback2.blockForDone(); |
| 193 assertEquals(200, callback2.mResponseInfo.getHttpStatusCode()); | 196 assertEquals(200, callback2.mResponseInfo.getHttpStatusCode()); |
| 194 engine.shutdown(); | 197 engine.shutdown(); |
| 195 // Dummy file still exists. | 198 // Dummy file still exists. |
| 196 BufferedReader reader = new BufferedReader(new FileReader(dummyFile)); | 199 BufferedReader reader = new BufferedReader(new FileReader(dummyFile)); |
| 197 StringBuilder stringBuilder = new StringBuilder(); | 200 StringBuilder stringBuilder = new StringBuilder(); |
| 198 String line; | 201 String line; |
| 199 while ((line = reader.readLine()) != null) { | 202 while ((line = reader.readLine()) != null) { |
| 200 stringBuilder.append(line); | 203 stringBuilder.append(line); |
| 201 } | 204 } |
| 202 reader.close(); | 205 reader.close(); |
| 203 assertEquals(dummyContent, stringBuilder.toString()); | 206 assertEquals(dummyContent, stringBuilder.toString()); |
| 204 File diskCacheDir = new File(testStorage + "/disk_cache"); | 207 File diskCacheDir = new File(testStorage + "/disk_cache"); |
| 205 assertTrue(diskCacheDir.exists()); | 208 assertTrue(diskCacheDir.exists()); |
| 206 File prefsDir = new File(testStorage + "/prefs"); | 209 File prefsDir = new File(testStorage + "/prefs"); |
| 207 assertTrue(prefsDir.exists()); | 210 assertTrue(prefsDir.exists()); |
| 208 } | 211 } |
| 209 } | 212 } |
| OLD | NEW |