• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #define private public
16 #define protected public
17 
18 #include <string>
19 #include <unistd.h>
20 #include "sim_manager.h"
21 #include "core_manager_inner.h"
22 #include "core_service.h"
23 #include "core_service_client.h"
24 #include "enum_convert.h"
25 #include "operator_config_cache.h"
26 #include "operator_file_parser.h"
27 #include "sim_state_type.h"
28 #include "str_convert.h"
29 #include "string_ex.h"
30 #include "tel_profile_util.h"
31 #include "telephony_ext_wrapper.h"
32 #include "gtest/gtest.h"
33 #include "tel_ril_manager.h"
34 #include "mock_tel_ril_manager.h"
35 #include "sim_constant.h"
36 #include "icc_dialling_numbers_handler.h"
37 #include "icc_file_controller.h"
38 #include "isim_file.h"
39 
40 namespace OHOS {
41 namespace Telephony {
42 using namespace testing::ext;
43 using namespace testing;
44 
45 class RuimFileTest : public testing::Test {
46 public:
47     static void SetUpTestCase();
48     static void TearDownTestCase();
49     void SetUp();
50     void TearDown();
51 };
52 
53 
SetUpTestCase()54 void RuimFileTest::SetUpTestCase() {}
55 
TearDownTestCase()56 void RuimFileTest::TearDownTestCase() {}
57 
SetUp()58 void RuimFileTest::SetUp() {}
59 
TearDown()60 void RuimFileTest::TearDown() {}
61 
62 HWTEST_F(RuimFileTest, RuimFileTest001, Function | MediumTest | Level1)
63 {
64     int32_t slotId = 0;
65     std::shared_ptr<TelRilManager> telRilManager = std::make_shared<TelRilManager>();
66     std::shared_ptr<Telephony::SimStateManager> simStateManager = std::make_shared<SimStateManager>(telRilManager);
67     std::shared_ptr<RuimFile> ruimFile = std::make_shared<RuimFile>(simStateManager);
68     std::shared_ptr<IccFileController> file = std::make_shared<SimFileController>(slotId);
69     std::shared_ptr<IccDiallingNumbersHandler> handler = std::make_shared<IccDiallingNumbersHandler>(file);
70     ruimFile->SetRilAndFileController(telRilManager, file, handler);
71     ruimFile->StartLoad();
72     int32_t validEventId = 0x03;
73     int32_t invalidEventId = 0xFFFF78;
74     auto validEvent = AppExecFwk::InnerEvent::Get(validEventId);
75     auto invalidEvent = AppExecFwk::InnerEvent::Get(invalidEventId);
76     auto nullEvent = AppExecFwk::InnerEvent::Pointer(nullptr, nullptr);
77     ruimFile->InitMemberFunc();
78     ruimFile->ProcessEvent(validEvent);
79     ruimFile->ProcessEvent(invalidEvent);
80     ruimFile->ProcessIccRefresh(0);
81     ruimFile->ProcessFileLoaded(false);
82     ruimFile->ProcessFileLoaded(true);
83     ruimFile->ProcessLockedAllFilesFetched();
84     ruimFile->OnAllFilesFetched();
85     ruimFile->ProcessIccReady(validEvent);
86     ruimFile->ProcessIccLocked(validEvent);
87     ruimFile->LoadRuimFiles();
88     ruimFile->ProcessGetSubscriptionDone(nullEvent);
89     ruimFile->ProcessGetIccidDone(nullEvent);
90     ruimFile->ProcessGetIccidDone(validEvent);
91     ruimFile->ProcessGetImsiDone(nullEvent);
92     ruimFile->ProcessGetImsiDone(validEvent);
93     ruimFile->ObtainMdnNumber();
94     ruimFile->ObtainCdmaMin();
95     ruimFile->ObtainPrlVersion();
96     ruimFile->ObtainNAI();
97     ruimFile->ObtainMdn();
98     ruimFile->ObtainMin();
99     ruimFile->ObtainSid();
100     ruimFile->ObtainNid();
101     ruimFile->ObtainCsimSpnDisplayCondition();
102     ruimFile->ProcessGetSpnDone(validEvent);
103     EXPECT_TRUE(ruimFile->ProcessGetSpnDone(nullEvent));
104 }
105 
106 HWTEST_F(RuimFileTest, RuimFileTest002, Function | MediumTest | Level1)
107 {
108     int32_t slotId = 0;
109     std::shared_ptr<TelRilManager> telRilManager = std::make_shared<TelRilManager>();
110     std::shared_ptr<Telephony::SimStateManager> simStateManager = std::make_shared<SimStateManager>(telRilManager);
111     std::shared_ptr<RuimFile> ruimFile = std::make_shared<RuimFile>(simStateManager);
112     std::shared_ptr<IccFileController> file = std::make_shared<SimFileController>(slotId);
113     std::shared_ptr<IccDiallingNumbersHandler> handler = std::make_shared<IccDiallingNumbersHandler>(file);
114     ruimFile->SetRilAndFileController(telRilManager, file, handler);
115     ruimFile->StartLoad();
116     int32_t validEventId = 0x03;
117     int32_t invalidEventId = 0xFFFF78;
118     auto validEvent = AppExecFwk::InnerEvent::Get(validEventId);
119     auto invalidEvent = AppExecFwk::InnerEvent::Get(invalidEventId);
120     auto nullEvent = AppExecFwk::InnerEvent::Pointer(nullptr, nullptr);
121     unsigned char spnNameArr[] = "cnNet";
122     unsigned char const *spnName = static_cast<unsigned char const *>(spnNameArr);
123     std::string operatorNum, mailName, mailNumber;
124     ruimFile->ParseSpnName(CSIM_SPN_OCTET, spnName, 5);
125     ruimFile->ParseSpnName(CSIM_SPN_LATIN, spnName, 5);
126     ruimFile->ParseSpnName(CSIM_SPN_IA5, spnName, 5);
127     ruimFile->ParseSpnName(CSIM_SPN_7BIT_ALPHABET, spnName, 5);
128     ruimFile->ParseSpnName(CSIM_SPN_7BIT_ASCII, spnName, 5);
129     ruimFile->ParseSpnName(CSIM_SPN_IA5, spnName, 5);
130     ruimFile->ObtainSpnCondition(true, operatorNum);
131     ruimFile->UpdateVoiceMail(mailName, mailNumber);
132     EXPECT_TRUE(ruimFile->ProcessGetSpnDone(nullEvent));
133 }
134 
135 HWTEST_F(RuimFileTest, RuimFileControllerTest001, Function | MediumTest | Level1)
136 {
137     int32_t slotId = 0;
138     std::shared_ptr<TelRilManager> telRilManager = std::make_shared<TelRilManager>();
139     std::shared_ptr<Telephony::SimStateManager> simStateManager = std::make_shared<SimStateManager>(telRilManager);
140     std::shared_ptr<RuimFile> ruimFile = std::make_shared<RuimFile>(simStateManager);
141     std::shared_ptr<IccFileController> file = std::make_shared<SimFileController>(slotId);
142     std::shared_ptr<IccDiallingNumbersHandler> handler = std::make_shared<IccDiallingNumbersHandler>(file);
143     ruimFile->SetRilAndFileController(telRilManager, file, handler);
144     std::shared_ptr<RuimFileController> ruimFileController = std::make_shared<RuimFileController>(slotId);
145     ruimFileController->ObtainElementFilePath(ELEMENTARY_FILE_USIM_ADN);
146     EXPECT_NE(ruimFileController->ObtainElementFilePath(ELEMENTARY_FILE_SMS).c_str(), nullptr);
147 }
148 
149 HWTEST_F(RuimFileTest, RuimFileControllerTest002, Function | MediumTest | Level1)
150 {
151     int32_t slotId = 0;
152     std::shared_ptr<RuimFileController> ruimFileController = std::make_shared<RuimFileController>(slotId);
153     int fileId = 12345;
154     int highOffset = 0;
155     int lowOffset = 10;
156     int length = 20;
157     AppExecFwk::InnerEvent::Pointer onLoaded = AppExecFwk::InnerEvent::Get();
158     std::shared_ptr<IccFileController> iccFileController = std::make_shared<SimFileController>(1);
159     iccFileController->telRilManager_ = nullptr;
160     ruimFileController->ObtainTransparentImg(fileId, highOffset, lowOffset, length, onLoaded);
161     iccFileController->telRilManager_ = std::make_shared<TelRilManager>();
162     ruimFileController->ObtainTransparentImg(fileId, highOffset, lowOffset, length, onLoaded);
163     EXPECT_NE(iccFileController->telRilManager_, nullptr);
164 }
165 }
166 }
167