| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 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 | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 package org.chromium.net; | 
|  | 6 | 
|  | 7 import android.test.suitebuilder.annotation.SmallTest; | 
|  | 8 | 
|  | 9 import org.chromium.base.test.util.Feature; | 
|  | 10 | 
|  | 11 import java.io.File; | 
|  | 12 import java.io.FileInputStream; | 
|  | 13 import java.io.FileOutputStream; | 
|  | 14 import java.util.Arrays; | 
|  | 15 | 
|  | 16 /** | 
|  | 17  * Test CronetEngine disk cache. | 
|  | 18  */ | 
|  | 19 public class DiskCacheTest extends CronetTestBase { | 
|  | 20     CronetTestFramework mTestFramework; | 
|  | 21 | 
|  | 22     @Override | 
|  | 23     protected void setUp() throws Exception { | 
|  | 24         super.setUp(); | 
|  | 25         System.loadLibrary("cronet_tests"); | 
|  | 26         assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 
|  | 27     } | 
|  | 28 | 
|  | 29     @Override | 
|  | 30     protected void tearDown() throws Exception { | 
|  | 31         NativeTestServer.shutdownNativeTestServer(); | 
|  | 32         super.tearDown(); | 
|  | 33     } | 
|  | 34 | 
|  | 35     @SmallTest | 
|  | 36     @Feature({"Cronet"}) | 
|  | 37     @OnlyRunNativeCronet | 
|  | 38     public void testPurgeOldVersion() throws Exception { | 
|  | 39         String testStorage = CronetTestFramework.getTestStorage(getContext()); | 
|  | 40         File versionFile = new File(testStorage + "/version"); | 
|  | 41         FileOutputStream versionOut = null; | 
|  | 42         try { | 
|  | 43             versionOut = new FileOutputStream(versionFile); | 
|  | 44             versionOut.write(new byte[] {2, 0, 0, 0}, 0, 4); | 
|  | 45         } finally { | 
|  | 46             if (versionOut != null) { | 
|  | 47                 versionOut.close(); | 
|  | 48             } | 
|  | 49         } | 
|  | 50         File oldPrefsFile = new File(testStorage + "/local_prefs.json"); | 
|  | 51         FileOutputStream oldPrefsOut = null; | 
|  | 52         try { | 
|  | 53             oldPrefsOut = new FileOutputStream(oldPrefsFile); | 
|  | 54             String dummy = "dummy content"; | 
|  | 55             oldPrefsOut.write(dummy.getBytes(), 0, dummy.length()); | 
|  | 56         } finally { | 
|  | 57             if (oldPrefsOut != null) { | 
|  | 58                 oldPrefsOut.close(); | 
|  | 59             } | 
|  | 60         } | 
|  | 61 | 
|  | 62         CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 
|  | 63         builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
     ; | 
|  | 64         builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
     4); | 
|  | 65 | 
|  | 66         mTestFramework = new CronetTestFramework(null, null, getContext(), build
     er); | 
|  | 67         TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 
|  | 68         String url = NativeTestServer.getFileURL("/cacheable.txt"); | 
|  | 69         UrlRequest.Builder requestBuilder = new UrlRequest.Builder( | 
|  | 70                 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
     ine); | 
|  | 71         UrlRequest urlRequest = requestBuilder.build(); | 
|  | 72         urlRequest.start(); | 
|  | 73         callback.blockForDone(); | 
|  | 74         assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 
|  | 75         mTestFramework.mCronetEngine.shutdown(); | 
|  | 76         FileInputStream newVersionFile = null; | 
|  | 77         try { | 
|  | 78             newVersionFile = new FileInputStream(versionFile); | 
|  | 79             byte[] buffer = new byte[] {0, 0, 0, 0}; | 
|  | 80             int bytesRead = newVersionFile.read(buffer, 0, 4); | 
|  | 81             assertEquals(4, bytesRead); | 
|  | 82             assertTrue(Arrays.equals(new byte[] {1, 0, 0, 0}, buffer)); | 
|  | 83         } finally { | 
|  | 84             if (newVersionFile != null) { | 
|  | 85                 newVersionFile.close(); | 
|  | 86             } | 
|  | 87         } | 
|  | 88         oldPrefsFile = new File(testStorage + "/local_prefs.json"); | 
|  | 89         assertTrue(!oldPrefsFile.exists()); | 
|  | 90     } | 
|  | 91 | 
|  | 92     @SmallTest | 
|  | 93     @Feature({"Cronet"}) | 
|  | 94     @OnlyRunNativeCronet | 
|  | 95     // Tests that if cache version is current, Cronet does not purge the | 
|  | 96     // directory. | 
|  | 97     public void testCacheVersionCurrent() throws Exception { | 
|  | 98         String testStorage = CronetTestFramework.getTestStorage(getContext()); | 
|  | 99         File versionFile = new File(testStorage + "/version"); | 
|  | 100         FileOutputStream versionOut = null; | 
|  | 101         try { | 
|  | 102             versionOut = new FileOutputStream(versionFile); | 
|  | 103             versionOut.write(new byte[] {1, 0, 0, 0}, 0, 4); | 
|  | 104         } finally { | 
|  | 105             if (versionOut != null) { | 
|  | 106                 versionOut.close(); | 
|  | 107             } | 
|  | 108         } | 
|  | 109         File dir = new File(testStorage + "/random"); | 
|  | 110         assertTrue(dir.mkdir()); | 
|  | 111         File dummyFile = new File(testStorage + "/random/dummy.json"); | 
|  | 112         FileOutputStream dummyFileOut = null; | 
|  | 113         try { | 
|  | 114             dummyFileOut = new FileOutputStream(dummyFile); | 
|  | 115             String dummy = "dummy content"; | 
|  | 116             dummyFileOut.write(dummy.getBytes(), 0, dummy.length()); | 
|  | 117         } finally { | 
|  | 118             if (dummyFileOut != null) { | 
|  | 119                 dummyFileOut.close(); | 
|  | 120             } | 
|  | 121         } | 
|  | 122 | 
|  | 123         CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); | 
|  | 124         builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()))
     ; | 
|  | 125         builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 102
     4); | 
|  | 126 | 
|  | 127         mTestFramework = new CronetTestFramework(null, null, getContext(), build
     er); | 
|  | 128         TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 
|  | 129         String url = NativeTestServer.getFileURL("/cacheable.txt"); | 
|  | 130         UrlRequest.Builder requestBuilder = new UrlRequest.Builder( | 
|  | 131                 url, callback, callback.getExecutor(), mTestFramework.mCronetEng
     ine); | 
|  | 132         UrlRequest urlRequest = requestBuilder.build(); | 
|  | 133         urlRequest.start(); | 
|  | 134         callback.blockForDone(); | 
|  | 135         assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 
|  | 136         mTestFramework.mCronetEngine.shutdown(); | 
|  | 137         assertTrue(dummyFile.exists()); | 
|  | 138     } | 
|  | 139 } | 
| OLD | NEW | 
|---|