• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package android.app;
2 
3 import static android.os.Build.VERSION_CODES.R;
4 import static android.os.Build.VERSION_CODES.TIRAMISU;
5 import static com.google.common.truth.Truth.assertThat;
6 
7 import android.net.VpnManager;
8 import android.net.VpnProfileState;
9 import androidx.test.core.app.ActivityScenario;
10 import androidx.test.core.app.ApplicationProvider;
11 import androidx.test.ext.junit.runners.AndroidJUnit4;
12 import androidx.test.filters.SdkSuppress;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.robolectric.testapp.TestActivity;
16 
17 /** Compatibility test for {@link VpnManager}. */
18 @RunWith(AndroidJUnit4.class)
19 @SdkSuppress(minSdkVersion = R)
20 public class VpnManagerTest {
21 
22   @Test
vpnManager_applicationInstance_isNotSameAsActivityInstance()23   public void vpnManager_applicationInstance_isNotSameAsActivityInstance() {
24     VpnManager applicationVpnManager =
25         ApplicationProvider.getApplicationContext().getSystemService(VpnManager.class);
26     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
27       scenario.onActivity(
28           activity -> {
29             VpnManager activityVpnManager = activity.getSystemService(VpnManager.class);
30             assertThat(applicationVpnManager).isNotSameInstanceAs(activityVpnManager);
31           });
32     }
33   }
34 
35   @Test
vpnManager_activityInstance_isSameAsActivityInstance()36   public void vpnManager_activityInstance_isSameAsActivityInstance() {
37     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
38       scenario.onActivity(
39           activity -> {
40             VpnManager activityVpnManager = activity.getSystemService(VpnManager.class);
41             VpnManager anotherActivityVpnManager = activity.getSystemService(VpnManager.class);
42             assertThat(anotherActivityVpnManager).isSameInstanceAs(activityVpnManager);
43           });
44     }
45   }
46 
47   @Test
48   @SdkSuppress(minSdkVersion = TIRAMISU)
vpnManager_instance_retrievesSameProfileState()49   public void vpnManager_instance_retrievesSameProfileState() {
50     VpnManager applicationVpnManager =
51         ApplicationProvider.getApplicationContext().getSystemService(VpnManager.class);
52     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
53       scenario.onActivity(
54           activity -> {
55             VpnManager activityVpnManager = activity.getSystemService(VpnManager.class);
56 
57             VpnProfileState applicationProfileState =
58                 applicationVpnManager.getProvisionedVpnProfileState();
59             VpnProfileState activityProfileState =
60                 activityVpnManager.getProvisionedVpnProfileState();
61 
62             assertThat(activityProfileState).isEqualTo(applicationProfileState);
63           });
64     }
65   }
66 }
67