• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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