• 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 
35 namespace OHOS {
36 namespace Telephony {
37 using namespace testing::ext;
38 constexpr int32_t SLEEP_TIME = 100 * 1000; // 10ms
39 
40 class StkControllerTest : public testing::Test {
41 public:
42     static void SetUpTestCase();
43     static void TearDownTestCase();
44     void SetUp();
45     void TearDown();
46 };
47 
TearDownTestCase()48 void StkControllerTest::TearDownTestCase() {}
49 
SetUp()50 void StkControllerTest::SetUp() {}
51 
TearDown()52 void StkControllerTest::TearDown() {}
53 
SetUpTestCase()54 void StkControllerTest::SetUpTestCase() {}
55 
56 HWTEST_F(StkControllerTest, Telephony_Sim_ProcessEvent_001, Function | MediumTest | Level1)
57 {
58     auto telRilManager = std::make_shared<TelRilManager>();
59     auto simStateManager = std::make_shared<SimStateManager>(telRilManager);
60     auto stkController = std::make_shared<StkController>(telRilManager, simStateManager, 0);
61     AppExecFwk::InnerEvent::Pointer event1 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_SESSION_END, 1);
62     stkController->ProcessEvent(event1);
63     usleep(SLEEP_TIME);
64 
65     AppExecFwk::InnerEvent::Pointer event2 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_PROACTIVE_COMMAND, 1);
66     stkController->ProcessEvent(event2);
67     usleep(SLEEP_TIME);
68 
69     AppExecFwk::InnerEvent::Pointer event3 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_ALPHA_NOTIFY, 1);
70     stkController->ProcessEvent(event3);
71     usleep(SLEEP_TIME);
72 
73     AppExecFwk::InnerEvent::Pointer event4 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_EVENT_NOTIFY, 1);
74     stkController->ProcessEvent(event4);
75     usleep(SLEEP_TIME);
76 
77     AppExecFwk::InnerEvent::Pointer event5 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_CALL_SETUP, 1);
78     stkController->ProcessEvent(event5);
79     usleep(SLEEP_TIME);
80 
81     AppExecFwk::InnerEvent::Pointer event6 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_ICC_REFRESH, 1);
82     stkController->ProcessEvent(event6);
83     usleep(SLEEP_TIME);
84 
85     AppExecFwk::InnerEvent::Pointer event7 = AppExecFwk::InnerEvent::Get(
86         RadioEvent::RADIO_STK_SEND_TERMINAL_RESPONSE, 1);
87     stkController->ProcessEvent(event7);
88     usleep(SLEEP_TIME);
89 
90     AppExecFwk::InnerEvent::Pointer event8 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STK_SEND_ENVELOPE, 1);
91     stkController->ProcessEvent(event8);
92     usleep(SLEEP_TIME);
93 
94     stkController->remainTryCount_ = 1;
95     AppExecFwk::InnerEvent::Pointer event9 = AppExecFwk::InnerEvent::Get(
96         StkController::RETRY_SEND_RIL_PROACTIVE_COMMAND, 1);
97     stkController->ProcessEvent(event9);
98     usleep(SLEEP_TIME);
99 
100     AppExecFwk::InnerEvent::Pointer event10 = AppExecFwk::InnerEvent::Get(
101         StkController::RETRY_SEND_RIL_PROACTIVE_COMMAND, 1);
102     stkController->ProcessEvent(event10);
103     EXPECT_EQ(stkController->remainTryCount_, -1);
104 }
105 
106 HWTEST_F(StkControllerTest, Telephony_Sim_ProcessEvent_002, Function | MediumTest | Level1)
107 {
108     auto telRilManager = std::make_shared<TelRilManager>();
109     auto simStateManager = std::make_shared<SimStateManager>(telRilManager);
110     auto stkController = std::make_shared<StkController>(telRilManager, simStateManager, 0);
111 
112     stkController->iccCardState_ = 1;
113     std::shared_ptr<Int32Parcel> object = nullptr;
114     AppExecFwk::InnerEvent::Pointer event0 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STATE_CHANGED, object);
115     stkController->ProcessEvent(event0);
116     usleep(SLEEP_TIME);
117     EXPECT_EQ(stkController->iccCardState_, 1);
118 
119     object = std::make_shared<Int32Parcel>(1);
120     AppExecFwk::InnerEvent::Pointer event1 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STATE_CHANGED, object);
121     stkController->ProcessEvent(event1);
122     usleep(SLEEP_TIME);
123     EXPECT_EQ(stkController->iccCardState_, 1);
124 
125     object->data = -1;
126     AppExecFwk::InnerEvent::Pointer event2 = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_STATE_CHANGED, object);
127     stkController->ProcessEvent(event2);
128     usleep(SLEEP_TIME);
129     EXPECT_EQ(stkController->iccCardState_, 0);
130 }
131 
132 }
133 }