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