1 /*
2 * Copyright (c) 2022-2023 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
16 #include <thread>
17
18 #include <gtest/gtest.h>
19
20 #include "net_mgr_log_wrapper.h"
21 #include "net_policy_callback_test.h"
22 #include "net_policy_client.h"
23 #include "net_policy_constants.h"
24 #define private public
25 #include "net_policy_core.h"
26 #include "net_policy_firewall.h"
27 #include "net_policy_inner_define.h"
28 #include "net_policy_rule.h"
29 #include "net_policy_traffic.h"
30
31 namespace OHOS {
32 namespace NetManagerStandard {
33 namespace {
34 using namespace testing::ext;
35 constexpr const char *NET_POLICY_WORK_TEST_THREAD = "NET_POLICY_WORK_TEST_THREAD";
36 constexpr const char *TEST_EVENT_ACTION = "TEST_ACTION";
37 constexpr const char *EVENT_PARAM_DELETED_UID = "DeletedUid";
38 std::shared_ptr<NetPolicyCore> g_netPolicyCore;
39 std::shared_ptr<AppExecFwk::EventRunner> g_runner;
40 std::shared_ptr<NetPolicyEventHandler> g_handler;
41 } // namespace
42
43 class UtNetPolicyCore : public testing::Test {
44 public:
45 static void SetUpTestCase();
46 static void TearDownTestCase();
47 void SetUp();
48 void TearDown();
49 };
50
SetUpTestCase()51 void UtNetPolicyCore::SetUpTestCase()
52 {
53 g_runner = AppExecFwk::EventRunner::Create(NET_POLICY_WORK_TEST_THREAD);
54 g_netPolicyCore = DelayedSingleton<NetPolicyCore>::GetInstance();
55 g_handler = std::make_shared<NetPolicyEventHandler>(g_runner, g_netPolicyCore);
56 g_netPolicyCore->Init(g_handler);
57 }
58
TearDownTestCase()59 void UtNetPolicyCore::TearDownTestCase()
60 {
61 g_netPolicyCore.reset();
62 }
63
SetUp()64 void UtNetPolicyCore::SetUp() {}
65
TearDown()66 void UtNetPolicyCore::TearDown() {}
67
68 /**
69 * @tc.name: CreateCore001
70 * @tc.desc: Test NetPolicyCore CreateCore.
71 * @tc.type: FUNC
72 */
73 HWTEST_F(UtNetPolicyCore, CreateCore001, TestSize.Level1)
74 {
75 auto netPolicyTraffic = g_netPolicyCore->CreateCore<NetPolicyTraffic>();
76 auto netPolicyFirewall = g_netPolicyCore->CreateCore<NetPolicyFirewall>();
77 auto netPolicyRule = g_netPolicyCore->CreateCore<NetPolicyRule>();
78 ASSERT_TRUE(netPolicyTraffic != nullptr && netPolicyFirewall != nullptr && g_netPolicyCore != nullptr);
79 }
80
81 /**
82 * @tc.name: HandleEvent001
83 * @tc.desc: Test NetPolicyCore HandleEvent.
84 * @tc.type: FUNC
85 */
86 HWTEST_F(UtNetPolicyCore, HandleEvent001, TestSize.Level1)
87 {
88 AppExecFwk::InnerEvent::Pointer event = AppExecFwk::InnerEvent::Get();
89 ASSERT_NE(g_netPolicyCore, nullptr);
90 g_netPolicyCore->HandleEvent(event);
91 }
92
93 /**
94 * @tc.name: HandleEvent002
95 * @tc.desc: Test NetPolicyCore HandleEvent.
96 * @tc.type: FUNC
97 */
98 HWTEST_F(UtNetPolicyCore, HandleEvent002, TestSize.Level1)
99 {
100 AppExecFwk::InnerEvent::Pointer event = AppExecFwk::InnerEvent::Get();
101 event.reset();
102 ASSERT_NE(g_netPolicyCore, nullptr);
103 g_netPolicyCore->HandleEvent(event);
104 }
105
106 /**
107 * @tc.name: SendEvent001
108 * @tc.desc: Test NetPolicyCore HandleEvent.
109 * @tc.type: FUNC
110 */
111 HWTEST_F(UtNetPolicyCore, SendEvent001, TestSize.Level1)
112 {
113 int32_t testEventId = 1154;
114 int32_t testDelayTime = 100;
115 std::shared_ptr<PolicyEvent> event = nullptr;
116 ASSERT_NE(g_netPolicyCore, nullptr);
117 g_netPolicyCore->SendEvent(testEventId, event, testDelayTime);
118 }
119
120 /**
121 * @tc.name: OnReceiveEvent001
122 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
123 * @tc.type: FUNC
124 */
125 HWTEST_F(UtNetPolicyCore, OnReceiveEvent001, TestSize.Level1)
126 {
127 EventFwk::CommonEventData eventData;
128 eventData.SetCode(SAVE_MODE);
129 EventFwk::Want want;
130 want.SetAction(COMMON_EVENT_POWER_SAVE_MODE_CHANGED);
131 eventData.SetWant(want);
132 ASSERT_NE(g_netPolicyCore, nullptr);
133 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
134 }
135
136 /**
137 * @tc.name: OnReceiveEvent002
138 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
139 * @tc.type: FUNC
140 */
141 HWTEST_F(UtNetPolicyCore, OnReceiveEvent002, TestSize.Level1)
142 {
143 EventFwk::CommonEventData eventData;
144 eventData.SetCode(LOWPOWER_MODE);
145 EventFwk::Want want;
146 want.SetAction(COMMON_EVENT_POWER_SAVE_MODE_CHANGED);
147 eventData.SetWant(want);
148 ASSERT_NE(g_netPolicyCore, nullptr);
149 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
150 }
151
152 /**
153 * @tc.name: OnReceiveEvent003
154 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
155 * @tc.type: FUNC
156 */
157 HWTEST_F(UtNetPolicyCore, OnReceiveEvent003, TestSize.Level1)
158 {
159 EventFwk::CommonEventData eventData;
160 eventData.SetCode(NORMAL_MODE);
161 EventFwk::Want want;
162 want.SetAction(COMMON_EVENT_POWER_SAVE_MODE_CHANGED);
163 eventData.SetWant(want);
164 ASSERT_NE(g_netPolicyCore, nullptr);
165 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
166 }
167
168 /**
169 * @tc.name: OnReceiveEvent004
170 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
171 * @tc.type: FUNC
172 */
173 HWTEST_F(UtNetPolicyCore, OnReceiveEvent004, TestSize.Level1)
174 {
175 EventFwk::CommonEventData eventData;
176 eventData.SetCode(EXTREME_MODE);
177 EventFwk::Want want;
178 want.SetAction(COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED);
179 eventData.SetWant(want);
180 ASSERT_NE(g_netPolicyCore, nullptr);
181 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
182 }
183
184 /**
185 * @tc.name: OnReceiveEvent005
186 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
187 * @tc.type: FUNC
188 */
189 HWTEST_F(UtNetPolicyCore, OnReceiveEvent005, TestSize.Level1)
190 {
191 EventFwk::CommonEventData eventData;
192 eventData.SetCode(NORMAL_MODE);
193 EventFwk::Want want;
194 want.SetAction(COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED);
195 eventData.SetWant(want);
196 ASSERT_NE(g_netPolicyCore, nullptr);
197 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
198 }
199
200 /**
201 * @tc.name: OnReceiveEvent006
202 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
203 * @tc.type: FUNC
204 */
205 HWTEST_F(UtNetPolicyCore, OnReceiveEvent006, TestSize.Level1)
206 {
207 std::string testUid = "111";
208 EventFwk::CommonEventData eventData;
209 eventData.SetCode(NORMAL_MODE);
210 EventFwk::Want want;
211 want.SetParam(EVENT_PARAM_DELETED_UID, testUid);
212 want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_UID_REMOVED);
213 eventData.SetWant(want);
214 ASSERT_NE(g_netPolicyCore, nullptr);
215 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
216 }
217
218 /**
219 * @tc.name: OnReceiveEvent007
220 * @tc.desc: Test NetPolicyCore OnReceiveEvent.
221 * @tc.type: FUNC
222 */
223 HWTEST_F(UtNetPolicyCore, OnReceiveEvent007, TestSize.Level1)
224 {
225 EventFwk::CommonEventData eventData;
226 eventData.SetCode(NORMAL_MODE);
227 EventFwk::Want want;
228 want.SetAction(TEST_EVENT_ACTION);
229 eventData.SetWant(want);
230 ASSERT_NE(g_netPolicyCore, nullptr);
231 g_netPolicyCore->subscriber_->OnReceiveEvent(eventData);
232 }
233 } // namespace NetManagerStandard
234 } // namespace OHOS
235