• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 The Android Open Source Project
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 
17 package com.android.imsserviceentitlement.entitlement;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import android.content.Context;
22 
23 import androidx.test.core.app.ApplicationProvider;
24 import androidx.test.runner.AndroidJUnit4;
25 
26 import com.android.imsserviceentitlement.entitlement.EntitlementConfiguration.ClientBehavior;
27 
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.junit.runner.RunWith;
31 
32 @RunWith(AndroidJUnit4.class)
33 public class EntitlementConfigurationTest {
34     private static final String RAW_XML =
35             "<wap-provisioningdoc version=\"1.1\">\n"
36                     + "    <characteristic type=\"VERS\">\n"
37                     + "        <parm name=\"version\" value=\"1\"/>\n"
38                     + "        <parm name=\"validity\" value=\"1728000\"/>\n"
39                     + "    </characteristic>\n"
40                     + "    <characteristic type=\"TOKEN\">\n"
41                     + "        <parm name=\"token\" value=\"kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX\"/>\n"
42                     + "        <parm name=\"validity\" value=\"3600\"/>\n"
43                     + "    </characteristic>\n"
44                     + "    <characteristic type=\"APPLICATION\">\n"
45                     + "        <parm name=\"AppID\" value=\"ap2004\"/>\n"
46                     + "        <parm name=\"EntitlementStatus\" value=\"1\"/>\n"
47                     + "    </characteristic>\n"
48                     + "    <characteristic type=\"APPLICATION\">\n"
49                     + "        <parm name=\"AppID\" value=\"ap2003\"/>\n"
50                     + "        <parm name=\"EntitlementStatus\" value=\"0\"/>\n"
51                     + "    </characteristic>\n"
52                     + "</wap-provisioningdoc>\n";
53     private static final String RAW_XML_NO_TOKEN_VALIDITY =
54             "<wap-provisioningdoc version=\"1.1\">\n"
55                     + "    <characteristic type=\"VERS\">\n"
56                     + "        <parm name=\"version\" value=\"1\"/>\n"
57                     + "        <parm name=\"validity\" value=\"1728000\"/>\n"
58                     + "    </characteristic>\n"
59                     + "    <characteristic type=\"TOKEN\">\n"
60                     + "        <parm name=\"token\" value=\"kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX\"/>\n"
61                     + "    </characteristic>\n"
62                     + "    <characteristic type=\"APPLICATION\">\n"
63                     + "        <parm name=\"AppID\" value=\"ap2004\"/>\n"
64                     + "        <parm name=\"EntitlementStatus\" value=\"1\"/>\n"
65                     + "    </characteristic>\n"
66                     + "    <characteristic type=\"APPLICATION\">\n"
67                     + "        <parm name=\"AppID\" value=\"ap2003\"/>\n"
68                     + "        <parm name=\"EntitlementStatus\" value=\"0\"/>\n"
69                     + "    </characteristic>\n"
70                     + "</wap-provisioningdoc>\n";
71     private static final String RAW_XML_NO_VERS_VERSION =
72             "<wap-provisioningdoc version=\"1.1\">\n"
73                     + "    <characteristic type=\"VERS\">\n"
74                     + "        <parm name=\"version\" value=\"\"/>\n"
75                     + "        <parm name=\"validity\" value=\"1728000\"/>\n"
76                     + "    </characteristic>\n"
77                     + "    <characteristic type=\"TOKEN\">\n"
78                     + "        <parm name=\"token\" value=\"kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX\"/>\n"
79                     + "        <parm name=\"validity\" value=\"3600\"/>\n"
80                     + "    </characteristic>\n"
81                     + "    <characteristic type=\"APPLICATION\">\n"
82                     + "        <parm name=\"AppID\" value=\"ap2004\"/>\n"
83                     + "        <parm name=\"EntitlementStatus\" value=\"1\"/>\n"
84                     + "    </characteristic>\n"
85                     + "    <characteristic type=\"APPLICATION\">\n"
86                     + "        <parm name=\"AppID\" value=\"ap2003\"/>\n"
87                     + "        <parm name=\"EntitlementStatus\" value=\"0\"/>\n"
88                     + "    </characteristic>\n"
89                     + "</wap-provisioningdoc>\n";
90     private static final int SUB_ID = 1;
91 
92     private Context mContext;
93     private EntitlementConfiguration mConfiguration;
94 
95     @Before
setUp()96     public void setUp() {
97         mContext = ApplicationProvider.getApplicationContext();
98         mConfiguration = new EntitlementConfiguration(mContext, SUB_ID);
99         mConfiguration.reset();
100     }
101 
102     @Test
updateConfigurations_verifyConfigs()103     public void updateConfigurations_verifyConfigs() {
104         mConfiguration.update(RAW_XML);
105 
106         assertThat(mConfiguration.getVolteStatus()).isEqualTo(0);
107         assertThat(mConfiguration.getVoWifiStatus()).isEqualTo(1);
108         assertThat(mConfiguration.getSmsOverIpStatus()).isEqualTo(2);
109         assertThat(mConfiguration.getToken().get()).isEqualTo("kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX");
110         assertThat(mConfiguration.getTokenValidity()).isEqualTo(3600);
111         assertThat(mConfiguration.getVersion()).isEqualTo("1");
112         assertThat(mConfiguration.entitlementValidation()).isEqualTo(
113                 ClientBehavior.VALID_DURING_VALIDITY);
114     }
115 
116     @Test
updateConfigurations_reset_verifyDefaultValues()117     public void updateConfigurations_reset_verifyDefaultValues() {
118         mConfiguration.update(RAW_XML);
119         mConfiguration.reset();
120 
121         assertThat(mConfiguration.getVolteStatus()).isEqualTo(2);
122         assertThat(mConfiguration.getVoWifiStatus()).isEqualTo(2);
123         assertThat(mConfiguration.getSmsOverIpStatus()).isEqualTo(2);
124         assertThat(mConfiguration.getToken().isPresent()).isFalse();
125         assertThat(mConfiguration.getTokenValidity()).isEqualTo(0);
126         assertThat(mConfiguration.entitlementValidation()).isEqualTo(ClientBehavior.NEEDS_TO_RESET);
127     }
128 
129     @Test
updateConfigurations_noTokenValidity_tokenValid()130     public void updateConfigurations_noTokenValidity_tokenValid() {
131         mConfiguration.update(RAW_XML_NO_TOKEN_VALIDITY);
132 
133         assertThat(mConfiguration.getToken().get()).isEqualTo("kZYfCEpSsMr88KZVmab5UsZVzl+nWSsX");
134         assertThat(mConfiguration.getTokenValidity()).isEqualTo(0);
135     }
136 
137     @Test
updateConfigurations_noVersVersion_getDefaultValue()138     public void updateConfigurations_noVersVersion_getDefaultValue() {
139         mConfiguration.update(RAW_XML_NO_VERS_VERSION);
140 
141         assertThat(mConfiguration.getVersion()).isEqualTo("0");
142     }
143 }
144