• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.google.android.libraries.mobiledatadownload.internal.util;
17 
18 import static com.google.common.truth.Truth.assertThat;
19 import static org.junit.Assert.assertThrows;
20 
21 import android.content.Context;
22 import android.net.Uri;
23 import androidx.test.core.app.ApplicationProvider;
24 import com.google.android.libraries.mobiledatadownload.file.backends.AndroidUri;
25 import com.google.common.base.Optional;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.robolectric.RobolectricTestRunner;
30 
31 /** Unit tests for {@link DirectoryUtil}. */
32 @RunWith(RobolectricTestRunner.class)
33 public class DirectoryUtilTest {
34 
35   private Context context;
36 
37   @Before
setUp()38   public void setUp() {
39     context = ApplicationProvider.getApplicationContext();
40   }
41 
42   @Test
getBaseDownloadDirectory()43   public void getBaseDownloadDirectory() {
44     // No instanceid
45     Uri uri = AndroidUri.builder(context).setModule(DirectoryUtil.MDD_STORAGE_MODULE).build();
46     assertThat(DirectoryUtil.getBaseDownloadDirectory(context, Optional.absent())).isEqualTo(uri);
47 
48     // valid instanceid
49     uri =
50         AndroidUri.builder(context)
51             .setModule("instanceid")
52             .setRelativePath(DirectoryUtil.MDD_STORAGE_MODULE)
53             .build();
54     assertThat(DirectoryUtil.getBaseDownloadDirectory(context, Optional.of("instanceid")))
55         .isEqualTo(uri);
56 
57     // invalid instanceid. InstanceId must be [a-z].
58     assertThrows(
59         IllegalArgumentException.class,
60         () -> DirectoryUtil.getBaseDownloadDirectory(context, Optional.of("InstanceId")));
61   }
62 
63   @Test
buildFilename_buildsFilenameWithInstanceId()64   public void buildFilename_buildsFilenameWithInstanceId() {
65     assertThat(DirectoryUtil.buildFilename("prefix", "suffix", Optional.absent()))
66         .isEqualTo("prefix.suffix");
67 
68     assertThat(DirectoryUtil.buildFilename("prefix", "suffix", Optional.of("myinstance")))
69         .isEqualTo("prefixmyinstance.suffix");
70   }
71 }
72