• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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