1 // Copyright 2023 The Chromium Authors 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.base; 6 7 import static org.junit.Assert.assertEquals; 8 9 import android.content.Context; 10 11 import androidx.test.core.app.ApplicationProvider; 12 13 import org.junit.Test; 14 import org.junit.runner.RunWith; 15 16 import org.chromium.base.test.BaseRobolectricTestRunner; 17 18 import java.io.File; 19 20 /** junit tests for {@link PathUtils}. */ 21 @RunWith(BaseRobolectricTestRunner.class) 22 public class PathUtilsTest { 23 static final String THUMBNAIL_DIRECTORY_NAME = "textures"; 24 25 @Test testSetPrivateDataDirectorySuffix()26 public void testSetPrivateDataDirectorySuffix() { 27 Context context = ApplicationProvider.getApplicationContext(); 28 String dataSuffix = "data_suffix"; 29 String cacheSubDir = "cache_subdir"; 30 String expectedDataDir = context.getDir(dataSuffix, Context.MODE_PRIVATE).getPath(); 31 String expectedThumbnailDir = 32 context.getDir(THUMBNAIL_DIRECTORY_NAME, Context.MODE_PRIVATE).getPath(); 33 String expectedCacheDir = new File(context.getCacheDir(), cacheSubDir).getPath(); 34 35 PathUtils.setPrivateDataDirectorySuffix(dataSuffix, cacheSubDir); 36 String dataDir = PathUtils.getDataDirectory(); 37 String cacheDir = PathUtils.getCacheDirectory(); 38 String thumbnailDir = PathUtils.getThumbnailCacheDirectory(); 39 40 assertEquals(dataDir, expectedDataDir); 41 assertEquals(cacheDir, expectedCacheDir); 42 assertEquals(thumbnailDir, expectedThumbnailDir); 43 } 44 45 @Test testSetPrivateDirectoryPath()46 public void testSetPrivateDirectoryPath() { 47 String dataPath = "/data_path/a/b/c"; 48 String cachePath = "/cache_path/a/b/c"; 49 String dataSuffix = "data_suffix"; 50 String cacheSubDir = "cache_subdir"; 51 String expectedDataDir = dataPath + "/" + dataSuffix; 52 String expectedCacheDir = cachePath + "/" + cacheSubDir; 53 String expectedThumbnailDir = dataPath + "/" + THUMBNAIL_DIRECTORY_NAME; 54 55 PathUtils.setPrivateDirectoryPath(dataPath, cachePath, dataSuffix, cacheSubDir); 56 String dataDir = PathUtils.getDataDirectory(); 57 String cacheDir = PathUtils.getCacheDirectory(); 58 String thumbnailDir = PathUtils.getThumbnailCacheDirectory(); 59 60 assertEquals(dataDir, expectedDataDir); 61 assertEquals(cacheDir, expectedCacheDir); 62 assertEquals(thumbnailDir, expectedThumbnailDir); 63 } 64 65 @Test testSetPrivateDirectoryPathWithoutBasePaths()66 public void testSetPrivateDirectoryPathWithoutBasePaths() { 67 Context context = ApplicationProvider.getApplicationContext(); 68 String dataSuffix = "data_suffix"; 69 String cacheSubDir = "cache_subdir"; 70 String expectedDataDir = context.getDir(dataSuffix, Context.MODE_PRIVATE).getPath(); 71 String expectedThumbnailDir = 72 context.getDir(THUMBNAIL_DIRECTORY_NAME, Context.MODE_PRIVATE).getPath(); 73 String expectedCacheDir = new File(context.getCacheDir(), cacheSubDir).getPath(); 74 75 PathUtils.setPrivateDirectoryPath(null, null, dataSuffix, cacheSubDir); 76 String dataDir = PathUtils.getDataDirectory(); 77 String cacheDir = PathUtils.getCacheDirectory(); 78 String thumbnailDir = PathUtils.getThumbnailCacheDirectory(); 79 80 assertEquals(dataDir, expectedDataDir); 81 assertEquals(cacheDir, expectedCacheDir); 82 assertEquals(thumbnailDir, expectedThumbnailDir); 83 } 84 } 85