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